Agile2009二日目
- 本日聞いてきたお話。
How the FBI learned to catch bad guys one iteration at a time
- 政府系受託開発のお話。
- 日本でいうSI屋さん。
- お客はFBI。
- FBIにおけるシステム開発の失敗事例は色々有名らしい。
- そのFBIシステム部門がAgile開発を受け入れることで体質が変わりつつある、というお話。
- 二週間の周回開発。
- 計画ポーカー採用。
- ペアプログラミング。
- 継続的統合。
- 一方で、CMMI Level-3は満たしている、と。
- CMMIは膨大な文書類の提出を求めるものではない。
- 追跡可能・再現可能な工程を規定できれば良い。
- 要件ストーリを文書化。(Requirement)
- 受入テスト実施とそれに対する承認。(Validation)
- Subversionコミット時の記録(Verification)
- 質疑応答時に契約形態を質問した。
- 複数年度契約。
- 道幅課金。
- 日本でいう随意契約に近く、また完成するまで支払いは保証されるみたい。
- Waterfallより早く完成し、失敗もしないからお客もハッピーなのだろう。
Covert Agile: Development at the Speed of…Government?
- もう一つの政府系受託開発事例。
- 顧客は空軍。
- 対象はレーダー追跡局(RTS)
- 世界中のあちこちにあるRTSのパラボラアンテナをいつ、どの方向に向けるかを計画するシステムらしい。
- 元々は冷戦時代の代物で、ハードの老朽化が進行。
- 国防に重要なシステムがMS-DOS 6.22+フロッピー+シリアル転送+ライトペンで動いていた、という事実。
- ハードが壊れると、eBayで代替品を探していたらしい。
- システム近代化プロジェクトはこれまで三回あったが、いずれも失敗。失敗総額2200万ドル。
- システムを利用する現場の職員は「その現場一筋」で業務内容を熟知。
- 一方で予算を管轄する上層部は、軍内部の定期的な人事異動のため、2年でいなくなってしまう。
- 受託〜開発〜受入を二年以内で完了させる必要がある。
- 失敗した場合、その原因が分析される前に責任者が交代するので、同じ轍を踏む可能性が高い。
- 今回は「従来の半分の期間で完成させてみせる。ただし予算は従来の倍いただきます」という触れ込みで入札し、受託した。
- 驚いたことに、契約は「ウォーターフォール」。
- お客の予算管理部門には、ウォーターフォール的な計画書を提出し、途中の説明も全てその計画書に準じたものに。
- お客の現場部門と開発者達はAgileで。
- ストーリーベースでの周回開発。もともとの要件はバインダー5冊の膨大な文章=把握するのも検証するのも困難。
- まず、簡単な「大枠」のアプリを作り、それを現場の人たちに使ってもらう。
- そこから徐々に各ストーリを実装。
- 一方で、文書書き専門の職員を雇い、顧客上層部報告に必要な文書類を整備した。
- Agile開発は15-20人。
- 文書書きは20人体制。
- 予定納期までにシステムは完成。
- 顧客上層部はAgile開発だったことを全く知らない。
注記
上の政府系事例二つは実に対照的で興味深い。
- 随意契約 vs 入札
- 道幅課金(可変納期・可変予算) vs 固定納期・固定予算
- 顧客上層部がAgileに理解 vs 顧客上層部は計画管理に興味を示さない(Waterfallで決めうち)
- 少人数で軽い開発 vs オーバーヘッドの多い体制(文書書き職員が開発者より多い)
- お客の文化・お客が求めるものに対して柔軟に対処できるのがAgileのすごいところ。
Agile in the Enterprise Corporation
- HP、Qualcomm、BMC Softwareという大企業における「組織のAgile化」の話。
- 開発の現場がAgile化するのは、この3社では「当然」の話。
- 開発だけでなく、企画・販促・サポートなどの各組織や経営までもAgile化する必要がある。
- 株式公開企業なら、なおさら。
- 自社開発だろうが、外部に開発を委託していようが、Agile化しないと損するし、競合に市場をとられてしまう。
- ウォーターフォールやRAP計画を活用する組織体制は「時間と金のムダ」
- 計画管理や経過報告と、それによる軌道修正を経営・管理レベルで受け入れないと、Agile開発の旨みを活かせない。
- 営業や顧客窓口の人達に早期リリースの製品を使ってもらわないと、やはりAgile開発の旨みを活かせない。
印象に残った言葉
- Alister Cockburnによる基調講演: 「開発言語に関するスキルは5年で陳腐化する。だから私は5年毎にスキルアップしている。」
- 同じくAlister: 「ソフトウェアの開発は工芸(Craft)」