Put Decisions Where They'll Be Found
One of the easiest ways to create future confusion is to put a decision somewhere people are unlikely to look. Security rules hidden inside controllers. Rate limits embedded in random services. Business policies buried in emails. At the time it feels convenient. The context is fresh. Everyone involved remembers why the decision was made. A year later, the context is gone but the decision remains.
I saw this during a marketplace migration. One marketplace had very little traffic and the return on migrating it was not worth the effort. The team consciously decided not to migrate it. The decision was made. The problem was where the decision lived. It existed in an email thread. Later another announcement went out describing the migration as complete. Both statements were technically true, but the nuance lived only in people's memories. Months later an issue appeared. We searched documents, emails, and announcements trying to understand what was supposed to happen. The answer was not in any of them. The answer was in the code. The code still contained the exception and became the only reliable source of truth.
Tenet #4 — Make Assumptions Explicit. Every business rule, policy decision, exception, and constraint needs a home. A place where the next developer will naturally look. Before hardcoding a rule, ask: is there already a home for decisions like this? If yes, put it there. If no, create one. Decisions hidden in convenient places eventually become archaeology. Decisions placed where people expect to find them become documentation that stays alive.
Comments
Post a Comment