Saturday, July 18, 2009

Software Engineering: An Idea who's time has come and gone!

An interesting perspective from Tom DeMarco in IEEE Computer (via Reddit) in a 2-page article, where he questions if Software Engineering is past its prime.


The gist of the article is that software that transforms the world (he cites Wikipedia, Google Earth) were not delivered by a project team that was controled every inch of the way -- that is, they were not engineered as recommended in the text books. The whole article essentially kinda sorta states that Agile methods are fine (in a round about way). Tom is known as the "metrics guy", the "Software engineering guru" etc. -- so, this is quite a big statement for someone like him. Just look at the books Tom has authored.

Interestingly, the hardest part in software development has always been in the 'solution definition' -- that is defining the concept and abstract forms in sufficient detail to allow a group to be able to work together productively and build it. The programming and construction side is comparatively easier, mainly because given the right tools with discipline and focus we can actually get over this aspect.

Is software engineering dead? Tom is possibly right with respect to the management perspective. However, there have been many good ideas from this field that are still very relevant -- though most are still at software construction level. For instance, I still think it is a good idea to comment code (level of detail is determined by context), plan an iteration (with the full knowledge that we plan to prepare and synchronize the team, not to execute precisely against it), measure size and complexity (for feedback to allow reflection, not for control), modular architectures are still good, testing is still critical. Most importantly, the SE field provides a general organisation and scaffolding of various aspects to help us teach software development to the next generation.

-- rv