The Real-Time Sync

Data flowed instantly between devices, keeping everything in perfect synchronization. The senior developer observed, “When all things are synchronized, what is the rhythm they follow?” And, “If everything changes in real-time, when is the time that is real?” Understanding the Koan Real-time synchronization represents one of the most seductive promises in modern web development: the […]

The Code Generator

The developer built a tool that wrote code automatically. Thousands of lines appeared instantly. The senior developer asked, “Who understands this generated code?” The developer replied, “The generator does.” “And who understands the generator?” Sitting with the Koan Code generators represent one of the most transformative shifts in modern software development. They promise speed, consistency, […]

The Breaking Change

A developer updated a library, breaking dependent applications. Users complained loudly. The senior developer asked, “If the change improves the library, what does it break besides the code?” And then, “When something breaks, what was it depending on that you didn’t see?” Sitting with the Koan When we speak of breaking changes, we typically frame […]

The Serverless Function

The developer deployed code that ran without servers. “Look,” they said, “no infrastructure to manage!” The senior developer smiled, “If there are no servers, what is serving your code?” And, “When you remove the server, where does it go?” Beyond the Surface The serverless paradigm represents one of modern development’s most seductive abstractions. We write […]

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: […]