連載
開発をもっと楽にするNAgileの基本思想

第3回 アジャイル開発のキモはフィードバック!

福井コンピュータ株式会社 小島 富治雄(Microsoft MVP for Visual Developer - Visual C# Jul. 2005 - Jun. 2007)
2006/09/27

■■女祖泥寺めそどろじ ■■

「師匠の師匠」つまり私の「大師匠」には、前は東京でお会いしたんだけど、何でも、この近くの女祖泥寺っていうお寺に住んでるらしいんだ。

え!? 女祖泥寺ですか? 滝さんの「師匠の師匠」ってまさか……。

あ! あった。ここみたいだよ。

 こんにちはー。原 眞鎮はらまあちんさん、いらっしゃいますかー?

どーれー……。おおお。こんにちは。待っとったぞ、滝ちゃん。それから、なんぢゃ、健二も一緒か。

こんにちは。じっちゃん……。久しぶりだね。

?! えええええ?! なんで? 2人は知り合いなの?

ええ、まあ。僕が生まれたときからの知り合い。というか、僕の祖父なんですけど。母方の。

え。そうなの? なんという偶然。
   

ほう。2人は顔見知りなんか……。こりゃ珍しいことぢゃ。ところで……、今回はアジャイル開発の話を聞きに来たんだな。

   

はい。お願いします! 健二君もぜひ一緒にお願いします! だよね? 健二君。

   

え? いや。僕は……、さっきもいったとおり、アジャイルで苦労した亡き母のことで、父とアジャイルを恨んでいると……。

   

こりゃ健二! まーだそんなことをいっておるのか。亡き娘「まち」の夫のことをいうのもなんだが、お前の父親は、決してそんな男ではない。お前は誤解しておるのだ……。

 健二。ではお前もわしの話を聞くがよい。

 まずアジャイルを学ぶためには、これぢゃ。この本を熟読することぢゃ。




原 眞鎮 著
『アジャイルの道は一日にしてならずぢゃ』
※注意 この本は実在しません。
   
いきなりじっちゃんの本かよ!
   

さまぁ〜ず・三村のようなフィードバック……。腕を上げたようぢゃな、健二。

 ……ところでお前たち、そこの壁に貼ってあるアジャイルの重要な「5つの価値」*1については知っておるか?


*1 NAgileで始める実践アジャイル開発 第2回 ソフトウェア開発をシンプルにする考え方のコツ ―― 開発をもっと楽にするNAgileの基本思想 ――を参照してね by 滝)
   

初めにいっておくが、アジャイルのキモは、この中でも特に「フィードバック」なんぢゃ。だから、今日はフィードバックについて話そう。「N*」(エヌ・アスタ)になぞらえて、これを「NFeedback」(エヌ・フィードバック)と呼ぶことにでもしとこうかの。

■■ウォーターフォール型開発におけるフィードバック■■

アジャイルでのフィードバックを語るに当たって、まずはウォーターフォール型開発における問題点を挙げておこうか。

 ウォーターフォール型開発では、要求仕様が固まってから設計、設計が固まってから実装、実装が終わってからテスト、という具合に上流工程から下流工程へと作業が流れていく。これは知っておるぢゃろ?

 この場合の大きな問題は、最後のテスト工程の時点に来るまで、要求仕様や設計の間違いに気付かないことぢゃ。テストの段階で動くものを検証してみて初めて修正が必要なことが判明する。すると、ここで大きな手戻りが発生してしまう。

 開発の終盤に至るまで、間違いに気付く仕組みがないのぢゃ。例えば、間違った部分の要求仕様があってもそのまま設計、実装されることになる。テスト工程で要求仕様や設計、実装に対して一気にフィードバックが発生する。

ウォーターフォール型開発におけるフィードバック

 そして、この「早期に間違いに気付く仕組みがない」というのが、この方式の決定的に駄目なところなんぢゃ。一般的に次の式のようなことがいえる。

間違いによるダメージの大きさ = 間違いの重大さ × 間違いの滞在時間

 このため、いかに間違いに早く気付けるかが重要ぢゃ。そのためにはフィードバックを受けられるようにすることが大切なんぢゃ。

 分かるかの?

 

 

うーん……。まあ、そこは何となく……。
 

 

……ところで、少しここで補足しておきたいことがある。先に、ウォーターフォール型開発にはフィードバックの仕組みがないのが問題だといった。そのことに関してぢゃ。わしの名著『アジャイルの道は一日にしてならずぢゃ』から引用してみよう。

コラム:
「ウォーターフォール・モデルは、誤解された開発プロセス?」

 ウォーターフォール・モデルは、システムを開発するモデルとしては最も古典的なモデルだ。滝が上から下へと流れ落ちるように開発していくことからウォーターフォール・モデルと呼ばれている。上流工程から下流工程に流れ、上流に戻ることのないモデルとして有名だ。

 ところが、これは誤解で正しくは、ウォーターフォール・モデルには下流工程の結果を上流にフィードバックする工程がある、という人もいるようだ。その根拠としては、ウォーターフォールの元となった論文が挙げられることが多い。

 「ウォーターフォール・モデルの原論文」とされているのは、Winston W. Royceによる1970年の“Managing the Development of Large Software Systems”という論文だ。実は、この論文で提案されたもともとの開発モデルでは、「フィードバック・ループ」が用意され上流工程を見直すことが推奨されていたのだ。

 しかし、これをもって「フィードバック・ループを持つものが、もともとの正しいウォーターフォール・モデルであって、現在のウォーターフォール・モデルは誤解された姿」と主張するのは無理があるだろう。

 この論文自体ではこの開発モデルをウォーターフォール・モデルとは呼んでいない。Royceの方法から「フィードバック・ループ」が欠落したものが世界に広まり、それがウォーターフォール・モデルと呼ばれるようになったものだと思われる。従って、ウォーターフォール・モデルと呼ばれているものは、その名のとおり、手戻りを許さない逐次開発型のことだとしても差し支えないだろう。

 

 INDEX
  開発をもっと楽にするNAgileの基本思想
  第3回 アジャイル開発のキモはフィードバック!
    1.団子屋にてアジャイルを語る滝
  2.女祖泥寺(めそどろじ)
    3.設計と実装に対するフィードバック
    4.「ツッコマレビリティ」とeXtreme Feedback!
    5.重要なのはフィードバックを受けようとする態度
 
インデックス・ページヘ  「開発をもっと楽にするNAgileの基本思想」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間