ソフトウェア・エンジニアリングにおける「計測と制御」

InfoQにて、ソフトウェア・エンジニアリングにおける「計測と制御」を振り返る、トム・デマルコの記事が紹介されていました。

InfoQ : デマルコ、ソフトウエアエンジニアリングの40年間を振り返る

※上記では、「メトリクス」が「マトリックス」と誤訳されている点に注意


元になっているのは、IEEEソフトウエア誌の記事であり、PDFとして公開されています。
『Software Engineering: An Idea Whose Time Has Come and Gone?』


この内容は、衝撃的。
「計測できないものは制御できない」というのは、デマルコの有名な格言であり、ソフトウェアエンジニアリングに、多大な影響を与えてきたモノですが、上記の記事では、それを覆し、「計測と制御」が実際の開発を妨げているのではないか、という考えが書かれています。


デマルコは、「計測と制御」よりも重要なモノとして、「価値」について言及しています。

the more you focus on control, the more likely you're working on a project that's striving to deliver something of relatively minor value. To my mind, the question that's much more important than how to control a software project is, why on earth are we doing so many projects that deliver such marginal value?


... 制御することに着目すればするほど、相対的に小さな価値を提供するプロジェクトで一生懸命働いているような気がする。 私としては、ソフトウエア開発プロジェクトを制御する方法よりも大きな問題は、一体なぜプロジェクトの多くが、とるに足らない価値しか生み出せないのか、ということだ。

The more important goal is transformation, creating software that changes the world or that transforms a company or how it does business.


より重要なゴールは変化である。世界を変える、会社を変える、あるいは、ビジネスを実行するソフトウェアを作成することである。

上記には、非常に共感します。
本来、当たり前のことなのですが、実際には重要視されていないことが多いのでは?
単にコードを作成することがソフトウェア開発なのではなく、そのソフトウェアが何を達成するのか、何を提供するのかが重要でしょう。


ただ、私自身は、「計測できないものは制御できない」という考えは、間違ってはいないと考えています。
ソフトウェア開発における「計測」は、健康診断であり、悪いところを発見してくれます。「制御」は、治療であり、放置すると最悪死に繋がってしまう問題を解決します。

しかし、開発の現場では(正確には、現場を直接見ないマネージャによって)、それが過大に扱われ、本来開発すべきソフトウェア自体よりも、計測データや分析レポートのみが重要視されてしまうケースは、実際に多いように感じます。

それがソフトウェア・エンジニアリングにおける間違いであり、デマルコの言う、開発の妨げとなるモノなのではないでしょうか?