Don't Accomplish Everything
P50 goals, the shift to exploration, & managing in spite of volatility
“I’m sorry but I only accomplished 3 out of my 6 goals for the semester.”
“Excellent! You’re right on track.”
What the hell just happened? I was so confused. The setting was my first performance review at Facebook with my manager David Recordon (hi David 👋🏻). I walked in with dread. I had 6 goals for my first 6 months. No matter how hard I struggled, I just couldn’t get 3 of them done. I figured I was done for—Facebook at that stage was notoriously impatient with under-performers.
Instead, I got a pat on the back & an “exceeds expectations”. Some of the work I’d picked up over the semester, work that distracted me from my initial goals, turned out to be particularly impactful.
3X: Explore/Expand/Extract
If you haven’t heard of 3X, it’s a framework for thinking about how Facebook in those fairly-early days (2011) managed to:
Run reliably
Scale rapidly &
Innovate
All at the same time. The basic idea is that there are 3 very different games going on in software product development:
Explore—in which we are searching for a new super-linear source of value
Expand—in which we’ve found such a source but struggle to scale
Extract—in which we harvest that value, maybe to pay investors, maybe to fund further exploration
What’s confusing about software product development is that all 3 phases look similar—we are shipping increments of value frequently & reliably—even though the goals & tradeoffs are starkly different.
What Facebook at that time did well was adapt the management of projects to the stage they were in & then manage the transitions between the stages:
Explore→Expand—Wild, loosey-goosey creativity converts to intense focus
Expand→Extract—Back off on the intensity (which isn’t sustainable), institute multi-level management (required because of the number of people now involved), separate infrastructure from product
Managing Extract
Software development management has been in Extract for at least a decade. We’ve known how to manage teams for excellence, even if folks often don’t.
Dependencies between teams imply the need for reliability. If my team only gets a cookie if your team delivers, then I want to be damn sure your team is going to deliver. If that means that schedule & cost stretch out, that’s the price I’ll pay to keep the whole machine humming.
If you learned managing a few years ago & manage through KPIs or OKRs, you probably learned in an Extract environment—inter-team dependencies, scale, roadmaps. All makes sense. All goes together.
P50 Goals
So, what was going on in the opening story? Was Facebook going soft? Ha! Not likely. We drove about as hard as I’ve ever driven. So why was accomplishing half of the goals considered good performance? Even stranger, why would accomplishing all of one’s goals be considered under-performance?
It’s the difference between Extract & Explore. So much of what we did at early-to-mid Facebook was exploratory. We knew social media was going to create value but we didn’t know exactly how. In such an environment, six months is forever.
If I had accomplished all of my goals for the semester, that would have meant either:
I hadn’t learned anything, & learned nothing at a time when learning was hugely valuable.
I had sandbagged my goals, which limits the potential value I could have created.
And so the policy was that you were supposed to achieve roughly half of your goals. This policy creates incentive to learn & discover while also creating incentive not to coast.
Dependencies
Explorations should have as few dependencies as possible. They are small but extremely sensitive to delay. Extractions can & should have dependencies because you’re shooting for economies of scale. This is a fundamental difference often missed by those who have spent the bulk of their careers in one mode or the other.
P50 goals don’t work when extracting—too many disappointing surprises. “What do you mean you didn’t get it done?!? We were counting on you.” But when the value of the surprises is greater than the potential economies of scale, P50 goals are a way to incentivize discovery.
We have all been forcibly relocated from Extractistan to Exploristan, whether the topic is software development, managing software development, or software product development. It’s time to adapt to the local customs.
