Item 17: Refactor Commonalities to Find General Problems

Say that you've built your MVP for your product for an intial stakeholder, and they love it. Now, it's time for the product to expand. Your next customer, or group of customers, now are telling you that they need vastly different things. Who do you listen to? What do you do? How do you get everyone aligned on the same page? Your first inclination might be just to build all of those different things for them. This is at best an unmaintainable solution, at worst an incompatibility issue between different parts of your system. In order to serve your stakeholders well, and quickly and efficiently improve upon your system, you want a solid base to build upon. In Software, we do this by refactoring. Refactoring allows us to take code that we've already written, and change it such that we incorporate new code into the codebase, the overall codebase remains maintainable. It turns out you can do the same thing with product ideas.

When faced with new product requirements, try and "refactor" the ideas of the new requirements and old requirements such that you can find a commonality. Use that commonality as a base to frame both, or multiple, ideas upon.

Once you've found that commonality, you can align customers on that commonality.

Science here is the scientific method: observations lead to theory.

Solid foundations are as important for problems as they are for solutions.