Tuesday, 14 October 2008

Key Methodologies

Key methodologies

Martin Courtney, Computing, Tuesday 14 October 2008 at 12:24:00

Most software development projects take one of three forms:

Waterfall
Waterfall defines a project-based development cycle that flows steadily downwards. There is a strict sequence of development from beginning to end, where each stage of the cycle must be completed before another is started, and there is a lot of emphasis on documentation. The development team is usually disbanded after handing over the finished article to the support team. The Waterfall approach is considered most useful when there are clear, stable system requirements over the duration of the project, but does not work well where upstream processes, such as a change in the business requirements, need to be accommodated.

Iterative
Once widely known as rapid architecture development (RAD), the iterative approach follows a sequence but splits the lifecycle into a number of steps or iterations that allow the software to evolve based on enhancements and modifications performed at the end of each stage. Iterative methods are more focused on delivering a product rather than completing a project; allow component parts of the software to be developed incrementally within pre-defined time limits – typically two to six months; and progress is tracked by earned value analysis measures.

Agile
Agile methods can include Scrum, Extreme Programming, Dynamic Systems Development Method and other incarnations. There is no sequence; all the activities happen simultaneously in about two to six weeks; and completion does not necessarily lead to instant deployment. They can appear to be unstructured and chaotic to the untrained eye, and Gartner estimates that up to 60 per of staff in large organisations will be unable to handle the tight collaboration and constant interaction between team members they require. But agile methods are useful for building new software products or processes where there is little or no understanding of the requirements or where those requirements are constantly and rapidly changing. Agile methods suit BPM- and SOA-based development, but are mostly used to build internet software.

No comments: