Currently, we who are in the world of software development hear about agile methodology, we must be agile, we must adopt SCRUM but what is an agile methodology? agility? what does it mean?
An exact definition of what agility is does not exist. Agility is simply a culture, it is to adopt the values of the agile manifesto and put them into practice. The term Agile appears on February 17, 2001, when a group of critics of traditional methodologies meets to establish new techniques and processes to develop software. At that meeting, the term “agile methods” was first heard. principles by which the agile methodologies should be guided, principles that are in the popular: Manifesto Agile.
What does the agile manifesto tell us?
The agile manifesto consists of 4 points, simple but very significant. Significant in what sense? Because as the creators say “… we have learned to value:
- Individuals and interactions with processes and tools
- Software running on extensive documentation
- Collaboration with the client on contractual negotiation
- Response to the change about following a plan
The items on the right are important, but much more are the items on the left, but why? People are the most important thing in a project, because they are the ones who will determine its success, and beyond extensive documentation it is more important to foster interaction between the development team and the client who is also part of the team and who It plays an important role because it is who knows best what he wants or needs, making early and incremental deliveries of the product, adding trust between both parties.
The essence of agility is the ability to adapt to change, and nowadays we are in a world that is constantly changing, rather than following a development plan we must be able to develop the product to measure.
What are the advantages of applying an agile methodology?
If we start from the points of the manifesto it can be said that one of the main advantages of applying a methodology is to be able to work at a higher speed and efficiency when partial deliveries are made but functional of the product, thanks to these functional deliveries (with those characteristics or functionalities that they add value to the product) it is possible to “eliminate” those that do not add value to it. And not only this, but they allow the developers to improve the quality of the product since with the continuous communication between these and the client allows that what is really wanted or needed is done.
Applying an agile methodology is not a guarantee that everything will be rosy, you can find many setbacks and failures, but what does guarantee any of these methodologies is to have a team capable of facing these setbacks. But which methodology should be applied? Everything will depend on the comfort of the equipment among the most popular is extreme programming and scrum, the latter being the most used.
Each of these methodologies adopts the agile manifesto in a different way, there are those who apply one or make a hybrid between both xp-scrums, we can not criticize those teams that apply this hybrid because they simply want to adopt the best of each of them, and There are cases in which the hybrid works better than applying one, now … apply an agile methodology with a traditional one? It would be like breaking with the agile manifesto, since they are two completely different approaches, or we add value to the processes or we add value to people.
If we want to apply some agile methodology it is better to document and be patient because this is not a day’s work, many mistakes are made in the process but … to err is human, to recognize is palindrome.