Nice summary of recent history; but, as an engineer trying to find an engineering position, I’m finding no companies that think they need an engineer. The tools produced by the “real engineers” carry forward the myth that software engineering is actually just a simple step-by-step procedure. Pull a drunk off of East Colfax, teach him the tricks and give him the amazing tools and, as a result, brilliant and useful software will be delivered to market.
The procedure, of course, is Scrum and the tools are a wide panoply of programs with funny names that purport to “do the simple work so you can innovate.” The “innovating” of course is shackled at every turn by the assumptions forced by the tools. In every position I’ve held since Sun Microsystems, engineering was simply unnecessary. All management needed was coders, and those coders just need to code up what they were told.
In a recent interview with a head-hunter, the conversation went like this:
She: “What is your skill?”
Me: “I’m an engineer, I solve complex problems in simple ways.”
She: “Oh, so you’re a Developer.”
Me: “I write code but mostly I master and correct complex problems.”
She: “Ah, you’re a Product Owner.”
Me: “No, I’m an engineer.”
Well, in the end, she didn’t have a job title of “Engineer”. Only “Product Owner”, “Scrum Master”, “Developer.” This is the result of the amazing tools described in this essay leading to an industry that believes it doesn’t need engineers.
The software that arises from programmers following the procedure and applying the tools is not an engineered solution. That software tends to be sloppy, ill-conceived and transitory. It must be constantly updated and corrected. The trope promulgated by this essay, that the tools supply the needed engineering freeing “real engineers” to ascend to their deserved heaven leaving technicians to fulfill their destiny here on Earth, is simply balderdash. It is like saying that since the modern wrench is high tech, the assembly technician may design the entire automobile.
The tool is not the engineer. While the programmer is essential and useful, only the human engineer is qualified to develop the product as a complete solution to the customer need. Engineering is not a procedure, it is a method. I go into this in my book, Famine in the Bullpen. Find it at your local bookstore.