Project management is a key strategic driver for many organizations. Models and theories are numerous and evolving through time to adapt to the new requirements. Higher competition, faster technological improvements and structural changes have enlightened the need for adapted frameworks. Thus, the rise of the digital era involved the creation of suitable methodologies such as the agile software development methods. If you are not familiar with their principles and concepts, I would strongly recommend reading the Travel to Agile Land article. By doing so, you will discover that there is not only one method within the agile movement but several. This paper will explain three of them.
The Scrum methods have been first introduced in the 90s by Jeff Sutherland and Ken Schwaber. They officially presented it in 1995 in a paper called Scrum Development Process.
The Scrum method is a framework where a team focuses on feedbacks regarding the three pillars of transparency, inspection and adaptation. Those pillars involve defining values and processes within the team such as focus, commitment or openness. Because the projects should be client-centric, time management and prioritization are required to facilitate changes in the iterative process scrum rest on. This is why the methodology works well if each member of the team is willing to respect collaboration and self-organization. Finally, the method’s empirical approach implies making decisions depending on experimentation.
The team in scrum projects is usually divided in three roles:
– the Scrum Master who leads the project
– The product owner who focuses on deliverables and responsiveness to customer needs
– The Development team
When to use it?
Scrum methodology suits a project when it is meant to evolve relying on observations, customer feedbacks and schedule constraints.
Useful Tools and processes:
– Release planning schedule
– Sprint Meetings
– Restrospective meetings
2- Rapid Application Development (RAD)
Based on Barry Bohem “spiral model”, James Martin developed the RAD in the late 1980s when working at IBM. He then published a book called Rapid Application Development in 1991 to formalize it.
The Rapid Application Development method is a user-centric approach. It involves final users in the development process, through permanent validation, to ensure that the project answers existing needs. According to James Martin, the methodology is based on four main phases. First the team has to define the scope and agree on the requirements. Then, users are asked to design prototypes based on their needs, which are translated into working models. After that, starts the construction phase, focused on coding and testing but still involving the user to provide suggestions on improvements. Finally, the system can be implemented including user training.
In RAD there are 5 typical roles:
– RAD Facilitator who plans and manage the project
– Information specialists who translate the end users needs
– End users
– The scribe who document the sessions
– The developers
When to use it:
RAD method should be used when the resources required are known at the early stage of the project. It is suitable for low budgets and technical risks and when the functionalities can easily be modularized. Finally, the methodology is useful when the development time is boxed.
3-Feature Driven Development (FDD)
The FDD methods have been initiated in 1997 by Jeff De Luca at a bank in Singapore. It is an adaptation of the object modeling approach designed by Peter Coad.
As its name suggests, the FDD method is feature-oriented which means that the project is built depending on functionalities valued by the client. This architecture-centric framework is based on 5 short-iterations phases. The first stage of the project lifecycle is about developing an overall model by analyzing the context system and scope to determine an object model. The second step is to build a feature list grouped into subject areas. Then starts the ‘Plan by Feature’ where each feature is assigned to a class owner. The next step is to design the features prioritizing them in the schedule. Finally, after the client’s design validation comes the ‘Build By Feature’ stage, including testing and code inspection.
There are usually six primary roles in FDD relying on supporting ones:
– Project Manager
– Chief Architect
– Development Manager
– Chief Programmer
– Class Owner
– Domain Expert
When to use it:
FDD has been developed to be suitable for large teams who work on object-oriented projects. It is particularly useful to quickly develop prototype when a client values function.
– CASE tools