Thursday, July 05, 2007

Is Software Development Engineering?

I've heard the arguments before - usually arguments against treating software development as engineering.

I found this post thought provoking and informative:

http://forums.construx.com/blogs/stevemcc/archive/2007/06/28/software-engineering-ignorance-part-ii.aspx

Some interesting things from this article include:

  • The information available in bridge engineering is often as unknown as in software development
    • example:  when the Brooklyn Bridge was defined the properties of steel cables weren't well understood so a safety factor of four was used
      • Vince Porcelli points out that the cables were manufactured right down the road in Trenton, NJ
  • Differences in developer productivity also exist in engineering disciplines as well as all professions
    • example: the 80/20 rule (20% do all the work) does apply to Software Development, but also to football quarterbacks!

Engineering isn't about aligning and designing perfect information.  Engineering is about defining existing information, and planning for variation.  To me its very important to treat software development as engineering in order to plan for the variation in projects.

Only when there are multiple projects of extremely high level of consistency should we move from an engineering paradigm to a manufacturing paradigm.

1 comment:

Anonymous said...

Yes, definitely Software Development is Engineering. I agree with you totally. Though you do not build anything physical you do build a project/application , so it is engineering.

Uma