The way your teams are structured shapes the software you build—and vice versa. In this article, we explore the profound connection between team and software composition through the lens of Conway’s Law, uncovering how misalignment leads to chaos and inefficiency, while thoughtful alignment drives collaboration, modularity, and adaptability. Learn why your true architecture isn’t in diagrams but in the code itself, and discover actionable steps to align your teams and software for better outcomes.
Why I Joined Test Double
When I say I’m joining Test Double as their new VP of Delivery, I’m not just making a career move—I’m making an alignment move. This is a company that already values the things I value. They’ve built a strong culture, a strong team, and a strong set of practices. I’m not joining to overhaul anything. I’m joining to help make something great even better.
Small Deployments; Big Impact
When teams hear about small, frequent deployments, they often picture chaos: code breaking, users complaining, and developers scrambling to fix issues. But in reality, small deployments do the opposite. They reduce complexity, amplify feedback, and create a smoother experience for both users and developers.
Fixing Full-Stack Teams; Specialization Required
Full-stack teams are a brilliant concept. They’re designed to have everything a team needs to solve problems in a given domain—front-end, back-end, database, security, you name it. When done right, these teams are little microcosms of outcome achievement, creativity, and autonomy. They blur skill boundaries, enabling faster delivery and real-time learning across disciplines. Sounds great, right?
But there’s a catch. Somewhere along the way, we started confusing “full-stack teams” with “teams of full-stack engineers.” When I say we, I mean it. I did this too. I was on the full-stack teams of full-stack engineers bandwagon. But that shift—over time—has cost us. By prioritizing generalists at the expense of specialists, we’ve inadvertently traded depth for breadth and innovation for adequacy. Let me explain.
Collaboration Contracts beta release
Today, I’m excited to announce the beta launch of Collaboration Contracts, a lightweight app designed to help teams—especially distributed ones—quickly define and manage their roles in decisions. Whether you're using it to bring clarity to one-off decisions or baking it into how your team operates every day, the app is built to support alignment, accountability, and smoother collaboration.
Making the Flow of Work Visible with Cumulative Flow Diagrams
Frequent releases improve outcomes
Whether you’re still figuring out your general product offering or you are enhancing and adding capabilities to a well established product, the ultimate test of whether or not you’ve hit the mark (or are at least trending in the right direction), is how your audience engages with what you’ve created. Yes, you can (and should) do market research before designing and coding up a potential solution to an identified problem, but the only way to know for certain, is to see what happens when your concepts come in contact with your audience.
Before you Judge and Jettison, Compare and Combine
So you’ve got some problem you’re trying to solve (Know the problem you are solving). You’ve agreed to work together on coming up with a solution. So you call a meeting and ask everyone to bring some ideas.
The objective of the meeting is to select the “best” option among the ideas presented.
In my observation, most folks tend toward an approach I call “Judge and Jettison”.
Opportunity Solution Trees
In this article, I want to go more in depth on Opportunity Solution Trees; what they are, how they are used, how to create one, and how I think about them slightly differently (but only slightly) than folks like Teresa Torres who really introduced them broadly to the Product community in her book “Continuous Discovery Habits”. This book, by the way, is a must have for anyone who works in software product development - not just folks in product-specific roles.
An Experiment Canvas
Release ridiculously often
Be Meticulous about composition
Composition refers to the way in which something is put together. Composition is a key element in many of the things humans create. Whether it be a musical piece, a painting, a garden, or a building, the way we assemble the core components — the composition of them — has a significant impact on the overall experience.