Why maintaining a codebase is so damn hard – with OhMyZSH creator Robby Russell [Podcast #207]

| Programming | February 13, 2026 | 11.7 Thousand views | 1:23:04

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
Deploying AI Models with Hugging Face – Hands-On Course
6:53:14
freeCodeCamp.org freeCodeCamp.org

Deploying AI Models with Hugging Face – Hands-On Course

This hands-on tutorial demonstrates how to navigate the Hugging Face ecosystem to deploy AI models, focusing on text generation with GPT-2 using both high-level Pipeline APIs and low-level tokenization workflows. The course covers practical implementation details including subword tokenization mechanics and the platform's three core components: Models, Datasets, and Spaces.

about 6 hours ago · 9 points
Software Testing Course – Playwright, E2E, and AI Agents
1:03:31
freeCodeCamp.org freeCodeCamp.org

Software Testing Course – Playwright, E2E, and AI Agents

This comprehensive course demonstrates why software testing is critical insurance against catastrophic failures, explains the testing pyramid framework for balancing test types, and provides hands-on instruction for building end-to-end tests using Playwright with a real e-commerce application.

6 days ago · 9 points
19 Web Dev Projects – HTML, CSS, JavaScript Tutorial
12:00:19
freeCodeCamp.org freeCodeCamp.org

19 Web Dev Projects – HTML, CSS, JavaScript Tutorial

Instructor Barack guides beginners through a "100 Days of Code" curriculum featuring 19 hands-on web development projects, teaching HTML, CSS, and JavaScript by building real-world applications ranging from UI components to interactive games. The course emphasizes daily project completion to build practical skills and a portfolio of 100 showcase-ready applications for career advancement.

7 days ago · 10 points