software koans

The Sprint Planning

The team estimated stories in points: one, two, three, five, eight. A junior asked, “What is a point?” The senior developer replied, “A point is what we agree it is.” “That seems arbitrary.” “It is. That is why it works. The moment we measure it precisely, we will be measuring the wrong thing.” Beyond the […]

The Branch

A developer created a feature branch and worked on it for six months. When they tried to merge, they found the main branch had become unrecognizable. The senior developer asked, “Were you working on the same codebase as your team?” “Yes.” “At the same time?” “…No.” The Teaching Unfolds That pause before the second answer […]

The Caching Layer

A junior added a cache to speed up the slow endpoint. The endpoint was fast. The data was wrong. The senior developer asked, “Did the cache work?” “It did exactly what I asked it to.” “And was that what you wanted?” The Code Behind the Koan Almost every caching incident starts with a correctly implemented […]

The Status Meeting

The status meeting ran long. Engineers spoke of progress, blockers, and dependencies. The senior developer was silent throughout. Afterward, a junior asked, “Why did you say nothing?” The senior replied, “I was waiting for the meeting to end so the work could begin.” “But the meeting was about the work.” “Yes. That is what I […]

The Config File

A configuration file grew over the years to two thousand lines. A developer asked the senior, “Why are all of these settings here?” The senior answered, “Each one was once a question someone could not answer.” “And now?” “Now they are questions no one remembers asking.” Unpacking the Teaching Every line in that file started […]