システムエンジニアは、曖昧な要件のままでは開発に着手できない。委託開発におけるアジャイル開発は、IT企業側のリスクが高い。解決には、イテレーションごとの「プロダクトバックログリスト」の調節が有効。

今回のポイント
  • 曖昧な要件のまま開発を始めても、対応策がなければプロジェクトは成功しない。

  • 要件の変更に対応するには、アジャイル開発のプラクティスを取り込むとよい。

  • 反復でプロダクトバックログリストを更新しながら開発する。

 本連載では、ウォーターフォール型の開発プロセスにアジャイル開発のプラクティスを部分的に組み込み、プロジェクトに潜む様々なムダを排除する「ハイブリッドアジャイル」を提案している。前回は、ユーザーの立場から要件定義フェーズにアジャイル開発のプラクティスを応用する方法を解説した。今回は、システムエンジニアの立場から、アジャイルのプラクティスを活用してユーザーの曖昧な要件に対応する方法を説明する。

曖昧な要件のまま進めても成功しない

 ユーザーから曖昧な要件で開発を受けると、システムエンジニアは見積もりができず、開発計画を立てられない。しかし、リリース時期が決まっている、という理由で、要件が曖昧なまま開発に着手してしまうケースがある。システムエンジニアは、できるだけ早く開発に着手したいからだ。

 このような場合、要件が確定していないからアジャイル開発を選択する、というのはとても危険だと言える。アジャイル開発は「ゆるい要件から要件を確定しながら開発する」または「要件を確定しづらい」場合に有効であり、曖昧な要件のまま開発できる手法ではないからだ。アジャイル開発をする際は、要件を確定する体制や時期、開発する機能の優先度付け、などをしっかり計画し、メドが立った状態になってから開発を始めるべきである。

 要件が確定していない状態で開発を進めてしまうと、要件を確定し、設計書が完成したところからプログラマに渡して開発してしまいがちだ。いわゆる五月雨式と呼ばれる開発手法だ。これは、既にプロジェクトとして失敗しているケースである。

 五月雨式は効率良く見えるが、ムダが多く発生してしまう(図1)。例えば、要件定義の担当者が作業に時間をかけると、設計者は待ち状態になる。設計者が時間をかけてしまうと、それを実装するプログラマは待機していなければならない。ほかにも、仕様の確認などで設計者から要件定義の担当者に割り込み作業も入るだろう。プログラマから設計者にも同様に割り込みが発生する。

図1●五月雨式では後工程に待ち時間が多く発生する
[画像のクリックで拡大表示]

反復型開発手法を理解する

 アジャイル開発も五月雨式ではないのか、と思う人はいるかもしれない。しかし、両者は全く別物と考えるべきだ。アジャイル開発は1~4週間単位のイテレーションごとに計画され、管理された状態で開発する。一方、五月雨式は成り行き任せのいわば無管理状態だからだ。

 ここで開発手法を整理しておく。アジャイルとスパイラルなどの他の反復開発手法の違いを理解すれば、五月雨式がどれにも当てはまらず、ムダが多いと分かるだろう。代表的な手法とその特徴を図2に挙げる。

図2●主なソフトウエア開発手法の比較
[画像のクリックで拡大表示]

 インクリメンタルとイテレーティブは、各反復の中ではウォーターフォールと同じく段階的に開発する手法だ。要件定義フェーズがあり、その後設計フェーズなどを経てテストフェーズに移る。両者の違いは、部分的に完成させていくか、機能を拡張しながら開発するかである。どちらも五月雨式とは違い、しっかりと要件定義フェーズを設けて要件を確定してから開発に入る。

 これらの手法とアジャイルの共通点は反復だけだ。その反復期間もアジャイルは1~4週間程度の短い期間なのに対し、他の反復開発手法は数カ月というのが一般的である。ただし、最近のアジャイルでは一定の反復期間でなくても構わないという考え方もある。大規模開発になれば、一定の期間を維持することよりもイテレーションの開発規模に合わせて期間を決める方が現実的だからだ。

 アジャイルはウォーターフォールほど工程が明確ではないが、ムダを省くためのプラクティスが考えられているのが特徴である。プラクティスには、チーム主体の体制や会議体などのマネジメント的なものと、テスト駆動開発(TDD、Test Driven Development)や継続的インテグレーション/継続的デリバリー(CI/CD、Continuous Integration/Continuous Delivery)といった技術的なものが含まれる。

 本連載で提案しているハイブリッドアジャイルは、ユーザーとシステムエンジニアの認識の食い違いを早期に発見したり、開発効率を向上させたりするために、ウォーターフォールの開発プロセスにアジャイルのプラクティスを取り入れた手法である。基本パターンは、基本設計の工程までとテスト工程以降をウォーターフォールで行い、詳細設計と製造に相当する工程をアジャイル開発する。

 この手法は、委託開発と相性がよい。ハイブリッドアジャイルでは、要件定義と基本設計を上流工程で行い、一度スコープを確定する。こうすることで、契約に多くの時間を費やしたり、成果物を曖昧な定義にしてしまったりするのを防げるからだ。

この先は有料会員の登録が必要です。「日経SYSTEMS」定期購読者もログインしてお読みいただけます。有料会員(月額プラン)は初月無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら