NRI流XP実践
目的と背景
高度なネットワーク社会の発展により、企業のビジネスはどんどん変化しています。そのビジネスを支えるシステムも本来なら変化に迅速に対応しなければなりません。しかし、従来幅広く採用されてきたウォーターフォール(W/F)型開発モデルでは、この変化への対応に限界があることが見えてきました。
W/Fモデルでは実装やテストといった下流工程で不具合が発覚すると、大幅な手戻りを余儀なくされます。従って、要件定義や設計といった上流工程での十分な検討と机上確認が重要となります。大規模ネットワークや高能力のサーバを活用した昨今のシステムは高度に複雑化してきており、上流工程で漏れがないように検討することは困難を極めます。なんとか上流工程を乗りきったとしても、その頃には新しいビジネス要件が発生している可能性が高く、システム完成と同時に陳腐化してしまう、ということになりかねません。
XP (eXtreme Programming)に代表されるAgile開発では、「変化への迅速な対応」を最大の目標としています。開発対象を一ヶ月程度に細分化し、徐々に開発リリースしていくことで手戻りリスクを抑えつつ、途中で発生するビジネスの変化にも柔軟に対応していくわけです。
研究概要
Agile 開発にはXPや SCRUMなど様々な流派がありますが、それらの良さそうな部分をNRIなりに咀嚼した上で、実プロジェクトに適用し、生産性や品質向上などの効果を検証する活動を行っています。具体的にはプロジェクト計画や管理はSCRUM、実際の開発はXPの考え方を取り入れるようにしています。
また、XP開発を支える各種ツールや製品についても評価しています。
研究結果・成果
実プロジェクトへの適用件数はまだまだ少いですが、生産性および品質の向上は実感できています。特にXPの要とも言えるTDD(Test Driven Development:テスト駆動型開発)によるテスト自動化(機械化)の効果は大きく、テスト効率化、省力化、そして品質向上に大きく寄与しています。
W/F開発とXP開発を定量的に比較することはなかなか難しいです。W/F開発は、様々な問題を抱えながらもプロジェクトの最初の時点で作る対象を確定させてしまいます。対するXP開発では、冒頭にも述べたように、途中で発生する変化要因に柔軟かつ迅速に対応していきます。従って、作る対象は確定できず、 W/Fで使っていたような生産性指標を適用することができません。
生産性よりも、この「変化への迅速な対応」のしやすさをXP開発の最大の利点として、実プロジェクト適用を推進していくことが重要と考えています。



