I've Been Thinking

The Parable of The Project
  • Home
  • Parables
  • One day a Project Manager was given a new project.

    He was told the name of the project, the budget and the deadline.

    The name of the project seemed to cover all the Project Manager needed to know about the system he was to deliver, that and a business case that had a few additional details.

    The first thing the Project Manager did was to make a plan. He knew he needed some requirements so he scheduled some requirements gathering workshops, then a development phase, equipment acquisition, a testing phase and a cutover date.

    The Project Manager was happy, he had everything under control, the steering committee was happy - the Project Manager was reporting that things looked good.

    Everything went well until the application developers started writing code.  It was only then that the Project Manager had to start making small adjustments to his plan. The odd module wasn't delivered on time, new modules were identified, requirements that hadn't emerged in the workshops had to be gathered, additional resources were needed and allocated. The plan needed a few changes. But what didn't change was the cutover date. The Project Manager did what all Project Manager's do, assumed that additional resources, longer hours and more effort would see the project team "push through".

    And, like all Project Managers, he was wrong.

    Every time new requirements were identified, more and more re-work was needed. Old modules had to be changed. Database schema had to be changed, changes that impacted all the modules that used the database. The test plan had to be extended because of all the new modules.

    When testing started, users didn't like what they saw and they didn't like the way the system worked. So they did what all users do - they changed their minds. Well it wasn’t really a case of changing their minds, it was more a case of they couldn’t describe what they wanted, but they knew it wasn’t what they wanted when the saw it.

     After all, users are employed to do what users do. They aren’t experts in business analysis, system architecture/design or in system development.

     So they asked for modifications and they uncovered more requirements.

    Once again the Project Manager did what all Project Managers do. They de-scoped the project. De-scope is a technical term, but essentially it means they decided, without consulting the users, that the system would do less than what the business case said it should do. The things that were left out could be added later - by another Project Manager on a different project, probably, possibly, if anyone realised.

    But more testing uncovered a bigger problem. The users had been asked about how the system should work. They had never been asked what should happen when things go wrong. And things will often go wrong in computerised systems. Records don't match, people change addresses; billing and accounting systems sometime get the wrong data. Customers move, they give wrong addresses, goods get returned, payments are refused because the wrong credit card details are supplied, customers forget or are not aware of credit limits. Lots of things can go wrong with business processes. Business analysts spend much of their time worrying about "error conditions". Users don't. they just describe what they expect the system to do - if all things work properly.

    Once more everyone put in more effort and got the system almost ready. Only one step was left - performance testing. This is when the final system is tested for things like response time and the number of concurrent users.

    Now the Project Manager started to get really worried. The system was very, very, slow. And that was with just a few users. When more and more users tried to use the system it, unbelievably so, got slower and slower.

    It wasn't just the Project Manager who got worried. The steering committee started to put the Project Manager under more and more pressure. Why were things late, why did the tests fail, why were there requests for more and more servers? Why has the project suddenly become late?

    Finally the steering committee asked for a project review. This is what they were told:

    • The system will never meet the objectives of the business case,
    • The system has only implemented some of the expected functionality,
    • The design of the system can never meet the performance requirements,
    • Performance needs to be designed in from the start and in this case - it wasn't.

    The moral to this story:
    There is more to defining a system than gathering requirements.

    And whatever you do, don't let a Project Manager anywhere near requirements. Get an architect, that’s what they do. That, and make sure the project delivers what users really need. 

    Bernard Robertson-Dunn, June 2010

    Home        Parables