Software is expensive to build, expensive to change, and expensive to keep alive. Yet organizations routinely make plans as though adding another feature or hitting an arbitrary deadline won't affect anything else. Mark Stringer joins Robby to explore why making those trade-offs visible is an essential part of maintaining software.
Mark describes his approach as "showing people the taxi meter." Instead of asking stakeholders which requirements they suddenly don't want anymore, teams can help them understand what each decision costs and what it does to the other priorities already underway. That becomes particularly important when deadlines enter the picture. Mark has stopped fighting deadlines altogether. The goal is to get useful information from them while doing as little damage as possible. Along the way, Mark references Daniel Kahneman's Thinking, Fast and Slow and the idea that "what you see is all there is."
The conversation also looks at what happens as software ages. Mark shares the story of handing a UK government system over to another team, including documenting not only the code but the roles people played and the parts of the system they already expected would need replacing. Libraries disappear, tooling changes, companies supporting compilers go out of business, and yesterday's reasonable technical decision becomes tomorrow's maintenance problem. Long-lived software requires accepting that replacement and adaptation are part of the deal.
Mark also discusses his book, Delivering the Impossible: Successful Ways of Seeing Software Project Management, and why software projects are better understood as bets than guarantees. Using metaphors ranging from biscuit tins to swamps and pirate ships, he explains how teams can mistake descriptions of software for the thing itself, underestimate complexity, and fall into "agreed activity": doing work everyone accepts while ignoring the larger problem approaching on the horizon. When organizations punish people for delivering bad news, eventually the bad news stops arriving.
Topics
[00:00:55] What Makes Software Maintainable: Mark explains why maintainability begins with understanding what users are actually trying to accomplish, rather than focusing solely on principles inside the code.
[00:05:00] Deadlines, Trade-offs, and the Taxi Meter: Robby and Mark discuss why deadlines aren't going away, what stakeholders may unknowingly ask teams to sacrifice, and how to make the cost of competing priorities visible.
[00:13:20] The Real Cost of Software: Mark calls software's extraordinary expense one of the industry's "dark secrets" and questions whether AI and vibe coding are making software cheaper or simply changing how those costs are presented.
[00:18:00] Handing Software to the Next Team: Mark shares how his team documented and handed over a UK government system, why cooperating with the incoming team mattered, and how a good exit eventually led to more work.
[00:28:22] Planning for Software to Age: Mark describes identifying homegrown components and dependencies that future maintainers would need to replace, and why parts of a stack can have surprisingly short half-lives.
[00:34:32] Delivering the Impossible: Mark explains what led him to write Delivering the Impossible and why he chose to offer different ways of seeing software projects rather than another methodology promising success.
[00:37:20] Biscuits, Biscuit Tins, and Software: Mark draws on his philosophy background to explain the difference between software and descriptions of software, and why organizations often spend more time dealing with the description than the thing itself.
[00:47:20] Software Projects Are Swamps: Complex projects contain technical, organizational, regulatory, and human uncertainties that make straightforward input-output thinking unreliable.
[00:51:53] Projects Are Bets: Mark argues that project success can never be guaranteed. Teams can improve their odds through research, experimentation, and observation, while some decisions can make failure increasingly certain.
[00:57:00] The Pirate Ship Everyone Can See: Drawing on the work of improvisation teacher Keith Johnstone, Mark introduces "agreed activity," where teams stay busy with accepted work while ignoring an obvious threat. Robby and Mark explore what happens when organizations teach engineers that delivering bad news isn't welcome.
[01:04:00] Taking Project Management to the Edinburgh Fringe: Mark talks about turning his ideas into live performances, writing Delivering the Impossible, and performing his latest show, You Can Write a Book.
Thanks to Our Sponsors!
Undercover CI: Your test coverage says 90%, but that might be misleading. Undercover CI looks at your Ruby pull requests and shows you which parts of your changes weren't tested- not just overall coverage, but what changed and what got missed, down to the method level. Visit undercover-ci.com and use code MAINTAINABLE for 15% off your first billing cycle. Free for public repos. Private repos with unlimited users also available.
Equitybee: Exercising your startup stock options shouldn't mean draining your savings. Equitybee covers your exercise costs and related taxes with non-recourse funding. If the company never exits, you owe nothing. Explore your options at equitybee.com.