Когда мы начинаем говорить об Agile, прежде всего, мы должны понять, что это такое. У меня есть для вас как хорошие, так и не очень новости. Давайте начнем с не очень.
Вспомним, как началась история Agile. Это произошло довольно давно, в 2001 году, когда группа представителей IT-сектора собралась для создания Agile Manifesto. Почему? Они хотели выработать концепцию, которую можно использовать для борьбы с дисфункциями, с которыми столкнулись в мире разработки программного обеспечения.
На тот момент было множество проблем, включая переработку, постоянное изменение требований, и низкую ценность, генерируемую в процессе создания продукта. Простыми словами, можно было потратить три года на разработку продукта, и в конечном итоге получить что-то совершенно иное, чем ожидалось.
Так что, лидеры в области управления IT-проектами собрались и начали искать решения для этих проблем. В результате этого совместного мозгового штурма, они создали так называемый Манифест Гибкой Разработки - Agile Manifesto.
Agile Manifesto состоит из четырех основных ценностей, представленных в формате сравнений, и двенадцати принципов. Сейчас я не буду вдаваться в подробности всех принципов, но вместо этого поделюсь с вами основными четырьмя ценностями, которые лежат в основе Agile.
Определение понятия Agile
Итак, я начал с упоминания о неких не самых приятных новостях. И вот они: когда та группа экспертов собралась и создала Agile Manifesto, они, к сожалению, пропустили определение самого понятия "Agile".
В связи с этим, не удивляйтесь, если столкнетесь с множеством интерпретаций Agile в различных источниках. Некоторые называют его методологией, другие - совокупностью методов и практик, а третьи - протоколом коммуникации. Вы также можете услышать, что Agile - это метод, философия, а иногда даже религия.
Это происходит из-за того, что нет официального определения Agile подходу, и каждый интерпретирует его, исходя из своей точки зрения.
Я предлагаю вам смотреть на Agile как на набор конкретных методов и практик, которые не противоречат ценностям Agile Manifesto и следуют его двенадцати принципам.
Это суть рабочих инструментов, используемых в IT-проектах, производстве, банковском деле, продажах и т. д. Не воспринимайте Agile как абстрактное понятие.
Давайте еще раз обратим внимание на Agile Manifesto. Здесь важно понять, как формулируются его ценности.
Ценности Agile подхода
Идея проста.
Первая ценности гласит: "Люди и взаимодействие важнее процессов и инструментов". Почему это так важно? Действительно, если у вас есть команда людей, которые умеют взаимодействовать, они способны построить необходимые процессы и выбрать подходящие инструменты. Однако, если у вас есть только процессы и инструменты, но нет команды, либо команда не умеет взаимодействовать, то весь ваш проект обречен на провал. Без правильного взаимодействия в команде, вы не сможете достичь качественного результата.
Вторая ценность звучит так: "Работающий продукт важнее совершенной документации". Это не значит, что документация не важна, но суть в том, что разрабатывая документы требований, тестовые планы и любые другие документы, мы как команда постоянно должны фокусироваться на конечном результате - на работающем продукте. Agile призывает к созданию минимально необходимого количества документации, чтобы мы не утратили фокус на основной цели - рабочем продукте. Если мы будем только заниматься созданием документации, особенно если это будет избыточно, как иногда происходит в крупных компаниях, мы рискуем потерять ресурсы и время, не достигнув в итоге работающего продукта. Обратите внимание, что все эти принципы сформулированы в формате сравнений.
Третья ценность гласит: "Сотрудничество с заказчиком важнее согласования условий контракта". Исторически часто случалось, что проекты затевались с конкретным списком требований, закрепленных в контракте, и изменение этих требований стоило огромного количества времени и ресурсов. Однако Agile рекомендует фокусироваться на сотрудничестве с заказчиком, чтобы ускорить процесс разработки и доставки. Контракт здесь не должен служить управляющим фактором для всего процесса создания продукта.
Точно так же, если специалист тестирования или разработчик работает, исходя исключительно из перечня функций, не учитывая, например, взаимодействие пользователя с интерфейсом или определенной функцией, то это приводит к формализованной, конвейерной работе. Но мы хотим, чтобы специалисты смотрели на процесс шире. Именно сотрудничество с заказчиком позволяет лучше понять потребности наших реальных пользователей.
Четвертая ценность говорит нам, что "Реакция на изменения должна быть важнее следования первоначальному плану". Давайте обратимся к примеру, чтобы продемонстрировать важность готовности к изменениям в Agile. Мне нравится использовать исторические примеры для объяснения сложных понятий, потому что они помогают лаконично и ярко донести суть.
Так вот, представьте себе ситуацию 300 лет назад. Вы на паруснике, возвращаясь из Африки с грузом специй, которые вы планируете продать в Великобритании. Однако, когда вы прибываете, в Великобритании бушует чума, половина вашей команды умирает, и специи никому не нужны. Ваш план, хоть и был тщательно продуман, оборачивается неудачей.
Суть в том, что все занимает время, и время неизбежно ведет к изменениям. Изменения в области, в которой мы работаем, изменения в технологиях, которые мы используем. Поэтому когда мы начинаем планировать, наш план уже начинает устаревать. Чем дольше период планирования, тем менее релевантным он становится.
В рамках Agile подхода мы должны поступать иначе. Представьте, что вы покупаете те же самые специи и направляетесь в Великобританию. Но в этот раз вы постоянно собираете информацию, мониторите происходящее вокруг. Вы заходите в разные порты, собираете информацию, адаптируете планы. Это может занять немного больше времени, но вы обладаете большим объемом информации для принятия взвешенного решения. Если вы узнаете о чуме в Великобритании, вы быстро меняете курс и направляетесь в Данию. В итоге вы продаете свои специи и все идет гладко.
Вот в чем суть Agile: в организации всех процессов, включая анализ, разработку и тестирование таким образом, чтобы максимизировать создаваемую командой ценность в глазах клиента. Agile поддерживает и поощряет адаптивность и гибкость в управлении проектами и продуктами, что помогает в условиях нестабильности и быстро меняющихся требований.
Понимаю, что все эти концепции Agile могут показаться сложными и иногда непонятными, особенно когда пытаешься применить их на практике.
Вы можете задаваться вопросами: "Как привить эту философию моей команде? Как подчеркнуть значение этих ценностей и принципов для всех участников проекта?"
Я рад сообщить вам, что помочь в этом мне как раз и удаётся лучше всего.
Приглашаю вас на мой ближайший тренинг Certified Agile Professional. Здесь мы не только рассмотрим теоретические аспекты Agile, но и вместе обсудим конкретные примеры из практики, изучим фундаментальные инструменты, такие как Scrum и Kanban, которые значительно ускорят процесс выполнения ваших проектов и повысят уровень мотивации вашей команды.
Этот тренинг станет стартом вашего пути к Agile и поможет по-новому взглянуть на управление проектами. Жду вас на тренинге!