Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

Channels ▼

Mark Nelson

Dr. Dobb's Bloggers

Thanks, Tom.

July 27, 2009

My good friend Steve Colwell sent me a link to a Viewpoints column by Tom DeMarco from the July/August 2009 issue of IEEE Software magazine. Tom DeMarco is of course an industry legend for books such as Peopleware, and is one of the founding fathers of the so-called-discipline of Software Engineering. In his column, Software Engineering: An Idea Whose Time Has Come and Gone?, he basically throws in the towel on much that management has held sacred for the past 40 years.

My Bad

You would think that a guy who wrote a book titled Controlling Software Projects: Management, Measurement, and Estimation would be a hard-core process man, and for years DeMarco has been just that. However, in this column he reflects on the advice he gave back in 1982:

In my reflective mood, I'm wondering, was its advice correct at the time, is it still relevant, and do I still believe that metrics are a must for any successful software development effort? My answers are no, no, and no.

DeMarco then goes on to basically advocate agile processes, while pulling the punch a bit:

So, how do you manage a project without controlling it? Well, you manage the people and control the time and money. You say to your team leads, for example, "I have a finish date in mind, and I'm not even going to share it with you. When I come in one day and tell you the project will end in one week, you have to be ready to package up and deliver what you've got as the final product. Your job is to go about the project incrementally, adding pieces to the whole in the order of their relative value, and doing integration and documentation and acceptance testing incrementally as you go."

This might sound like an agile methods prescription, but I'm too far away today from the actual building of software to recommend at the methods level. Rather, I'm advocating a management approach, one that might well steer the team toward agile methods, at least toward the incremental aspects of the agile school.

An Apology Might Be Nice

The guys who invented Software Engineering around the beginning of my career have been responsible for untold man-years of misery. Travesties such as BDUF, the waterfall method, software metrics, KLOC, etc., have never helped much delivering software on time, but we kept hearing that if we just followed the rules it would all work out just fine.

As far as I can tell, most of what we got from these methodologies was guilt, castigation, and that uneasy sense that everything we were doing was wrong.

Now one of the high priests comes along after all this time and says "Never mind."  This leaves me a bit miffed. I wouldn't mind having all those hours of my life back.

Note: the column mentioned here is for sale by the IEEE for $19. I read it from an unobstructed URL which is apparently generated by a "Share this article" link on the site. Since I didn't agree to any licensing arrangement or other restriction on my use of that URL, I'd be happy to send you a copy if you just email me.

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.