Menu

Отрасль ИТ утрачивает монополию на Agile

ЛЮДИ И ВЗАИМОДЕЙСТВИЕ важнее, чем ПРОЦЕССЫ И ИНСТРУМЕНТЫ
РАБОТАЮЩИЙ ПРОДУКТ важнее, чем ИСЧЕРПЫВАЮЩАЯ ДОКУМЕНТАЦИЯ
СОТРУДНИЧЕСТВО С ЗАКАЗЧИКОМ важнее, чем СОГЛАСОВАНИЕ УСЛОВИЙ КОНТРАКТА
ГОТОВНОСТЬ К ИЗМЕНЕНИЯМ важнее, чем СЛЕДОВАНИЕ ПЕРВОНАЧАЛЬНОМУ ПЛАНУ

Из Agile-манифеста разработки 
Программного Обеспечения

Кому может быть интересна эта статья? 

В первую очередь, она может быть интересна профессионалам из отрасли ИТ. Они могут с удивлением узнать, что метод Agile – «детище» их отрасли, постепенно перестаёт принадлежать исключительно им, и становится «достоянием общества». Однако, статья может заинтересовать и профессионалов из других отраслей. Возможно, они откроют для себя тот факт, что используемые в отрасли ИТ методы Agile вполне подходят для разработки новых продуктов и услуг в их отрасли. В таком случае, они обретут эффективный инструмент, который наилучшим образом соответствует современным реалиям.
Мы исходим из того, что читатели нашего блога имеют по крайней мере общее представление об Agile. А потому, здесь мы не будем пересказывать историю возникновения Agile и его преимущества перед классическим каскадным методом разработки Программного Обеспечения (ПО). Благо, в сети Интернет доступно великое множество материалов, посвященных этой теме. Мы же, постараемся вкратце рассказать о том, представители каких отраслей и по какой причине сегодня используют методы Agile.

Кто и почему сегодня использует Agile?
 

Прошло ровно 20 лет с тех пор как 17 разработчиков ПО, собравшись в городе Сноуберд (штат Юта), составили и опубликовали Agile-манифест. Предполагали ли авторы, что наступит день, когда созданный ими метод разработки ПО будет заимствован профессионалами из принципиально иных отраслей? Навряд-ли. Тем не менее, сегодня, методом Agile пользуются представители множества отраслей. Согласно 14-ому ежегодному отчёту State of Agile, 95% опрошенных компаний активно используют методы Agile. При этом, к отрасли ИТ относится чуть меньше трети из них (27%):

agile-methodology-technology

Конечно, такие показатели можно объяснить тем, что разработчики ПО работают не только в компаниях, относящихся к отрасли технологий, но и во многих других (таких как отрасль финансовых услуг и т.д.). Однако, как становится ясно при дальнейшем изучении отчёта, эти компании применяют Agile не только для разработки ПО, но и для ряда других видов деятельности: 

agile-methodology-software-development

Помимо видов деятельности, представленных на диаграмме, Agile широко применяется для управления различными типами проектов и организаций. Сегодня, можно смело сказать, что созданная в отрасли ИТ Agile вышла далеко за её пределы, охватив банковскую, страховую, финансовую, социальную, образовательную и даже государственную сферы. Да, да. Даже государственную. Ряд стран, таких как Сингапур, Великобритания и Австралия, активно используют методы Agile для цифровой трансформации государственных услуг и создания электронного правительства. В этой статье мы не станем вдаваться в подробности того, как именно на практике применяет методы Agile каждая из перечисленных отраслей. Однако для тех, кого это заинтересовало, мы приведём несколько соответствующих ссылок в конце статьи. В самой же статье, мы ограничимся лишь рассмотрением одной из таких отраслей, а именно отрасли образования. Но прежде, постараемся понять, чем вызван растущий интерес к Agile. В этом нам помогут данные того же отчёта State of Agile, которые раскрывают причины, которые побуждают компании использовать этот метод:

agile-methodology-it

Как видим, главными причинами является стремление ускорить разработку программного продукта и эффективно отвечать на изменения в требованиях к нему. Если взглянуть шире, несложно заметить, что сегодня, высокая конкуренция и быстрые меняющиеся условия, вынуждают компании и организации искать альтернативные методы разработки новых продуктов и услуг. Они ищут такие методы, которые позволяют не только создавать новые продукты в кратчайшие сроки, но и изменять их в ходе производства. Именно такими методами и являются методы Agile.

Agile в отрасли образования

В отрасли образования есть такая специальность: методист образовательных программ. Он создаёт учебную программу, планы занятий и материалы. На основе этого всего преподаватели или тренеры впоследствии обучают студентов. При этом, сам методист вовсе не обязан быть знатоком той области, для которой он разрабатывает образовательную программу. Знатоком является эксперт из необходимой области (будь то математика, лингвистика, менеджмент или что-то иное). Методист разрабатывает программу в сотрудничестве с таким экспертом. Ответственность же самого методиста состоит в том, чтобы подобрать такой формат, план и материалы обучения, которые наилучшим образом подойдут целевой аудитории – студентам, которым будет преподаваться учебная программа.
Работа методиста схожа с работой разработчика компьютерных программ. Во-первых, методист тоже разрабатывает программы (хоть и образовательные). Во-вторых, методист тоже, изучив требования заказчика и внешние факторы, подбирает оптимальную модель для разработки каждой конкретной программы. В некоторых случаях, он выбирает традиционную (каскадную) модель разработки (такую как ADDIE или ASSURE). Однако, всё чаще методисты отдают предпочтение Agile моделям (таким как SAM1 или SAM2). Для того чтобы лучше понять, что побуждает методистов выбирать Agile модели, рассмотрим два примера.

ПРИМЕР 1 
Компания «Альфа» предлагает курсы и тренинги для взрослых. У неё есть несколько конкурентов. Они столь же хорошо известны, ориентированы на ту же аудиторию и предлагают качественные курсы по идентичной цене. Уровень конкуренции высокий. Поэтому, важную роль играет фактор Time To Market – время от появления идеи по разработке нового продукта до поставки его первой версии на рынок. Проще говоря, если на рынке появляется спрос на некий образовательный курс, то компания, которая разработает его первой, получит бо́льшую долю рынка. При этом, вовсе не обязательно, чтобы первая версия курса была совершенной во всех отношениях – этого можно добиться во второй, или даже в третьей версии. Главное, предоставить рабочий курс раньше конкурентов.
Теперь представим, что на рынке появился спрос на курс «Основы Big Data для менеджеров». Перед методистом компании «Альфа» поставлена задача: в краткий срок разработать небольшую и простую образовательную программу. Какую модель разработки выберет методист? Вероятнее всего, это будет одна из разновидностей Agile, такая как SAM1 (Successive Approximation Model 1). 
Работа будет состоять из трёх этапов, осуществляемых в несколько итераций:
agile-methodology-process

Итерация 1. 
Первым делом, методист проведёт простой Анализ аудитории и требований заказчика, определит образовательные цели, бюджет, временные рамки и т.д.  (Это напоминает то, как разработчик компьютерных программ изучает требования заказчика и составляет Техническое Задание).
Далее, методист совместно с экспертом осуществят Проектирование всего курса – определят количество занятий, распишут план и цели каждого занятия, продумают систему оценивания студентов. (Это напоминает то, как разработчик компьютерных программ продумывает архитектуру будущей программы).
Ну и наконец, методист в сотрудничестве с экспертом приступят к Разработке содержания для каждого занятия. Они подготовят необходимые материалы – текст, изображения, аудио, видео и т.п. (Это в точности напоминает то, как разработчик компьютерных программ пишет код будущей программы).
Как только вышеописанные работы по разработке первой версии образовательной программы будут завершены, преподаватель компании «Альфа» проведёт курс для первой партии слушателей.

Итерация 2 и выше
В начале второй итерации методист снова проведёт Анализ. Однако в этот раз он проанализирует не требования заказчика (он это уже делал в Итерации 1), а отзывы, полученных от слушателей и преподавателей первой версии образовательной программы. Эти отзывы позволят оценить качество разработанной программы и выявят какие необходимо внести изменения/дополнения. 
Далее, методист с экспертом внесут необходимые изменения и добавления в Проект программы. 
Ну и наконец, будет осуществлена Разработка: изменения и добавления найдут отражении в контенте образовательной программы. 
По завершению вышеописанных работ будет готова вторая – улучшенная версия образовательной программы «Основы Big Data для менеджеров». Преподаватель компании «Альфа» проведёт курс уже для второй партии слушателей.
Если отзывы, слушателей и преподавателей выявят необходимость в этом, то методист с экспертом совершат вышеописанные шаги ещё раз – проведут третью итерацию. В этом случае, компания «Альфа» получит ещё более улучшенную версию своего курса. 

В рассмотренном примере мы увидели, что методист образовательных программ, также, как и разработчик компьютерных программ, использует в своей работе итеративный подход. Этот подход отражён в первом из двенадцати основополагающих принципов Agile-манифеста:
«Наивысшим приоритетом для нас является удовлетворение потребностей заказчика, благодаря регулярной и ранней поставке ценного программного обеспечения».
Отметим, что заменив здесь слова «программного обеспечения» на слово «продукта»/«услуги», мы, вероятно, обнаружим, что этот принцип волне подходит и для какой-либо иной отрасли.

ПРИМЕР 2
Рассмотрим несколько иной пример. Та же компания «Альфа» хочет разработать дистанционный курс, позволяющий студентам с нуля овладеть профессией JAVA-программиста. Студенты смогут пройти этот довольно-таки объёмный курс лишь за год или полтора. Однозначно, разработка образовательной программы для столь продолжительного курса потребует от методиста очень много времени. Если компания «Альфа» решит, что курс будет запущен после того, как методист разработает образовательную программу полностью, то ждать придётся очень долго. Конкуренты могут оказаться быстрее, и тогда они захватят бОльшую долю рынка. Поэтому, перед методистом компании будет поставлена следующая задача: разработать образовательную программу не целиком, а небольшими и полностью готовыми к преподаванию частями – модулями. Схема очень проста: в то время как преподаватели преподают студентам готовый модуль, методист с экспертом разрабатывают следующий. Такая схема позволит запустить курс в кратчайшие сроки – сразу после того, как будет готов первый модуль. Кроме того, такая схема имеет ещё одно весомое преимущество. Если вдруг, на протяжении того времени пока идёт преподавание курса, появятся некие технические новшества, знания о которых желательно включить в программу курса, то это можно будет сделать с лёгкостью. Если же разработать программу целиком до начала курса, тогда эта задача окажется невыполнимой. Таким образом, мы видим ещё одно применение Agile моделей. Они уместны в случаях, когда требования к образовательной программе могут меняться в ходе её разработки (наверняка, подобная ситуация «до боли» знакома разработчикам компьютерных программ). 
Итак, для разработки образовательной программы «Профессия JAVA-программист с нуля», методист, наверняка, выберет SAM2 – ещё одну из Agile-моделей.
Работа будет состоять из трёх фаз, две из которых будут осуществляться в несколько итераций:

agile-methodology-phase

Подготовка (разовая фаза)
На этой стадии, методист проводит тщательный анализ требований заказчика, целевой аудитории, образовательных целей, бюджета, временных рамок и т.п. Для этого, он собирает в одном месте продукт-менеджера, маркетинг-специалистов, экспертов в сфере JAVA, ответственных за контент технических специалистов и других заинтересованных лиц. В идеале, они проводят продолжительные встречи на протяжении двух-трёх дней. Здесь мы видим, как проявляется одна из отличительных черт модели SAM – тесное сотрудничество и совместная работа заинтересованных сторон (наверняка, разработчики компьютерных программ, прочитав это, вспомнили очередной принцип из Agile-манифеста: «На протяжении всего проекта разработчики и представители бизнеса должны ежедневно работать вместе»).

Проектирование (итеративная фаза)
В этой фазе принимают участие лишь методист и эксперт. Они осуществляют Проектирование всего курса: определяют количество занятий, расписывают план и цели каждого из них, продумывают как экзаменовать студентов. Далее, они подготавливают Прототип будущих занятий на примере одного-двух из них.  Затем, они отправляют всё это на Рассмотрение заказчиков курса. На основе полученных отзывов и оценок, методист и эксперт вносят изменения в проект, создают новый прототип и вновь отправляют на рассмотрение заказчика. Они это делают до тех пор, пока заказчик курса не будет полностью доволен созданным прототипом. Почему это так важно? Потому что на основе этого прототипа методист с экспертом разработают, и сразу же сдадут в эксплуатацию, первые модули образовательной программы. Поэтому, если заказчик решит внести изменения в прототип в ходе разработки последующих модулей, то это испортит впечатление студентов о курсе – он не будет выглядеть целостным...

Разработка (итеративная фаза)
В этой фазе методист и эксперт заняты Разработкой контента для каждого отдельного модуля программы. Далее, они наблюдают за тем, как преподаватели Имплементируют этот контент в процессе обучения студентов. Ну и наконец, они проводят Оценку результатов проделанной работы. Количество итераций, состоящих из этих трёх шагов, будет равным количеству модулей образовательной программы. Пока преподаватели имплементируют готовый модуль, методист с экспертом заняты разработкой следующего модуля, приняв к сведению отзывы касательно предыдущего модуля.
Очевидно, что из всех трёх фаз модели Agile модели SAM2, эта фаза наиболее продолжительная и трудоёмкая.

Итак, в этом примере мы увидели, что методист образовательных программ, также, как и разработчик компьютерных программ, использует в своей работе инкрементальный подход – создаёт продукт «по частям». Этот подход отражён в следующем принципе Agile-манифеста:
«Работающий продукт следует выпускать как можно чаще, с периодичностью от пары недель до пары месяцев».

Вывод

Возможность создавать новый продукт (или услугу) за несколько коротких итераций и возможность создавать его «по частям» делают методы Agile наилучшим ответом на вызовы сегодняшнего дня. Этими вызовами являются необходимость разрабатывать продукт (или услугу) в кратчайшие сроки и необходимость менять его в процессе разработки. Именно этим объясняется возрастание интереса к методам Agile. И именно те компании, которые сумеют приспособить методы Agile под нужды своей отрасли, смогут выжить и добиться успеха в нынешнюю эпоху нарастающей неопределённости и непрерывных изменений.
 


Ссылки по теме

The journey to an agile organization and Agile Organizations series by McKinsey & Company
6 Reasons Why Businesses Should Adopt an Agile Framework by Celerity
How can governments become more agile?
Three lessons on how Singapore built an agile government


Автор статьи: А. Давыдзаде