The software development industry has to keep pace with challenges and new technologies that emerge every year. This is one of the reasons why several agile methodology frameworks were developed.
Agile methods involve a set of methodologies that serve to accelerate software development processes. With its origins dating back to the mid-1990s, Agile’s concept did not take long to be disseminated among specialists, which resulted in the creation of different models that support project management. In this post, we’ll provide you with a list of the top agile methodology frameworks.
Scrum is a framework that contains processes and agile management techniques for software development projects. The people involved in the project are classified into three roles, which together form the scrum team. They are:
- The Product Owner - They are responsible for managing the product backlog, which refers to the set of features and characteristics that the product must have. Simply put, the product owner acts as the customer's representative.
- The Scrum Master - They are responsible for disseminating the Scrum throughout the organization, ensuring that it is being applied correctly. Therefore, they act as a facilitator.
- The Development Team - They are composed of developers who are responsible for delivering the functionality and the final product.
Scrum’s Four Meetings
The first meeting is sprint planning, which takes place on the first day of the sprint. This is when the sprint backlog is created. The sprint backlog is nothing more than the set of features and characteristics selected from the product backlog, which must be delivered at the end of the sprint.
This meeting is divided into two parts. In the first part, the product owner will explain and clarify doubts about the backlogged items or stories. In the second part, the development team will estimate the backlogged item’s size and break it down into actions that need to add value to the customer.
The daily Scrum is a meeting that happens each day. In this meeting, the team discusses what was done the day before, the current plans for the day, and lists issues that can hinder what was planned. At this point, the team can also discuss difficulties and risks that need to be removed by the scrum master to manage the team's productivity.
This is when the scrum team verifies what has been done with the product requirements. And if necessary, updates the backlog.
This meeting is held after the completion of a sprint, in which the scrum team looks at possible points in the process that can be improved.
Related Content: Agile Project Management with Scrum: Is It the Best?
Feature Driven-Development (FDD)
While scrum focuses on project management, Feature Driven-Development (FDD) focuses on product development by functionality. The FDD can be divided into two stages.
The first step is called design and planning. It is where you create a model, specifying the main information about the project, as well as assembling the features. This phase is performed only once and lasts from one to two weeks.
The second stage is construction. The functionalities are developed iteratively and incrementally. Each cycle generates a new increment, which becomes a new functionality. This phase can take a maximum of two weeks.
It is important to remember that the team that handles the functionality development must have at least three to six programmers in FDD. Moreover, at the end of each iteration, inspections are made to eliminate errors and consolidate the lessons that were learned.
Extreme Programming (XP)
Extreme Programming is an Agile method focused on software development that is based on three pillars: agility in developing the solution, saving resources, and the quality of the final product.
To achieve excellence in the services provided, an XP team must be based on values. These are values of attitudes and behaviors that lead to success. They guide the actions of the XP team in each activity to be performed, ensuring the integration and synergy necessary for good performance. In this case, these values are:
When talking about XP, we can list some practices which should be taken "to the extreme" when conducting the project. They are:
- Small phases (small releases) - Divide the project into short cycles.
- Planning game - Prioritize which features will be developed before each cycle.
- Metaphor - Understanding the client's reality and translating his or her needs into the project's requirements.
- Simple design - Delivering only what the customer asked for, instead of reinventing.
- Acceptance tests (customer tests) - Each new functionality that’s made available must be validated by the customer.
- Collective ownership - No one should ask permission to modify the source code because it is a collaborative creation.
- Pair programming - Code programming must be done in pairs, preferably composed of a novice trader and the other more experienced on the same computer.
- Code standardization - The development team needs to define standards for the construction of the code, as this will make the code uniform and more understandable.
- Test-driven development - All functionality must go through a rigorous testing process before being validated so that there is no rework for the team.
- Refactoring - The code must undergo periodic reviews in order to be continuously improved.
- Continuous integration - After functionality is tested, it must be immediately synchronized between the team to avoid conflicts.
Related Content: How to Successfully Outsource Agile Software Development
It is important to note that Agile methodologies will be handled by a small, self-managed team. This team will be senior, multidisciplinary, and concentrated in a single location. The entire effort of the team will be employed in the quality of the solution presented, which should add high value to the project's client.
Finally, there is no silver bullet when it comes to project management. What may work well on certain projects may not be efficient for others. At Bydrec, we can help you choose the right Agile methodology framework for your project. Contact us today to learn more.