Home

Whither Software Engineering

2009/11/26

The July 2009 issue of the IEEE/Computer magazine in its “32 and 16 Years Ago” section remembers that 16 years ago:

Software Engineering (p. 68) “The IEEE Computer Society Board of Governors has approved a motion to establish an ad hoc committee to serve as a steering group for evaluation, planning, coordination, and action related to establishing software engineering as a profession. The action came during the board’s May 21 meeting in Baltimore, Maryland, in conjunction with the International Conference on Software Engineering.”

In the same issue Neville Holmes writes:

“Now software engineering aims to be a branch of engineering, but is finding it difficult to be accepted as such. The problem is that other branches sensibly use the skills and talents of technicians to ensure the success of their professional work. Software engineering doesn’t; it won’t let go of programming”

It took a lot of people and effort to design programming languages and models (procedural, functional, etc) that tried to define how people should practice programming. It took only two pieces of software to make anyone think that is a quality programmer: Access and Visual Basic. So Holmes is right: Let go of programming; it is a lost cause.

After reading one of my posts, John Allen (author of “Anatomy of Lisp“) sent me his unpublished manuscript “Wither Software Engineering” [pdf] and corresponding presentation entitled “More Ballast!” which also deal with the subject of whether Software Engineering is actually a branch of Engineering. You can freely download the pdf slides and audio of an older version of the presentation (Title: History, Mystery and Ballast). In them Allen deals with the transition of traditional Engineering from an experience-based craft to a science-based discipline. Much of the historical data he uses come from “Engineering education in Europe and the USA, 1750-1930“. I have also read “Education, technology, and industrial performance in Europe, 1850-1939” (also translated in Greek) on the subject.

Basically Engineering training followed the path of:

  • Apprenticeship for a long period of time under the supervision of an Engineer
  • Study (and get certified for) the equipment of a specific manufacturer paying a considerable amound of money, and
  • University studies

Does this ring a bell regarding today’s IT arena? It is exactly for this reason that Allen was motivated. Mathematics and Physics transformed traditional Engineering. Can this be done with computation and mathematical logic? His presentation closes with:

It is this kind of education, not Java vocational training, that will bring McCarthy‘s 40+ year old quote to life:

“It is reasonable to hope that the relationship between computation and mathematical logic will be as fruitful in the next century as that between analysis and physics in the past. The development of this relationship demands a concern for both applications and for mathematical elegance.”

At least for programmers we are not there yet. The link between their work and mathematical logic is not obvious for all.

In the closing discussion of HDMS 2009 there was a debate whether “their stuff” could be considered as a branch of Engineering, regardless of liability issues. Alex Labrinidis said “Give us 2000 years to perfect bridge building and then come back asking for liability”. Labrinidis is wrong. Hammurabi solved the issue of Engineering liability back in 1790 BC:

If a builder builds a house for someone, and does not construct it properly, and the house which he built falls in and kills its owner, then the builder shall be put to death.

After the discussion ended Panos Vassiliadis pointed to me Peter J. Denning‘s “Is Software Engineering Engineering?” article which concludes:

“We have not arrived at that point in software engineering practice where we can satisfy all the engineering criteria described in this column. We still need more effective tools, better software engineering education, and wider adoption of the most effective practices. Even more, we need to encourage system thinking that embraces hardware and user environment as well as software.

By understanding the fundamental ideas that link all engineering disciplines, we can recognize how those ideas can contribute to better software production. This will help us construct the engineering reference discipline that Glass tells us is missing from our profession. Let us put this controversy to rest.”

Bertrand Meyer adds that the one sure way to advance software engineering is to “pass a law that requires extensive professional analysis of any large software failure”. Meyer is not alone. “Where are the dead bodies?” asks Derek M. Jones who also writes: “The lack of dead bodies attributed to a software root cause suggests that it is very still early days for the field of high integrity software development.”

There you have it: No dead bodies, no Engineering. Hammurabi knew that long before Engineers did.

You may now want to read “Cargo-cult Engineering” and “It’s not Engineering, Jim“.

#include <std/disclaimer.h>

Advertisements

4 Responses to “Whither Software Engineering”


  1. […] This post was mentioned on Twitter by ajlopez, Yiorgos Adamopoulos. Yiorgos Adamopoulos said: Whither Software Engineering http://ff.im/-c2ucl […]

  2. panoskrt Says:

    Very good post and interesting subject. I’ve read an interesting article related to the topic a couple of years ago -> http://www.bcs.org/server.php?show=conWebDoc.9662 I found it very interesting even that my mathematical background is not at the level is should be and I haven’t had any mathematics *at all* during my degree. Because of that, having seen how some things are taught, it makes you think that it really matters how you should get something working *right*, than just working. It is the example with bridges, you build a bridge, you want it to work on earthquakes, on strong winds, under extreme conditions etc. That’s engineering, and software needs to follow the same principles.


  3. Social comments and analytics for this post…

    This post was mentioned on Twitter by hakmem: Whither Software Engineering http://ff.im/-c2ucl


  4. […] At the center of the discussion seems to be that the proclamation of equality between a Diploma of Engineering and an M.Sc. is a manipulative scheme by TEE to protect the professional interests of its own members. While I will admit ignorance about the fine motives and policy of TEE and the Polytechnic schools this is not the case. The Diploma in Engineering is has been a Greek invention, it’s a common practice across numerous countries in Europe who have adopted a single 5-year studies cycle for advanced fields. Quoting wikipedia: Diplom (from Greek Δίπλωμα diploma) is an academic degree in some European countries including Germany, Austria, Switzerland, Estonia, Croatia, Serbia, Ukraine, Belarus, Greece, Hungary and Finland (however, only for engineers). It can be compared to Master’s degrees in other countries. … The Diplom is a prerequisite for preparing a doctorate (Doktorarbeit). It is usually accepted as admission into doctorate programs in other countries having an educational agreement with Germany, and in the European Union, it is generally accepted as the equivalent of a Master’s Degree. … In Greece, a Diploma is a 5-year (10-semester) (Diplom Uni) (300E.C.T.S – I.S.C.E.D. 5A) degree, formatted similarly to the German Diplom, awarded to students of the Greek Polytechnic schools, such as the National Technical University of Athens. … Diplomas are considered equivalent to Masters and allow the holder to sit in the Technical Chamber of Greece exams without any prerequisite. It also allows the engineer to be considered for Doctorate studies, without any additional classes being taken. … The traditional Austrian equivalent to the Master’s degree is the Diplomstudium, leading to the title Diplom-Ingenieur (female title: Diplom-Ingenieurin) in engineering or Magister (female: Magistra) in almost every other discipline. This is a first degree after 4–6 years of study. … In Belgium, possessing a Master’s degree means that you have completed a higher education (usually university or college) programme of 4 or 5 years. Before the Bologna process most some programmes required 5 years of study. An example in business/management was the 5-year programme of “Ingénieur de Gestion” (French) (English: “Commercial Engineer”) with an important amount of mathematics and sciences, and which corresponds to a M.Sc. in Management. … In Denmark, a Master’s degree is awarded. This is just “Master” in Danish; however, MA/M.Sc and Master Courses are distinguished, where MA and M.Sc are known as Candidate degrees (“kandidatgrad”), and are obtained by completing a longer advanced education (“længere videregående uddannelse”), with a typical duration of five years. Putting aside a discussion on the merits of whether an M.Sc. should constitute a separate 2-year cycle of studies following a 3-year one that leads to a Bachelor, it’s quite clear that 5-year studies are considered equivalent to an M.Sc. in numerous places around Europe. In fact, a number of old friends had no problem continuing straight for a Ph.D. in England, US, Holland and other places without any concerns being raised over their typical qualifications. This clearly indicates that the recent move is not an ugly manipulative scheme of a guild but -if nothing else- a recognition of the de facto situation and the higher quality and duration of the studies performed in such institutes. [more] […]


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: