Чек-лист из 119 пунктов для проверки эффективности вашего бизнеса
pdf 12,3mb
Скачать бесплатно
Лого http://academy-of-capital.ru/
Agile-методология: ценности, принципы, особенности внедрения
Agile-методология: ценности, принципы, особенности внедрения

Agile-методология: ценности, принципы, особенности внедрения

28.10.2022
Автор: Academy-of-capital.ru
Добавить комментарий
Рейтинг:
(Голосов: 1, Рейтинг: 5)

Что это такое? Agile-методология – это современная система управления проектами. Изначально она была придумана для работы над ПО, но со временем метод получил широкое распространение и в других сферах.

Зачем нужна? Если вы когда-нибудь принимали участие в проектной деятельности, тогда вы представляете, как сложно наладить работу коллектива. Agile – это именно та система, которая способна упростить этот процесс и повысить эффективность всей команды. Главное понимать, как ее правильно внедрить.

Из этого материала вы узнаете:

  • Понятие Agile
  • История Agil
  • 4 ценности Agile.
  • 12 принципов Agile
  • Цели Agile-методологии
  • Ключевые моменты в применении Agile
  • Scrum и Kanban как методы, основанные на Agile
  • Отличия Agile от других методологий
  • Преимущества и недостатки метода Agile
  • Внедрение Agile-методологии
  • Мифы про Agile
  • Шаблон расчета 5 ключевых показателей

    Скачать бесплатно

Понятие Agile

Agile, или полностью Agile software development, представляет собой особый подход, применяемый при управлении проектом по созданию программного обеспечения (ПО). Обычно он используется небольшими командами.

При этом понятие Agile имеет два несколько отличающихся смысла:

  • С одной стороны, это набор ценностных, даже философских принципов, на основе которых строится работа команды.
  • С другой – так называются конкретные методики, которые применяются в ходе разработки проекта.

Понятие Agile

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

История Agile

Проблема управления проектами в рамках разработки программного обеспечения приобретает практическое значение в 70-х годах ХХ века, когда появляются первые концептуальные исследования в этой области.

В 1970 году американским специалистом по информатике Уинстоном Ройсом было написано своеобразное руководство под названием «Управление развитием крупных программных систем». Ройс считал неэффективным последовательный процесс создания ПО, когда работа производится по принципу конвейерной сборки с добавлением к проекту новых элементов на каждом этапе.

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

Позднее на основе идей Ройса были выработаны гибкие методы разработки компьютерных программ, которые позволили повысить эффективность труда программистов. Основные вехи исследований в этом направлении:

  • 1991 год – создание метода быстрой разработки приложений RAD, нацеленного на получение результата в максимально короткие сроки в условиях ограниченности ресурсов.
  • 1994 год – появление метода разработки динамических систем DSDM, при котором ускорение работ достигается различными способами, включая участие пользователей в создании и тестировании продукта.
  • 1995 год – формирование подхода гибкой разработки ПО Scrum, где реализация проекта делится на короткие промежутки – спринты с представлением заказчику достигнутых на каждой стадии результатов.
  • 1996 год – появление гибкой методологии разработки Crystal Clear, делающей упор на формирование человеко-, а не проектно-ориентированных команд, и экстремального программирования XP, позволяющего разрабатывать ПО с учетом меняющихся запросов заказчиков.
  • 1997 год – создание итеративной методологии FDD («разработка, управляемая функциональностью»).

Несмотря на различия все эти методы объединяет гибкий подход к процессу разработки ПО.

Понятие Agile

Значимым событием стала встреча в 2001 году на курорте Snowbird (штат Юта) семнадцати ведущих программистов, которые обсудили проблемы, возникающие при управлении проектами. Результатом дискуссий стал документ «Манифест о гибкой разработке программного обеспечения Agile». Именно это понятие, которое дословно означает «подвижный», «проворный», но в данном контексте обычно переводимое как «гибкий», стало основой новой методологии создания ПО.

4 ценности Agile

  1. Люди и социальное взаимодействие важнее технологических процессов. Это фундамент философии Agile, которая исходит из того, что результат обеспечивают члены команды, постоянно находящиеся в общении друг с другом, а не безликие планы, лишенные привязки к конкретным людям.
  2. Работающий продукт важнее самой подробной документации. Команды, придерживающиеся принципов Agile, отвергают приоритетность отчетов и прочих документов – для них главной целью является создание действующих программ.
  3. Сотрудничество с заказчиком важнее согласования условий контракта. Концепция Agile предполагает тесное взаимодействие с заказчиком на всех этапах работы над проектом и обратную связь с клиентами. Это имеет большее значение, чем долгое согласование объемных контрактов.
  4. Готовность к изменениям важнее следования первоначальному плану. Еще один принцип, демонстрирующий гибкость Agile-подхода к управлению проектами. В условиях современности нужно уметь адаптироваться к меняющимся условиям и новым вызовам.

Помимо этих четырех базовых ценностей, методология Agile включает в себя 12 сформулированных принципов.

12 принципов Agile

Эти принципы планирования, включенные в «Манифест», используются при работе над любым проектом:

  1. Высшей целью является удовлетворение интересов заказчика, для чего необходимо регулярно предоставлять ему проектируемое программное обеспечение. Тем самым, клиент будет видеть промежуточные результаты и сможет уточнять свои запросы.
  2. При методологии Agile нужно быть всегда готовым к изменениям в планах исходя из пожеланий заказчика и других факторов. Продукт должен быть способен к трансформированию даже на завершающей стадии его разработки, если изменились условия среды и требования к программному обеспечению. Это позволяет достигать максимального качества и высокой конкурентоспособности ПО.
  3. Желательно проверять работоспособность продукта с самого начала и делать это на регулярной основе. Как правило, рабочий процесс делится на спринты длительностью 1-4 недели, и на выходе каждого из них должен быть результат, пригодный для опробования на практике. Дальнейшая реализация проекта ведется с учетом замечаний по текущей модификации.
  4. На протяжении всего периода создания ПО команда разработчиков должна тесно сотрудничать с заказчиками и пользователями. Представители заказчика допускаются на все рабочие совещания, и их мнения и идеи в обязательном порядке учитываются. В свою очередь, программисты должны хорошо понимать, для кого и для чего они создают продукт, и источником необходимой информации выступают заинтересованные стороны.
  5. Специалисты, занимающиеся проектом, составляют команду мотивированных профессионалов. Им обеспечивается максимальная свобода действий и отсутствие жесткого контроля. Каждый исполнитель получает конкретную задачу с учетом своих интересов, навыков, способностей и опыта.

    При этом команда состоит из единомышленников, делающих общее дело, и строгая административная иерархия исключается. Менеджер проекта обеспечивает всестороннюю поддержку и подогревает мотивацию, но не давит своим авторитетом и не отдает руководящие приказания, обязательные к исполнению.
  6. Лучший вариант взаимодействия – живое общение с участием всех исполнителей и заказчиков. Удаленные средства связи (телефон, email) не обеспечивают полноценного личного контакта и потому не подходят для сплачивания команды. Коллектив должен размещаться в одном офисе, или, по крайней мере, часто проводятся очные встречи и обсуждения.
  7. Показателем результативности является не отчет, а продукт, наглядно демонстрирующий свою работоспособность. Методика Agile ставит во главу угла частую презентацию проекта в том виде, в каком он находится в данный момент. Все остальные формальные требования (сопутствующие документы, заключения, бизнес-планы и пр.) имеют второстепенное значение.
  8. Реализация проекта должна идти ритмично, без остановок и авралов. Итерации выполняются последовательно одна за одной, и как заказчик, так и члены команды видят, на какой стадии сейчас находится разработка.

    Стабильный темп позволяет сохранять мотивацию исполнителей и в то же время избежать переработок. Изменения продукта идут постоянно, но все они направлены в сторону улучшения конечного результата. Выделение коротких рабочих циклов позволяет гибко подходить к вопросам временного планирования и по ходу корректировать задачи и сроки, необходимые для их решения.
  9. Успешное гибкое управление возможно только при высоком качестве технической работы, прежде всего, в написании программных кодов. Плохо выполненная основа программы не даст возможности изменять ее и двигаться дальше. В процессе работы ПО оптимизируется, достигая к концу максимального качества, но минимально необходимая планка закладывается в самом начале.
  10. Необходимо экономно распоряжаться ресурсами, в первую очередь временем. Один из принципов Agile-методологии – простота, в соответствии с чем ненужные действия отсекаются. Если достижение определенных параметров, не важных с точки зрения клиента и работоспособности продукта, требует серьезных материальных и временных затрат, то подобные задачи исключаются.
  11. Команда, разрабатывающая программное обеспечение, должна быть способной к самоорганизации. Ее члены – высококвалифицированные профессионалы, не нуждающиеся во внешнем контроле. Рабочий коллектив сам определяет порядок действий и сроки, выступая как самостоятельная единица. Менеджер не столько руководит, сколько направляет активность исполнителей в нужное русло. При этом каждый сотрудник должен быть заинтересован в улучшении характеристик разрабатываемого программного обеспечения.
  12. Один из принципов Agile – постоянное внесение коррективов, нацеленных на повышение качества продукта. На каждом этапе работы предварительные результаты анализируются и обсуждаются с участием всех членов коллектива. Такой подход не только способствует улучшению ПО, но и профессиональному росту команды разработчиков.

Цели Agile-методологии

Agile-методология изначально создавалась под разработку программных продуктов, но она находит применение и в других сферах. Конечно, далеко не все производственные процессы подходят под принципы Agile с отсутствием жесткого контроля, но в менеджменте, маркетинге и продажах гибкое управление вполне уместно.

Применение данных методов, независимо от того, берутся они комплексно или по отдельности, дает новые возможности:

  • Даже в рамках стандартной иерархичной структуры организации возможно формирование относительно самостоятельных продуктовых команд, нацеленных на достижение конкретного результата. В состав таких трайбов включаются профильные специалисты, а руководителем проекта выступает scrum-мастер или даже сам владелец продукта.
  • Визуализация прогресса в реализации намеченных планов и фиксация всех изменений в них. Техническим средством для этого может быть kanban-доска, информирующая сотрудников о текущей ситуации и актуальных задачах.
  • Планирование работы над общей целью с определением временных этапов и анализом достигнутых промежуточных результатов. Можно выделять любые по продолжительности циклы, но оптимальная протяженность итерации – от одной до четырех недель.
  • Организация производственного процесса таким образом, чтобы конечный результат корректировался с учетом обратной связи с партнерами, заказчиками и потребителями.

Цели Agile-методологии

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

Ключевые моменты в применении Agile

Для Agile-методологии очень важен не только постоянный зрительный контакт участников проекта, но и контроль, осуществляемый визуальными средствами. К примеру, сотрудники могут пользоваться цветными карточками, каждая из которых имеет специальное назначение: один цвет указывает на текущее планирование какого-то элемента продукта, другой символизирует процесс технической разработки, третий сообщает о готовности изделия и т. д.

С помощью визуального контроля члены коллектива наглядно представляют актуальное состояние процесса, и это поддерживает рабочий ритм.

Поскольку Agile-подход предполагает тесное взаимодействие команды и заказчиков, меньше времени тратится на передачу информации, ее разъяснение и согласование. Тем самым, информационные процессы оптимизируются и протекают быстрее. Также частые встречи заинтересованных сторон создают здоровую атмосферу плодотворного и эффективного сотрудничества, что способствует скорейшему достижению целей.

Постоянное общение помогает избежать деструктивных конфликтов – все участники проекта ощущают причастность к единому коллективу, и возникающие проблемы открыто обсуждаются и разрешаются.

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

Также он делит объем проекта на составные части, распределяя их между исполнителями с учетом их квалификации. Подобный подход упрощает разработку конечного продукта, поскольку отдельные группы фокусируются на выполнении своей конкретной задачи.

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

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

К примеру, если для проекта, рассчитанного на 30 недель, мы устанавливаем одинаковые спринты по 2 недели, то всего за это время их будет 15. В идеале, ежедневно должны проводиться общие собрания участников команды с обсуждением процесса работы и достигнутого прогресса.

Цели Agile-методологии

Такие текущие встречи не нужно превращать в официальные совещания – их длительность может составлять не более 15 минут, и в ходе общения каждый член коллектива дает ответ (в первую очередь себе) на три вопроса:

  • Что я сделал вчера?
  • Что я буду делать сегодня?
  • Что мешает мне работать?

Делясь информацией, разработчики сразу видят, кто чем занят, в каком состоянии находится общий проект, и если есть затруднения, то совместными усилиями их преодолевают. В целом, Agile как методология управления проектами основывается на соблюдении нескольких условий:

  • Четкое понимание всеми членами команды общей цели и значения проекта.
  • Привлечение к процессу разработки и тестирования клиентов.
  • Пошаговое выполнение работ с делением на рабочие циклы – спринты.
  • Ориентация на результат – действующий продукт.
  • Небольшая численность рабочих групп – 7-9 человек.

В IT-сфере принципы Agile доказали свою эффективность и потому широко используются. В настоящее время данная методология осваивается и представителями бизнеса, а также в образовании. Более того, отдельные ее элементы берутся на вооружение частными компаниями и государственными структурами – везде, где применимы гибкие системы управления.

Например, на данный момент опыт использования Agile есть у правительств Новой Зеландии и Нигерии, Норвежского пенсионного фонда, компаний Return Path (компьютерные технологии), Oreo (кондитерское производство), Aviasales (поисковик авиабилетов), Hewlett-Packard (аппаратное и программное обеспечение), российского Сбербанка.

Методология Agile включает множество методов, применение которым можно обеспечить в самых разнообразных сферах.

Scrum и Kanban как методы, основанные на Agile

Наиболее популярные системы, близкие к методологии Agile, — Scrum и Kanban.

Scrum

Scrum является методом управления проектами, который имеет много общего с Agile. Этот подход был впервые описан в вышедшей в 1986 г. статье, авторами которой стали специалисты по менеджменту Хиротака Такэути и Икудзиро Нонака. Они дали ему образное название, взяв слово из спортивной терминологии: scrum — толкотня, борьба за мяч в регби.

Суть метода состоит в том, что лучший результат дают небольшие команды, включающие в себя разнопрофильных специалистов. При этом рабочий процесс делится на короткие этапы, именуемые спринтами. Они длятся 2-4 недели, и каждый из них представляет собой завершенный цикл:

  • Выработка плана на спринт.
  • Ежедневные короткие совещания, позволяющие обсуждать текущее состояние проекта и проблемы, а также корректировать задачи.
  • Представление заказчику промежуточных результатов работы.
  • Анализ каждого прошедшего спринта с выделением удачных и неудачных решений.

Scrum

Scrum в основном используется для управления процессом разработки сложного программного обеспечения. В сравнении с последовательной, каскадной моделью waterfall, он позволяет повысить производительность и сократить время реализации проекта. Его преимуществом является возможность видоизменять продукт по ходу его создания, если появились новые требования у заказчика или выявились другие значимые факторы. Достоинства Scrum:

  • повышение качества результатов;
  • возможность быстрого внесения изменений;
  • обеспечение более точных оценок и экономия ресурсов, включая время;
  • прозрачная система контроля выполнения этапов работ.

Kanban

Родственной Agile-методологии можно назвать систему организации командной деятельности Kanban. Дословно в переводе с японского kanban означает «рекламный щит, вывеска», а сам метод был впервые реализован в компании Toyota.

Канбан нацелен на обеспечение максимальной прозрачности процесса разработки продукта и равномерное распределение нагрузки между исполнителями. Философия канбан предполагает активное сотрудничество, непрерывное обучение и совершенствование.

Основные принципы Kanban:

  • Наглядность содержания проекта: вся наиболее важная информация выставляется на всеобщее обозрение, и каждый видит, что и в какой срок нужно сделать, какие к этому есть препятствия.
  • Жесткие ограничения на WIP (work in progress — работа, выполняемая одновременно), чтобы не допустить распыления сил и на каждую группу возложить адекватные задачи.
  • Установление лимитов времени для этапов выполнения проекта и ежедневный контроль качества работ, поощрение инициатив исполнителей, позволяющих оптимизировать производственные процессы.

Отличия Agile от других методологий

Agile строится на принципах, многие из которых являются общими с родственными методами, в силу чего сравнивать их сложно.

Гораздо заметнее отличия систем, где расходятся концептуальные подходы к организации управления рабочими процессами: скажем, каскадная методология Waterfall и Agile:

  • Изменение конечной цели в ходе разработки продукта – это не только нормальное, но даже желательное явление, так как качество изделия повышается, если учитываются актуальные требования клиентов, также постоянно меняющиеся в условиях современного мира.
  • С учетом этого не имеет смысла тратить много времени на аналитику и планирование в начале работы над проектом – перспективнее уделять больше внимания технической стороне, а анализом заниматься на каждом промежуточном этапе, корректируя исходные задачи.
  • Весь процесс делится на короткие циклы, итогом каждого из которых является полноценный продукт, пусть и с ограниченным функционалом.
  • С каждым этапом продукт дорабатывается и совершенствуется.
  • Жесткими являются лишь общие сроки реализации проекта – промежуточные временные границы подвижны, и закладывается запас на задержки.
  • Руководитель принимает непосредственное участие в деятельности команды на каждом этапе, и его роль не ограничивается раздачей указаний и контролем на финальной стадии.

Преимущества и недостатки метода Agile

Достоинства Agile:

  • Деление рабочего процесса на короткие итерации с обеспечением предельной прозрачности хода реализации проекта и наличием готового, хотя и несовершенного продукта на каждом цикле.
  • Постоянное общение всех заинтересованных сторон, что обеспечивает высокую мотивацию участников проекта.
  • Показателем прогресса является текущее состояние продукта, а не планы и отчеты.
  • Гибкость системы и возможность внесения коррективов, что уменьшает риск неудачи.
  • Популярность метода и его привлекательность для заказчиков.

Достоинства Agile

Недостатки Agile:

  • Постоянные изменения продукта могут привести к тому, что на каком-то этапе он утратит работоспособность, и выход на завершающую стадию не состоится.
  • Методика эффективна, только если ей соответствует набор исполнителей – профессиональные специалисты, обладающие высокой мотивацией и способные на самоорганизацию. Подобрать такую команду сложно, а работники, ориентированные на административный стиль управления, без внешнего контроля могут не выйти на нужный уровень внутреннего взаимодействия и самодисциплины.
  • Agile – скорее набор принципов, включая философские концепции, чем четкая инструкция организации управления. Без понимания сути системы механическое заимствование отдельных инструментов ничего не даст.
  • Сложность сметных расчетов в начальной стадии реализации проекта, поскольку дальнейшие изменения не всегда возможно предсказать. Поэтому, например, для строительной сферы, где предварительно требуется полная оценка объема и стоимости работ, Agile не подходит.

Внедрение Agile-методологии

  1. Выбор, исходя из цели и задач проекта, сроков, количества сотрудников и других значимых факторов, конкретной методики управления проектом. Она должна соответствовать входным параметрам и обеспечивать достижимость результата.
  2. Обучение команды. Каждый исполнитель должен понимать и, в идеале, полностью разделять принципы Agile. Сначала членов коллектива нужно научить новым схемам рабочего взаимодействия. Для этого целесообразно пригласить бизнес-тренеров, специализирующихся на методологии проектного управления Agile. Также на этом этапе желательно обсудить возможные проблемы и сложности, связанные с особенностями управления по данной методике.
  3. Демонстрация возможностей и перспектив Agile. Это может быть завершающей стадией обучения, когда полученные навыки закрепляются своеобразным тест-драйвом: исполнители под наблюдением специалиста занимают свои ролевые места и отрабатывают рабочие процессы с внутренним командным взаимодействием. После этого происходит разбор поведения членов коллектива, выявляются допущенные ошибки и показываются успехи, достигнутые благодаря новой схеме управления.
  4. Формирование команды с распределением обязанностей и конкретных задач для каждого исполнителя. Определение графика и порядка встреч. Ключевым фактором здесь является количество человек в команде.
  5. Выбор инструментов и рабочих методик, применимых при реализации проекта.
  6. Выполнение проекта с Agile. Разумеется, первый, пробный, опыт часто оказывается несовершенным, но выявление и обсуждение ошибок и несостыковок повысят профессионализм команды и позволят добиться лучшего результата в последующих разработках.

Мифы про Agile

Как и любая популярная и успешная методология, Agile обросла мифами, о которых следует тоже сказать.

Миф № 1: Agile подойдет для любого проекта.

Отнюдь! Методология Agile применима не для каждого продукта и не для каждой команды.

Миф № 2: следование Agile означает отказ от документации.

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

Миф № 3: Agile несовместима с четким планированием.

Совсем не так – планирование есть, но оно заточено на кратковременные периоды (ежедневные встречи, итерации или спринты каждые 2-4 недели).

Миф № 4: Agile предполагает многократное переделывание (rework).

При разработке ПО необходимость переделывания объясняется воздействием двух ведущих факторов – изменение требований пользователей и поиск более совершенных технических решений. В любом случае rework нацелено на повышение качества продукта, и подобный настрой присутствует и в других методиках!

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

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


Рекомендуемые статьи

×
Елена Койгородова
Елена Койгородова печатает ...
Стратегия
10-кратного роста
продаж с сайта
Скачать 7,4 MB
Полезные
материалы
для руководителей
Скачать 8,1 MB