アジャイルが使われる多くの理由は、「仕様が固められない」という部分が多いと思う。
あ、あとは、できるのを見ないと怖いとか。。
っていうことで、アジャイルではじめる場合、初めから「共通部分を抜き出して」ということをやれないケースもあるし、やると危険なケースがおおい。
話が進んでいったら、「ぜんぜん共通じゃないじゃーん!!」っていうことになり、その部分を作り直しとなったりするから。
オブジェクト指向な人は、「そーいう部分のために、派生があるんです」というとおもうけど、派生する意味ないくらい、共通じゃない(見た目は共通だけど、中身は共通じゃない)というケースがあるので、やっぱ、オブジェクト指向を採用しても、共通化すると、作り直しになってしまったりする。
てなわけで、いったん全体を作ってしまったあとで、もう一度、チューニングとしてのリファクタリングが必要になってきたりするわけだ。でも、こういう開発手順を踏んでも、仕様確定前に、モノを見ながら、作成、仕様決めができるというメリットは大きい。
しかーっし!!
ここで重要なことは、できたところをお客さんに見せて。。
というところである。
客に見せると、仕様が変わってしまう。これはほんと。
でも、だから見せないで、仕様をきめてしまうんなら、アジャイルにするいみなーい!!
ウォーターフォールでやったほうがいいって。
なんで、
アジャイルでやる=リファクタリングは入る=できたところを客に見せるのが必要
これ、3点セットだと思う。
これを理解しない営業、PMで、客に見せなかったり、リファクタリングの機会を与えないならアジャイルでやる意味ないし、むしろ逆効果。
この場合は、ウォーターフォールのほうが、進みはする(ただ、その場合は、今度、客に見せない危険性、仕様の大勘違いを生じる危険性はある)