Why maintaining a codebase is so damn hard – with OhMyZSH creator Robby Russell [Podcast #207]
TL;DR
Robby Russell, creator of OhMyZSH, explains why software maintenance consumes nearly all development time, as engineers constantly navigate inherited technical decisions while organizations struggle with repository sprawl, orphaned code, and the risks of tacit knowledge walking out the door.
🔧 The Maintenance Reality 3 insights
Developers live inside inherited decisions
Most software work involves navigating constraints from predecessor choices, former self decisions, and existing architecture rather than building from scratch.
Greenfield development is statistically rare
Russell estimates developers spend 99% of their time maintaining existing codebases rather than starting new projects, even when building new features.
Maintenance extends beyond bug fixes
Adding features to existing systems constitutes maintenance because it requires working within established technical constraints and legacy architecture.
📦 Repository Sprawl & Orphaned Code 3 insights
Organizations accumulate abandoned repositories
Companies often maintain 80+ repositories where the majority are untouched for years, creating confusion about what is deployed, what is safe to archive, and what dependencies remain active.
Forking creates permanent hidden burdens
Teams frequently fork third-party libraries to patch urgent bugs, creating long-term maintenance responsibilities when those forks aren't merged back upstream or properly documented.
Code lacks clear ownership
When developers leave organizations, they often take irreplaceable tacit knowledge with them, leaving behind codebases that require forensic analysis to understand architectural decisions.
⚖️ Strategic Maintenance vs. Rewrites 2 insights
Rewrites risk institutional amnesia
Starting fresh underestimates the complexity embedded in production systems and often represents an expensive way to forget lessons learned from years of iteration.
Production complexity is invisible until lost
Teams routinely underestimate the time and energy invested in existing working systems, viewing rewrites as cheaper than refactoring until they rediscover edge cases the hard way.
Bottom Line
Treat maintenance as the primary job of software engineering by documenting architectural decisions and distributing knowledge across teams, rather than betting on risky rewrites or accepting accumulation of orphaned code.
More from freeCodeCamp.org
View all
Open Models Coding Essentials – Running LLMs Locally and in the Cloud Course
Andrew Brown tests open-source coding models including Gemma 4, Kimi 2.5, and Qwen across local and cloud deployments to evaluate viable alternatives to proprietary solutions, finding that while some models perform surprisingly well, hardware constraints make cloud hosting the practical choice for most developers.
JavaScript Event Loop & Asynchronous Programming
This video demystifies how JavaScript handles asynchronous operations while remaining single-threaded, explaining the interplay between the call stack, web APIs, callback queues, and the event loop that enables non-blocking execution.
Stanford's youngest instructor on InfoSec, AI, catching cheaters - Rachel Fernandez [Podcast #217]
Rachel Fernandez, Stanford's youngest instructor at 19, discusses why C++ remains vital to modern infrastructure despite security challenges, the risks of AI-generated code built on potentially vulnerable foundations, and her journey from a resource-starved high school to organizing one of the world's largest hackathons with million-dollar budgets.
Inside the world's most elite student hackathon – Full Documentary on Stanford Tree Hacks 2026
This documentary covers Stanford's Tree Hacks 2026, an elite hackathon where 1,000 students selected from 15,000 applicants compete for $500,000 in prizes sponsored by major AI companies. Participants showcase advanced multi-agent systems, local-first AI tools, and cross-device platforms while sharing strategies on admission, multi-track prize targeting, and rapid prototyping.