Fork, Don't Merge: Why I Prefer A Variety of Options Over Early Agreement
Today, I want to share my concerns about a trend I’ve noticed in many companies: jumping to agreement too quickly when debating solutions.
It feels like teamwork, but I’ve seen it dull good ideas and lead to weak results. Instead, I’ve found that forking ideas early, letting them grow separately before blending them, works better.
Read more…Mastering Software Craftsmanship: Making the Change Easy, Then Making the Easy Change
Kent Beck’s timeless advice, “Make the change easy, and then make the easy change,” is a guiding principle for software craftsmanship.
It’s a simple yet profound idea that should resonate with both developers writing code and leaders shaping technical strategy. At its core, this philosophy advocates for intentional preparation to ensure changes to a codebase are smooth, predictable, and sustainable.
Read more…Introducing Abstraction Deviation Impedance
The Search for a Better Term
Over the years, leading teams and advising executives, I’ve often used “technical debt” to describe those persistent issues that slow us down or make changes risky.
Read more…AI-Powered Dual-Track Product Development Before PMF
I wonder whether AI can enable a dual track model for building products while finding product market fit.
The Historical Problem
So far, companies were forced to choose between speed of validation and iteration, and stability, scalability, and maintainability.
Read more…Why Your Codebase Fights Change (And How to Fix It)
If you’ve worked with software for any length of time, you’ve seen it: a codebase that starts as a lean, focused system can morph into a costly, resistant beast without careful stewardship. I recently led a workshop on this topic, and it sharpened my perspective on what drives long-term success in development. What’s difficult isn’t implementing algorithms or optimizing data structures. It’s about ensuring that ongoing changes remain affordable, low-risk, and efficient. For those steering teams through the pressures of tight deadlines, growing systems, and collaborative demands, managing complexity is what keeps projects on track, budgets in check, and teams productive.
Read more…