Agile development is the ability to create and respond to change in order to succeed in an uncertain and turbulent environment.
In the application of agile skills, there are many applicable methodologies, all depending on the organization and the environment it has created.
What is Agile development?
We use the term Agile to refer to the set of practices and methods based on the values and principles contained in the Agile Manifesto.
Although the manifesto emerged in 2001, the first versions of its practices and methods evolved since the 90's, known as "lightweight" development methodologies and were a reaction to methodologies such as rigid waterfall development.
Among the most popular are: Scrum, Kanban, among others. The main objectives of some of them are the following:
Scrum is a management and control process that limits complexity, and focuses on building software that adapts to the company's needs. Management and teams are able to deal with requirements and technologies, and deliver a working software.
Kanban is a just-in-time production methodology that aims to manage overall task completeness. Kanban is a Japanese word meaning "visual cards", where Kan is "visual", and Ban stands for "card".
Each methodology is distinct and unique, but they all share a common vision and values.
They all fundamentally incorporate iteration and continuous feedback to successively refine and deliver a system to streamline processes.
This system involves continuous planning, testing, integration and other forms of continuous evolution for both the project and the system.
What is really important about agile development is that it focuses on empowering workers to collaborate and make group decisions quickly and effectively.
Agile software development focuses on keeping the code simple, testing continuous and delivering short functional deliverables as soon as they are ready.
Solutions become collaborations between self-organizing and cross-functional teams using the appropriate practices for each of their tasks.