It is difficult to find someone who would not want to be treated with respect. But there must be a reason for this state of affairs. For example, when a person is an upscale recognized specialist in the field of software development. And for this you need to learn. And in the framework of this article we will consider what Agile is, what is the use of it, and how to understand this technology.
general information
Initially, let's deal with the technical aspects. What is Agile? The translation (literal) of this word from English is “lively, mobile”, “flexible” is mentioned a little less often. And by the way, this is a reduction. The full name of this approach is Agile software development. But since it is too long, it was decided to reduce it. And now they say just Agile. Translation as “flexible” is used due to the fact that it most closely matches the real situation.
What is included here?
We continue to consider what Agile is. Here I want to focus on the fact that this is a flexible approach, which is based on many different methodologies (Scrum, XP, Kanban, Lean). In order to better understand the topic, let's draw parallels. Let's say that Agile technology is the process of the origin of the universe. The final product is the very existing world itself. And the big bang is the most painful problem that one has to face - changing the list of product requirements. Typically, creation processes involve the use of a cascade model. In this case, everything goes sequentially and in stages. This approach can be summarized: I see the goal - I go to it. And if the requirements for the final result change, sometimes you have to redo almost everything again. What further complicates this situation is an attempt to pretend that everything is normal, and we need to move forward.
And so Agile, a management methodology , is designed to deal with all this because of its flexibility. This hodgepodge team minimizes various risks through the use of sets of principles. All are reflected in the 2001 Agile Manifesto. In short, they sound as follows:
- The main thing is people, not things.
- Collaborate, not read the contract.
- Documentation should not interfere with work.
- Change as fast as possible.
It may seem too vague and not accurate, but let's detail.
Device processes
Considering what Agile is, let us turn to one of the most popular methodologies known as Scrum. What does she offer? First you need:
- Choose a product owner. A person is suitable for this role, he sees what goal he needs to go to and what will happen in the end.
- Decide on a team. To do this, you need a group of three to ten people that have the skills to get the result.
- Choose a responsible specialist. This is a person who will monitor the development of the project and help the team get around difficulties.
- Deal with difficulties. It is necessary to collect all existing product requirements in one place and prioritize. The product owner should collect all his wishes here. Then the team evaluates them and understands whether this can be implemented, and how much time is needed for this.
- It is necessary to divide the entire amount of work into periods of time, a week or two, during which the team will perform certain sets of tasks.
- Meetings should be held daily for a maximum of fifteen minutes. On the agenda should be discussed what was done yesterday, what are the plans for today, and obstacles that prevent us from taking height.
- Make reviews based on the results of a week (two), during which the team tells about what has been done. In this case, it is necessary to demonstrate the operability of parts of the product.
- After each time period, it is necessary to discuss problems and seek solutions. Moreover, all the developments must be implemented immediately.

How to recognize Agile?
The management methodology, regardless of the chosen direction, always has the following features:
- Minimization of risks. This is the main goal pursued by any flexible approach.
- Iterative development. In this case, it implies work in small cycles.
- The most important thing is people and communication between them.
Let's imagine a river. On one shore, the customer. The second is the team. In this case, a flexible development methodology has advantages for everyone:
- The customer needs a minimally functional product. At the same time, conditions can change during its creation.
- It is useful for the team to communicate with colleagues and the customer. In this case, the risk of being misunderstood is minimized, the transparency of processes is increased, problems are quickly resolved, and the chances of a surprise when creating a product are reduced.
Social factor
When it is told what Agile is, they usually talk exclusively about positive aspects. Indeed, teamwork within the team is improving. All people focus on one idea, do not create secrets among themselves, take responsibility. As a result, the team works in a comfortable environment and at a fast pace. This approach allows you to streamline the chaos.
From the moment of its formation, he was able to gain recognition in the technological sectors. At the moment, it is widely used for designing new software products. But within the framework of general business practice, such an approach is still little known. Therefore, those who have not met with Agile before are cautious. It should also be understood that it should be used only in cases where people face the task of intellectual labor.
A small example
Let's look at how these software development methodologies work. Let's say we have Peter, the owner of the product. He does not know the technical details, but he has a vision of the big picture. He knows why a product is needed, what problems it will solve, and whom he will satisfy. There are also interested parties. They can use the product, support its creation, or somehow be involved in its creation. You can also make user stories that express the wishes of interested parties. For example: the system for booking tickets for the Moscow-St. Petersburg flight buses should have a search for flights. Peter will help interested parties. He will take control of the implementation of the ideas of user stories. There is also a development team. These are people who will build a working system.
Since a flexible development methodology is used, user stories do not accumulate until a major release, but are released immediately after completion and as often as possible. The number of processed calls is the bandwidth of the team for a week. In order not to lose pace and not get bogged down in manual testing, the team should work on automated integration. What does it consist of? An automatic test is written for each working moment. If there are too many stories, then there may be rush, loss of motivation, decrease in productivity and quality. For such cases, the "yesterday's weather" method is provided. It consists in the fact that it is necessary to establish a rigid framework for the amount of work and carefully choose what will be implemented. The Kanban mentioned earlier suggests setting a task limit.
And what to do with the queue?
Okay, so the team decided that it can process four stories for a week. But how to navigate all that is? Let's say users throw ten stories a week. Four are being processed. Thus, the line will constantly grow. For this case, there is only one effective method - the word "no." For the product owner, this is extremely important. Saying yes is not difficult. It is much more difficult and more important to decide what does not need to be done. And for this it is also necessary to bear responsibility. Therefore, you should decide what to focus on now and what should be postponed. To properly prioritize, you need the product owner to understand the value and scope of each story.
Make decisions
Some stories are extremely necessary. Others just represent a nice bonus. Some stories will be developed in a few hours. It will take months to create others. Many often draw a relationship between the size of a story and its value. But this is not always correct. More is not equally better. The correctness of the tasks helps Peter to correctly consider priorities. How to quantify these characteristics? No way. This is a real guessing game. And for greater efficiency, it is necessary to involve a lot of people in it. This is a development team that will inform about the amount of work, and interested parties. But it should be understood that all the data obtained in this way are approximate guesses. There are no exact numbers. There will be misses initially. But as you gain experience, their number and scale will decrease.
Possible risks
To avoid problems, you need to give honest answers to a number of questions. It:
- Are we doing the right thing? This is a business risk.
- Can we realize what we need? This is a social risk.
- Will the project work on this platform. This is a technical risk.
- Will there be enough money, and will we be in time? These are the risks of lead time and cost.
In this case, knowledge is needed. They can be considered as opposites of risks. When a significant level of uncertainty is recorded, then we gain knowledge - for example, create prototypes of the interface or technical experiments. And already having them, we make decisions about which direction we should move.
How to learn?
The IT industry is developing extremely rapidly, and in order not to lose in the end, you need to constantly learn, improve skills and work efficiency. Therefore, the issues of training and implementation are more relevant than ever. Where to begin? The best option is to work with a company that already uses Agile. In this case, training will be conducted by people who are not rumored to know what a flexible development is. But this, alas, is not always possible. Most often, a third-party specialist is involved who knows what Agile is. The implementation of this approach is carried out under its supervision. True, the services of such a specialist cost money. But if you get a really knowledgeable person, then all the expenses will be paid off handsomely. Indeed, in the modern world, the effectiveness of employees plays an important role.
What does the future hold?
Software development methodologies are constantly evolving. They are looking for new ways and opportunities to increase the efficiency of activities and work. To say what awaits us in the future is quite problematic. Most likely, a flexible development system will be integrated with automation of production processes. For example, it will be possible to solve problems, even staying at a distance from the location of the company. In many ways, the future is determined by new information technologies. After all, when they arise, it is necessary to master new methods of working with them. And in this case, there is a development that is closed in a cycle.
Finally
So the excursion into flexible development methods has ended . But it should be recalled that theory is one thing, and practice is another. The new information technologies that are constantly emerging challenge the large community of developers. How to make team activities more effective? Everyone finds the answer to this question himself. The information presented here can be used to form the backbone. But in practice, you will have to work with the existing model and bring the state of affairs to a state of compliance with existing challenges. Then the team will be able to effectively fulfill its goals.