I have just returned to work and spotted this thread. It is very interesting, if not a bit conventional. I have only had a minutes scan of the replies, a lot of which seem very good within the context of conventional management.
PDQBach gave an excellent reply, but there were many others. One frightened me was the one that said that if you work in a certein way, 'you can always slip a few features in'. This in my book is a complete No-No. The project manager has to keep the project sponsors exactly informed of what is happening.
In my experience, all the best projects (and a high percentage of those that survived through to completion) were very flexible in their approach. I have actually run some very large projects with a considerable element of flexibility. It just needs to be monitored (and to some extent controlled.
Let me now be totally extreme.
'Agile Projects'.
PDQBach quotes significant project constraints are:
[ol][Li]Budget[/Li]
[Li] Timescale [/Li]
[Li] Specification-SOW [/Li]
[Li] Change Management [/Li][/ol]
Now, if changes are occurring all the time, then the change management system MUST be very flexible and responsive, so that the SOW ALWAYS tell what is being produced. None of the 'slipping' something in nonsense. Given this, we only have the first three of the above issue to plan around.
Normal (Waterfall) approach.
Normally, the Budget is the overriding constraint. 'Any greater cost and the project will be canned!'
Time scale is also set although this is more variable (can be stretched). Where does the extra money come from? Well there was more in the Budget than the management let on. It is a matter of bluff and double bluff, and it is this that causes people to think they can 'just slip things in'. The Project Sponsor is seen as the 'Enemy'.
When the Budget really does run out, then the spec gets cut at the last minute. Whatever cannot be finished within a few weeks is not in the SOW any longer, even if it is a very important feature. Often 50% of the features are not complete; well they are all around 80-90% complete, but there is no budget left to finish them. If the missing items are critical to the system, a decision then has to be made whether to extend the budget or 'can' the project. The former puts the Project Sponsor over a barrel, where they would rather NOT be. The second wastes a lot of good money.
Agile Approach.
We set a genuine Budget and Timescale. There may be hidden contingency, but that is less important now, because, 'come hell or high water' the project ends when either the budget or timescale run out. The key constraint is normally the Budget, but the timescale is usually set as the fixed end date.
The spec is identified just as a list of 'use cases' (things the users want to do). These are prioritised in the usual manner and are then presented to the project as a prioritised list, without any selection of what is in scope and what is not in scope.
An 'inception' phase is set up to set up the team, their working environment etc. During this period, the Business staff, BAs and Designers put their heads together and come up with a broad description of what the first few use cases involve and possible a design for the 'Happy Day' scenario on a couple of them. Certainly NOT at a 'Sign Off' quality. The Developers have decided on a system and architecture, development tools etc.
This is then followed by a sequence of fairly short 'elaboration' phases. For each of these, the developers decide what they can produce, and then set about doing it. During the phases they can consult with the Business/Design staff to ask questions, which can even be 'Wouldn't it be better if it did X instead of y?'.
Their task is to produce something workable at the end of that itteration. The user can then change it, add features etc, as long as they stay within the defining use case description. The developers then add these feature, plus some alternate path scanarios during the next itteration and so on. Soon, the key features of the project are working and the Business has 'slipped' in many good features.
Delivery time arrives. What we have is most of the key features working, better than we could have every specified them. Other less critical features are barely started. Because of the Pareto Rule, that 80% of the value comes from 20% of the functions, half the system may not yet have been built, but over 80% of its key objectives could be met.
Now the Project Sponsor is NOT over a barrel. They have a working system, possibly with reduced functionality, but enough functionality to avoid the 'Canning' decision. Also, it is now very easy to see exactly what any extended budget would achieve. There may be 6 features out of the remaining 20 that would make a significant difference, the the other 14 can be scrubbed, unless, they can be 'slipped in'; The team MUST however complete the 6 important ones.
This cannot be achieved without some excellent project management.
[ul][li]That 'list of use cases' must be maintained very strictly; Change Requests at a very high level, but fewer than using formal specs. [/li]
[li]The work to be done in each itteration is very flexible, but it MUST be testable. Write outline acceptance tests as the spec.[/li]
[li]Another thing that needs to be managed, is the rationing of time. The Business/Designers must be aware of the cost of bells and whistles. "Too many and you dont get item 15 in the list"; but they decide whether it is worth it. [/li]
[li]So the manager MUST monitor the speed of progress down the list and keep all parties informed.[/li][/ul]
I have worked on 4 projects that were a bit like this (three of them declared they were using this approach). It certainly made a difference concerning the moral in the team (the team includes the project sponsor; they are no longer the 'enemy'). The one with the least formal project management was a great success. The others were stilted, with the project managers still trying to negotiate the next itteraation with the sponsor, and NOT with the developers. Also dont try it on a team of ex mainframe, formal methods staff. A number will leave, a few die of shock and the rest will still be sitting at their desks having done nothing but shake since the project started.
Good Management is the key to success.
The key thing is to stick to the plan; 'What plan?. Well
[ul][li]the end date,[/li]
[li]the prioritised list and [/li]
[li]extrapolations for the speed down the list. [/li][/ul]
Even if, when you hit the end date with only 20% of the system complete. Deliver that, because it should ALL work.
If it is NOT enough to go operational with then you have a good measure of the real cost of the project; it can continue or be 'canned', but this judgement is made with much stronger information than with the Waterfall method.
If it is enough to limp along operationally, then the method worked, and you get the credit. The project sponsor just has to decide how much more money would make it a reasonable system.
Gil
"Why is it that the one item that we rarely see on a list of risks to a project, is the 'Project Management'? " ;-)