It is all about Agile - 2: features of the introduction of agile development
We continue to discuss the nuances of agile development (Agile) that occur in practice. How to understand whether Agile is correctly implemented, what practice is suitable for which task and industry, who in the company should transfer work to Agile-rails? Agile-Coach ScrumTrek Vasily Savunov continues to share his experience with the editors of the Mail.Ru Cloud Solutions blog . Vasily
last time told us what Agile is, what methodologies it includes and what stereotypes have formed around it. Now let's talk about its implementation.
About Agile Companies
- Are there “industry preferences” in flexible methodologies?
As the Agile Russia study shows , which we have been conducting for the second year in a row, Scrum is mainly used in software development, Kanban in financial institutions, and both in the telecom industry.
As a person who directly analyzed the collected data, and worked with many of the respondents, I believe that this situation is due to two reasons:
- The rate of change in IT is significantly higher than in finance. Therefore, Scrum is preferred there as an approach that allows, through fast experiments, to flexibly manage priorities and change direction depending on changes in the external environment and conditions at the entrance. Finances are more conservative.
- The cost of mistakes in finance is much higher than in IT development. Therefore, they are more appreciated by Kanban, based on mathematics, rather than on experiments, and allowing to improve the workflow as a whole through small but constant changes.
Kanban telecom is also suitable. If only because the vector of development of the industry is digitalization. However, while few people understand how it should look like. In addition, in the telecom, the “fast” part of the work (software development) is adjacent to the “slow” (support and development of the hardware infrastructure). Therefore, along with the experiments that are carried out according to Scrum, it makes sense to accelerate evolutionary processes using Kanban.
Agile development techniques adopted in various industries. The amounts are not equal to 100%, because you could choose more than one item. Image / ScrumTrek
- How are mobile developers doing? Does Agile have any specificity in mobile development?
From my point of view, the main difficulty in developing mobile applications is identifying application requirements, because it can be difficult to identify stakeholders. These difficulties can be overcome by using customer development to research customer needs and Scrum to quickly test product hypotheses.
Customer development
Customer development, custdev, кастдев, развитие клиента (интересно, а так вообще кто-то говорит?) — это подход к созданию продукта через постоянное тестирование на реальном рынке и улучшение по результатам этих экспериментов. Это сближает кастдев с научным методом, делает создание продукта «научно обоснованным».
CustDev — один из элементов методологии Lean Startup, которая, в свою очередь, является одним из Agile-подходов при создании продуктов.
CustDev — один из элементов методологии Lean Startup, которая, в свою очередь, является одним из Agile-подходов при создании продуктов.
In general, Agile is perfectly combined with mobile development: it requires a quick response, involvement and well-coordinated work of different specialists, the ability to quickly provide the result and, if necessary, change it.
In addition to Scrum, you can also use approaches oriented directly on mobile development. For example, Mobile-D is based on XP, Crystal and RUP - approaches that are rather ancient and well developed. The main difference between Mobile-D and Scrum is that there are clear phases and a dominant focus on the engineering side of the product development. If Scrum pays more attention to the management and delivery of the product, then Mobile-D focuses on the production process and includes XP practices that significantly improve the quality of the final product. At the same time, the influence of RUP affects, therefore the process is rather formalized.
Another, the most modern approach to mobile development is SLeSS , combining Scrum and Lean Six Sigma . First, he implements the Scrum workflow, and then he applies Lean Six Sigma approaches to statistical quality management. It seems to me that SLeSS combines the necessary flexibility with the mechanisms of informed decision making based on statistics.
At the same time, Scrum Guide does not initially prohibit the inclusion of any other approaches and tools into the Scrum workflow that may be useful for product development. Therefore, all of the above can be implemented in the framework of the "classic" Scrum.
- How flexible are the methodologies that can be modified for particular conditions?
Here it is necessary to consider separately Scrum and Kanban.
Scrum is a framework, that is, a framework, all elements of which are required: events, and roles, and artifacts. None can be thrown away. But there are no strict requirements on how to implement these elements exactly - do as you like. And Scrum does not prohibit adding new elements: meetings, artifacts, roles that you need to work and help speed up the process.
Kanban - a set of tools and metrics. It does not give rigid installations about what tools and in what combination to use, since it is designed for a long evolutionary change of the existing system. But at the same time, the success of Kanban is determined by the collection of data on the working process and their regular analysis. If this is not done, with time everything will stall and there will be no further improvements. But that's okay: as Edward Deming said, you do not have to change, survival is voluntary.
- What are the typical mistakes when adapting a Scrum makes a business?
The main mistake in the implementation of flexible methodologies is the use of tools without understanding why they should be used specifically.
For example, in large organizations, when implementing Scrum, they often simply rename the project manager to the product owner, and the project team - to the Scrum-team and start demanding to issue the finished result in two weeks. But this does not work, and for a very simple reason: the conditions under which Scrum can work are not fulfilled .
- Although the project manager was dubbed the Product Owner, he did not receive the necessary authority and therefore had no right to form a product vision or change implementation priorities. As before, he is forced to coordinate his every step with the management and is clamped into the framework of the requirements for terms and volume of work. This means that the speed of decision making remains the same. No acceleration or adaptation to changing conditions.
- The project team was called the Scrum team, but the people included in it can still be listed in their department and report directly to their line managers. Accordingly, each of the team members first of all does what his line manager will charge him, and not the Product Owner. As a result, product tasks will always be lower in priority, which means that the speed at which the product under which the Scrum team was “put together” will not increase.
- Most likely, as before, team members will be busy in other projects. While Scrum directly stipulates: team members must be allocated to the Scrum team for 100% of their working time, and deal only with the product, which their Product Owner leads. If people are “divided by interest” between projects / products, they will switch between them, which will drastically reduce both the involvement and the effectiveness of work on each specific project / product.
There are a lot of negative consequences of such inept "implementation", and they begin with an attempt to reproduce the mechanics, but not the essence of Scrum. I described the main mistakes in the implementation of Scrum in my report “ Stop signals for Agile ” at the CodeFest 2017 conference.
- How to evaluate how well-flexible methodologies are implemented in the company?
There is a test Scrum Open , but it is more likely to test theoretical knowledge. What happens in practice, he does not understand. Given that Scrum's foundation is teamwork, and its priority is product delivery speed and customer value, it is best to conduct 360 surveys . So it is safer to establish the degree of maturity of the team and customer satisfaction.
We use our own methodology, which is embodied in the service ScrumTrek Diagnostic Tool . It works like this. The team and stakeholders outside it are asked a series of questions about how they assess the level of teamwork, the planning of their work, the value of the result delivered to the customer, interaction with other teams, and so on. For each parameter, a median of opinions is calculated and a complex pie chart is built - Radar, which displays the view both from inside the team and from the outside.
ScrumTrek radar. We look at the scatter estimates
ScarTrek Radar. We look at the medians.
The scheme contains a lot of useful information.
- Atomic estimates of individuals and their averages are interesting in their own right; explanations are not needed here.
- A scatter of ratings in a team is an interesting thing. When it is very big, there is a reason to agree on what we, as a team, mean by this or that aspect of our work. What do we mean by “customer value”, for example? And the "speed of delivery"? The large scatter indicates that the team has not formed a unified position on a number of issues.
A small variation speaks of consensus and good teamwork.
- Ratings are categorized. You can see that everything is fine with the culture, but the performance sags here and there. It is clear where to "dig."
- The difference between evaluating inside and outside the team is one of the most important indicators; it shows the discrepancies between the expectations of customers and other stakeholders from the team and how the team perceives itself. Agile is about close cooperation between business and those who sell the product, so these discrepancies are an excellent reason to “check hours” between these two areas and agree on how to restructure the team’s work.
After data collection, a chart analysis is carried out with the involvement of the whole team and stakeholders. Everything to show them how the work of the team looks from different sides, and to reorganize the results of the analysis into concrete steps to improve the work.
About Scrum Implementers
- From whom should the initiative of introducing agile development methodologies come from the company?
Scrum implementation always comes from a business goal. Therefore, the customer should first think about acceleration - either internal or external. Then you need to work out the concept of the product so that it can be done iteratively. And only then form a team. Scrum for Scrum doesn't work. Moreover, it may be too expensive for specific tasks.
Who will be Agile's guide to the company is a question without the only correct answer. I saw how the technical director became the "instigator" of changes. There were cases when the initiative came from the business, and even saw how such an initiative was born "from below." Everything depends on the energy and motivation of the person, on whether he will be able to embed his vision of development using flexible approaches into the business context of the product or division.
Ideally, when the initiative comes from top management. Advances in this direction in the Russian market are noticeable.
- What new roles and functions arise in an organization or team with the introduction of flexible methodologies? Which ones are required, which ones are optional?
In the case of Scrum, these are the roles of the Scrum master, product owner, and development team. All of them are required. The development team is also considered a “role”, as it unites not only developers, but also all those who need it, so that a product basically emerges: analysts, designers, and so on.
A Scrum master and a product owner may have assistants who take on part of their responsibilities, while the responsibility for the result remains with the Scrum master or product owner.
Product Owner- often a person of business. But not necessarily: for example, if we create some kind of engineering solution for production, this role can be performed by the chief engineer. Ultimately, this is a person who best understands who we are making a product for, which problems he solves in the first place, how his priorities should be set up. It is very important that the product owner has the authority to independently determine the composition of the product on the basis of data from the market and from the consumer. He should have the right to say “no” to interested persons with whom he interacts. It is necessary that priorities are agreed, and decisions are made promptly.
A scrum master is a person whose task is to create a strong, cohesive, responsible, and ideally self-organized team. What's important isnot a team leader , that is - not a leader. Scrum-master has no right to give guidance or directly intervene in product development. He is an organizer, facilitator, coach and Agile practitioner. In my experience, the best Scrum-masters are obtained from project managers - provided that they have been trained and managed to move from the directive format of communication to coaching.
Coaching communication style
Коучинговый стиль общения — это когда мы общаемся с людьми на равных. Не воспринимаем априори взрослых самостоятельных людей как подопечных, которыми надо руководить, а пытаемся подвигнуть их на самостоятельный поиск решения задачи. И только если они заходят в тупик — тогда уже вмешиваемся и помогаем своей экспертизой. Другими словами, в коучинговом стиле общения директивный подход заменяется на делегирующий.
Пример. Приходит подчиненный к руководителю, и говорит: «Я не могу выбрать из двух вариантов реализации какой-то наилучший. Реши ты!»
Если использовать коучинговый подход, то руководитель начнет задавать вопросы: почему именно эти два варианта ты выбрал? А из чего ты исходил? В чем для тебя трудность в выборе между ними? Кто тебе может помочь еще? И так далее. Через вопросы руководитель-коуч помогает человеку исследовать возможные варианты. В итоге человек уже сам понимает, как ему лучше поступить, и руководителю останется только договориться о сроках, когда подчиненный придет и расскажет, что у него получилось.
Следующий шаг за делегированием — визирование. В визирующем подходе сотрудник или команда выходят на такой уровень зрелости и ответственности, что руководитель дает только верхнеуровневую постановку задачи с точки зрения бизнеса. Сотрудник или команда самостоятельно рассматривает варианты решений, оценивает сроки, выявляет риски. Руководитель просто визирует всё это, возможно — добавляет что-то с точки зрения своей экспертизы и вносит какие-то коррективы. Затем договариваются о временных вехах, когда нужно будет показать результаты. Дальше сотрудник или команда несет всю ответственность за реализацию и демонстрацию результатов. В визирующем подходе руководитель выступает только как куратор и помощник для сотрудника или команды в рамках реализации ими бизнес-задачи.
Пример. Приходит подчиненный к руководителю, и говорит: «Я не могу выбрать из двух вариантов реализации какой-то наилучший. Реши ты!»
Если использовать коучинговый подход, то руководитель начнет задавать вопросы: почему именно эти два варианта ты выбрал? А из чего ты исходил? В чем для тебя трудность в выборе между ними? Кто тебе может помочь еще? И так далее. Через вопросы руководитель-коуч помогает человеку исследовать возможные варианты. В итоге человек уже сам понимает, как ему лучше поступить, и руководителю останется только договориться о сроках, когда подчиненный придет и расскажет, что у него получилось.
Следующий шаг за делегированием — визирование. В визирующем подходе сотрудник или команда выходят на такой уровень зрелости и ответственности, что руководитель дает только верхнеуровневую постановку задачи с точки зрения бизнеса. Сотрудник или команда самостоятельно рассматривает варианты решений, оценивает сроки, выявляет риски. Руководитель просто визирует всё это, возможно — добавляет что-то с точки зрения своей экспертизы и вносит какие-то коррективы. Затем договариваются о временных вехах, когда нужно будет показать результаты. Дальше сотрудник или команда несет всю ответственность за реализацию и демонстрацию результатов. В визирующем подходе руководитель выступает только как куратор и помощник для сотрудника или команды в рамках реализации ими бизнес-задачи.
Speaking of coaching communication style. There is also an Agile Coach . His task is to customize the workflow, train people and give them the tools for their daily activities in Agile. Including conflict resolution tools. Everything else is outside his remit. Ideally, an Agile-coach should arrange the work of a team or even a department so that everything works on its own, and the Agile-coach is no longer needed.
The transition period is always associated with discomfort. Agile-Coach is designed to help the team go through this period with minimal friction and develop new - convenient and effective - methods of work.
When scaling, additional roles may be introduced, as described, for example, in the SAFe frameworkBut they are still based on the terms of reference and the principles of the work of the Scrum-master or the owner of the product: the hierarchy levels relative to the product simply appear
Safe
SAFe, или Scaled Agile Framework — фреймворк для применения Agile в крупных командах по разработке ПО. В самой простой реализации подход предполагает два уровня: командный и программный (Team и Program соответственно), по мере усложнения оргструктуры и продукта к ним добавляются Portfolio и Large Solution. Работа по SAFe опирается на такую сущность, как ART (Agile Release Train) — «поезд релиза». Она, как правило, объединяет несколько команд и заинтересованных лиц в структуру, на протяжении длительного времени сообща создающую продукт или часть продукта, которая представляет ценность для заказчика.
- How are the functions of the product owner and the Scrum master “in an ideal world” delimited?
On one side of the scale are the interests of the business that the product owner represents, and on the other, the viability and effectiveness of the team for which the Scrum master is responsible. For a team to quickly achieve results, the system must remain in balance. If the product owner “wakes up”, the team will work on nights and weekends, and soon he will be in front of a handful of demotivated, non-involved people instead of a well-coordinated team. If the Scrum-master drags itself over the blanket, the development will be carried out neither shakily, nor shakily, with constant disputes and much longer than necessary.
Example
Чтобы это не было абстрактным, вот выдуманный микродиалог внутри команды. Посмотрите, что говорит каждый из своей роли:
Владелец продукта: Так! Нам надо будет сделать воооот такую фичу! Вы в прошлый спринт отлично поработали, так что, я думаю, вы всё успеете!
Scrum-мастер: Но в прошлый спринт фичу подобной сложности команда сделала на пределе сил, пришлось выходить в выходные, и кое-кто работал по ночам. Еще один такой спринт — и люди начнут заболевать, выгорать и, может быть, начнется исход. Давай не будем до этого доводить?
Владелец продукта: Неужели всё так серьезно? Если да — давай с командой обсудим, что можно сделать за спринт, не выжигая людей. В этой фиче есть часть, которую надо будет сделать обязательно, она не выглядит сильно сложной.
Scrum-мастер: Давай обсудим с командой. Ты знаешь, что только она может сказать, «сложная» это задача или нет.
Владелец продукта: Давай.
Владелец продукта: Так! Нам надо будет сделать воооот такую фичу! Вы в прошлый спринт отлично поработали, так что, я думаю, вы всё успеете!
Scrum-мастер: Но в прошлый спринт фичу подобной сложности команда сделала на пределе сил, пришлось выходить в выходные, и кое-кто работал по ночам. Еще один такой спринт — и люди начнут заболевать, выгорать и, может быть, начнется исход. Давай не будем до этого доводить?
Владелец продукта: Неужели всё так серьезно? Если да — давай с командой обсудим, что можно сделать за спринт, не выжигая людей. В этой фиче есть часть, которую надо будет сделать обязательно, она не выглядит сильно сложной.
Scrum-мастер: Давай обсудим с командой. Ты знаешь, что только она может сказать, «сложная» это задача или нет.
Владелец продукта: Давай.
- What methodologies and management models should be mastered by those who are going to take on one of the previously described roles?
As far as business competencies are concerned, everything is “classics”, as with ordinary management, except for the need to determine priorities in stages and to work more closely with the team.
The product owner should learn Lean Startup, customer development and other modern approaches to creating products.
For the Scrum-master, the set of competences is wider: facilitation, conflictology, group dynamics, coaching and, of course, Agile practice. Rather, these are skills from the field of psychology, so their lack in training managers is felt.
- Does collective ownership of the code really reduce the company's dependence on “star” developers? Is their motivation falling?
Collective ownership of a code is feasible without flexible methodologies. There are enough agreements on code review and other formal rules, and developers can act atomically.
Often, the company itself provokes the "star" behavior of engineers: at first glance, it is more profitable for it to fork out for a superspecialist and entrust him with a whole direction with his full responsibility for the result, than to assemble a team of average people, systematically reduce risks due to mistakes, increase their professionalism.
This is a dilemma: either short-term or long-term success. It seems that hiring a "star" is good for business. But what will happen in three years, in five, seven years after such a pro joined the company? It will become indispensable. And with at least three negative consequences.
First, such a person has almost no free time , and the company, by and large, is indifferent. Her logic: "We pay you a huge salary not for you to rest." Getting into a similar situation, people quickly burn out, fall into cynicism and try to extract maximum benefits from their position.
Secondly, an indispensable employee begins to fill the priorities of the company. Instead of embodying the intent of the business, he can independently make decisions about what is necessary and what should not be done. And there are no levers of influence on him : for several years he learned everything about the product and system, and the horror is that, as a rule, no one knows it anymore. Such specialists will carefully protect their knowledge, their expertise as insurance against dismissal or lower wages.
Thirdly, the achievement of such a person can not be "scaled". If you have conceived to expand the development team, be prepared for a big turnover: newcomers will be rejected, “hazing” will flourish with a terry color, since it will be unprofitable for the “old men” to share experience and knowledge. It is hardly possible to speed up the development either: everything rests on the performance of a single and irreplaceable Vasi Pupkin, who is satisfied with everything and who is not going to change anything.
- What to undertake, to still go to the team approach?
- Take the risk that we will inevitably lose part of the current team of “stars”: not everyone will agree with the new approach. It's unavoidable.
- Change the structure of rewards. For example, to introduce bonuses for writing documentation or for training new employees, so that this will gradually become common practice.
- Among the "stars" to find those who want to grow, and help them master the skills of management, facilitation, coaching. Open them new horizons. Not everyone will agree to this. But those who agree will be the best adherents of the new principles of work.
- Blur the culture of "bullying". Including to pull the "stars" out of their usual environment, for example, forming new teams on the principle of "four or five newcomers for one old man." Plus, in such a team, you need to appoint an intelligent and skillful Scrum master who will make it clear to the “old man” that nothing threatens him, and at the same time will set the “newbies” to respect those who know more . And it is good if such a team will sit in the wrong place where the “old man” used to work.
Remember, we are dealing with the transformation of corporate culture, and this is an extremely complex task. As Peter Drucker said, “culture is eating a strategy for breakfast.” No matter how perfect a formalized strategy you propose, it will not be possible to bring to life, if people have “not accepted” the appropriate behavior. To better understand the issue, I advise you to read the book by Daniel Brown and Itse Kramer “ Corporate tribe. What can an anthropologist teach a top manager ? ”
The material was prepared by the team Mail.Ru Cloud Solutions .