Freelance Web Engineer

野球とサッカーとアジャイルと

2010-12-07  agile, software-development

アジャイルソフトウェア開発が注目を浴びています。 このエントリでは、アジャイルソフトウェア開発を2大スポーツに例えて考察してみました。

メンバーが有機的に動くサッカー

これまでアジャイル開発をスポーツに例えるとサッカー型だと思い込んでいました。フィールド(プロジェクト)の中で相手ゴールにボールを入れるという目標(問題解決)に向かい、有機的にメンバーが動く。監督(プロマネ)はフィールド全体を見回し、メンバーが能力を発揮しているか、オフェンス・ディフェンスがうまく機能しているかを判断し、必要であればメンバーを交代する。あるいは攻守の切り替えを随時指示する。90分という時間制約で、最終的に勝利あるいはリーグ優勝はサポーターやスポンサー(顧客)に喜びと利益を与える。

攻守交替の決まりがある野球

一方野球はメンバーが固定ポジションを担当し、それぞれ専門的な能力を発揮できる機会(ボールが来る)までは基本的にはゲームに関与していない(ちょっと語弊があるが)。攻守はスリーアウト取らないと交代できない(制約が多い)。さながら設計しないと実装できないウォーターフォール型と勝手に決めつけていました。

アジャイル開発はどちらか

ところが、アジャイル開発に関する書籍を見る機会が多くなった今、一概に上記に当てはまらないことも有ると気づきました。

それは継続的リリース。イテレーション(期間を固定したタイムボックス)が終わるときに動くソースコードが顧客に提供される。それは野球で言えば「回」にあたり、それを野球であれば9回繰り返すことで最終的な勝敗(ソフトウェアの完成)が決まる。

書いててあらためて面白いなと思うのは、野球は「得点のみできる機会」が両チーム平等に与えられること。その機会を活かすか否かは監督の采配や選手の能力によるのですが。

このようにソフトウェア開発をスポーツに例えるのは面白いですね。みなさんは何に例えますか?

comments powered by Disqus