[БЕЗ_ЗВУКА] Добро пожаловать на второй модуль нашего курса! В нём мы начнём знакомиться с концептуальными основами гибких методологий разработки и управления проектами. Основное заблуждение по поводу гибких методологий, которое часто можно услышать в профессиональных кругах — это обвинение в том, что в Agile нет чёткого плана реализации проекта. Однако это далеко не так, просто акценты и приоритеты расставлены несколько иначе. Вместо заблаговременного тотального планирования и попыток зафиксировать весь объём работ по проекту до начала реальных работ гибкие методологии фокусируются на ожидании изменений и желании добиться максимально возможного качества продукта. А это, в свою очередь, невозможно без постоянного пересмотра уже достигнутых результатов, анализа, в том числе совершённых ошибок или внешних изменений. Самое главное отличие проекта, реализуемого по гибким методологиям, от традиционного проекта — это срок вывода на рынок уже работающего продукта. Пускай это может быть не финальная версия, но это то, что уже реально можно пощупать руками. При этом в последнее время вокруг Agile появилось много разного рода слухов, иногда оправданных, иногда — нет. Некоторые заявляют о том, что Agile — это чуть ли не панацея от всех бед проектного управления, и переводят работу всей компании на Agile-методологии, некоторые ругают его за якобы неконкретность и всячески сторонятся его. Я же хотел бы донести до вас, что как не существует идеальных решений для любой проблемы, так и методологии гибкой разработки не могут быть бездумно внедрены во все проекты. Необходимо в первую очередь уметь выявлять, подходит ли ваш проект для того, чтобы работать с ним по гибким методологиям, а если да, то уверяю вас, ваш проект действительно получит колоссальное преимущество, если вы будете правильно применять Agile-методологию. Методологии Agile созданы как противоположность традиционной линейной методологии «Водопад», подразумевая итеративную и пошаговую разработку, что минимизирует риски. Суть в том, что работа с применением гибкой методологии состоит из серии коротких циклов — итераций — длительностью от двух до трёх (иногда — больше) недель. Каждая итерация включает в себя этапы планирования, анализа, анализа требований, проектирование, разработку, тестирование и документирование. По завершению каждой итерации команда предъявляет заказчику осязаемые результаты работ. Например, первичную версию продукта или часть функционала, который можно посмотреть, оценить, протестировать, потом доработать или скорректировать. В итоге заказчик контролирует разработку и может на неё сразу влиять. После каждого этапа на основе проделанной работы команда подводит итоги и собирает новые требования, на основании чего вносит корректировки в план разработки продукта. В каких проектах имеет смысл применять Agile? Вот самые распространённые случаи. Если нужен быстрый запуск продукта при условии его дальнейшей доработки. Если отсутствуют долгосрочные планы — гибкая методология подразумевает краткосрочное планирование. Если у заказчика нет видения конечного продукта, чёткого ожидаемого результата, а понимание приходит во время разработки. Если нет строгой привязки к бюджету и срокам, которые в инновационных проектах, как правило, оценить невозможно. Когда клиент готов регулярно тратить своё время на общение с командой. Однако не стоит ограничиваться данным списком. Оценивать проект на гибкость надо по целому набору критериев, рассматривать которые мы будем на одном из следующих уроков. Сразу хочу сказать, что эталонной методологией на протяжении курса у нас будет Scrum, так как это одна из наиболее популярных Agile-методологий в мире. Также по ней достаточно легко можно пройти сертификацию и в России, что может представлять для вас практический интерес, так как работодатели сейчас действительно ценят наличие такого сертификата. В чём же именно заключается суть структуры методологии Scrum, мы изучим на последующих уроках. Изначально Scrum зародился и применялся только в IT-сфере, но сегодня его практики можно встретить во многих проектах, где присутствует высокая степень неопределённости, где идеальный план сталкивается с реальностью и рассыпается в прах, где часто меняются приоритеты и возникают непредсказуемые сложности. Scrum сегодня используют в маркетинговых, образовательных проектах, в рекрутинге, медиа, юристы и бухгалтеры, при ремонте квартир и даже в госструктурах. В примере, когда ремонт квартиры идёт не строго по дизайн-проекту или вовсе кардинально меняется из-за отсутствия возможности сломать стену, Scrum вполне может подойти. А вот для изготовления мебели строго по образцу — нет, только если в процессе не возникают непредсказуемые сложности: от задержки и поставки не того материала до потери схемы заказа. Есть мнение, что Scrum больше подходит для долгих непрерывно развивающихся проектов. Также считается, что он особенно эффективен на начальных стадиях, когда нет чёткого понимания, что делать в первую очередь и как именно, а по мере развития проекта могут использоваться лишь отдельные практики — Agile это допускает и предполагает. Разработка высокотехнологичных продуктов по гибкой методологии больше похожа на написание книги рецептов, нежели на приготовление блюда по какому-то конкретному рецепту. Согласитесь, ведь не существует какого-то идеального рецепта, как пошагово сделать так, чтобы ваш новый высокотехнологичный продукт обязательно стал успешным. Однако, когда мы пишем книгу рецептов, то мы следуем определённому набору действий: собираем информацию, организуем её и тестируем. После того, как мы опробовали какие-то рецепты, мы можем внести в них изменения, адаптировать, улучшить, а какие-то из них и вовсе исключить из списка за ненадобностью. И если наша книга удачна, то мы можем продолжать над ней работу: выпускать второе, третье издание, то есть продолжать жизненный цикл нашего продукта. Этим примером я хотел акцентировать ваше внимание на том, что при использовании гибких методологий для разработки ваших высокотехнологичных продуктов сами такие продукты стоит рассматривать как живые развивающиеся организмы, а не какое-то статичное состояние, к которому вы придёте в той или иной точке работы над проектом. Именно этому нас учит философия Agile, и именно этот подход мы будем развивать на протяжении курса. И ещё хотел бы добавить, что разработка большинства высокотехнологичных продуктов сегодня тесно связана с разработкой управляющего им программного обеспечения. Так как изначально гибкие методологии зарождались именно среди разработки программного обеспечения, то многие описания их применения в данном курсе будут ссылаться на связанные с разработкой софта примеры. Имейте в виду, что сегодня всё больше и больше практик и инструментов из гибких методологий применяется и к несофтовым продуктам тоже, и после ознакомления с конкретной практикой вы можете самостоятельно принять решение, готовы ли вы применять их к вашему конкретному продукту.