Early in my career, I built ticketing systems for arts venues. Our platform could be bulletproof - but if the client's backend fell over, the on-sale still failed. That taught me how to build resilience around dependencies I couldn't control.
In 2023, I wrote about sustainable software development. I focused on engineering practices. I should have focused on whether the business underneath could survive.
I've watched companies chase shiny technology for nearly two decades. The pattern is always the same: promises of elegance, delivered complexity, and teams that can't sustain it.
I've worked in PRINCE2 environments where weeks were spent on documents nobody read. I've worked in 'Agile' shops that were just as ceremonial. The best teams I've been on had almost no process at all.
Most failed systems I've rescued weren't too rigid - they were too flexible. Built for futures that never arrived. I've spent years untangling the results.
I've spent years rescuing systems with no documentation. Weeks reverse-engineering logic someone could have explained in ten minutes. The cost of not writing things down is paid over and over.
I used to leave snarky comments in code criticizing my coworkers. Years later I came back and realized I'd been wrong. That's when I learned how to actually do rescue work.