2012年12月9日日曜日

アジャイル開発手法について

たびたび面白くない思いをしてるので、アジャイル云々はほんとどうでもいい
真面目に手法の検討をやってる人を否定するわけじゃなく。
パスワードとしてのアジャイルの話。
ただしアジャイルという言葉がこの世から消失して欲しいというのは結構本気。

メインの思想となってる短期間でのイテレーションはなるほど特定の分野では有効かもしれない
ただ明らかに不向きな開発分野はあるし、置き換わるものではないのだが
片方を悪としてこちらを善とてする、そういった例を見るとほんとうに胸糞が悪い。

よりよい開発モデルを手に入れましょうは当然の話で、それは別に言われずとも心がけていきましょうというだけ。よりよい開発モデルとしてこういうのがありますよというのを提案するのはいい。
それはテスト駆動型開発だったり、スパイラル型の開発かもしれないし、まあひょっとしたら、PDCAを回そうぜ、無駄なドキュメントを書かないようにしようぜということかもしれない。

それは「ソフトウェア工学」として学問の分野として検討されるべきもので、アジャイルというわけのわからないバズワードでラッピングして紹介すべきものではない。
アジャイルについて話をきくたび前提条件の欠如した宗教とか迷信とかの類に見えて仕方がない。

アジャイルはいわゆる駄目な開発手順をあげて、すでにあるよい開発手法をとりあげて、こうしていきましょうというだけの話に見える。啓蒙的には意味があるかもしれないが、それが新旧の話にされて、ウォーターフォールは悪、アジャイルは正義とかなっている図を見ると、ほんとになんだろうとWeb 2.0とどっこいだ。

せめてアジャイルという言葉でくくらずに個別の事例や手法としてあげてもらいたい。聞いても意味がわからないし、もともと提唱した人に失礼だ

たとえばウォーターフォール型の開発はガントチャート(ヘンリー・ガント1910年)から自然発生したもので、1970年に論文で紹介されたものだがその時点ですでに巻き戻しについては行うべきと説明されている。ウォーターフォール型が悪いのではなく、ちゃんと人の説明をきかない人が悪いだけだがこれは仕方がない。ただアジャイル云々での解説のされかたには明確な悪意を感じる。

開発手法がどうなるというのは時と場合によるのだ。ドキュメントが必要な場所では伝達のためにも書かなくてはいけないし。
フレデリック・ブルックスが言っているように、長期的にはそうした手法の積み重ねで、開発効率は改善されていくものの銀の弾丸なんてない。

そしてよくてもアジャイルはソフトウェア工学上において、大規模開発手法に対するカウンターカルチャーではあるかもしれないが、それを置き換えるものではないと認識している。

いいアジャイルと悪いアジャイル Steve Yegge
http://www.aoky.net/articles/steve_yegge/good_agile_bad_agile.htm