Сегодня Agile касается не только сферы IT, хотя термин впервые стал известен как «гибкая методология», которая стала альтернативой классической модели разработки программного обеспечения «водопад». Причем в понятие «гибкая методология» вошло сразу несколько моделей, которые и сейчас продолжают появляться. Более точным был бы перевод этого понятия как «шустрая методология» – одновременно быстрая и гибкая. Разбираемся, почему термин стал популярным не только в IT-компаниях.
В 2001-м собрались методологи, представляющие «гибкие» подходы к работе с IT-проектами – Scrum, Future-driven Development, Lean Software Development. Они описали, что объединяет каждый из этих подходов, в результате чего появился единый документ о принципах «гибкой методологии» – методологии Agile.
Раньше модель процесса разработки программ была подобной подходу строителей к возведению сооружений – использовалась каскадная модель, которую еще называют «Водопад» (waterfall model). Суть ее в том, что для создания чего-либо нужно пройти этап за этапом – фаза анализа требований, проектирования, реализация, тестирование, интеграция, поддержка. Так строятся дома, мосты, прокладываются дороги и проводятся коммуникации. Но это требует времени и очень тщательного подхода к проектированию, поскольку готовый результат можно будет увидеть только в конце пути, и допущенные ошибки могут перечеркнуть годы работы. Такой подход оправдан при создании большого количества однотипных объектов, но что делать, если окружающая среда быстро меняется, объекты нужно создавать уникальные, ранее не существовавшие. Есть риск, что на момент готовности объекта он уже станет неактуальным, или допущенные ошибки окажутся слишком дорогим удовольствием.
Несовершенство модели сначала заметили разработчики программного обеспечения, но по мере того, как жизнь вокруг нас стала все больше ускоряться, неудобство старых подходов стали заметны и в других сферах, особенно при попытках изменить существующую структуру организации, при построении новых процессов внутри организации и при попытке создать что-то принципиально новое.
В компаниях поняли, что для повышения эффективности нужна работа в команде, для поиска решений нужны эксперименты, а готовых инструкций с гарантированными результатами больше никто не даст.
Меняться нужно, но как построить работу по созданию нового так, чтобы не потратить времени зря, учитывать постоянные изменения и как можно скорее начать пользоваться новыми возможностями. О чем именно, о каком именно «новом» идет речь? Это касается всего, что только может создавать компания: создание новых подразделений, новых услуг, новых продуктов, новых бизнес-моделей, новых подходов к поиску новых путей развития и роста бизнеса, в том числе и за счет совершенствования текущих услуг, продуктов и т.д.. Достигать таких целей как раз и помогает Agile.
В чем же суть Agile-подхода? Альтернатива каскадной модели разработки программного обеспечения начала появляться, потому что старый громоздкий подход перестал справляться со своими задачами – предложить заказчику актуальный, нужный, эффективный продукт. Актуальность терялась после долгих месяцев разработки, модель не позволяла вносить правки в техническое задание и получать обратную связь от потребителей.
Появилась необходимость продвигаться в создании продукта, постоянно сверяясь с окружающей действительностью и внося коррективы в будущий результат, создавая таким образом то, что на конкретный момент разработки актуально и востребовано.
Как в связи с этим должна идти разработка, идеологи гибких методологий описали в своем документе – Agile-манифесте. В этом документе собравшиеся сообщили, что они в постоянном поиске более совершенных методов разработки, при этом постоянно непосредственно занимаются разработкой и помогают друг другу, работая в таком ключе, они пришли к выводам:
Это не значит, что процессы, инструменты, документация, план и условия контракта не важны. Agile-методологи не отрицают, что все это («то, что справа») важно, но больше они ценят «то, что слева» – люди и взаимодействие, работающий продукт, сотрудничество и готовность к изменениям.
Все методологии, модели и подходы, соответствующие манифесту Agile, можно назвать Agile-методологиями, моделями и подходами.
Agile-методологи собрали также основные принципы Agile:
Agile – это скорее философия, концепция, чем методология. Зато на ее основе строятся различные методологии управления проектами.
По сути, любая эффективная работа в команде с целью получения быстрого и эффективного решения – это принципы эджайла в действии.
Взять к примеру выдачу кредитов в банке. Это не проектная, а в чистом виде операционная работа. Раньше чтобы выдать кредит, документы рассматривали разные специалисты по очереди – клиентский менеджер, специалист по залогам, юрист и другие. Если создать команду, скорость выдачи кредита станет в разы выше. Таким образом Agile позволяет сократить время получения готового решения. Для этого нужно, чтобы работала небольшая команда, 3-4 человека, которая ежедневно распределяет между собой задачи и координирует собственную работу.
Что касается производства, то подход следующий. Вместо долгого исчерпывающего планирования, разработки и поставки, когда пройден весь путь, принимается решение о минимуме, который можно сделать, например, за две недели. Выбираются самые приоритетные задачи, позволяющие получить готовый продукт, которым уже можно пользоваться, но который еще можно развивать. Обычно используется доска – в офлайне это может быть флипчарт, стена, окно, любая поверхность, а в онлайне – любая онлайн доска. Делится наполовину. Слева то, что нужно, справа – сделанное. Можно сделать больше статусов – «в подготовке», «запланированные», «в работе», «в тестировании», «выполненные».
Как создать синергию в команде?
Определяйте командные роли и добивайтесь успехов!
Поделитесь ссылкой на тестирование со всеми участниками команды
По этому принципу можно организовать работу любой команды, которая что-то создает или движется к какой-либо цели. В удаленном режиме для этого можно использовать любую онлайн доску для совместной работы.
Agile – общее название «гибкого подхода» в работе. Под этим названием развивается много направлений, использующих разные приемы, многие из которых могут быть полезными для постоянного использования или в определенных ситуациях. К примеру, в Scrum и XP (экстремальная разработка) используется метод «вчерашняя погода». Исходя из статистики предыдущих периодов, команда делает вывод: «За прошлые две недели мы сделали 10 новых опций продукта, значит надо выбрать, какие 10 новых опций мы запланируем на следующие две недели». Каждый раз, планируя ближайший «спринт» (фиксированный интервал времени – в переводе «забег на короткую дистанцию»), участники выбирают определенное количество новых опций, отбирая самые актуальные на момент выбора, те, которые заказчику важнее всего, которым он будет больше всего рад, которые уже сейчас принесли бы больше всего выгоды. Они будут у него уже через две недели.
Заказчик может быть не только внешним, создание новых возможностей может быть направлено на улучшение продуктов и процессов собственной компании, а процесс совершенствования может быть непрерывным.
Важно учитывать, что даже при гибком подходе существует планирование, тестирование, никто не принимается за новую задачу импульсивно, откладывая запланированное. При этом решения принимаются в команде и выполняются в команде, а каждое решение проходит полноценный цикл от постановки задачи до тестирования и применения. Суть – в делении на более мелкие и завершенные шаги, а также в быстром учете обратной связи.
Гибкий подход к решению различных задач часто оправдан, поэтому концепция Agile приживается во многих компаниях. Но практически всегда выбранная методология требует адаптации под конкретную компанию.
Существуют готовые тренинги, но они не решат вопрос адаптации. К тому же не каждой компании подойдет именно такой подход к ведению проектов. По словам эксперта по управлению проектами и бизнес-тренера Георгия Ковалева, практически не существует компаний, в которых можно было бы использовать какой-либо готовый стандарт в чистом виде. Каждый случай требует подбора методологии и адаптации ее к компании и ее деятельности. Для оптимизации работы над проектами лучше обратиться к специалисту по проектному менеджменту.