What is Agile development?
Agile is an approach to software development that stresses the need for phased work, collaborative teamwork, continuous planning and continuous learning
The authors of the Agile Manifesto chose “Agile” as a label for the whole idea because it presented adaptability and response to changes that were so important to their approach.
Without going into technical details, Agile is not a methodology, but the collective name of various management techniques and approaches that:
- Focus the team on the needs and goals of customers.
- Simplify organizational structure and processes.
- They offer work in short cycles.
- Actively use feedback.
- They suggest increasing the authority of employees.
- They are based on a humanistic approach.
- They are not the final state, but rather a way of thinking and living.
Agile methods or Agile processes generally promote a project management process that encourages a leadership philosophy that encourages teamwork, self-organization and accountability. Agile development refers to any development process that is consistent with the concepts of the Agile Manifesto.
The Agile Manifesto contains 4 basic ideas and 12 principles. It is noteworthy that the Agile Manifesto doesn’t contain practical advice.
Main ideas:
- people and interaction are more important than process and tools;
- a working product is more important than comprehensive documentation;
- cooperation with the customer is more important than agreeing on the terms of the contract;
- willingness to change is more important than following the original plan.
Principles that Agile Manifesto explains:
- customer satisfaction due to the early and uninterrupted supply of valuable software;
- changes in requirements are welcomed even at the end of development (this can increase the competitiveness of the resulting product);
- frequent delivery of working software (every month or week or more often);
- close, daily communication of the customer with the developers throughout the project;
- the project is carried out by motivated individuals who are provided with the necessary working conditions, support and trust;
- the recommended method of transmitting information is a personal conversation (face to face);
- running software is the best measure of progress;
- sponsors, developers and users should be able to maintain a constant pace for an indefinite period;
- constant attention to improving technical skill and user-friendly design;
- simplicity – the art of not doing too much work;
- the best technical requirements, design and architecture are obtained from a self-organized team;
- constant adaptation to changing circumstances. The team should systematically analyze possible ways to improve efficiency and adjust their work style accordingly.
Agile Development is one of the keywords in the software development industry, which is a way to manage software development projects. Instead of a specific software development method, it is a general term for a set of methods and practices based on the values and principles expressed in Agile Manifesto.