« Silverlight 3 SDK リリース、 そして、 Web ブラウザー外実行のサポート | トップページ | [NEWS] Microsoft が Linux コミュニティにソースコードを提供 »

2009年7月19日 (日)

[開発プロセス] 測定できなくても制御できる!? by DeMarco

ソフトウェア工学では ( …に限りませんが )、 プロセスの何かを制御したいならば、 まずその何かを計測しなければならない、 と教えています。
Tom DeMarco が 1982年に書いた "CONTROLLING SOFTWARE PROJECTS: MANAGEMENT, MEASUREMENT AND ESTIMATION" ( ソフトウェア・プロジェクトの制御: マネージメント、計測、見積り ) においても、 計測しなければ制御 (マネージメント) できない、 と強く主張していました。
※ この本の翻訳書のタイトルが 「品質と生産性を重視したソフトウェア開発プロジェクト技法 ― 見積り・設計・テストの効果的な構造化」 …どこから 「構造化」 が出てきたものやら (--;

An Agile Way:
「測定できないものは制御できない」は誤りだった。-- by Tom Demarco
2009/07/19

ソフトウェア工学の祖の一人である、トム・デマルコが、最近IEEE Software 誌に、過去のソフトウェア・メトリクス賛美を悔い改める記事を書いている。

では、計測しないで制御する、という方法があるというのだろうか?

平鍋氏のこのエントリーのタイトルや上に引用した部分を読むと、 デマルコの記事には、 測定しなくても開発プロセスを制御できる方法が書かれているように思えてしまいます。
しかし、 デマルコの記事に書かれていることは、 平鍋氏が書かれているように、 次のようなことです。

2つの種類のプロジェクトを例にし、

* Project A: 100万ドルのコストを使って 110 万ドルの価値を作る。
* Project B: 100万ドルのコストを使って 5,000 万ドル以上の価値を作る。

「計測と制御」 は、 Project A の世界では有効だが、 Project B の世界ではほとんど意味をなさない、 と指摘している。 これは、

ソフトウェア開発という活動には 「計測と制御」 よりもっと大切なことが多く含まれており、 その中では、 「工学」 の概念は 「ポイントを外している」

ということだ。

「計測しなくても制御できる」 とか 「計測と制御は無用だ」 とか言っているのではありません。
DeMarco 自身が、 問題の記事 "Software Engineering: An Idea Whose Time Has Come and Gone?" で、 次のように書いています。

I still believe it makes excellent sense to engineer software. But that isn’t exactly what software engineering has come to mean.

[試訳] "それ ( 計測と制御 ) は、 ソフトウェアをエンジニアリングするために、 すばらしい意味になると、 私は今でも信じています。 しかし、 ソフトウェア工学がまさにそれを意味するようになったということではありません。"

やはり、 計測できないものは制御できないのです。 計測と制御は、 今でも意義はあるのです。 しかし、 とくに Project B のような場合には、 開発プロセスを計測したり制御したりすることよりも、 もっと大切な何かがあるだろう、 ということですね。

|

« Silverlight 3 SDK リリース、 そして、 Web ブラウザー外実行のサポート | トップページ | [NEWS] Microsoft が Linux コミュニティにソースコードを提供 »

プログラミング」カテゴリの記事

-プログラミング ( 開発プロセス )」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/209349/45677937

この記事へのトラックバック一覧です: [開発プロセス] 測定できなくても制御できる!? by DeMarco:

« Silverlight 3 SDK リリース、 そして、 Web ブラウザー外実行のサポート | トップページ | [NEWS] Microsoft が Linux コミュニティにソースコードを提供 »