How DDP is Different
Every new project is a learning experience, with countless surprises along the way. A good planning methodology should attempt to capture that learning. DDP places learning at the center of the planning process, with an emphasis on maximizing the amount of learning per dollar spent. In order to achieve this, it introduces several key differences from standard planning methodologies.
First, traditional planning works in the forward direction, starting from a viable model of a project's likely costs and revenues to estimate the venture's profit margin. Discovery-driven planning works in the opposite direction, asking you to state your required profits clearly up front, before you project any costs or revenues.
It should never be enough for us to simply plan a project, estimate our likely profits, and then green-light the project. We should know in advance what we are trying to achieve and where we want to end up. It should never be enough to know that a project will be profitable; we should start by asking how profitable we need the project to be. Before you even begin planning, ask: what profit margins and ROI do we require in order to even make this investment acceptable in the first place? What level of costs are we willing to bear to reach that goal?
By forcing you to state your required profits and ROI up front, DDP ensures that you clearly define a set of unbiased hurdles to test your project against. If your project's costs and revenues can't clear those hurdles, that gives you a good justification for abandoning the planning exercise at that point and moving on to other, more promising ventures.
A second major difference of discovery-driven planning is that it focuses explicitly on learning. The DDP process asks us to separate our knowledge -- the things we can state with absolute certainty -- from our assumptions. For example, if we put in a spreadsheet that Apple will take 30 percent royalties from a product on the App Store two months from now, that's a well-known fact and we unlikely to change in the next two months, so it counts as knowledge. On the other hand, factors such as project costs, future sales, development time, customer retention, and user demand for our product or any of our in-app purchases are all highly uncertain until they actually happen, and we can only estimate them within a certain range. They count as assumptions.
All of our assumptions are ranges of possible values, not point estimates. Although the initial stages of discovery-driven planning ask us to pick the most likely values for our assumptions, the later stages of planning require us to specify a full range of possible values for each. As product development proceeds, we should be able to gradually reduce the range of uncertainty around all of our different variables. The goal is to transmute our assumptions into knowledge until there are as few unknowns as possible by the end of the project -- or at least, until we can be confident that any variation inside the range of all of the unknown variables will not sink the project below our profitability hurdles.
By using ranges, we are acknowledging the unknowns, and then working to determine which assumptions are the most important using a sensitivity analysis.
DDP introduces the concept of the assumption-to-knowledge ratio -- the ratio of all of the collected uncertainty around our project against the things we can state with certainty. DDP focuses on reducing the assumption-to-knowledge ratio throughout the project lifecycle as quickly and cheaply as possible, asking us to prioritize those efforts that will offer us the greatest reductions to the assumption-to-knowledge ratio at the lowest cost.
This allows us to build any number of sanity checks into the plan itself, so that if our assumptions turn out to be wrong at any point and the project no longer appears likely to meet our hurdles, we can either abandon it or attempt to adjust course with minimal financial loss. We never want to be 90 percent of the way into a project before we realize we face intractable technology obstacles, that our external development partner has delivered unusable game assets, or that our expected customer base does not exist.
DDP asks us to attempt to nail down this uncertainty as early and as cheaply as possible, prioritizing those efforts that will reduce the assumption-to-knowledge ratio the most quickly at the lowest cost.
Finally, DDP also places a strong emphasis on redirection. When we find that our plan no longer meets our initial financial hurdles, we're encouraged to attempt to modify the plan by scaling it up or down, finding ways to cut costs, trying different revenue models, or otherwise adjusting it in a way that will get it past our financial hurdles.
As a result of all of these factors, the DDP planning process grows beyond an exercise to simply estimate project scope and viability and becomes a tool to actively identify and manage risk. It is an exercise in disciplined reasoning that forces us to clearly articulate what must be accomplished and how we plan to accomplish it, separate the knowns from the unknowns, and plan in a way that will expose the unknowns to the harsh light of reality as quickly and cheaply as possible.
|
I'm sure it could be an article in itself, but could you speak to the issues of bridging the gaps between discovery-driven planning and development methodologies over the SDLC? I understand the connection between driving your development cycles with input from the discovery-driven checkpoints, but it seems to me that this is more geared toward agile methodologies than more front-loaded design schemes. Are there any key factors to integrating DDP with specific design methods that we should be aware of?
DDP is really a very broad project planning and business planning framework that can be used for almost *any* kind of planning, regardless the scale or even what industry it's in.
It's much more of a high-level, big-picture, ten-thousand-foot-view type of planning framework, and you would generally use other software development and planning methodologies inside of the DDP plan you create.
You're right that DDP does lend itself more toward agile methodologies. Non-agile methologies like waterfall tend to assume correctness from the outset (from http://en.wikipedia.org/wiki/Systems_development_life-cycle : "Sequential or big-design-up-front (BDUF) models, such as Waterfall, focus on complete and correct planning to guide large projects and risks to successful and predictable results").
And we all know that that certainty doesn't really exist in software, much less in game development, where you combine all the unpredictability of software development with the added unpredictability of creatively-rooted projects.
DDP, on the other hand, is basically taking the opposite approach. It says to the planning team: "Start by admitting how much you don't know and how much you can't predict. Then identify all of those parameters as best you can, figure out the boundaries on the uncertainty associated with each one, and use the DDP system to figure out which uncertainties represent real risks and sort them by risk. Then you can gradually corral those risks over time as you go from one Checkpoint to the next and gradually reduce uncertainty by converting your assumptions into knowledge."
The uncertainty can arise either because we're missing some amount of a priori knowledge (say, we might not know a certain parameter in advance, even though the parameter has a definite value -- for example, we might not yet have done the marketing research to figure out cost of acquiring a user on mobile, even though it is a definite dollar figure that many companies know precisely).
Or it could be because it's something that will happen in the future and there's inherent uncertainty involved (say, we hire 10 programmers and expect them to be done in 2 years, but we don't know if they'll actually get it done, if our design changes will push their schedule to 3 years, if our lead coder will have a heart attack, etc, etc).
In either case, DDP can help you get a handle on where the biggest risks are really hiding and help you build a plan to identify them, quantify them, and manage them.
I've always been pretty agnostic about it, but I definitely think Scrum has its limitations.
There's really nothing inherently wrong with it as a day-to-day planning methodology, but it seems really incomplete to me. Scrum tends to be totally focused on the short term, and there's very little focus on long-term planning.
And that just doesn't work.
Even if you don't have a fixed schedule or feature set, or you're building your game under a huge cloud of uncertainty for whatever reason, you HAVE to do long-term planning at least at some level.
I've worked on a few projects that used Scrum and/or ScrumWorks software at some level, but were actually totally ineffective teams because they ended up chasing their tails rebuilding their own games more or less from scratch every six months.
So an artist would come in one morning and say, "Hey, guys, I just had this amazing new creative idea! We gotta do this!" And the team would immediately throw out the last six months' worth of work to focus on this awesome new idea ... which would then be thrown out itself six months later in favor of something else.
Their planning was only looking at the here and now, and no one was looking at the big picture or holding the team accountable for it.
That really drove home for me that for all its benefits, Scrum by itself is no guarantee that all that task tracking necessarily translates into any actual progress toward a goal.
So, bottom line, I think that combining Scrum with DDP could be a good approach, if you were to use DDP for the overall, long-term planning aspect, and then use Scrum (or some good adaptation of Scrum, or another good agile methodology) for the short-term, day-to-day and milestone-to-milestone planning.