For over a year I have been uncomfortable with the idea that I am software engineer. The question in my mind has always been, “If I am not a software engineer then what am I?” I have always avoided tackling the question head on, it barely seemed relevant. I would not let a label dictate my actions so who cares if the label is wrong? At 8:00 Eastern time I lay in bed thinking about this. The problem is a software engineer is someone calculating, methodical, repeatable and accountable. When I think of software engineering I think of aircraft computers. They have to work exactly to specification and someone’s life is in very real danger if they fail. The kind of work I do is nothing like that. If I mess up the chances are a handful of people are inconvenienced for an hour or two. Their lives do not depend on my system functioning.
Earlier this year I went to see a talk by Donald Knuth, creator of LaTeX, where he said,
“Science is things we understand well enough to program into a computer and everything else is art.”
I think if we worked really hard we could write a piece of software to do software engineering for us. Where software engineering is the conversion, how ever complex, of some initial values into an output piece of software in a way which is reproducible. My work does not have a measurable set of inputs, it often involves complex ideas we can not easily quantify, such as, does this piece of software make you feel happy? If completed to my satisfaction, my work is less like engineering and more like art. One of the aims is to provoke the emotional reaction that I, the creator, intended. Software artist does not feel like the correct term but I do like the idea of being a software author. An author aims to capture, enthral and emotionally engage the audience and create a work to be proud of.
A good book is not written by taking a set of criteria and ticking them off. It is written by taking a creative vision and refining that vision until the output conveys the feelings and ideas of the author. An author’s work is deeply personal and contains a huge emotional investment, but if the vision is not realised no one dies. The author maybe devastated and society will never see their vision, but bad books are written all the time and it is rarely anything more than a shame. I am by no means belittling the work of the software engineer, without them vital things we take for granted everyday could fail with fatal and disastrous consequences. I am simply saying what I do is different to them.
I wrote this post for anyone who has been emotionally invested in a piece of software which turned out to be a shame…