[LINK] Where Are the Software Engineers of Tomorrow?

Stephen Wilson swilson at lockstep.com.au
Sun Jan 13 14:19:15 AEDT 2008


I'm an ex software guy.*  The software-engineering-as-a-profession 
debate is decades old.  I find it fascinating that the debate continues 
almost completely untouched by each generation's innovations in 
production: high level languages, object orientation etc.  Most of us in 
the 90s thought that re-use and enforced modularity would introduce to 
software some of the hallmarks of real engineering -- predictability, 
repeatability, measurability etc.  Yet it seems that many of the human 
traits of software-as-a-craft remain with us.

Moreover, I suspect that a deep problem is that the stuff of software is 
so very different from the stuff of other professions (soil, metals, 
electronics, flesh and blood, people, planes ...) that we might 
underestimate the challenge of forging a software profession.

Two years ago I wrote a letter to Computer World about these matters, in 
response to a consultants' report at the time that IT projects (hence 
software development) needed a more corporate governance.  Yup, like a 
hole in the head.  The original letter follows (it was published with a 
light edit).

------------------------------

Yes indeed, IT is made the scapegoat for a great many project disasters 
(ComputerWorld 28 September 2005, page 1).  But it may prove fruitless 
to force orthodox project management and corporate governance 
methodologies onto big IT projects.  And at the same time, IT 
"professionals" are not entirely free of blame.

So the KPMG Global IT Project Management Survey found that the vast 
majority of technology projects run over budget.  In the main, 
"technology" means software, whether we build or buy.  The "software 
crisis" – the systemic inability to estimate software projects 
accurately and to deliver what's promised – is about 40 years old.  And 
it's more subtle than KPMG suggests in blaming corporate governance.  It 
is fashionable at the moment to look to governance to rectify business 
problems but in this case, it really is a technology issue.

Software project management truly is different from all other technical 
fields, for software does not obey the laws of nature.  Building 
skyscrapers, tunnels, dams and bridges is relatively predictable.  You 
start with site surveys and foundations, erect a sturdy framework, fill 
in the services, fit it out, and take away the scaffolding. 
Specifications don’t change much over a several year project, and the 
tools don't change at all.

But with software, you can start a big project anywhere you like, and 
before the spec is signed off.  Metaphorically speaking, the plumbing 
can go in before the framework.  Hell, you don't even need a framework! 
  Nothing physical holds a software system up.

And software coding is fast and furious.  In a single day, a programmer 
can create a system more complex than an airport that might take 10,000 
person-years to build.  So software development is fun.  Let's be 
honest: it's why the majority of programmers chose their craft in the 
first place.

Ironically it's the rapidity of programming that contributes the most to 
project overruns.  We only use software in information systems because 
it's fast to write and easy to modify.  So the temptation is 
irresistible to keep specs fluid and to change requirements at any time. 
  Famously, the differences between prototype, "beta release" and 
product are marginal and arbitrary.  Management and marketing take 
advantage of this fact, and unfortunately software engineers themselves 
yield too readily to the attraction of the last minute tweak.

The same dynamics of course afflict third party software components. 
They tend to change too often and fail to meet expectations, making life 
hell for IT systems integrators.

It won't be until software engineering develops the tools, standards and 
culture of a true profession that any of this will change.  Then 
corporate governance will have something to govern in big technology 
projects.

Meanwhile, programmers will remain more like playwrights than engineers, 
and just as manageable.

------------------------------


Cheers,

Steve Wilson.


* FOOTNOTE Before getting into PKI, I spent seven years developing and 
managing real time control software for implantable defibrillators -- 
technically very demanding, and obviously mission critical.  We wrote 
our own multi-tasking operating system (easier to validate), wrote our 
own C compiler (so we could test it too), used a formal specification 
language (Z), formal design reviews and independent test teams, and 
undertook a line-by-line code inspection of the entire system (40,000 
lines; the code inspection took six people two months).  It was 
interesting and effective blend of modern tools, quality processes, 
individual skills, and brute force.  Our demonstrated bug rate was less 
than one per 10,000 lines, by far the best in the world of real time 
software circa 1990.


Lockstep
www.lockstep.com.au
-------------------
  * Lockstep Technologies: ICT Secrets of Innovation Finalist 2007
  * Lockstep Technologies: Anthill / PwC Cool Company Finalist 2007
-------------------
Lockstep Consulting provides independent specialist advice and analysis
on authentication, PKI and smartcards.  Lockstep Technologies develops
unique new smart ID solutions that safeguard identity and privacy.



More information about the Link mailing list