Designing systems before you build them
Engineers (especially junior ones) hate planning. “Let’s just start building,” the thinking goes. “We’ll figure it out as we go.”
There are projects where that works — tiny, throwaway internal tools. There are also projects where it destroys a quarter of a team’s year.
The whitebox architecture review
Before I write any production code, I spend an afternoon drawing the system on a whiteboard: data flows, failure modes, service boundaries. Then I walk through the three most catastrophic things that could go wrong and make sure none of them are single points of failure.
One afternoon of this discipline has saved me, over the years, literal months of rework. It’s not an over-investment. It’s the cheapest way to catch bad decisions that haven’t been made yet.