初期設計の重要性

それだけじゃない。そのメタメタな設計に基づいて作られたクラスインターフェース、さらにはコードまでこんがらがってる。データフロー、制御フロー、そして用語定義までもがこんがらがっている。複数の意味で使われている用語があれば、一つの意味合いを複数の言葉で示したり。同じ機能が複数のクラスで存在していたり、実は微妙に動きが違ったり、でもjavadocでは違いが判らなかったり、実際その両方が適当に、使用上面倒じゃない方が使われていたりする。