MethodTasks and ProcessesBenefitsDrawbacksSuitability
Waterfall LifecycleLinear stages: Requirements, Design, Coding, Testing, Deployment, MaintenanceSimple, clear stages, well-defined projectsInflexible, expensive late changes, long development cycleWell-defined projects with stable requirements
Agile (XP)Iterative: Planning, Designing, Coding, Testing, ReviewingFlexible, constant customer involvement, rapid deliveryScope creep, collaboration dependency, not for large projectsFast-paced projects with changing requirements
Spiral ModelCyclic: Planning, Risk Analysis, Engineering, EvaluationRisk management focus, tailored customer feedbackComplex, expensive, expert risk assessment requiredComplex projects needing extensive risk management
Rapid Application Development (RAD)Phases: Requirements Planning, User Design, Construction, CutoverFaster development, user feedback, adaptableCollaboration dependence, less scalable, quality issuesProjects requiring quick delivery with active user participation

Worked Example

The software team that produces De-Duplicator is adding a new feature that can detect duplicated images the previous version could not. The software team must decide which methodology they will use for the project. Some members of the group suggest extreme programming, whilst others would prefer to use the waterfall lifecycle. Discuss the two methodologies and justify which you would recommend.

[12]

How to answer this question:

  • Introduce both Extreme Programming (XP) and the Waterfall Lifecycle, highlighting key features
  • Compare and contrast the two methodologies, explaining how they are similar and different
  • Identify specifics from the scenario - the software is receiving a new feature, and there is a team of people on the project
  • Recommend one methodology based on the given context, providing justification

Answer:

Answer that gets full marks: The software team for De-Duplicator is facing a choice between two methods to develop a new version of the software: Extreme Programming (XP) and the Waterfall Lifecycle.

XP is like building something with the ability to keep changing and improving it as you go. It’s flexible and allows for continuous feedback and changes. This method works well when you need to keep adjusting things during the project. In the case of the De-Duplicator project, where the team is adding a new feature, this flexibility could be a real advantage so the team can discover the best way to implement it.

On the other hand, the Waterfall model is more like following a strict step-by-step guide. It’s organised but not very flexible if you need to make changes later on. While this structure can be good for some projects, it could make it tough for the De-Duplicator team if they uncover problems in the software while adding the new feature.

Given what the De-Duplicator project needs, XP seems to be the better choice. Its flexibility and ability to adapt to changes align well with a project that might require ongoing improvements or customer feedback loops. The Waterfall model’s lack of flexibility could make things difficult if requirements change. So, Extreme Programming would likely be the recommended choice for this project, letting the team keep things flexible and continuously aligned with what users need.