a person who designs, builds, or maintains engines, machines, or public works.
- a person qualified in a branch of engineering, especially as a professional: an aeronautical engineer
- the operator or supervisor of an engine, especially a railroad locomotive or the engine on an aircraft or ship.
- a skillful contriver or originator of something: the prime engineer of the approach
Recently, while having drinks with a fellow Georgia Tech alum who works in the software industry, I brought up something that I always found a little funny about our current line of work.
Many people who develop software or work in the software industry call themselves “software engineers”. I always found the term off because I have a Bachelor’s of Science in Computer Science. There’s no mention of “engineer” anywhere on my diploma. My friend’s theory involves some politics and controversy at the fine North Avenue Trade School that led to the designation of software development to the Science school as opposed to the Engineering school, but I’m not sure they got it wrong.
As the definition from Oxford’s dictionary above indicates, an engineer doesn’t describe what those who write software do. I currently prefer the term software developer since much of my time is spent working on more than just systems or maintaining machines. Agile and Lean process, cross-functional teams, feature development, A/B testing, and platform architecture involve very little of the rote, document heavy engineering of software’s past or other schools of engineering.
Having gone to school with people whose sole concern was engineering, not to mention my father’s life long employment as an industrial engineer, I found this choice of nomenclature somewhat odd and off-putting. I felt like I was pulling wool over people’s eyes when I said I was a software engineer. I’m a scientist. Why doesn’t the term computer scientist used commonly in job titles?
In the past, I worked on the backbone of telecommunications networks and in the waterfall, Gantt chart filled world of software development before Agile or Lean became popular. These days I don’t reference many white papers published by IBM or Bell Labs or books that fill the engineering world like Engineering Documentation Control Handbook. I’m more concerned with languages, patterns, design and developing applications for consumer technology.
So I say to you, developers of software, embrace the identity of a scientist or developer, not of an engineer.