IEEE Software, July/August 2009, pp. 96, 95

old man thinking about the past

Software Engineering: An Idea Whose Time Has Come and Gone?

by Tom DeMarco

We’re now just past the 40th anniversary of the NATO Conference on Software Engineering in Garmisch, Germany, where the discipline of software engineering was first proposed. Because some of my early work became part of that new discipline, this seems like an appropriate moment for reassessment.

Read more ?

» Tom DeMarco's essay inspired several readers to send in letters to the editor. To foster discussion in the software engineering community, we offer them here.

Bookmark and Share

 Article comments

To post comments on Tom DeMarco's article, please log in using your IEEE Web account username and password. To add a comment, click "Post reply." Don't have an IEEE Web account? Get a free one here.

Dear Editor,

I would take issue for Capers Jones' reliance on Quality control in his last statement. My firm belief is that quality has to be built in the product - ie. engineered into. Over emphasis (reliance) on quality control as a means to completing the design after the build has caused any number of problems.

I have come across practices where in one instance rewards were increased (or penalties reduced) depending on number of defects found at the quality control stage against benchmarks. In another instance, the development shop were asked to find 10 defects for every defects found by the quality team.

While we may or may not agree on these specific methods, they do have the effect of putting responsibility where it belongs - in design and engineering, and not the support processes. After a few iterations of this, the development shop "got smart".

Improving the quality of design (often a victim to intellectual laziness) is arguably a better approach than to have to find a net fine enough to catch all bugs and spend an eternity fixing them. A good design anticipates eventualities and makes it easier to prove what works.

Likewise, if we cannot take good change control (meaning have a good process for) for granted, we shouldnt be in this business anyway. These are bread and butter issues if I may use the term, and pre-requisites to embarking on any enterprise in software development.

Apropos Bob McCann's note, if it is any consolation, the lack of what I like to call "shared goals" occurs in in house projects as well, though not perhaps, as much as when a large number of independent contractors are involved. Organisations that have a high "political index", to coin a phrase, seem to suffer from this more than others. It takes a significant amount of time and effort to convince each stakeholder how he/she benefits from the goal. Even then, there are no guarantees.

Having said that, organisations that rewards well, and spreads them relatively more equitably seem to do better. The Silicon Valley example probably underscores this the best.

Kannan Vijayaraghavan
Athreya Associates
Posted on 8/3/09 12:44 PM.
As so much other writing about software engineering, DeMarco's viewpoint is overly pessimistic - kind of a fin de siècle atmosphere. However, software engineering as currently practiced is not only about control (or if you like, failing control) but also about design, with underlying design sciences as studied by Herbert Simon (The Sciences of the Artificial) and others. Next to well-publicized disasters, there is a lot of good design out there in present software engineering practice. The really interesting phenomenon is the continuing gap between the writing about software engineering and the practice of software engineering.
Posted on 9/8/09 2:48 PM.

Subscribe to IEEE Software

IEEE Software magazine offers pioneering ideas, expert analyses, and thoughtful overviews for professional developers and managers who need to keep up with rapid technology change.

Current issue:
SE for Compliance



What else is new?

Software Engineering: An Idea Whose Time Has Come and Gone?
Certain principles long considered fundamental to software engineering are examined and found wanting.

Extracting World Knowledge from the Web
By automatically extracting information from the Web, we can scale up knowledge bases to much greater sizes than current collections of manually gathered and user-contributed knowledge.

How Much Multimedia Does a Modern Family Need?
This look at the multimedia lives of 21st-century families reveals that new technology isn't always necessary or helpful.

Agent Mining: The Synergy of Agents and Data Mining
A profound insight of bringing agents and data mining together has unveiled a tremendous potential for the synergy of the two technologies toward intelligent systems.

Certification: Who Dares?
Why is so much attention focused on IT certification? What kinds of certifications are available? How are the requirements changing?

Non-photorealistic Rendering: Unleashing the Artist's Imagination
Non-photorealistic rendering is an important future direction for computer graphics, but coherence continues to present a problem.

Trailblazing with Roadrunner
Learn about the changes occurring in computer system design, the rise of heterogeneous computing, and the effects of these changes on high-performance computing.

Related tutorials

Managing and Leading Software Projects
by Richard E. (Dick) Fairley
$89.95 Buy

Risk Management in Software Development: A Primer
Edited by Philippe Kruchten
$29 Buy

Introduction to Applying Software Metrics
Edited by Susan K. (Kathy) Land
$29 Buy

A Practical Metrics and Measurements Guide for Today's Software Project Manager
by Susan K. Land, William C. Hobart, and John W. Walz
$19 Buy

Computing Now