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

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

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

■■「ツッコマレビリティ」とeXtreme Feedback!■■

さてここらで、フィードバックという概念について確認をしておこう。

 フィードバックというのは、例えば次のような仕組みぢゃ。

フィードバックの概念図
 

 

システムからの出力を測定し(測定値)、それとあるべき姿(理想値)からの「ズレ」を次の入力に反映してやるわけぢゃ。

 ここで、適切なフィードバックにとって重要なことは、次の2つぢゃ。

フィードバックにとって重要なこと:

  1. 「ズレ」がはっきりと見えるように!
  2. フィードバックは、多く、素早く!

 繰り返しになるが、アジャイルではフィードバックをとても重視する。「いかにフィードバックにコミットするか」がアジャイル成功の鍵といっても過言ではない。そこで、

「いかにフィードバックを受けやすくしておくか」

が重要なんぢゃ。

 ちなみにわしは、このフィードバックの受けやすさのことを、

「ツッコマレビリティ」

と呼んでおる。ツッコマレビリティを常に高くしておく。それが肝要ぢゃ。

 そのためのポイントは、まず「見える化」ぢゃ。

 例えば、要求仕様が見えるようにすること。設計が見えるようにすること。実装が見えるようにすること。そして、プロジェクトが見えるようにすること。

 仕様書でいえば、「詳細な仕様書」を棚にしまっておくのもよいんぢゃが、それよりも「しょっちゅう実際に現状のプログラムを動かして見せること」の方がよいのぢゃ。

 プロジェクトの進ちょくでいえば、例えば、壁に貼り出す。いつでも嫌でも目に付くように(=レビューできるように)して、フィードバックを受けやすくしておく。例えば、壁を使って以下のようにレビューを行う。図のように付せんをそばに置いておくことでさらにツッコマレビリティを上げることもできよう。

壁レビューの例1 ― ソフトウェアかんばん*2
付せんをそばに置いておくことでフィードバックを受けやすくできる。
*2 トヨタ生産方式の「見える化」のためのツールである「かんばん」をソフトウェア開発に応用したもの。ホワイトボードなどに、To-Do、Doing、Doneの3つのレーンを書き、そこにタスクを書いた付せん紙を貼り付ける。作業が進むにつれ、タスクを書いた付せん紙がTo-Do → Doing → Doneと移動していくことになる。
 

 

また、次のように、それまでの活動を振り返るためのツールを使う。

壁レビューの例2 ― KPT法*3
KPT法のツールを使ってそれまでの活動を振り返る。
*3 KPT法とは、Keep(続けていきたいこと)、Problem(問題があったこと)、Try(次にやりたいこと)をみんなで付せん紙に書いて、それぞれの領域に貼ること。それまでの活動を振り返るために用いられる。
 

 

これらのツールは、プロジェクトへのツッコミを盛んにするための触媒のような役割を果たすのぢゃ。

フィードバックを促進するのに役立つツールのいろいろ:
  1. コンパイラ
    例.C# コンパイラ(csc.exe)、VB.NET コンパイラ(vbc.exe)など。
  2. コード分析
    例.Visual Studio 2005 Team System のコード分析ツール(動的分析、静的分析、プロファイラ)、FxCop、Simian など。
  3. 単体テスト
    例.Visual Studio 2005 Team System の単体テスト、NUnit、TestDriven.NET など。
  4. そのほかテスト関連
    例.Visual Studio 2005 Team System のテスト関連の各種機能(Web テスト、ロード・テスト、テスト管理、カバレッジ)、NCover、NCoverExplorer
  5. 継続的インテグレーション・ツール
    例.CruiseControl.NET
  6. ソフトウェアかんばん
  7. KPT法
  8. バーンダウン・チャート*4
などなど……

上に挙げたツールに関しては、姉妹連載である『NAgileで始める実践アジャイル開発』でも一部が解説されている。ぜひ参考にしていただきたい。

 
*4 開発作業全体の個数と、終了した作業(=テストで終了が確認された作業)の個数を、折れ線グラフにしたもの。進ちょくの「見える化」のために用いられる。
 

 

極端なまでにレビューをすること(eXtreme Review)。それが素早くフィードバックがもらえるようにする工夫ぢゃ。

 このフィードバック・ループを図で表すと次のような感じぢゃ。

アジャイルのフィードバック・ループ
 

 

この図について解説してみよう。まず、次のようなことがいえよう。

Problem(問題) = Vision(あるべき姿) − Actualities(現状)

 そして、このProblem(問題)にSolution(解)を与えるためにPractice(実践)を行う。それから、これらのすべてを可視化(=「見える化」)してViewを提供するようにする。これが、eXtreme Reviewなのぢゃ。

 こうしてツッコマレビリティを高く保つことで、eXtremeなフィードバックが得られるようになる。それにより、次のPractice(実践)を改良でき、より的確なSolution(解)に近づいていけるというわけぢゃ。

 ウォーターフォール式でよく起こるように、

「完成間近になって『ああしてくれ』『こうしてくれ』といわれてしまう」

なんて羽目に陥らんようにしたいものぢゃな。

 間違えたら、即座に「んなアホな」「そんなわけないやろ」とツッコんでもらえるようにする。素早く多くレビューして、素早く多くフィードバックぢゃ。このループをリズムよく速く回すことなんぢゃ。

 お前たちにいっておくぞ。

「遅いことは猫でもする」

 分かるかの?

そんなことわざあったっけ?

【まとめ】
 

 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 記事ランキング

本日 月間