Software Project Metrics and Control: They Don’t Matter (Sometimes)

Soft­ware pro­ject met­rics are not as import­ant as we have been led to believe, and the field of soft­ware engin­eer­ing has evolved to such a state as to almost be almost… over.

This is accord­ing to the emin­ent soft­ware engin­eer Tom DeMarco who, look­ing back at his 1986 book on the sub­ject, Con­trolling Soft­ware Pro­jects: Man­age­ment, Meas­ure­ment, and Estim­ates, now believes that our focus on con­trol and met­rics is wrong, and we need to com­pletely reverse how we cre­ate and man­age soft­ware, if pos­sible (pdf).

The book’s most quoted line is its first sen­tence: “You can­’t con­trol what you can­’t meas­ure.” This line con­tains a real truth, but I’ve become increas­ingly uncom­fort­able with my use of it. Impli­cit in the quote (and indeed in the book’s title) is that con­trol is an import­ant aspect, maybe the most import­ant, of any soft­ware pro­ject. But it isn’t. Many pro­jects have pro­ceeded without much con­trol but man­aged to pro­duce won­der­ful products such as GoogleEarth or Wiki­pe­dia.

To under­stand con­trol’s real role, you need to dis­tin­guish between two drastic­ally dif­fer­ent kinds of pro­jects:

  • Pro­ject A will even­tu­ally cost about a mil­lion dol­lars and pro­duce value of around $1.1 mil­lion.
  • Pro­ject B will even­tu­ally cost about a mil­lion dol­lars and pro­duce value of more than $50 mil­lion.

What’s imme­di­ately appar­ent is that con­trol is really import­ant for Pro­ject A but almost not at all import­ant for Pro­ject B. This leads us to the odd con­clu­sion that strict con­trol is some­thing that mat­ters a lot on rel­at­ively use­less pro­jects and much less on use­ful pro­jects. It sug­gests that the more you focus on con­trol, the more likely you’re work­ing on a pro­ject that’s striv­ing to deliv­er some­thing of rel­at­ively minor value.

To my mind, the ques­tion that’s much more import­ant than how to con­trol a soft­ware pro­ject is, why on earth are we doing so many pro­jects that deliv­er such mar­gin­al value? […]

For the past 40 years […] we’ve tor­tured ourselves over our inab­il­ity to fin­ish a soft­ware pro­ject on time and on budget. […] This nev­er should have been the supreme goal. The more import­ant goal is trans­form­a­tion, cre­at­ing soft­ware that changes the world or that trans­forms a com­pany or how it does busi­ness.

via Cod­ing Hor­ror