A while ago I wrote about modeling a hiring funnel as an example of creating a system model, but that post doesn’t explore how the process of evolving a system model can be helpful. This post does.| lethain.com
For a long time, the path to engineering manager began with a prolonged stint of technical leadership. Then you’d transition into an initial management role that balanced people and technical responsibilities. Some companies call this a tech lead manager role. Folks entering those sorts of managerial roles were often the senior-most technical contributor on their team. If they struggled with the transition, many of them would fall back into the familiar habit of technical leadership instead...| lethain.com
Big Ball of Mud was published twenty years ago, and rings just as true today: the most prominent architecture in successful, growth-stage companies is non-architecture. Crisp patterns are slowly overgrown by the chaotic tendrils of quick fixes, and productivity creeps towards zero.| lethain.com
In small organizations, it’s easy for folks to be aware of what others are doing and to recollect how you’ve previously approached similar problems. This hive mind and memory creates a consistency to decision making that correlates strongly with quality. The subtle slide into inconsistency is often one of the most challenging aspects of evolving from a small team into a much larger one.| lethain.com
Tidy First? by Kent Beck captures the spirit of Ousterhout’s A Philosophy of Software Design while also recognizing the inherent tensions of developing software within a team and business. You can also read it in about two hours. Recommended! A Philosophy of Software Design by John Ousterhout is one of my favorite books on software design. When I heard that Kent Beck had a new book out, Tidy First?, that was deliberately engaging with similar content but a markedly different pedagogy, I kne...| lethain.com