アジャイル開発のキーファクター
開発を円滑に進めるうえでは、前ページで上げたポイントに加えて、さらに上位レベルのノウハウが必要になる。この部分についてAmbler氏は、以下の6つを挙げた。
アジャイルな要求管理(Agile Software Requirements Management)
アジャイル開発では、個々の要求に優先順位を付け、優先度の高い順に開発に取り組んでいく。開発の初期段階ですべての要求をモデリングするウォーターフォール型プロセスとは異なり、情報が揃った段階で分析ができるため作業を効率的に進められる。「要求の変化に柔軟に対応できるため、競合優位性につながる」(Ambler氏)という。
アジャイルなドキュメント作成(Agile Documentation)
Ambler氏は、「ドキュメントの作成もプログラミングと同様、相応のコストがかかる作業なので、重要だと判断したものだけを取り上げ、顧客の承認を得てから作成すべきだ」と主張する。なお、ウォーターフォール型プロセスにおいて開発期間の早期にまとめて作成するドキュメントのほとんどは「憶測に基づくものである」と批判した。
アジャイルなモデル駆動開発(Agile Model Driven Development Project Level)
モデリングは、"コーディングを行ううえで必要最小限のレベル"でとどめることが推奨されている。Ambler氏は、著書「アジャイルモデリング」において、初期の要件モデルが完成したら、その後のモデリング作業は数十分程度で済ませ、実装作業に多くの時間を費やすべきだと提言している。
データベースのリファクタリング(Database Refactoring)
Ambler氏は、通常のプログラムだけでなく、データベーススキーマについてもリファクタリングを実施すべきだと主張している。もちろん、データベーススキーマの変更はアプリケーションに与える影響も大きいため、「例えば、カラムの名称を変更する際には、旧カラムの名称を直接変更するのではなく、新たなカラムを作成して旧カラムと平行運用するなどの対策が必要」としている。
アジャイルなテスト(Agile Test)
反復型開発を成功させるうえでの重要な要素としてリグレッション(回帰)テストが挙げられた。また、受け入れテストの仕様書は要求定義の成果物として、ユニットテストのプログラムは設計作業の成果物として位置づけられている。
データベーステスト(Database Test)
Ambler氏によると、データベースのテストを実施しているプロジェクトは非常に少ないという。こうした状況に対し、氏は、「データベースもプログラムの一部なので通常のコードと同様にテストを行うべきだ」と主張する。また、「データベースのテストが行われる場合でも、ブラックボックステストしか行わないのが一般的だが、ホワイトボックステストも実施すべきだ」と続けた。
IBM Rationalが送り出す新プラットフォーム「Jazz」
講演の最後にAmbler氏は、IBM Rationalらが開発中のコラボレーションプラットフォーム「Jazz」について言及した。
オフショア開発の普及やネットワーク環境の整備により、最近では各工程の作業を世界中で別々に行うという状況も珍しくない。そのような環境において、開発者同士がコミュニケーションをとれるようにするプラットフォームがJazzである。
また、Jazzにはプロジェクトの"健康状態"を可視化したり、成果物に対するトレーサビリティを確保したり、状況に応じて開発プロセスをカスタマイズしたりする機能も備わっているという。
詳細は明かされなかったが、今後の動向に注目したい。