The Engineering Manifesto

As a software engineer, I have learnt quite a deal as a programmer but I look at software through the eyes of an engineer. Regardless of your field of engineering, there are some things common to all of us and here, I will now outline the "rules" of the game.

Thou shall be a pessimist

Do not confuse this with being a cynic. A cynic sees things through a brown, smelly haze where everything is poo. A pessimist expects failure. And a clever pessimist protects, to the best of their ability, against all probable and some improbable failures. This trait is brilliant in an engineer: to see everything that could go wrong and protect against it. While it is wonderful to be an optimist, in live in a fairy land where everything works perfectly, for us in the real world, nothing works as it should, things fail, mistakes happen, work experience students trip over and unplug cables, earthquakes happen, floods ... well, I could go on, but the point is, be prepared for all failures, including your own. A boring, management-speak term for this behaviour is risk management but let us stay philosophical and say, be a pessimist.

Thou shall Be an artist and a scientist

Once, during ancient times there were no difference between an artist and scientist. We wandered around in togas, drank too much, indulge in too many fun things and mixed philosophy and mathematics in the same sentence. For some reason we decided it would be a wise idea to split the subject and objective in to separate schools. Fortunately we seemed to have kept the over drinking and over indulging in things. The funny thing is, no one split our brains: a left hemisphere, which can work wonders in the world of reason and a right hemisphere where just sheer brilliant ideas are spawned.

These hemispheres work best when they have each other. The right hemisphere comes up with the idea and the left filters it for stupidity. That is how it is supposed to work. One can't claim it works well in every person, but if you survived this far, either you are exceptionally lucky, or you already have a grasp of this. To excel as an engineer, you need to straddle these two halves and make the most of them.

thou shall be forever a student

This magical two hemisphere lump of gray matter is there to be feed. No matter how much you know, you can always know more. In fact, if you have hit the same point in life as I have you will be realising how little you actually know. Every time you learn something new, it simply raises more questions, new paths to take, your world grows and relatively you now know less. Directly, what you learn, may not help your current project but it might lead you to something that does. The more informed you are, the better your decisions will become.

Thou shall decide as late as possible

When it comes to making decisions on any part of a project, wait until you absolutely need to make it. There is always an urge to jump in and pick all the parts before you start. Sometimes decisions are made on what parts you have to use by someone else, often because cronyism or emotion. This magically component "will solve all the worlds problems" but it never does and you are stuck with that polished turd. Sadly you can't do anything about that, but the components in your control, wait, patiently before you have to make that decision. This gives you the longest possible to time to experiment with the possibilities and know their flaws and benefits, make mistakes and simply play around so when you have to make the choice, you make the best one.

Thou shall filter ideas

Just because you can do something, does not mean it is a good idea. Emergency rooms are full of people who have tested this rule and failed. "I tripped in the shower and it got stuck up there" seems a common excuse for not listening to this rule. Now perhaps this rule can be applied to life in general, not just in engineering. The first guy who had an iPhone surgically removed from his butt will attest to that. Your own personal ethics need to come into play here. Ideas have no ethics, no morals and no reasoning, they are simply ideas. If you ideas will lead to someone else's harm, then I question your ethics but it is up to you to make that judgement.

Thou shall be a seer

Requirements documentation is a rather droll read and attempt to take a client's ideas and put them on paper. This is not where the story ends. If we were to do exactly what the client wanted every time, we would turn into droll machines, and boring as the paper the requirements was written on. As a good engineer, you need to see beyond the requirements and look for what the client might want in the future as well and cover that. You need to look for things the client has thought about yet. Look to the long term.

thou shall not take shortcuts

In the world of software the term "hack" or "quick fix" are constantly banded around. Other fields of engineering have similar terms. This is the duct tape of the engineering world. These never lead to a better product and in the end, will come back to haunt you. Never be left with the regret "I should have done that properly in the first place" because fixing will become harder over time. The harder, more sustaining, long term path is the one you need to walk.

Thou shall be human

All decisions you make, you are responsible for. All the failures of your work, are your responsibility. However, you must never forget you are a flawed human, you make mistakes.  Mistakes are brilliant means of teaching us, never miss that lesson. If you have followed the above rules, you will already have expected this, formed ideas on how to avoid it, picked the most appropriate one, done it properly, not taking shortcuts and covered every other probable failure. And should the consequences of a failure be great, you aren't alone, use one of those other humans to check over your work.