The Basics we must NEVER Forget
Some History
Historically there has been a big divide between 'Waterfall' and 'Agile' software development methods.
Waterfall - e.g. SSADM tend to have the following key features
Some Waterfall techniques suggest strong feedback loops between these phases and allow a project to 'iterate' between the phases (which almost makes them agile). Agile - e.g. SCRUMM, XP, DSDM, RUP tend to have the following key feature
In reality very few projects strictly follow either approach. Most end up somewhere in the middle. Many start off with waterfall style defined requirements and then use an agile like iterative approach to hit their goals. Others start off with weak requirements (agile style) but end up being 'fixed' by writing strong clear requirements during the project.
Unfortunately (for the IT industry as a whole) the advocates of Waterfall and Agile (well mainly Agile advocates) appear to believe they are on some religious crusade and therefore people find it really hard to admit to joining the two approaches. I have seen quite often a 'smart ass' come into a project and say Either
And what is really annoying - is they are often a bit right. I don't mean all will be well - as there are no Silver bullets - but that adding some new ideas midway through a project is a useful way to stop group think and to stop people hiding things. In addition to the agile/waterfall debate - there is the Project Management approach debate. Many development staff often see Project Management as kind of seperate to the development process. I think this is a major mistake. Politics, issues, change control, risk management, reporting and tracking are critical to any project regardless of the development approach.
When looking at Project Management techmniques the same test should apply as to any other technique - does it help deliver the business need.
So to recap project techniques should be selected to meet the business need.
The above sentance is a good summary - but next we need to understand business need. It often is a combination of
- Delivery of some features within a timeframe
- Delivery of a cost/benefit analysis
- Delivery within acceptable tolerance for risk See my page on determining business need for some more thoughts on this.
|