The Planning Game

Clean Code, Episode 47

By Robert C. Martin

53 minJun 2017

In preparing for battle I have always found that plans are useless, but planning is indispensable. -- Dwight D. Eisenhower.

This episode is all about planning a software project. Why do we plan? We plan so we can manage. What do we manage? We manage the deviations from the plan. As Eisenhower said, the plan is eventually useless -- the predicted results are not realized. And yet, having a plan, and predicting results is indispensable.

It is this fascinating oxymoron of planning and execution that this episode describes and explains. And the solution to the oxymoron? Tom Demarco said it best:

You can't control what you can't measure. -- Tom Demarco, Controlling Software Projects

In this episode you will learn about measurement and control; and one of our first topics will be the Iron Cross of project management. The iron cross describes the "physical law" that constrains all management efforts. It also supplies the control knobs that managers use to drive the project to the best possible outcome.

You will learn that proper management requires data; and that agile is all about producing that data.

You will learn how short iterations, bad estimates, and rapid disappointing feedback conspire to help lead a project to a good outcome (if not the predicted outcome).

You will learn that the aim of agile development is to destroy hope and provide a cold dose of reality to managers and developers -- because good management is impossible without facing reality.

You will learn that iterations (sprints) cannot fail -- because the purpose of iterations is to supply data; not to finish stories.

You will learn about Yesterday's weather, the notion that the best predictor of what the team can do is what the team has already done.

And, most importantly, you will learn the immense self-discipline that is required, by all parties, when planning and executing a software project.

And this is just part one. Wait till you see part two! That's where the rubber really meets the road.

Oh, yeah, and in this episode we'll also solve the world's energy problems.