Essays

Longer form writing covering various software engineering topics.

Distribute Design Authority with Architecture Decision Records
Introducing Architecture Decision Records (ADRs) to a team takes time and dedicated practice. In our experience, ADRs help teams improve their design practices and eventually learn how to distribute design authority.
Harvesting Mob Programming Patterns: Observing How we Work
Teams who use mob programming can improve the effectiveness of their mobs by reflecting on how the mob naturally operates and harvesting patterns that can be intentionally applied in the future.
Headwinds to Redesign
Teams that plan to redesign later nearly always face business, technical, and social forces--headwinds that prevent them from initiating a redesign effort.
Put It to the Test: Using Lightweight Experiments to Improve Team Processes
Running scientific experiments is an inexpensive and effective way to resolve team disagreements and drive process improvements. Also, pair programming is an absolute super power (and we learned this by running an experiment).
The Psychology of Architecture Decision Records
Architecture Decision Records (ADRs) are more than just documentation; they are also a powerful tool for transforming a team's culture.