Not that long ago, you may as well have been swearing when you told somebody that you were an Engineer, but today however, it seems a very much a sought after title
Unusually for me, and I would guess unusual for an article, I'm going to start by using a swear word! Are you ready? "Engineer", there, I've said it.
Not that long ago, you may as well have been swearing when you told somebody that you were an Engineer, but today however, it seems a very much a sought after title. For example, there are Photocopier Engineers, Vending Machine Engineers, Forestry Engineers, Mineral Engineers and Domestic Engineers!
So it would now seem that society has at long last accepted the term Engineer as a respectable profession. As much as I could talk about this, and believe me I can, this is not the purpose of this article.
When I first came across the term 'Software Engineer' I must admit to feeling a little bit disgruntled because at the time software developers/ engineers suffered from the stereotypical image of some spotty youth, sat in a darkened room in front of a games console and a very early model PC, wearing nothing but boxers and a Tee Shirt, whilst existing off a diet of Pot Noodles, Cola and Crisps. Whereas I, a time-served Mechanical Engineer had undertaken a five year apprenticeship, attended day release, two nights and Saturday morning at college for all five years before being able to use the title Engineer without the word Apprentice preceding it.
Moving the clock forward a number of years, it would seem that things have changed and are in-fact still changing. Working as I do in the world of software, I still very much consider myself to be a Mechanical Engineer first and foremost, but still working with the concept that as a team of professionals we turn people's ideas and vision into something tangible and real. Whilst the software we write isn't something which can be held or touched, as end users we still interact with it and for me that is one constant that exists between mechanical and software engineering. The other constant is that whatever we deliver will in some shape or form, no matter how small bring about change, improvement in productivity and so release much need efficiencies to the business and/ or end user.
Whilst I can't say with any degree of certainty that there aren't people sat in darkened rooms wearing 'leisure wear' anymore, I can say with a degree of certainty that Software Engineers are not only qualified to an ever exacting level, but are gaining the benefits of an Industry that is rapidly maturing.
Having worked on everything from Steam Engines to Aircraft; as an Engineer, I had many 100's of years, if not 1,000's of years of prior learning and mistakes to draw upon. Not only were we using theories developed by Pythagoras, Archimedes and Newton, but we were also using scales and charts developed and proven by the Victorians, along with more modern theories and calculations developed for new evolving materials and industries. As a consequence benefiting from centuries of accrued wisdom, experience and theory but more importantly, lessons learned from mistakes made.
In comparison, compared to Mechanical Engineering, Software Engineering is a relatively young discipline, still very much in the throes of gathering all of this accrued experience and wisdom, but it is doing so at a much faster pace than traditional industries did and so it is growing up/ evolving at a much faster pace than any industry has done before.
One other constant between mechanical engineering and software engineering is the end user. When something is made to be used such as a washing machine, it is generally very easy to spot why it isn't working as it should, so there is a simple cause and effect route to problem solving. Is it plugged in? Is the water turned on?
Whereas systems which work over the internet on an ever increasing range of devices, using different operating systems and browsers, all of which can be personalised, makes problem solving significantly more difficult. For most of the time, you don't have direct access to the end user and you can't simply send an engineer round as you can with a washing machine. Yet as an end user we have the expectation that whatever we are using must work, even (especially) if it has been downloaded for free, or we've paid the whopping sum of 99 pence for it. Which is where the two branches of engineering differ, when did you ever get anything that has been manufactured, which brings benefit to you for nothing? Other than marketing giveaways, I doubt ever, so why, as consumers do we have the perception that Software should be cheap or free? Is it because we can't see or touch it?
In order to work as we expect it to, software (especially when it comes to complex business systems) needs to be built on sound engineering practices, design and approaches and not just cobbled together. I like the example provided by our Technical Director Mike Bromwich -"In most engineering disciplines, small-scale endeavours can be achieved without adhering to formal process and standards. A garden shed can be constructed from inspiration, materials and labour - but to build a tower block these need to be supplemented by disciplines such as surveying, architecture, and structural engineering. As the reach of IT extends, and the scale and complexity of the underlying software multiplies, the parallels are clear: strategic importance mandates a strategic approach. Globalisation requires interoperability - and interoperability requires standards. Growth requires responsiveness - and responsiveness requires flexibility. To meet these requirements successfully software development demands an approach which embraces good engineering practice at its core."
So as an "old school" engineer I'm delighted to be working in a sector which combines the passion for solving problems, with the ability to transform the way we work, in an ever changing world and in a manner that I can both understand and relate to.