Аспирант «Нетологии» Максим Пименов рассказывает про Agile — гибкую методологию разработки программного обеспечения.
Если писать сложную программу без плана, то ничего не выйдет. Это как выпустить автомобиль: нужно подобрать двигатель, изучить рынок, проработать конструкцию, создать дизайн и собрать все на конвейере. Когда не знаешь, что делать и в каком порядке, то ни машина, ни программа не заведутся.
Чтобы процесс создания программы шел правильно, программисты используют методологии. Методология — это набор стратегий и способов создания продукта. Их много и новичок не знает, что выбрать: RUP, XP, Scrum, Waterfall или другой набор букв.
Agile — это молодая семья гибких и демократичных методологий. Её лозунги привлекательны как «Свобода, равенство и братство», а принципы даже кажутся утопичными.
Мои знакомые программисты либо пытаются работать по Agile, либо хотят его попробовать. Методологию заметили даже суровые люди в галстуках, которые не ведутся на новинки для хипстеров. Глава Сбербанка Греф ежемесячно её пиарит:
Что такое Agile понятным языком
«Слово «agile» становится популярным во всем мире и, слава тебе Господи, в нашей стране, потому что мы, как и в других случаях, приходим к нему последними. Переход в Agile — это самый большой вызов, который сегодня стоит, в том числе, перед нами и перед всеми большими организациями».
И пошло-поехало: все дробят штат на команды по 5—9 человек, рисуют скрам-доски и проводят ежедневные стендапы.
Agile-доска в офисе «Яндекс.Картинок»
При этом глобально программы работают кое-как, обновляются редко, до рынка идут годами. Революции всё же не произошло. Давайте посмотрим, что такое Agile и что делать, чтобы он заработал.
Старые методы разработки слишком громоздки
До появления Agile IT-компании использовали каскадную модель разработки (она еще известна как водопадная, потому что по-английски называется Waterfall). Чтобы стало чуть яснее, что́ с ней не так, скажу, что методологию сформулировали в 1970-м. Её суть в том, что работа над проектом состоит из жесткой последовательности этапов:
Пока не закончится предыдущий этап, не может начаться следующий. Тут и начинаются проблемы.
Предположим, тестировщики нашли в продукте серьезные ошибки, и его нужно перепроектировать. Работа откатывается на два шага назад, и проект снова проходит стадии проектирования, разработки и тестирования.
При каскадной разработке между анализом требований к продукту и интеграцией (выводом на рынок) проходят месяцы и годы. К этому времени рынок меняется, продукт порой устаревает еще до релиза.
Риск потерять уйму денег — хороший повод поразмыслить. В 2001 году практикующие айтишники собрались на горнолыжном курорте в Юте. Официальный сайт преподносит событие так: «…seventeen people met to talk, ski, relax, and try to find common ground — and of course, to eat». Итогом стала Библия Agile — Agile Manifesto.
Agile — простая и симпатичная философия
Если вы думаете, что авторы Agile Manifesto написали сборник советов о работе над проектом, вы немного ошибаетесь. Манифест включает в себя 4 ценности, 12 принципов и 0 практик.
Начнем с ценностей, потому что именно они соль Agile:
- Люди и взаимодействие важнее процессов и инструментов.
- Работающий продукт важнее исчерпывающей документации.
- Сотрудничество с заказчиком важнее согласования условий контракта.
- Готовность к изменениям важнее следования первоначальному плану.
В этом виде Agile похож на религию прекраснодушных ИТ-эльфов. Авторы как будто не знают, что разработка ПО — это бессонные ночи авралов, скандалы между проектировщиками и кодерами, переносы релизов, нервы и прочие прелести реальной жизни.
К счастью, Agile — больше, чем набор из четырех заповедей. Авторы прописали в манифесте также 12 принципов методологии. Принципы тоже непохожи на руководство стартапера, но в них уже есть настоящее мясо.
Разработка делится на спринты
Авторы Agile сделали основой методологии старую шутку «— Как съесть слона? — По кусочкам». Уже в этой части гибкий подход отличается от каскадного.
Месяцами «пилить» проект, запустить его по готовности.
Разбить продукт на сотни небольших задач, выполнять их порциями и сразу выпускать обновления на рынок.
Команда проекта разбивает разработку на небольшие периоды — спринты. В последние годы популярны двухнедельные спринты.
С каждым спринтом продукт становится полезнее
Перед первым спринтом команда и заказчик проводят совещание. Заказчик — условная роль, им может быть и член команды. Он определяет задачи, которые команда решит за спринт.
Здесь появляется первая сложность. Согласно философии Agile, после каждого спринта продукт должен быть:
- работоспособным;
- полезным для пользователя;
- более совершенным, чем до спринта.
Agile-подход к разработке продукта.
Результатом первых недель работы должен стать продукт, готовый к выходу на рынок. Такой продукт называют минимально работоспособным (Minimum Viable Product, MVP).
Запуск MVP — важная точка проекта. Удачный MVP либо сразу привлекает пользователей, либо сразу проваливается и показывает нежизнеспособность идеи.
Допустим, мы делаем интернет-магазин. Магазину нужны карточки товаров, поиск, корзина, профили пользователей, бонусная система, рассылки и все такое. Если делать это по каскадной методологии, до запуска пройдут месяцы. Мы идем по Agile, поэтому ищем MVP. Для онлайн-магазина это, внезапно, лендинг, который собирает электронные адреса потенциальных клиентов.
Посетитель, который оставит емейл, получает скидку на первую покупку. Сделать такой лендинг за спринт проще простого.
Этот MVP приносит пользу: лэндинг покажет, насколько наш магазин интересен аудитории, а потенциальные покупатели получат скидку. Это удачный MVP. Подробнее про суть минимально работоспособного продукта хорошо написал инвестор Аркадий Морейнис.
Возвращаемся к спринту. Во время него команда работает по модели, близкой к каскадной. Каждую новую функцию проектируют и программируют, а затем тестируют и документируют. Когда спринт завершен, команда имеет работоспособную, полезную и более совершенную версию продукта.
Перед следующим спринтом команда планирует следующий рывок. На этом этапе заказчик может добавить задачи, которых раньше не было. Agile поощряет то, что немыслимо для «водопада»: «Изменение требований приветствуется, даже на поздних стадиях разработки». В конце проекта продукт может сильно отличаться от того, что планировали на старте.
Пары «план — спринт» идут одна за другой, пока живет проект.
Команда работает как захочет
Внутренние и внешние связи agile-команды максимально демократичны. Одна из причин, по которым методология практически не работает в России — руководители не понимают, как можно «до такой степени распускать коллектив». Согласно Agile, команда — это самоорганизующаяся единица. Никто не имеет права указывать, как она решает задачи внутри спринта. Если хотят, пусть хоть на головах ходят.
Команда — это единое целое, которое не делится на конкретных людей. Ответственность лежит на всей команде: если наказывают или поощряют, то всех сразу. Главное в рабочем процессе — коммуникация. Команда сидит в одном помещении без перегородок и «кубиков», постоянно общаясь между собой. Общение с заказчиком также ежедневное.
В конце каждого спринта команда обсуждает, как работать эффективнее. Это называется ретроспективой. Суть Agile не только в постоянном улучшении продукта, но и в постоянном совершенствовании командной работы.
На самом деле не все любят Agile
У Agile есть противники, которые не разделяют общего восторга. Основная проблема методологии — хаос на дистанции. После каждого спринта меняются приоритеты и появляются новые задачи, поэтому у команды нет видения конечного продукта.
Две недели назад заказчик хотел интернет-магазин, а теперь понял, что это будет социальная сеть для ИП. Команда принимает в задачи на спринт чат и лайки. В следующий раз заказчик видит, что новый фильм про Джеймса Бонда взорвал Интернет. Он добавляет в спринт функции онлайн-кинотеатра. В результате архитектура проекта расползается, а полезное действие продукта становится размытым.
Еще одна проблема — плохой код. Agile проповедует максимальное число полезных изменений продукта в единицу времени. Поскольку цель — это полезные изменения, у программистов нет задачи сделать код как можно надежнее и понятнее.
Agile подталкивает к мысли: то, что функция работает, намного важнее того, как она реализована. На дистанции такой подход приводит к проблемам. Единственная страховка — сверхдисциплинированная и организованная команда.
Если забыть о философии, ничего не выйдет
Есть еще одна проблема, в которой авторы Agile не виноваты: методология стала слишком популярной и даже попсовой. Люди говорят, что работают по Agile, даже не понимая её сути. Они разбиваются на небольшие команды, нарезают проект на небольшие задачи, планируют спринты, регулярно релизят, но убогих проектов не становится меньше.
Помните, в начале статьи я говорил про принципы? Несмотря на их наивность, принципы — самое ценное в Agile. Сначала нужно осознать их и только потом браться за инструменты и практики.
- Люди и взаимодействие важнее процессов и инструментов.
- Работающий продукт важнее исчерпывающей документации.
- Сотрудничество с заказчиком важнее согласования условий контракта.
- Готовность к изменениям важнее следования первоначальному плану.
Люди бездумно следуют инструкциям, забывая, что Agile — это идеология и философия. А забывать нельзя: если не проникнуться духом методологии, сквозь нее пробьется «водопад» пополам с анархией и бюрократией.
Agile — мировоззрение, а не набор советов. Примите Agile, и только потом беритесь за практику.
Мнение автора и редакции может не совпадать. Хотите написать колонку для «Нетологии»? Читайте наши условия публикации.
Средняя оценка 5 / 5. Всего проголосовало 8
Источник: netology.ru
Управление проектом по Agile методике
Отличное практическое пособие по agile-управлению проектами для всех и каждого!
Agile — это способ оперативного и эффективного управления проектами. Этот метод можно использовать для любого типа проектов, но в основном он был определен для разработки программного обеспечения. Agile разбивает большие проекты на небольшие, управляемые части, называемые итерациями. В конце каждой итерации достигается определенный результат. Продукт, который создается в течение каждой итерации, должен быть пригодным для использования для последующего получения обратной связи от пользователей или заинтересованных сторон.
Agile относится к любому процессу, который соответствует концепциям Agile Manifesto (манифест). В 2001 году 17 разработчиков программного обеспечения встретились, чтобы обсудить простые и эффективные методы разработки. Они опубликовали Манифест Agile Software Development, в котором рассказали о том, как они нашли «лучшие способы разработки программного обеспечения, применяя их самостоятельно и помогая делать это другим».
В отличие от управления проектами по водопадной модели, которая является строго последовательной: вы не начинаете разработку, пока не проведены исследования, и не приступаете к разработке, пока дизайн не завершен; в agile дизайнеры, разработчики и бизнесмены работают одновременно и параллельно.
Цикл Agile
Существует множество различных agile направлений. Ваша команда должна выбрать наиболее подходящий для вас процесс. Все они следуют короткому циклу, который повторяется в течение каждой итерации. Не все фазы в цикле agile-разработки могут происходить последовательно. Они гибкие и постоянно развиваются и совершенствуются, причем многие из них происходят параллельно.
Анализ требований: Ключевые заинтересованные стороны и пользователи встречаются для определения бизнес-требований, которые являются количественно измеримыми, релевантными и подробными.
Планирование: После подтверждения целесообразности идеи команда проекта собирается вместе, чтобы определить функционал, расставить приоритеты и распределить их по итерациям.
Дизайн: На основе выявленных требований готовится дизайн, и команда рассматривает, как будет выглядеть продукт или решение, а также определяет стратегии тестирования или план дальнейших действий.
Имплементация или разработка: Разработка функций и планирование итераций для развертывания.
Тестирование: Тестирование кода на соответствие требованиям, чтобы убедиться, что продукт действительно удовлетворяет потребности клиента. Эта фаза включает модульное тестирование, интеграционное тестирование, системное тестирование и приемочное тестирование.
Развертывание: Внедрение продукта для клиентов. Когда клиенты начнут использовать продукт, они могут столкнуться с новыми проблемами, которые команда проекта должна будет решить в последующих итерациях.
Преимущества Agile подхода
Как было описано выше, agile-управление проектами в значительной степени ориентировано на гибкость, непрерывное совершенствование, скорость и прозрачность. Вот некоторые из основных преимуществ agile метода:
Быстрая реализация
Agile позволяет вам как можно быстрее донести вашу концепцию до пользователей. Во время каждого спринта agile-проект предоставляет нечто ценное и тестируемое. В любой момент вы можете решить, что хотите запустить то, что было предоставлено, и начать создавать базу пользователей или тестировать свою гипотезу. Проведение тестирования во время каждой итерации означает, что ошибки выявляются и устраняются быстрее.
Гибкость и принятие изменений
Управление проектами Agile основано на приспособлении к изменениям. Программные проекты постоянно меняются. По мере появления программного продукта или расширения рынка вы должны уметь оперативно реагировать и соответствующим образом обновлять продукт. При более коротких циклах планирования разработки всегда есть возможность уточнить и изменить приоритеты в бэклоге, чтобы учесть изменения в ходе проекта.
Преодоление неясности (Ambiguity)
Agile чрезвычайно полезен для проектов, в которых конечная цель четко не определена. По мере продвижения проекта цели будут становиться все более очевидными и ясными, и команда сможет адаптироваться соответствующим образом.
Управление рисками
Увеличение количества релизов означает, что продукт может быть использован заинтересованными сторонами на ранних стадиях процесса. Принятие изменений в agile означает, что изменение масштаба в середине проекта не является проблемой, в отличие от водопадного управления проектами, где невозможно говорить об изменениях в середине проекта.
Прочное взаимодействие в команде
Agile предполагает частое общение и личные беседы и гарантирует, что все члены команды находятся на одной волне. Таким образом, повышается прозрачность всего проекта с отсуствием каких-либо сомнений и негативных мыслей внутри коллектива.
Методологии Agile
Существует ряд конкретных методологий для внедрения agile. Мы опишем только две из наиболее часто используемых agile-методологий: Scrum и Kanban. Другие методы: экстремальное программирование (XP), Feature-Driven Development (FDD, итеративная методология разработки), Adaptive System Development (ASD, Адаптивная разработка ПО), Dynamic Systems Development Method (DSDM, Метод разработки динамических систем), Lean Software Development (LSD, Бережли́вая разработка ПО) и Crystal Clear (легковесная гибкая методология).
Методология Scrum
Scrum — один из самых популярных методов внедрения agile. Это итеративная модель разработки, часто используемая для управления разработкой сложного программного обеспечения и продуктов. Фиксированные итерации, называемые спринтами, с продолжительностью от одной до двух недель, позволяют команде регулярно выпускать программное обеспечение. В конце каждого спринта заинтересованные стороны и члены команды встречаются для планирования следующих шагов.
Этапы Scrum-процесса:
- Бэклог продукта: Это список всех желаемых функций продукта. Перед каждым спринтом владелец продукта представляет основные пункты бэклога на собрании по планированию спринта. Команда определяет, какую работу она может завершить в течение спринта, и переносит ее из бэклога продукта в бэклог спринта.
- Уточнение бэклога: В конце каждого спринта команда и владелец продукта встречаются, чтобы убедиться, что бэклог продукта готов к следующему спринту. Команда может удалить задачи, которые не являются актуальными. Кроме того, из-за некоторых узких мест могут возникнуть задачи, которые не удалось выполнить в течение предыдущего спринта, и они могут быть перенесены на следующий спринт.
- Ежедневные собрания Scrum: Это 15-минутное совещание, которое должно проходить ежедневно в одно и то же время и в одном и том же месте в течение спринта. Каждый человек в команде должен ответить на 3 вопроса: 1. Что вы сделали вчера? 2. Что вы собираетесь сделать сегодня? 3. Нужна ли вам помощь или существуют ли какие-то препятствия в работе?
- Собрание по итогам спринта: В конце каждого спринта команда представляет выполненную работу в виде реальной, рабочей демонстрации. Также в конце каждого спринта команда обсуждает, насколько хорошо Scrum работает для них, и предлагает изменения, которые необходимо внести в следующий спринт. Эта встреча называется «Ретроспектива спринта».
Методология канбан
Канбан в переводе с японского означает «визуальный знак». Это визуальная структура, используемая для внедрения Agile и показывающая, что производить, когда производить и сколько производить. Она поощряет небольшие, постепенные изменения в вашей текущей системе и не требует определенной установки или процедуры, что означает, что вы можете наложить Kanban поверх существующих рабочих процессов.
Kanban доска
Доска Kanban — это инструмент для реализации метода Kanban в проектах. Традиционно этот инструмент представляет собой физическую доску, с магнитами, пластиковыми фишками или липкими заметками на доске. В последние годы многие программные инструменты управления проектами создали онлайн-доски Канбан.
Доска Kanban состоит из различных строк или столбцов. Самые простые доски имеют три колонки: “Выполнить”, “В процессе” и “Выполнено”. Они также могут состоять из столбцов «Бэклог», «Готов к разработке», «Разработка кода», «Тестирование», «Одобрено» и «Выполнено».
Основные практики Kanban
Каждый проект Kanban должен соответствовать этим основным принципам и практикам:
Визуализируйте рабочий процесс: Визуальное представление работы позволяет понять общую картину и увидеть, как продвигается процесс работы. Делая всю работу видимой, вы можете выявить проблемы на ранней стадии и улучшить взаимодействие между командами.
Управлением процессом и его и улучшение: Ход работ на доске Kanban необходимо постоянно отслеживать для возможного улучшения. Быстрый, непрерывный процесс показывает, что команда быстро создает ценность.
Незавершенная работа (WIP) определяет минимальный и максимальный объем работы для каждого столбца доски или для каждого рабочего процесса. Установив лимит на WIP, вы можете увеличить скорость и гибкость и уменьшить необходимость в определении приоритетов задач.
Четко сформулируйте принципы работы: Все должны понимать, как все работает или что считается » выполненным». Внесите изменения в доску, чтобы сделать эти процессы более понятными.
Постоянно совершенствуйте процесс: Метод Kanban поощряет небольшие, постоянные изменения, которые закрепляются. Как только система Kanban будет внедрена, команда сможет выявлять и понимать проблемы и предлагать улучшения.
В моей следующей статье об управлении проектами по методике agile мы обсудим ключевые различия между Scrum и Kanban и то, как использовать один из них или сразу оба метода с пользой для себя.
Скоро состоится открытое занятие «Как сделать ретроспективу в Agile полезной?». Разберём популярные заблуждения о ретроспективах и поговорим про набор полезных практик, чтобы команда радостно ждала нового ретро. Проведем очень иллюстративное упражнение для углубления понимания. Бонусом поговорим про более олдскульные практики проектного управления, которые помогут управлять ожиданиями. Регистрация открыта по ссылке.
- Блог компании OTUS
- Управление проектами
- Agile
Источник: habr.com
AGILE – гибкая система управления проектами
Приходилось ли вам когда-нибудь заниматься проектами или хотя бы принимать участие в проектной работе? Если да, то наверняка вы заметили, что наладить работу команды может быть достаточно сложно. И даже если она налажена, есть риск, что все усилия окажутся напрасными, ведь требования к необходимому результату часто меняются.
Однако существенно упростить работу над проектом и научиться им управлять, тем самым повысив эффективность команды, можно при помощи системы гибкого управления проектами под названием Agile («Аджайл» или «Эджайл»). Вообще, мы уже вкратце рассказывали о ней в нашем курсе по управлению проектами (четвертый урок), но сейчас поговорим на эту тему более подробно.
Метод Agile: определение и краткая история
Как бы непривычно это ни звучало, но серьезно разрабатывать программное обеспечение и управлять проектами начали уже в 70-х годах прошлого века. Именно в 1970 году американский ученый-компьютерщик Уинстон Ройс составил документ, называвшийся «Управление развитием крупных программных систем». В нем он приводил критику последовательной разработки, указывая на то, что разработка программного обеспечения не должна походить на работу сборочной линии (как, например, делается в автомобильном производстве), где новые детали по очереди добавляются в последовательные фазы.
Вместо того чтобы ждать, пока будут поочередно завершены все этапы (фазы), Ройс предложил применять фазовый подход. Суть его в том, что изначально собираются все требования, необходимые для проекта, после чего завершается вся архитектура, создается дизайн, записывается код и т.д.
На основе этого в 90-х удалось создать комплекс гибких методов разработки ПО, способных заменить сложные и трудоемкие методы. Происходило это так:
- В 1991 году появился метод быстрой разработки приложений RAD
- В 1994 году появился метод разработки динамических систем DSDM
- В 1995 году появилась платформа (фреймворк) гибкой разработки Scrum
- В 1996 году появилась гибкая методология разработки Crystal Clear, а также экстремальное программирование XP
- В 1997 году появилась итеративная методология разработки ПО FDD
Все вместе эти методы объединились под общим названием гибких методов разработки ПО.
Четыре года спустя – в 2001 году в штате Юта (США) на курорте Snowbird собрались семнадцать разработчиков программного обеспечения. В результате обсуждения методов разработки был опубликован «Манифест о гибкой разработке программного обеспечения Agile» (в переводе с английского понятие «agile» означает «подвижный», «проворный» или «быстрый», но в большинстве случаев его переводят именно как «гибкий»). Он и задал темп всей дальнейшей работе над созданием ПО.
Манифест Agile
Манифест, созданный программистами, включает в себя 4 базовых идеи и 12 принципов эффективного управления проектами. Любая из систем управления проектами на основе Эджайл (о системах мы поговорим позже) опирается именно на эти идеи и принципы, хотя и использует их в разных вариациях.
- Люди и их взаимодействие важнее, чем процессы и инструменты
- Рабочее ПО важнее, чем документация
- Клиенты и сотрудничество с ними важнее, чем контракт и обсуждение условий
- Готовность к внесению изменений важнее, чем первоначальный план
- Удовлетворять клиентов, заблаговременно и постоянно поставляя ПО (клиенты довольны, когда рабочее ПО поступает к ним регулярно и через одинаковые промежутки времени)
- Изменять требования к конечному продукту в течение всего цикла его разработки
- Поставлять рабочее ПО как можно чаще (раз в неделю, в две недели, в месяц и т.д.)
- Поддерживать сотрудничество между разработчиками и заказчиком в течение всего цикла разработки
- Поддерживать и мотивировать всех, кто вовлечен в проект (если команда мотивирована, она намного лучше справляется со своими задачами, нежели команда, члены которой условиями труда недовольны)
- Обеспечивать непосредственное взаимодействие между разработчиками (возможность прямого контакта способствует более успешной коммуникации)
- Измерять прогресс только посредством рабочего ПО (клиенты должны получать только функциональное и рабочее программное обеспечение)
- Поддерживать непрерывный темп работы (команда должна выработать оптимальную и поддерживаемую скорость работы)
- Уделять внимание дизайну и техническим деталям (благодаря эффективным навыкам и хорошему дизайну команда проекта получает возможность постоянного совершенствования продукта и работы над его улучшением)
- Стараться сделать рабочий процесс максимально простым, а ПО – простым и понятным
- Позволять членам команды самостоятельно принимать решения (если разработчики могут сами принимать решения, самоорганизовываться и общаться с другими членами коллектива, обмениваясь с ними идеями, вероятность создания качественного продукта существенно возрастает)
- Постоянно адаптироваться к меняющейся среде (благодаря этому конечный продукт будет более конкурентоспособен)
Постигая Agile, в дополнение к обзору идей и правил обязательно ознакомьтесь с этим небольшим видео, где специалист по проектному управлению, консультант и бизнес-тренер Алексей Таченков рассказывает об основах системы.
Чтобы реально осуществить на практике вышеизложенные идеи и принципы, необходимо придерживаться нескольких правил. Только тогда Agile-менеджмент проекта может быть эффективен.
Ключевые моменты в применении Agile
Agile-методология основывается, в первую очередь, на визуальном контроле. Чаще всего участники проекта, работая над достижением результата, пользуются специальными цветными карточками. Один цвет сигнализирует о завершении планирования какого-то элемента конечного продукта, другой – о завершении его разработки, третий – о готовности и т.п. Визуальный контроль позволяет команде иметь наглядное представление о текущем состоянии процесса и гарантирует одинаковое видение проекта всеми ее членами.
Члены команды и клиент в большинстве случаев работают вместе и рядом. Благодаря этому существенно ускоряются многие рабочие процессы, которые связаны с информированием участников проекта. Кроме того, совместная работа способствует созданию здоровой атмосферы для плодотворного и эффективного сотрудничества и скорейшего достижения результатов.
Когда руководитель проекта, команда и клиент действуют сообща, исключается опасность недопонимания целей и утери информации. Все рабочие процессы становятся максимально прозрачными, а это значит, что любые возникающие проблемы можно разрешать практически моментально и находить лучшие варианты их решения.
Особое внимание нужно уделить руководителю проекта. Его нельзя назвать человеком, раздающим указания налево и направо. Руководитель здесь выступает скорее в роли лидера, который задает направление и определяет правила сотрудничества и работы. Другими словами, Agile-управление является адаптируемым.
Еще одним важным моментом Agile-методологии является разделение всего объема проекта на несколько более мелких составных частей. Такой подход многократно упрощает процесс разработки, а отдельные группы команды могут фокусироваться каждая на своей конкретной задаче.
Работая над одним циклом, участники проекта овладевают новыми навыками и получают новые знания, а также анализируют допущенные в процессе ошибки. Все это сводит вероятность совершения подобных ошибок в будущем (в следующих циклах и других проектах) практически к нулю.
И, наконец, последний значимый элемент подхода – это спринты и ежедневные встречи. Спринтами называются ограниченные конкретными сроками (дедлайнами) отрезки времени, в течение которых команда успевает выполнить определенные задачи. Именно благодаря спринтам команда может видеть результаты своих действий.
Если же мы разделим все время, отведенное на проект, на несколько спринтов, получим конкретное их количество; пусть их будет 15. Каждый спринт длится, к примеру, две недели. Вот как раз в течение этих двух недель (времени, отведенного на спринт) участники каждый день встречаются для обсуждения процесса и прогресса.
Ежедневные встречи не должны превышать 15 минут. Организуются они для того, чтобы каждый член команды дал себе же ответ на три вопроса:
- Что я делал вчера?
- Чем я буду занят сегодня?
- Что мешает мне работать?
Ответы на эти вопросы позволяют держать под контролем процесс, понимать, на какой стадии находится каждый из участников команды, и устранять потенциальные проблемы на пути к цели. Если же обобщить, то внедрение Agile-методологии возможно, если соблюдается несколько условий:
- Четко обозначается значение проекта
- В процессе реализации активно участвует клиент
- Общий объем работ выполняется пошагово
- Ориентироваться следует на конкретный результат
- Численность одной рабочей группы: от 7 до 9 человек
В настоящее время проект-менеджмент с поддержкой Аджайл по большей части распространен в IT-сфере, однако и деловая сфера его начинает осваивать. Эта система применяется в обучении, маркетинге, бизнесе. Гибкое управление проектами берется на вооружение множеством компаний и государственных структур.
Примеры: правительство Новой Зеландии, правительство Нигерии, Норвежский пенсионный фонд, компания Return Path (программное обеспечение), компания Oreo (производство печенья), компания Aviasales (крупнейший поисковик авиабилетов), компания Hewlett-Packard (крупнейшая американская IT-компания), «Сбербанк» (наверное, знаете, что это).
Эти и многие другие организации используют в работе самые разные методы управления проектами, основанные на Agile. И поговорить об этих методах не менее важно, чем о самой методологии.
Популярные методы управления проектами
Существует немало методов проект-менеджмента, которые применяются разными современными компаниями. Но самыми известными и востребованными среди них по праву считаются Scrum (Скрам) и Kanban (Канбан).
Метод Scrum
Среди всех методов системы Agile Scrum отличается тем, что делает основной упор на качественный контроль рабочего процесса. Впервые описавшие его японские специалисты по стратегическому менеджменту Хиротака Такуэти и профессор в области научно-технических знаний Икуджиро Нонака называют метод «подходом в рэгби», где Scrum является «борьбой за мяч».
Метод заключается в том, что разработка проекта разделяется на спринты, по окончании которых клиент получает улучшенное ПО. Спринты строго фиксируются по времени, и могут длиться от 2 до 4 недель. Рабочий процесс в одном спринте включает в себя несколько стадий:
- Определяются объемы работы
- Каждый день проводятся 15-минутные встречи, чтобы члены команды могли скорректировать свою работу и подвести промежуточные итоги
- Демонстрируются полученные результаты
- Спринты обсуждаются для поиска удачных и неудачных решений и действий
В большинстве случаев Скрам применяется в работе со сложным ПО и для разработки продукта с использованием инкрементных и итеративных методов. Благодаря ему серьезно повышается производительность команды и сокращаются временные затраты на достижение цели.
Scrum улучшает результаты, помогает адаптировать проект к изменениям, обеспечивает более точную оценку при меньших трудозатратах на анализ и позволяет эффективнее контролировать этапы работы и сценарий проекта. Все это как нельзя лучше соответствует бизнес-целям.
Метод Kanban
Канбан – еще один метод, делающий командную работу более результативной и продуктивной. Смысл его сводится к приданию процессу разработки максимальной прозрачности и равномерному распределению нагрузки среди участников проекта. Важная особенность Kanban еще и в том, что он мотивирует людей на постоянное сотрудничество, совершенствование и обучение.
Работа по методу Kanban выстраивается на нескольких принципах. Во-первых, вся информация о проекте должна быть визуализирована, что позволяет видеть накладки, ошибки и недочеты и активно их устранять. Во-вторых, работа над одной задачей должна вестись одновременно всей командой – это помогает сбалансировать усилия и получаемые результаты, исключает неравномерное распределение нагрузки. И, в-третьих, время на выполнение всех задач строго контролируется, благодаря чему оптимизируется процесс и экономится время.
В отличие от Скрам, Канбан обрел популярность намного позже, но это ни в коей мере не умаляет его достоинств и не делает менее эффективным. Метод полезен как в IT-области, так и в бизнес-сфере.
Это лишь примеры основных методов управления проектами, основанных на Agile. Но не стоит пренебрегать и другими методами, такими как PRINCE2, Lean, Six Sigma, XP, CCPM, ECM, Waterfall и другие. К тому же у Аджайл, наряду с преимуществами, есть и некоторые недостатки.
Плюсы и минусы Agile
Постигая Agile, важно знать как о положительных, так и об отрицательных сторонах этой методологии. Начнем с плюсов.
В первую очередь стоит отметить, что Agile-управление очень гибкое. Если, например, традиционная методология указывает на конкретные этапы работы, то Эджайл легко подстраивается под потребителя конечного продукта и требования заказчика.
Собственно, и в конечном продукте число дефектов минимизируется, ведь он является результатом тщательной проверки качества, которая проводится по завершении каждого этапа-спринта.
Кроме того, Agile быстро запускается, легко реагирует на изменения, позволяет команде разработчиков и клиентов поддерживать постоянную связь в реальном времени. Преимущества очевидны, но давайте поговорим и о минусах.
Недостатки методологии состоят в том, что, во-первых, постоянная обратная связь может приводить к тому, что все время будет переноситься и дедлайн проекта, тем самым создавая угрозу бесконечно продолжающейся работы. Если заказчик видит, например, только результаты, но не имеет представления об усилиях, потребовавшихся для их достижения, он будет все время требовать улучшений.
Второй недостаток заключается в необходимости адаптировать под изменяющиеся условия проекта проектную документацию. При отсутствии надлежащего информирования команды об изменениях или дополнительных функциях документы с функциональными требованиями или архитектурой могут оказаться неактуальными на текущий момент времени.
Третьим существенным минусом Аджайл можно назвать необходимость в частых встречах. Они, конечно, способствуют повышению эффективности работы, но все же постоянное отвлечение членов команды может сказаться на процессе отрицательно, ведь внимание людей систематически уходит в сторону от решаемых задач.
Сюда же можно отнести такие вещи как необходимость в постоянном присутствии клиента, невозможность выстраивать долгосрочные планы и потребность в мотивированных и высококвалифицированных специалистах. Кстати, последнее в огромной степени касается и внедрения Agile-управления в деятельность организации. И, постигая Agile, с темой ее внедрения тоже нужно познакомиться.
Внедрение Agile
Примеров внедрения Эджайл в работу компаний есть достаточно много. И практически все они говорят, что оно требует целого комплекса важных мероприятий.
Для начала выбирается конкретный метод, что зависит от условий проекта. Затем определяются задачи и цели, основной дедлайн и сроки спринтов, численность команды и другие составляющие работы над проектом. Важно подобрать метод, отвечающий максимальному количеству требований.
Как мы и сказали, для внедрения Agile необходима команда профессионалов. Все ее члены должны знать базовые идеи и принципы методологии и уметь их применять. Если в компании нет таких людей, сотрудников нужно обучить. Руководство компании, решившей перейти к использованию Аджайл, также должно четко понимать, готова ли организация к изменениям, можно ли применять систему к своим проектам и т.д. Чаще всего, чтобы ответить на эти вопросы, приходится обращаться к специалистам по Agile.
На следующем этапе приглашается человек, имеющий опыт работы с системой. Он демонстрирует ее, разъясняет суть спринтов и действий, функции членов будущей команды, особенности взаимодействия между ними и другие вопросы. И только после этого формируется новая команда, распределяются роли, задачи и обязанности, подбираются инструменты для ведения аналитики, отчетности и т.д.
Окончательным этапом будет первый опыт с Аджайл, т.е. первый проект с его использованием. Нужно понимать, что неизбежны ошибки, недочеты, нестыковки, отставания. Придется отказаться от одних инструментов и заменять их другими, возможно – менять роли между людьми в команде. Первый опыт – это процесс адаптации, причем адаптации двухсторонней: компания привыкает к методологии, а методология подстраивается под компанию.
Заключение
Подытоживая данный обзор, напомним, что теория и практика – это две разные вещи. Новые методики и технологии и их внедрение – это своеобразный вызов команде, и как прийти к большей эффективности – дело всегда индивидуальное. Agile – это не панацея и не гарантия успеха, но он позволяет установить правильный курс и найти ориентиры на пути.
Для реализации любого проекта обязательно придется что-то менять, искать новые решения, генерировать необычные идеи. Лишь подстраиваясь под постоянно меняющиеся условия работы и требования заказчиков, можно найти верные способы действий. И гибкая методология управления проектами Agile может стать в этом деле верным помощником.
Советуем также прочитать:
- Сторителлинг
- PMBoK
- Философия Agile: от слов к делу
- Бережливое производство
- Моделирование бизнес-процессов: что это такое и зачем это нужно?
- Как организовать свои дела с помощью Agile
- Диаграмма сродства для решения управленческих проблем
- Маленькие шаги на пути к большой цели
- SCRUM – эффективный метод управления проектами
- Современные образовательные технологии: как учиться и учить в наши дни?
- Фасилитация: что это такое и в чем ее преимущества?
Источник: 4brain.ru