Agile refers to an iterative development model. It involves the incremental creation of a project from the beginning of work. This is the main difference between the methodology and waterfall models, in which the code is delivered at the end of the cycle.
Agile demonstrates a flexible approach to organization of the workflow. The main goal of the methodology is to reduce miscalculations, predict potential changes and, if possible, implement them as painlessly as possible into the workflow. A good example of such work is Scrum, which is discussed in more detail in this article. There are 3 main characteristics in the methodology:
- minimization of risks and losses;
- work in short cycles with constant feedback;
- self-organization of the development team.
In addition to the above features, the methodology is well characterized by its values:
- individuals and interactions over processes and tools;
- working software over documentation;
- custom collaboration over contract negotiation;
- responding to change over following a plan.
These are the unshakable values of the methodology. As you can see, they are formulated in a way that they don’t minimize the importance of what is indicated on the right, but to focus on the priority of what is on the left. For example, documentation is important in work, but the priority should still be in a working product. But it's not all. . Much more can be learned about the Agile methodology from its principles.
A focus on constantly changing conditions is the basis of Agile methodology. Changes in requirements are strongly welcomed and approved. The main goal is to satisfy the customer's request and the needs of users.
This is what the project is based on. PM plays the main role. Their goal is simple, but its implementation is complex – to motivate the team and maintain constant communication with the product owner.
Iterations, equal intervals of time, provide stability. In other words, the business owner receives ready-made options with the same frequency.
Despite the constant dynamics in the process and loyalty to change, Agile promotes simplicity in work. In short, you should not do anything that is not specified in the requirements. There is always a temptation to do more than necessary, but in the end it will not play in favor. The methodology encourages self-organization, change, but not going beyond.
Scrum and Kanban are great examples of Agile methodology. It is hard to say which of them is more popular. The most commonly used hybrid way of organizing the workflow. It all depends solely on the features of the project or product.