Show all posts
12 years ago

Why MS Project Sucks for Iterative Development? Part II

Hammer and Warm Wax

See Part I


Let's take an average software project with full plan created up-front. It appeast that it is hard to support project plan in actual state using MS Project. It is hard to reflect real progress. But why? MS Project is great software, it should be easy. And it is easy in many cases, but not in software development. MS Project is useful when:

  1. Project is very small (a month or two). But in this case maybe it is not required. Use Excel, make simple features list with estimates and that is it.
  2. Project is very large and requires high-level plan. You may create very good project plan for Bridge building, Airplane or Space Shuttle construction. PERT is great in this case and project plan reflects phases, not tasks.

But most software projects have specifics:

  • Average project duration is several months
  • They change a lot and require fine-grained plans ("This feature will be implemented by two people. Joe will create GUI screen within 1d and Matt will program controller within 2d").
  • As a result, it is very hard to keep fine-grained plan in actual state for medium and large projects for WHOLE project life-cycle (the keyword is WHOLE of course).

No matter what tool you are trying to use. Most managers and executives improperly think that Waterfall requires such detailed plan somewhere in the beginning. Waterfall is not the best way for software development, but incorrectly understood and implemented it becomes a real pain in the neck.

You may say that MS Project is just a tool and all I wrote above do not directly depend on MS Project, but on methodology and process. I partially agree, but, once again, MS Project was not designed to support anything but Waterfall or its modifications. It is used for Waterfall and not so many people tried to use it for something else. MS Project + Waterfall = Hammer, but software development in most cases is not a nail, it is a warm wax. You can't make anything but a flat from wax using a hammer.

As you see, there are plenty more reasons to find a better way. Let's step back and look at another process.

Iterative Development

If we can't have fine-grained plan for whole medium/large software project, let's split it on chunks and create fine-grained plan for each chunk when it will be necessary. This idea is not new and called Iterative Development. Whole project split on iterations (exact iteration duration depends on many factors, but usually it varies from 1 week to 3 months) and iteration planned just before start.

This may sound astonishing for some executives. "So we don't know project end date??? We don't have a plan??? Our customers will not deal with our company! What the hell you are talking me?" How can anyone answer these questions? There are two ways to go.

On the first road there is no exact project end date and this road called Customer Satisfaction. You respect them, trust them and produce software they want. Feature by feature, iteration by iteration. Exact date of final release is not required since customer knows that you'll implement as many features as possible based on defined priorities. It is real trust and it is quite rare.

On another road there are many signs with a big red "Deadline" in the end. While everyone wants to be on Customer Satisfaction road, most of us are on Deadline road in fact. This is a real world and, while we changing it, we have to drive some projects on this road. Can we apply iterative development? Yes, but with some restrictions, since there is less trust between developer and customer. Customer expects a fancy project plan, so we will create one, but low-grained. MS Project is good for low-grained plans. The plan will contain project phases and major milestones and, of course, it will contain end date. If customer asks why there are no tasks, you answer that you don't like micro-management and fine-grained plan will be developed later. In fact, customer doesn't care about exact plan, it does care about delivery dates and you've already provided them. Then you may break down each release on iterations and follow first road.

Some off topic. The other trick is to leave project/release scope flexible and this is really hard to achieve. It is harder than make a sculpture from warm wax with a hammer. If customer insists that he should get these features till that date without any deviations - you are in trouble. All you may vary in this case are people and process. And often you can't vary people as well. So the process becomes a single life-saver for you and your team. While it is powerful life-saver, it may not help. Once again, do your best to leave scope or date flexible and focus on Business Value whenever it possible. If not, use iterative development anyway and try to release something useful as early as possible. Maybe customer will appreciate your effort, trust you and you slowly turn to Customer Satisfaction road.

"OK, we may use MS Project for low-grained plans. But what should we use for fine-grained plans?"

I can't point Best-of-the-Best solution, but some important things that your tool of choice should do:

  • Fine-grained plan for iteration should be visible and understandable for all developers without any restrictions
  • Person who performs a task should track time spent on the task. PM shouldn't ask everyone how many times he/she spent on this and that.
  • Plan should be easy-to-change (no dependencies, easy re-allocation)
  • Iteration status should be visible for all (and preferably tracked automatically)
  • Iterative planning should be supported by the tool

In short, the tool should be opposite to MS Project, it should be strong in those areas where MS Project becomes frustrating.

Stop! I Can Plan Iterations in MS Project!

Yes, go ahead and try. You'll quickly discover how it is useful for iterative development and how it is designed for iterative development.

I've planed iterations in MS Project for several projects and it somewhat worked, but this method lacks visibility. Developers don't see plan and don't see progress. You should update actual effort manually and assign tasks using Outlook.

How many features in MS Project you will use for Iterative Development? Gantt Chart, Resources and Tasks. That's it. Tasks will be independent, so critical path is useless and Gantt chart is not very helpful. Leveling… OK, sometimes it helps, but in most cases conflicts may be resolved very easily for one iteration. Reports? Useless in most cases, but you may need something for executives. It appears, that MS Project is too complex and don't bring enough value to justify its usage in iterative planning.

On the other hand, there are many features that you'd better have for iterative planning:

  • Product/Release backlog. The main issue. If you use MS Project, you will have to store backlog in Excel or somewhere else and copy/paste features when required.
  • Integrated time tracking. May be resolved programmatically and with help of MS Project Server, but this is an additional effort and MSP Server used not so often.
  • Work remaining tracking. This practice is very useful to know actual iteration state. Can be resolved the same way as previous item.
  • Iteration velocity concept. If you create an iteration in MS Project, Effort will be Iteration Velocity in fact. But you don't have clear velocity progress picture

So you really may plan iterations in MS Project, but it will be not so simple and natural. MS Project just will not help you much.

  • Brian Kennemer

    Once again you try to say that Project was designed to do only waterfall projects. This is just false. Period.

    You also create the false dicotomy between having a deadline and being focused on customer satisfaction. I dont understand why it is you think these things are mutually exclusive.

    I think the easiest way to read your critcism of Project is through the understanding that you work for a company that competes with it.

    Take my advice: A better marketing strategy is to concentrate on why your tool is good and helpful rather than on why you think the tools you compete with are bad.

  • Michael Dubakov

    We dont compete with MS Project. Period.

  • jasbell

    I am running into the same issues, and am resolving them in a similar way. It would be great to speak with you, and if you would please send me an email. By the way, what software do you think is appropriate for agile development?

    jasbell at i-2000 dot com

  • jasbell

    I am running into the same issues, and am resolving them in a similar way. It would be great to speak with you, and if you would please send me an email. By the way, what software do you think is appropriate for agile development?


    jasbell at i-2000 dot com

  • Meyer

    I would like to see a copy of your MS Project plan without any company info or confidential information so I can assess as to why it will not work for iterative projects, is that possible?

  • indigo777

    just out of curiosity, I tried to google some images of ms project plan for iterative development. not too much success. which might be the sign that these plans are either not visual enough, or no one cares about publishing them on web (even if people have such experience). however, the trend is that if you find nothing on the web – then people don&#39t have too much of this experience and use agile proejct management tools for planning and tracking their iterations.

  • banksy55

    We use jira and the plugin greenhopper for our agile development process and find it very effective.

  • wil

    I found it difficult if not impossible to represent iteration in MS project. Can you show how?

  • Ram

    This blog is very nice and its work is very fine.
    MS- Project is the basic software of Primavera software, and this is the best for my career. after do this course my career is well and in this time i am a project manager. I using MS-Project & Primavera to most powerfully.The BEST institute what I got to learnt MS-Project & Primavera is Engineering Business Experts and Emerging Solutions (EBEES) at Janakpuri Distt. Centre their faculty helped a lot to get my grip on the subject and the expert advice given by the visiting faculties @ EBEES shaped me into an industry demanded person

    Visit –

  • Ramesh

    This blog is very nice and its work is very fine.
    MS-Project is the best step for my career growth, and this is the basic software of Primavera.I learnt MS-Project from EBEES (Engineering Business Experts and Emerging Solution) at Disctrict Center Janakpuri.

    Visit –

  • Carlos

    Very nice point of view of Project. I’ve been using it for years and it is really trick to keep it updated.
    But, it is a great tool.
    I would like to know what software do you use instead of Project.

    I don’t knwo any software that helps giving a visibility of project, tasks and communication (which some efforts from project manager)