“We’re accumulating too much technical debt,” says the CTO, “we badly need some time to work on magic-refactoring-XYZ.”
The product guy nervously answers a bit too quickly: “Are you forgetting about those killer-features-of-the-year we’ve been putting off?”
“What about funnel analysis and better tracking of our customers?” yells the marketing guru.
And what about internal user interfaces for the support team? And time to go to recruiting fairs? Outreach efforts? 20% time? Exploring and experimenting with new technologies?
Congratulations, you’re past the “oh my god, let’s get this product out” phase and onto running a business. If you want to continue to be successful, Dealing with Darwin by Geoffrey Moore, or how to deal with innovation’s life cyle, needs to become second nature. Of the many gems and insights Moore shares in his book, the “core / context” framework has had the biggest impact on our day-to-day decisions at Wealthfront.
Strategic Importance: Core & ContextPicture a two-by-two matrix; Four buckets to help you classify tasks or projects. Horizontally, you'll capture strategic importance: the two columns are "core" on the left, and "context" to the right. Vertically, time sensitiveness: the top row is "mission critical" and at the bottom "non-mission-critical".
Core tasks differentiate your company, it's the innovation, the new, the shiny. From Moore, "[core] process creates differentiation that wins customers". Launching a user experience revised from the ground up was our major core task recently.
Context, is the rest. All the menial things that keep you rolling and that you must do to continue on you path. Proper backups falls in that bucket. If you're lucky to be a regulated company, compliance is at home here. Running a beauty product company? Inventory management.
Time Sensitivity: Mission CriticalMission critical is self explanatory, as Moore states: "[a mission critical] process shortfall creates serious and immediate risk". Even a small degradation of mission critical processes will quickly degrade the business as a whole. Recently, we've been wrestling with passing spam filters when delivering critical communications to our customers. In response we decided to move to SendGrid, a reliable, reputable and scalable mail delivery mechanism. These kinds of decisions can make the difference between operating a business and having an expensive hobby.
Non-mission-critical is all the rest; processes and tasks whose impact is going to be felt long term. Examples include iterating on product requirements, doing more A/B testing, refactoring code to avoid technical debt and supporting customers from the remnants of your previous strategy or business (e.g. fixing bugs in IE6 for Microsoft).
Putting the framework to workSimplified, the analysis framework can be summarized as follows:
|Mission Critical||Running today’s business||Keeping the lights on|
|Non-mission-critical||R&D, Long term projects||Legacy|
Progress at a company follows a natural cycle of innovation. New projects start on the bottom left, move up to core and mission critical, then shift right as business stabilizes and processes get oiled. Finally, regardless of how much of a visionary you are, the bottom right bucket at the intersection of context and non mission critical is the end of the journey until things are fully phased out.
While most companies have projects in every bucket at all times, young and growing start-ups are different: for some time each transition your company experiences will be new and will take you into unknown territory. Managing this change and taking the company though the full cycle for the first time can be challenging, the framework can be a important tool in helping guide your planning decisions.
From a high-level perspective, you want the core to occupy most of your organization time. At the same time you should actively focus on shrinking the resources allocated to context or, at the very least, keeping them constant. Depending on the stage of the company, the emphasis on R&D (core, non-mission critical) will oscillate between 10 to 30% while legacy (context, non-mission critical) should be less than 5% at all times. When things start getting out of balance it is time to take corrective actions.
In our latest round of planning, we consciously decided to move the needle towards context away from core. Previously, we had been hasty in delivering key features. As a result we found that keeping product reliability at the level we have come to expect was requiring too much manual effort.
We decided on the following rough resource allocation: 20% for "core / no" (R&D), 40% for "core / yes" (running the business), 40% for "context / yes" (keeping the lights on) and whatever is left for "context / no" (legacy support). With these guidelines our planning conversations were tremendously simplified, allowing us to focus on prioritizing tasks per bucket and taking the top N% for each specific category. In the pie chart below, you can see a visualization of our Q4 2010 plan which we are working on as we speak.
Closing ThoughtsSomething of great interest to me is the capacity of certain companies to take "traditional" tasks and turn them into key differentiators, reducing the burden of context and instead pushing it to core. Amazon Fulfillment is a big part of the smooth experience millions of their customers have daily. Zappos' customer service put the spotlight on the successful shoe company. At Wealthfront our extreme agility is an enabler for our business and turns a cost center, operations, into an enabler.
The introduction of the core / context analysis framework has allowed our team to converge much more quickly on unanimous decisions. Every stake holder has a place to make his or her requests. If these requests are declined, we have a strong rationale and long terms goal we can rally around alleviating political pull or grudge.
Working within the framework and creating a visual of our execution forces us to be intellectually honest and helps keep us in check with reality. Our current priorities displayed within the context of the framework make it much easier for tech leads to understand that the needle will shift back to core and as a result fancy refactorings at the bottom of the priority list will have to wait.