Rethinking Software Development: A More Rigorous Approach
It's time to prioritize reliability and accountability over speed and shortcuts
Engineers—think civil, mechanical, electrical—are the people who design, build, and maintain the systems we all depend on every day. From bridges and skyscrapers to power grids and water systems, they bring structure and order to our lives. What sets engineering apart is its methodical, science-based approach. It’s not about throwing ideas at the wall to see what sticks; engineers test, refine, and iterate until they land on a solution that works and continues working. This approach ensures that what they create is reliable, sustainable, and built to last.
(Non software) engineers don’t operate on a "move fast and break things" philosophy. Instead, they prioritize stability and safety, working within frameworks that demand accountability at every step. Engineers are focused on delivering solutions that dependable first and innovative second.
Ethical Responsibility
Becoming a professional engineer isn’t just about learning technical skills—it’s also about adhering to a strict ethical code. Engineers need licenses and certifications to practice independently, and these credentials hold them accountable for their work. If an engineer cuts corners, the consequences can be catastrophic: buildings collapse, power systems fail, and lives are at risk. These ethical standards ensure that engineers approach their work with the highest level of care. Engineering has had decades to refine processes that keep projects on track and safe, even when stakes are high.
These processes aren’t just about avoiding failure; they’re about consistently delivering quality work that meets user needs and stands the test of time.
Contrast with Software Development
Software development hasn’t quite reached this level of rigor, and frankly, I think many people never want it to. While software powers critical parts of modern life—healthcare systems, transportation networks, and financial platforms—it’s built in environments without the same level of accountability and standards. There’s no universal ethical code or certification process for software developers, which is partially responsible for the enshittification1 of everything buggy, insecure, or poorly designed systems.
Imagine the consequences of a software glitch in a medical device or a flaw in a financial system. There have been real life tragedies associated with problems in software2. These are the kinds of risks that could be mitigated with a more disciplined approach. But for many companies, the focus is on speed and innovation rather than stability and reliability. That’s a problem, especially when lives and livelihoods are on the line.
Bringing Rigor to Software Development
Software has become so integral to our world that it’s far past time to borrow some lessons from traditional engineering disciplines. Structured testing, ethical standards, and sustainability-focused design could transform the software industry. These practices wouldn’t just make software more reliable—they’d shift the focus to creating systems that are as functional and dependable as a well-built bridge.
Incorporating peer reviews, scalable processes, and standardized testing protocols for software developers will almost definitely ensure higher-quality products. These aren’t new ideas; they’re already standard practice in engineering fields where every design goes through rigorous checks before implementation. Adding ethical oversight would also help ensure that software solutions serve the public good, minimizing harm and maximizing trust.
A Call to Arms
It’s time for software development to level up. By adopting the rigor and accountability that traditional engineering has honed over decades, the software industry can produce systems that are trustworthy, resilient, and aligned with societal needs. Ethical guidelines and robust frameworks could help professionalize the field, benefiting not just developers but also businesses and users.
As software becomes the backbone of critical infrastructure, we simply can’t afford to stick with a "move fast and break things" mentality. Borrowing best practices from engineering disciplines could elevate software development to meet the challenges of our interconnected, tech-driven world. Let’s build software with the same care and precision that goes into designing bridges and skyscrapers—because the stakes are just as high.
I could rant about the “growth at all costs” mentality all day, but that’s another blog post.
Previous machines relied on hardware to keep patients safe while “the Therac-25 relied primarily on software.”


Internally screaming into the void re: the logic and common sense of this approach. Why are we not talking about this? Because we don't want to eat our veggies first.