The Framework Migration

The team spent months migrating to the newest framework. The old system was discarded. The senior developer asked, “What did the old framework teach you that the new one cannot?” And, “When you migrate code, what else travels with it?” The Teaching Unfolds Every few years, the software industry experiences a collective migration. React replaces […]

The Code Coverage

The team achieved 100% test coverage. They celebrated their thoroughness. The senior developer asked, “What percentage of your understanding is covered?” And then, “If every line is tested, what remains untested?” Understanding the Koan We treat code coverage as a destination, a number that validates our diligence. When that metric reaches 100%, we feel we’ve […]

The Pair Programming

Two developers shared one keyboard, solving problems together. The senior developer watched them debate each line of code. “Which of you is writing the code?” she asked. “Both of us,” they replied. “Then which of you is learning?” Sitting with the Koan At first glance, this koan seems to have an obvious answer: both developers […]

The Technical Debt

“We must pay down this debt!” declared the team lead. The senior developer asked, “If you pay it all, what will you owe then?” And, “Who is the creditor of technical debt?” Reflections We speak of technical debt as if it were a financial obligation, complete with interest rates and creditors waiting impatiently for payment. […]

The Standup Meeting

At standup, each developer spoke of their work. “I debugged the notification service yesterday,” said one. The senior developer listened, then asked, “When you found the bug, had it been waiting for you, or were you waiting for it?” “I… I don’t know.” “In the moment of discovery, who discovered whom?” Dwelling in the Question […]

The Microservice

The architect split the monolith into dozens of small services. Each service was simple and focused. The senior developer observed the network calls multiplying exponentially. “We have eliminated complexity,” said the architect. “Where did it go?” asked the senior. Understanding the Koan This koan confronts one of the most seductive beliefs in modern software architecture: […]

The Premature Optimization

The senior developer watched quietly. “I’m making it efficient!” declared the junior. “Efficient for what?” asked the senior. “And inefficient for what else?” Later, she added, “What is the performance cost of pursuing performance?” What Are We Really Asking? The senior developer’s question cuts to the heart of a common trap in software development: optimization […]

The Perfect Documentation

A developer spent days writing comprehensive documentation. No one read it. The senior developer asked, “If documentation exists but is never consumed, what does it document?” The developer replied, “The system’s behavior.” The senior nodded, “And whose understanding does it reflect—the system’s or yours?” Reflections This koan challenges us to examine the true purpose of […]

The Production Incident

At 3 AM, the servers failed. Alerts screamed through the silence. The on-call developer rushed to fix what was broken. The senior developer asked, “If the system was working perfectly before it broke, when did the breaking begin?” And then, “Is the incident in the servers, or in our expectation that they should never fail?” […]

The Version Control

The senior developer observed, “You have saved your work. But what have you lost?” The developer was puzzled. “When you commit to one path,” the senior continued, “what happens to all the paths not taken?” “Are they gone, or do they exist in the space between commits?” Dwelling in the Question This koan invites us […]