中の人の徒然草377
あ、そうそう。近頃、アジャイル開発について書いているから、開発モデルについて思う事を書きます。
アジャイル開発って、開発者にしてみれば、当たり前のことをまとめたものですよね。
だから、アジャイル開発は開発者のうけがいい。
ウオーターフォール開発モデルは不自然すぎます。
でも、そんなアジャイル開発にも不満があります。
それは、開発工程が一定の順序で流れるという概念に縛られている事です。
これは私自身が、交渉から納品までの全開発工程を経験して感じた事ですが、必ずしも情報は一定の順序で流れていません。
現在の開発モデルは、言うなれば直列パイプライン方式です。
しかしながら、別に並列的に仕事をしても何の支障もありません。
いえそれどころか、逆にその方が短納期で仕事が終えられます。
仕事はやれるところから、並列的にやった方が効率的です。
現に他の業種の仕事は、並列的に行われています。
それを考えないのは、先入観に縛られているからです。
こういうと、「順番どおりしないと上手くいかない」という人が登場するでしょう。
でもそれは、「いま何が出来て何が出来ないか」を把握していないから起こる事です。
例えば、テストとプログラミングは設計が終わった部分から出来ます。
ただし、出来るというのは意見を述べる事も含まれています。
つまり、分析が終わるまで待っていないで、分析時にプログラミングやテストに必要な情報を求めるなどの行為は出来ます。
私が思うに、失敗するプロジェクトは情報が足りません。
実装・テスト・設計などと言った、他の工程で必要な情報が欠落しているから、上手くいかないのです。
上流工程の人が全てを把握していて、全情報が足りるのであれば、ずっと待っていてもいいでしょう。
しかしながら、上流工程の人はえてして、下流工程の作業を十分に知らない。
だったら、初めから意見を聞けばいいという単純な話しです。
既存の開発モデルは、そういった視点が欠落しています。
各工程は必要とする情報が違い、それぞれの工程にプロフェッショナルが居ます。
その情報を全てそろえるのは不可能です。
ならば、必要な情報をなるべく早くそろえるのが当然と言えるでしょう。
直列的な開発モデルではなく、パラレルリレーションな開発モデルが必要だと私は思えてなりません。