Погружение в Agile: ценности, принципы, методологии
Agile - это гибкая разработка и уникальное явление в истории программнои? инженерии. Сегодня такие понятия, как канбан и agile? в тренде среди компаний, но для того, чтобы понять, как эти разработки функционируют, необходимо тщательно разобраться. В издательстве "Манн, Иванов и Фербер" вышла книга "Постигая Agile", в ней подробно рассказано про основные Agile-методологии. С разрешения издательства публикуем некоторые идеи книги.
Команда
Хорошие команды вместе могут сделать гораздо больше, чем те же самые люди, работая по отдельности. Почему? Приглашая специалистов, обладающих необходимыми навыками и взглядами, и создавая для них среду, поощряющую открытое общение и взаимное уважение, вы помогаете рождению инновации?. Члены команды делятся своими идеями, а это создает еще больше новых идеи?.
Практика единои? команды помогает отдельным ее членам объединяться. Когда они сталкиваются с препятствиями, то преодолевают их совместно. Важные решения, влияющие на направление развития проекта, также принимаются совместно. Все члены команды учатся доверять друг другу и определять, какие решения можно принимать самостоятельно, а какие - командои? в целом.
В единои? команде каждыи? принимает участие в обсуждении того, какие функции ценны для пользователеи?, какую работу команда возьмет на себя и как будет создано программное обеспечение. Если команда доверяет любому своему участнику принимать решения о кодировании, которое будет поставлять наибольшую ценность, то риск, что некоторые программисты начнут тратить время на дополнительныи? код, невелик.
Обратная сторона доверия - это понимание того, что каждыи? может ошибиться. Когда "единая команда" работает динамично, ее члены не боятся совершить оплошность, потому что знают: коллеги их пои? мут. Ведь единственныи? способ продвинуться вперед - вместе учиться на неизбежных ошибках. Встречи и обсуждения
Ежедневные митинги - это один из наиболее эффективных инструментов, имеющихся в распоряжении команды. Они решают две важные задачи. Митинги помогают выяснить, справляется ли команда с работои?, и адаптироваться таким образом, чтобы в результате был выпущен наиболее ценныи? фрагмент продукта. Это дает команде возможность принимать самостоятельные решения в нужныи? момент, придает еи? гибкость в том, чтобы нужная работа делалась в правильное время надлежащим специалистом.
Когда все члены команды используют ежедневные митинги, чтобы сфокусироваться на самои? важнои? в данныи? момент работе, они занимаются только созданием следующего фрагмента программного обеспечения, и вся команда начинает соглашаться с тем, что митинги - это ценныи? инструмент, и использует его эффективно. Преграды
Неуважение, установка нереальных сроков и другое негативное поведение руководителя может вызвать состояние пассивности, при котором люди не имеют возможности принимать решения или внедрять инновации.
Когда менеджеры создают атмосферу постоянного отставания от сроков, назначаемых произвольно, они неизбежно будут халтурить, создавая код. Кроме того, в такои? ситуации разработчики с трудом входят в состояние "потока", необходимое для использования в проекте более простых решении?. Гибкое планирование
Используи? те преимущество ежедневных коротких встреч, чтобы выяснить, деи? ствительно ли команда собирается закончить разработку тех функции?, которые были запланированы в спринте. Когда необходимо изменить план, команда делает это. Если становится понятно, что не удастся закончить все работы в бэклоге спринта, то команда должна перенести некоторые из них (начиная с наименее значимых) из бэклога спринта обратно в продуктовыи? бэклог. Менеджер обязан убедиться в том, что все члены команды понимают суть изменении?. Пользователи, привыкшие видеть работающее программное обеспечение, меньше нервничают, не дождавшись во время обзора спринта ожидаемых функции?, если владелец продукта предварительно их к этому подготовил. Что вы можете сделать сегодня
Предлагаем несколько вариантов деи? ствии?, которые вы можете предпринять уже сегодня (самостоятельно или вместе с командои?).
- Если вы находитесь в процессе создания проекта, то, прежде чем начать писать код, не пожалеи? те 15 минут и обсудите вместе с командои?, какие функции вы будете разрабатывать. Можете ли вы вспомнить примеры, когда два человека имеют разные представления о том, что собираются создавать?
- Составьте список функции?, над которыми вы работаете. Попробуи? те упорядочить их по значимости и сложности.
- Составьте список всех документов, которые вы и ваша команда создали или использовали. Есть ли среди них то, что команда не использует для построения кода?
- В следующии? раз, когда вы будете работать допоздна, задумаи? тесь, что вас заставило задержаться. Можно ли было как-то предотвратить это? Возможно, установленные сроки слишком жесткие? Или в последнюю минуту появилась дополнительная работа?
Признать наличие проблемы и выделить время на ее осознание - вот первыи? шаг к исправлению ситуации.
Больше об agile вы узнаете из новинки издательства "Манн, Иванов и Фербер" "Постигая Agile".