Software Engineering is no such thing...

Last Tuesday I went to my godfather's funeral, it was a small, thoughtful ceremony filled with former colleagues and friends most of whom were engineers of one sort or another.

Uncle Pete was a Civil Engineer for 40 years and the celebrant reminded us of a few of the places and projects he'd worked on - London's Jubilee underground line, the Channel Tunnel, as well as projects in Taiwan, the Seychelles and Dubai; I was struck by how monumental his legacy is and how those projects have changed the lives of millions.

I also remembered a conversation I had with him about 10 years ago when we discussed the differences between his working world and mine...

There are lots of outlandish job titles in our business - DevOps Ninja, Database Wizard, even Digital Prophet; but none so inappropriate as Software Engineer.

Civil Engineers, and most other engineering types, really do understand their world. If you ask them to build a bridge, dam, tunnel, or even a gearbox, they will give you two or three (at most) options depending on the environment and circumstances; Concrete or Steel; Tunnel Borers or Cut & Fill and so on and, critically, if you ask a different engineer you'll get very much the same proposals. They are experts in what works and their projects stand the test of time.

I think this is partly because they've been around for a century or two and, also, because when things don't work it tends to get noticed!

Software development is not like that - projects are frequently abandoned or truncated, even the longest serving enterprise systems rarely last more than a decade, failures are expected and tolerated and all this goes largely unnoticed (at least until quite recently).

Engineering implies a level of knowledge and commonly accepted best practice expertise that Software today can only aspire to; you only have to ask 3 different developers to build an interface between systems to get 4, 5 or 15 utterly different proposals, each involving that individual's pet approach (or even language). And that's before you consider the influence of fashion on development (Hands-up everyone who ported existing, working systems to Java in ~2002 to get a J2EE bumper-sticker to satisfy their Chief Exec)...

Software development and the IT industry in general is still at the Artisan or Craft stage; we have highly skilled people delivering wonderful things that future generations may well look back at with amazement, but we are not yet Engineers. Software has not yet had a Brunel, Telford or Stevenson (or even a Wolfe-Barry) to set our industry on that path and we are decades, at least, away from building anything as long-lasting and elegantly functional as a 'proper' engineer does.

RIP

Engineers give guarantees: "this thing breaks, you come and sue me." Coders give liability waivers: "don't care what this piece of code does, you will never blame me." That's all you need to know, basically.

回复

要查看或添加评论,请登录

Tim Wolfe-Barry的更多文章

社区洞察

其他会员也浏览了