SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

グラス片手にアジャイル開発

グラス片手にアジャイル開発 第3回
- アジャイル開発における計画と運営サイクル

  • X ポスト
  • このエントリーをはてなブックマークに追加

ボトムアップの計画とトップダウンの計画

 伝統的なワークブレイクダウンストラクチャー(WBS)によるタスクの分割と、ガントチャートによるスケジューリングと依存性の把握、これらのウォーターフォール開発の計画はトップダウンです。一方、プロダクトバックログを中心としてマイルストーンやスプリントの最初に必要な分だけ計画を詳細化し、その詳細計画やスプリントの実施結果をプロダクトバックログにフィードバックさせていくやり方はボトムアップです。

 また、ウォーターフォール開発において管理者によるスケジューリングで開発者を管理していくのはトップダウン。それに対して、アジャイル開発において開発者(現場)主導でバックログを作成し、現場からフィードバックを返すのはボトムアップです。

 アジャイル開発ではプロダクトバックログは実装すべき機能を中心に記述しますが、これに非機能的タスクを織りまぜると、さらに複雑になります。そのため、スプリント内の開発はスムーズに流れますが、全体を掴むことは困難です。

 そのほか、大規模な開発を行なう場合、開発チーム外とのやり取りが多い場合には、アジャイル開発のボトムアップ的な計画だけでは不十分です。表2にトップダウン計画とボトムアップ計画の違いを示します。これを参考に両手法をうまく取り入れていくのが良いでしょう。

表2:ボトムアップ計画とトップダウン計画
  トップダウン計画 ボトムアップ計画
ツール ワークブレイクダウンストラクチャー(WBS)、ガントチャートなど (ストーリー、タスクなどの)バックログ
構造 概要-詳細の階層関係、およびタスク間の依存関係を持つ 単純なリストで表現する。工数/期限/重要性などの属性を適宜付与する
メリット
  • 全体感を掴むことができる
  • もれなくタスクを洗い出すことは容易
構造が単純でメンテナンスしやすい
デメリット
  • 計画修正に手間がかかる
  • 階層や依存関係が複雑になりがち
全体をつかみにくい
求めるべき役割 概要計画を立てる際(特に開発チーム外との調整が必要な場合)に利用する 開発における日々の計画や進捗把握のために用いる

 Steve McConnellの『ソフトウェアの見積り』(日経BPソフトプレス刊)にもあるように、計画手法を併用することは決して悪いことではありません。しかし、異なる計画手法の間で整合性を取ろうとすると、途端に厄介なものとなります。

 それぞれの計画手法の良いところを積極的に取り入れて明確な計画を立てることに終始し、無理に整合性を取らないようにしましょう。とは言うものの、ディーバではこれについては未だに試行錯誤が続いており、計画における最も難しい作業であると認識しています。

まめ知識「フラクタル」

 幾何学の用語で「図形の部分と全体が自己相似になっているもの」であり、自然界でも雪の結晶や樹木の枝分かれの様などの例が挙げられます。

 アジャイル開発では計画からリリースまでを短いサイクルで回しますが、そのサイクルがデイリースクラム単位、スプリント単位、マイルストーン単位、リリース単位と粒度が異なっても相似的に見えることから、フラクタルに例えられることがあります。

フラクタルの例:コッホ曲線
フラクタルの例:コッホ曲線

アジャイル開発の計画にも「銀の弾」はない

 ここまでひとくくりに計画と呼んできましたが、計画と見積もりは本来別のものです。見積もりは客観的であるべきものであり、正確な見通しを示すべきものです。一方、計画とは意志の入り込む領域です。こうしたい/こうあるべきというシステムの姿がベースとなって計画が作成されます。

 アジャイル開発においては、機能に優先順位を付けてリスト化しますが、最終的にどこまで組み込めるかは事前に「精密」には分からないということを正確に把握します。すべてが見えないときに一般的に人は“楽観的”に見積もってしまう傾向があるようです。

 アジャイル開発も「銀の弾」(※注3)ではありません。ソフトウェア開発本来の不明瞭さを認識し、スコープは可能な限り柔軟に保ち、プロジェクトの早い段階では安請け合いをして優先順位の低い機能までコミットしてしまうことを避け、慎重にコミットしていきましょう。

 イテラティブに開発し定期的に振り返りを行なっていくこと、これは絶え間ない開発プロセスの改善であると言えます。特に技術的な領域から離れるほど各社各様、各人各様になり、決まりきったプラクティスがなかなか通用しないのかもしれません。

 短絡的な解を求めすぎず、振り返りとそれによる気づきの中で少しずつ自分たちにしっくりくる方法を身につけていければ良いでしょう。

※注3

 狼男や悪魔を撃退できる弾丸。転じて物事に対する決め手や特効薬のこと。ソフトウェア開発ではFrederick Brooksが書いた書籍『人月の神話』(ピアソンエデュケーション刊)で“銀の弾などない”と述べられ、その後よく使われるようになった言葉。

次のページ
おわりに

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
グラス片手にアジャイル開発連載記事一覧

もっと読む

この記事の著者

株式会社ディーバ 小林 達(コバヤシ サトシ)

2004年に株式会社ディーバ入社。連結会計システム「DivaSystem」の大規模プロジェクトに参加した後、ビジネスインテリジェンス分野を中心とした複数の製品/受託開発プロジェクトを技術面で主導。オフショア開発でのアジャイル開発経験などを経て、現在はディーバアメリカを含む多国籍メンバーと共に、次世代...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/5465 2010/10/18 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング