The best systems I've built started the same way the best teams I've coached did — with a clear understanding of the constraints before anyone touches the solution.
The parallel
In coaching, you don't design a formation around the players you wish you had. You design around the players on the field, their strengths, their tendencies, the conditions of the game. Software is the same. The best architecture is the one that accounts for the real constraints: the team's skill set, the deployment target, the timeline, the budget.
Simplicity is discipline
Every season, I'd watch new coaches overcomplicate their systems. Three backup plans for every scenario. Contingencies for contingencies. The result was always the same — players froze because they had too many options.
In engineering, I see the same pattern. Over-abstraction. Premature optimization. Systems designed for scale that will never arrive. The discipline is in knowing what to leave out.
Feedback loops
A good coaching session has a tight feedback loop: demonstrate, practice, correct, repeat. A good engineering workflow mirrors this. Ship, observe, adjust. The teams that improve fastest are the ones that shorten the distance between action and feedback.
The takeaway
Sixteen years of coaching taught me that the best systems — whether on a soccer field or in a codebase — are simple, adaptable, and built for the people who actually use them.
