Below we have highlighted some popular methodologies, including their strengths and weaknesses.
Agile project management involves breaking a project into smaller pieces that can be finished, tested, polished and delivered separately from each other. Continuous collaboration between project team members and project stakeholders is critical. Agile is typically used in software development, and is a foundation for other methodologies such as Scrum, Lean, Kanban and Six Sigma. The methodology was developed by a group of people who felt traditional, linear methods like Waterfall, were too rigid for software development. Its values and principles have been put forth in the Agile Manifesto.
- Flexible, highly adaptive to changes in the product
- Because you can make changes, it is easier to add up-to-date features
- Less defects in the final product
- Team members must be up-skilled on chosen Agile framework
- Risk of scope creep – the flexibility of Agile and lack of a definitive plan for the project can take your project too far from the orginal idea
- Lack of project documentation – method not process-oriented and requires quick response to change
An Agile derivative, Scrum combines aspects from traditional (Waterfall) and Agile methods. It was originally formalised for software development projects, but can also work for any complex, innovative or new product. Like Agile, it breaks the project down into short, independent cycles, called sprints. The team members, led by a scrum master, meet daily (daily scrum) to discuss progress. Each sprint consists of about two to four weeks to deliver that cycle of the project. Scrum consists of three roles: the product owner (representative of the company), the scrum master (project manager) and the team (project executors). The scrum methodology works best for small teams.
- Process and management overhead cost is minimal, leading to a quicker and cheaper result
- New developments can be tested quickly and mistakes are fixed immediately
- Can result in higher revenues – the incremental delivery method shortens the time to market
- Daily meetings provide clear visibility of the project development, as well as enabling measurement of individual productivity
- Prone to scope creep – requirements can change frequently
- Daily scrum meetings and frequent reviews take up substantial resources
- Needs committed and experienced team members to deliver a project in time
Agile methodology (which suggests you break the project into smaller parts) and Scrum (which improves on this idea with regular meetings to help manage the process better) both don’t guarantee standardised, high-quality delivery. Enter the Lean method, which is a set of principles for achieving quality, speed and customer alignment. Lean offers workflows that ensure all the separate delivered parts are the same high quality through eliminating delays and waste that might deflect the team’s focus. Each small and autonomous part that is broken off from your project is assigned a workflow with clear instructions on how things should be done.
- Elimination of waste leads to overall efficiency, which speeds up the development process and reduces project time and cost
- Higher quality product, hence elevated customer satisfaction
- Creates motivated teams – team members are encouraged to make decisions, rather than having decisions imposed on them
- Requires discipline from team members
- Relies on quick and decisive decision-making, given that the ultimate goal is to get work done faster and cheaper
- With too much flexibility, team members can lose sight of original goals
- Extreme Programming (XP)
Developed by American software engineer, Kent Beck, Extreme Programming (XP) is best-suited to teams handling fast-changing requirements. In XP, each project is broken into mini projects and also follows similar practices used in other Agile methodologies, albeit to an extreme level. Other elements of XP include: writing simple code; programmers working in pairs; not developing features until they are actually required; and regular interaction with the client.
- XP focuses on simplicity, and is therefore efficient and ensures quality output
- Requires high level of collaboration between client and project team members, which reduces instances of errors
- Pair programming reduces dependence on individuals
- There is a risk of scope creep if the project isn’t managed properly
- Pair programming can lead to duplication of data and code
- Best suited to small teams
Waterfall is a sequential design process in which progress is seen as flowing steadily downwards (like a waterfall) through phases. With clearly defined goals and a set timeline, teams work through each phase, completing one task before moving to the next in line. You can’t go back once a phase has been completed and there is no room for change or error.
- Emphasises meticulous record keeping, which enables learning for future projects
- You know what to expect, and therefore have an idea of cost and timeline for the project as well as a definite idea of what the end product will be
- Largely unaffected by changes in team members, given the method’s strong documentation
- Little flexibility – you can’t go back to make changes once a stage is done
- Relies heavily on initial requirements, which if faulty can doom the project
- Whole product is tested only at the end
- It is costly to incorporate evolving needs