Почти 15 лет назад был представлен Agile Manifesto, в котором в качестве альтернативы традиционному управлению проектами создания программных систем предлагалась радикально измененная методология. Согласно принципам скорой (agile) разработки, требования к проекту и решения менялись посредством организации в цикле разработки взаимодействия, при котором все задачи разбиваются на небольшие составляющие. Такая методология помогает бизнесу управлять непредсказуемостью и требует для успешного решения задач изменения менталитета участников проекта.
Скорые методы служат для управления взаимодействием, прозрачностью и качеством на протяжении всего жизненного цикла продукта и разработки ПО, но не всегда бывают правильным выбором для организации. В манифесте подчеркивается: наряду с изучением того, что представляет собой скорая разработка, немалую ценность составляет и понимание того, чем она не является.
А она не является универсальным средством и не обязательно станет самым дешевым решением. Это всего лишь некая хорошо продуманная система взглядов, помогающая командам-разработчикам действовать согласованно и создавать работоспособные программные системы коллективными усилиями и с более высоким качеством.
Скорая методология сулит огромные преимущества с точки зрения как бизнеса, так и перспектив разработки: ИТ становятся совершеннее, а новые продукты выводятся на рынок все быстрее, повышая конкурентоспособность их производителей. Но нужно ли внедрять скорые методы разработки, и если нужно, то следует ли это делать постепенно или сразу в масштабах всей организации?
Сначала имеет смысл проанализировать уже сложившуюся культуру разработки продуктов и управления проектами. Если организация демонстрирует реальные успехи, используя традиционную каскадную модель, то стоит ее и придерживаться: определять цель, формировать команду, формулировать требования, проектировать решение, разрабатывать программный код, тестировать его и затем приступать к развертыванию созданного ПО в производственной среде.
Если жизненный цикл разработки систем в вашей организации отлажен и дает ожидаемые результаты, то никаких изменений вносить не надо!
Если же ограничения каскадной модели становятся сдерживающим фактором, скорая разработка может оказаться более жизнеспособным вариантом. Некоторых бизнес-руководителей смущает огромная трата времени на начальном этапе реализации проекта, при том что анализ и принятие решений о разработке осуществляются, когда о продукте мало что известно.
При отсутствии правильного управления проект придется пересматривать на поздних стадиях, когда станет понятно, что он нуждается в изменениях. Такой подход приводит к появлению продукта, который хотят получить представители бизнеса. Но это не значит, что он нужен им в таком виде.
Скорая разработка позволяет «вынести за скобки» элемент неопределенности и дает возможность членам команды заниматься тем, что у них получается лучше всего: представить себе решение, подобрать нужных людей и создать потенциально востребованный продукт. В этом смысле скорые методы имеют перед традиционной моделью разработки ПО следующие неоспоримые преимущества.
- Взаимодействие между командой разработчиков и клиентом становится заметно эффективнее.
- Упор делается не на процессы и инструменты, а на вовлечение конкретных лиц и организацию взаимодействия между ними.
Еще одним фактором при принятии решения является зрелость процессов в организации. Если на предприятии внедрено процессное управление, а вы подумываете о переходе к методологии скорой разработки ПО, необходимо понять, как это будет осуществляться на практике. Для того чтобы люди поняли преимущества постепенного или одномоментного внедрения методологии скорой разработки, необходимо внести серьезные изменения в систему управления и организовать дополнительное консультирование.
Нужно понимать также, что на переходном этапе организации придется столкнуться с целым рядом подводных камней.
- Фиксация выделяемого времени и ресурсных рамок проекта. Это ограничение лишает команду гибкости. При каскадной модели менеджеры проектов чувствуют себя достаточно комфортно, направляя запросы на изменения при необходимости скорректировать конкретные часы и задачи. При гибком проектировании в случае изменений разработчики постоянно добавляют новые элементы в портфель заказов, не меняя при этом границы проекта и расписание. И хотя требования при скорой разработке могут меняться, сроки всегда остаются теми же самыми.
- Определение сроков для всех итераций и задач заранее. Желание начинающих менеджеров проектов, придерживающихся скорой методологии, заранее спланировать все требования, задачи и тексты для каждого спринта (итерации разработки) вполне естественно. Но это же и мешает самоорганизации команды и поиску оптимальных темпов, формирует нереальные ожидания в части сроков.
- Навязывание единых темпов разработки всем командам. Каждая команда придерживается собственных темпов, использует собственные методы преодоления трудностей и решает задачи с присущей ей скоростью. Менеджерам не стоит пытаться сравнивать скорость, с которой работают разные команды. Позвольте людям обучаться и усваивать новое в своем темпе.
- Ощущение потери контроля. Если переход к скорой разработке осуществляется правильно и в нужных масштабах, руководители проектов и программ лучше понимают ежедневный ход работ, точно знают, что еще осталось сделать, и находятся в курсе всех пробуксовок.
- Отказ от привлечения специалистов по тестированию в процессе планирования и реализации спринтов. Закладывая в планы проверку качества, вы формируете направления для тест-планов и определяете, что понимается под «правильной работой» программы. Это требует от организации привлекать специалистов по тестированию значительно раньше, что уже становится отходом от каскадной методологии, при которой тестирование выполняется в конце. На практике реализовать эту идею очень сложно, поскольку в каскадных проектах тестирование и проверка качества закладываются в бюджет ближе к концу проекта.
Изменить уровень управления, к которому менеджеры проектов привыкли при каскадном подходе, непросто. Но обращение к скорой методологии представляет собой решительный шаг вперед. Организации, совершившие такой шаг, имеют лучшее представление о ежедневных результатах работы.
Отдельного упоминания требует фактор качества. По данным компании Standish Group, организации, придерживающиеся скорой разработки, сообщают о повышении качества в среднем на 63%. Те, кто предпочитает устранять дефекты в процессе создания правильного продукта вместо проектирования того, что может не совпадать с желаниями заказчика, привносят в бизнес дополнительную ценность. А по мере улучшения качества и создания ценностей команды разработчиков обеспечивают полную прозрачность своих действий и укрепляют диалог между бизнесом и ИТ.
Мгновенный переход не всегда необходим для долгосрочного успеха компании. Для некоторых проектов организации могут выбрать скорую методологию, а другие реализовывать на основе каскадного подхода.
Прежде чем принять решение о постепенном или одномоментном переходе к скорой разработке, необходимо проанализировать свою корпоративную культуру и готовность к изменениям. Оцените стремление своей команды к повышению качества и получению более высокой отдачи. Насколько велико желание бизнеса ускорить вывод на рынок новых предложений и наращивать свои конкурентные преимущества? Проанализируйте текущее состояние вовлеченности клиентов и сотрудников.
Джек Уолсер – менеджер компании AIM Consulting по обслуживанию клиентов, более 17 лет руководит работами, связанными с обеспечением непрерывных улучшений, разработкой ПО и реализацией проектов по трансформации стратегии.
– Jack Walser. Agile development: Adopt gradually or dive in? Network World (US). 01/22/2015