
You may have noticed that I missed the last two Fridays. Sorry about that. This week I will publish twice - today, and on Friday. Then hopefully I’ll be back on schedule.
An opening line that I’ve been quoting for decades
“In the state of Texas, professional engineers were originally licensed in 1937 after a boiler explosion caused the deaths of more than 300 school children. At that time, the boiler part that failed was mechanical. Today that part’s function is handled by software.”
I was 26 when I read this, half-heartedly trying to survive as a Java software developer for a struggling Silicon Valley Linux startup called Eazel. I’d spent the previous five years of the dot-com boom working myself sick, grappling with every possible form of bad decision-making and shoddy leadership, and was pretty much lost. Steve McConnell’s After the Gold Rush: Creating a True Profession of Software Engineering gave me hope. I hadn’t just been choosing the wrong companies. The whole damn industry was a mess, but McConnell was pointing toward a better way.
Who is Steve McConnell?
Steve McConnell is a writer of several influential books on software engineering. After early stints at Microsoft and Boeing, in 1993 he wrote Code Complete, a foundational text on how to write good software. Code Complete lays out fundamentals of software construction that work across every language and architecture. Useful practices like naming variables clearly, laying out code on the page so it is readable, and commenting strategies to help other engineers understand what you did. I read it cover-to-cover when I was teaching myself to write web site backend code, and attribute most of what little skill I had to its lessons.
Three years later, McConnell published Rapid Development: Taming Wild Software Schedules, which does for the development process what Code Complete did for software construction. McConnell walks through every part of running a software project, from estimation to risk management to project recovery, plus human factors like team morale and managing up. Almost half of the book is dedicated to detailed explanations of twenty-seven best practices that you can use when appropriate. This book should be required reading for every aspiring product manager. I referred to it repeatedly throughout my DoubleClick and Google career for practical advice.
McConnell wrote a few more books since then, and interestingly, also published one of the most accurate COVID-19 forecasts during the pandemic.
So, why’d he name a book after a classic Neil Young album?
Umm. I can’t find any actual evidence that McConnell is a Neil Young fan. I think it might just be a coincidence. McConnell’s choice of title comes from comparing the early boom years of software development to a gold rush, where chaos reigned and there were no standards. I like Neil Young a lot, though, so wanted to work him in somehow. Sorry. Anyway.
After the Gold Rush is a tight, 154-page case for certifying and licensing software engineers. McConnell lays out a comprehensive structure for the qualifications, real-world experience, and certifications that would make software engineering a real profession akin to chemical engineering, medicine, and the law.
Whether we like it or not, software is important. It affects people’s lives. And the development practices most commonly used to produce software are not up to the task. As Fred Brooks pointed out more than 10 years ago, “The gap between the best software engineering practice and the average practice is very wide – perhaps wider than in any other engineering discipline.” It’s time for software development to grow up. [JBB note: ‘10 years ago’ here means 1989, a year before Snapchat founder Evan Spiegel was born.]
McConnell’s critics helped kill his proposal because they didn’t understand it.
Unfortunately, McConnell’s proposal fell flat. Licensing never became a requirement in the US or most other jurisdictions. The National Society of Professional Engineers launched a Software Engineering Professional Exam, but embarrassingly, only 81 people ever took it before it was terminated in 2019. McConnell let After the Gold Rush go out-of-print, and refers people now to his 2003 follow-up, Professional Software Development.
To me, the contemporary critiques from 1999 entirely misread McConnell’s argument. They reacted as if McConnell had proposed that nobody should be allowed to code without government permission. If that was his argument, I’d be against it too, because it would throttle the entire software industry. McConnell's real proposal is much more focused on ensuring that we can trust the safety of mission-critical software just like we trust bridges and hospitals.
In engineering the majority of engineers do not obtain licenses. Engineering companies are required to employ some licensed engineers, but not all of their engineers have to be licensed… The difference lies in how replicable the engineered artifact is and how much impact the item has on public safety… On balance, perhaps 5-10 percent of people currently practicing as computer programmers will eventually get their badges – their professional engineer licenses in software…
[The architects] who put their names on the blueprints will have a different set of occupational rights and responsibilities than the carpenters have, regardless of who has more practical experience. Eventually, we’ll probably see several certification and licensing options for ‘software technologists’ – today’s coders – which will be the occupational equivalent of a physician’s assistant in medicine or a certified technologist in engineering. This credential will stop short of giving software technologists full professional standing; they will not be able to sign off on a safety-critical software release or perform other activities reserved for the full professional engineers.
Code of ethics: from professionalism to social responsibility
McConnell brings the book in for a landing with a detailed discussion of the Software Engineering Code of Ethics and Professional Practice. For me, this is the critical turn of his argument. Ensuring that engineers have the necessary skills will improve software quality, but safety requires engineers to act in accordance with the public interest. If you’ve read much of Platformocracy, you will see why passages like the following resonate so strongly with me:
Software engineers shall accept full responsibility for their work and approve software only if they have a well-founded belief that it is safe, meets specifications, passes appropriate tests, and is ultimately to the public good… They shall ensure that software has been adequately reviewed and tested before it is released to the public… Software engineers shall endorse only products that they have adequately reviewed and objectively agree with.
Some situations will be less clear-cut... The interests of a client may come into conflict with the public interest… The Code cannot foresee every possible ethical dilemma, but it calls for software engineers to use their best ethical judgment to adhere to its spirit, considering it as a whole.
In which we hit the scope limits of this newsletter
For me, McConnell’s section on ethics foreshadows the entire debate over the impact of modern technology like social media and AI on society. If certification and licensing had caught on in the 1990s, and the engineers working for Mark Zuckerberg, Sam Altman, and their ilk had signed up to a rigorous code of ethics, I find it hard to believe that they would have felt comfortable signing off on ad systems that tolerate fraud, recommendation algorithms that trigger overuse, or testing environments that allow AI agents to break out onto the public Internet and hack rivals.
With that said, there is an enormous ongoing debate about whether government regulation protects the public or entrenches incumbents, and whether a focus on safety is actually harmful by slowing down progress. I enjoy a potshot at Peter Thiel or Marc Andreesen as much as the next newsletter writer, but I don’t want to turn this newsletter into just another front in that argument. If you think all regulation is a crime against progress, I doubt that I am the writer that’s going to change your mind, and I am not going to give up on wanting people to have authority over technology just because a billionaire tries to make people like me feel bad.
So, on Friday, I’ll wrap up this mini-series on software ethics with a different angle: the best argument I know for why individual software engineers should hold themselves to a higher standard, regardless of what the law requires. Get ready to sample the squirrelburger.
Ideas? Feedback? Criticism? I want to hear it, because I am sure that I am going to get a lot of things wrong along the way. I will share what I learn with the community as we go. Reach out any time at [email protected].

