インクリメンタル開発のメンタル面の効用

 私はソフトウェアの開発においては、インクリメンタルに進めることを重視しています。インクリメンタル開発の重要性については多くの方が既に指摘しています。曰く、

  • プロジェクトを部分に分けることによりリスク管理がしやすくなる
  • 同じくスケジュール管理がしやすくなる。
  • 設計の妥当性を早期に確認でき、アーキテクチャ変更の見通しが立てやすい

などなど。
 いずれも妥当な意見だと思いますが、メンタルな要件も上記と同じくらい重要ではないかと考えています。つまり、インクリメンタル開発では具体的な成果を小出しに出して評価していきますが、これにより開発意欲が湧き、維持するという側面が重要だと考えています。

 その説明のために仕事における実例は紹介できませんので、その代わりに、私が手がけた「最初のインクリメンタル開発」の事例を紹介することにしましょう。

 私が小学校5年生の時でした。私の父がオートバイの大きなプラモデルの箱を持って帰ってきました。父によると、それは近くの大学生が購入しただが、彼は完成を断念した、それをもらってきたというのです。
 そのプラモデルは非常に精密なものでした。説明書を見ると、チェーンを組み立てるところから始まっていました。プラモデルの元のオーナーは、そのチェーンを数ピース組み立てたところで早くも断念したことが分かりました。
 私はすぐに作成に着手せずに、まずは説明書全体を読んで見ました。すると、このプラモデルはオートバイ全体として完成させるだけではく、エンジンのみを飾ることもできるようになっていることが分かりました。
 私は考えました。オートバイ全体を完成させるとなると、何せ大学生がチャレンジして挫折したくらいものであるから、自分がやってもそう簡単にはできないだろう。まずはエンジンのみを完成させてみよう、と。

 オートバイのエンジン自体も複雑なものでしたが、数日掛けて完成させることが出来ました。私は喜んで、完成したエンジンをしばらく部屋に飾っていました。エンジンを眺めているうちに、オートバイ全体を完成させる意欲が沸いてくるのを感じましたので、今度はオートバイ全体にチャレンジ、完成させることができました。しかし、懸案のチェーンについては、「飾り物のオートバイにチェーンがなくても大きな問題ではあるまい」と割り切って、最後までチェーンは作りませんでした。

 この逸話(実話です)から言えることは、

  • プロジェクトをインクリメンタルに進め、具体的な中間成果(この場合はエンジン)を出すことにより、開発意欲を維持し、増幅させることが出来た
  • パイロットプロジェクトとしてのエンジン作成により、工数の見積もりが可能となり、完成までの目処をかなりの精度で知ることが出来た。それにより、「先の見えないプロジェクト」に陥ることが防げた
  • 不用・不急で工数を要する機能(この場合はチェーン)を削除することにより、効率的な開発が行えた。

だと思います。
 大きな開発を進める上で、開発者のモチベーション維持は極めて重要だと思います。それは、上記の逸話からもお分かりいただけるのではないでしょうか。

目次
Last update: '2001年04月24日