Blog
Mert Özen's blog posts on software development, backend, frontend, and DevOps.
Keeping Decisions Alive: Decision Logs, Architecture Reviews and the Advice Process
A decision log only works while it stays discoverable and is reviewed regularly: a generated index, a supersede chain checked in CI, calendar and condition triggers and a 30-minute monthly review. A C# tool that audits Bookstore's 15-ADR log, the advice process and the architecture advisory forum, the maintenance status of ADR tools at the time of writing, and a minimum process for a team of six.
Writing ADRs: Decision Records with the Nygard Template, MADR 4.0 and Y-Statements
A good ADR records not just the decision but the question it answers, the options it was made against, the accepted cost and when to reopen it, and it is never edited once decided. Nygard's five-section template, the sections and front matter of MADR 4.0.0, a rejected decision record, Y-statements, the status lifecycle and a real script that enforces immutability in PRs.
What Is an Architecture Decision? Recognizing Architecturally Significant Choices
A decision is architectural, and deserves a record, when it is expensive to reverse, reaches several modules or the system boundary, or moves a prioritized quality attribute scenario. We classify ten decisions from Bookstore's first months with these three criteria in C#, and discuss which deserve an ADR, a design doc or a PR description, who owns the decision, and what unrecorded decisions cost.