I’ve been thinking about this for a while now. Why is it that often we cannot agree on what task is more important? Some team members think that we should focus on refactoring. Others focus on the UI or the database. Sometimes it’s all about new features, ignoring the technical debt. As I looked for answers, I turned back to 2 tools: 3X and the Eisenhower matrix.
The Eisenhower matrix… for software development
The Eisenhower matrix aims to make a distinction between important vs urgent stuff. To this end, it creates a matrix based on them:

Ideally, we should spend most of our time on the 2nd quadrant. For software developers, that’s where the real engineering takes place. Quadrant 1 is all about hotfixing due to a bug or to comply with certain regulations. Quadrant 3 is often where sudden requests from stakeholders live—things like UI changes that have no real impact. We can find distractions in quadrant 4 (i.e., shiny new tech that adds no real value).
So, given this tool, we should be able to align everyone’s perspectives, right? Well, not exactly…
The 3X framework
Kent Beck noticed that organizations and products have different stages of maturity. He organized these 3 in what he called the 3X framework. These stages are explore, expand, and extract.
Explore is all about learning. We want to learn what product we should build. There is a lot of experimentation in this stage. POC, demos, and MVPs are all tools to get feedback ASAP. We learn and decide to move forward or change direction. Build it fast and break it fast.
Expand is the natural consequence of growth. Once the product reaches a given number of users, certain bottlenecks start to make themselves visible. We have to remove these bottlenecks to allow the system to scale.
Extract aim to increase profitability. Evolving the product to open new markets. Reducing costs.
The intersection
So here’s the kicker: the things that appear in each quadrant change depending on the stage the product is…



So, where do you think you’re at?
