By some estimates, there are now approximately 8,500 software development methodologies, methods, and approaches out there. In the face of such mindboggling choice, how do you choose the IT project management methodology that will best fit both your product and your team?
A project management methodology is a set of principles that helps you achieve a project goal. The Waterfall and Agile approaches are among the most popular ones, and it’s worth taking a closer look at them. The popularity of the given methods is mainly due to the commonness of its use at a time; however, according to the Pulse of the Profession 2018 report, almost 71% of organizations choose the Agile approach. But note that Agile principles can be applied to different methods.
Waterfall’s been one of the basic IT project management models for many years. Its name refers to a linear way of completing tasks (analogous to flowing water), as each stage of work starts after the previous one is finished. Thus, Waterfall presents a traditional approach to project management in which all stages are designed from the beginning to the end.
The Waterfall approach works well in projects that are repeatable, where everything is described in detail, and we know the requirements basically won’t change. If similar projects have been implemented in the past and we know exactly what result we want to achieve, it’s worth choosing this model. If the work in the Waterfall is well organized, it also works well for building and effectively delivering innovative products.
The Agile approach to software development is the most popular way to manage IT projects. Agile is a set of principles and values, collected in 2001 in the form of the Agile Manifesto. Its main feature, from a project manager’s perspective, is flexibility, which makes it easier to manage the scope of the project and respond to changes. It allows you to get started quickly, without having to wait for detailed specifications. The team can deliver a finished product or its useful parts much faster, which makes it easier to verify assumptions and adjust the scope of further work.
Among the most well-known Agile frameworks and project delivery methods are Scrum, Extreme Programming, and Kanban.
1. Scrum is one of the most used methods in the IT environment. Based on an iterative approach to planning and executing work, it gives more agility to the project. So, the work is divided into sprints (each can last from 1 to 4 weeks) that result in a working product (limited initially), giving business and engineering flexibility.
After a few iterations, you can get an MVP, a finished product with basic functionality that can still be developed but brings business value. Scrum is also popular for complex long-term projects. It’s worth mentioning that an MVP can also be created using the Waterfall approach.
The basic principles of Scrum are described in the Scrum Guide, which defines the core elements of the method (including transparency, inspection, and adaptation). It’s designed to help organizations solve complex problems and make sure they’re moving in the right direction. The Scrum Guide also defines main roles in the Scrum team that consists of:
- The Product Owner, whose main role is to plan work and set priorities. The role involves determining the product’s goal and creating the so-called product backlog, a list of all the elements that bring value to the product. This person thus represents the end customer and other parties and communicates the overall vision of the product.
- Developers. Besides programmers, these are also testers or designers. This group selects the right tasks from the backlog, decides how to perform a given task and whether they can deliver it as expected.
- The Scrum Master is responsible for the product development process and making sure everyone on the team understands Scrum. The Scrum Master thus has the team’s effectiveness in check.
2. Extreme Programming (XP): The goal of this framework is to deliver high-quality software without making developers’ lives difficult. Its core values are communication, simplicity, feedback, courage, and respect. XP is based on interrelated software development practices that include planning game, frequent releases, testing, system metaphor, or pair programming.
Using such practices and getting the most out of them makes the team more efficient. This results in higher quality code and stable systems with fewer bugs. Also, by involving the customer in the product development process, it’s easier to deliver exactly what they expected.
3. Kanban: A workflow management method based on visualizing work, maximizing efficiency, and continuous improvement. The name of the method comes from Japanese and is translated as “visual board.”
The Kanban board represents the actual state of the workflow, along with risks and specifications. Such a system makes it easy to track progress and catch bottlenecks. All teams involved in the project can monitor their progress in real-time and decide what to focus on now and what to do next.
The main advantages of the Kanban method are ongoing information about the work progress, the ability to adapt to changing priorities, and better predictability.
Other popular software development methodologies
It’s also good to know other project management frameworks to make software development methodologies comparisons and choose the right one for your project.
Project Management Body of Knowledge (PMBoK)
PMBoK is not an IT project management methodology per se, but a best-practices guide developed by an international organization of project managers. It defines a framework of standards, processes, best practices, terminology, and guidelines within project management. The PMBoK addresses the five stages of the project management process: initiating, planning, executing, controlling, and closing.
PRojects IN Controlled Environments (PRINCE2)
This is a controlled project management method that divides projects into multiple stages, each with its own plan and processes to follow. This method gives teams more control over resources and the ability to effectively mitigate risk, so it works best for large, predictable corporate projects. PMBoK and PRINCE2 often appear as complementary waterfall approaches.
Rapid Application Development (RAD)
The key goal of the RAD approach is to speed up the entire software development process. The method is based on four steps: planning, prototype design, build, and implementation. The design processes are repeated until the product meets all requirements. RAD only works when priorities are well planned and limited, so it works best in small to medium-sized projects.
Feature-Driven Development (FDD)
FDD is an iterative approach designed for large teams using object-oriented programming. This technique consists of five phases. The first phase is developing the overall model, then creating a list of features, planning by feature, designing by feature, and building by feature. The advantage of such a solution is that many teams can work simultaneously, but success largely depends on the project manager and leaders.
Software development methodologies: how to choose the right one
Every project is different, so there is no one-size-fits-all approach for choosing an IT project management methodology. When planning, it’s important to match it to the project and the team environment, not vice versa.
It’s important to pay attention to particular aspects of the method. Every team member should understand the entire process, and each element of the method should be used as intended so that every project development stage will run smoothly. That’s why it’s worth involving the team in the decision-making process based on their knowledge of project management methods and experience with different techniques.
Yet, the role of the project manager or the person responsible for project implementation is essential. The team’s opinion matters, but it’s equally important to gather information on the most effective methods used by the organization on previous projects. This will make it easier to estimate the time and benefits of using a given IT project management methodology.