iTechArt logo

Не лезть за словом в карман: разговорник для тех, кто постигает основы Agile

Development & QA

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

Гибкий подход к управлению проектами — распространенное явление для технологических компаний. Именно поэтому всем, кто держит путь в IT, необходимо знать терминологию Agile. Ольга Зеневич, Project Manager iTechArt, составила глоссарий основных понятий, без которых не обходятся Agile-команды.

Наш эксперт
Зеневич Ольга.jpg

Ольга Зеневич

Project Manager iTechArt

Сертифицированный Scrum Master (PSM I). Участвовала в разработке программы иммерсивной JS лабы iTechArt, в которой впервые был применен подход, свойственный agile-командам.

«Agility is the ability to adapt and respond to change … agile organizations view change as an opportunity, not a threat».
Jim Highsmith

Что ж, друзья! Мы живём с вами в эпоху третьей промышленной революции – VUCA мира (volatility — нестабильность, uncertainty — неопределенность, complexity — сложность и ambiguity — неоднозначность, двусмысленность). Как таковых чётких ориентиров нет, и поэтому навык быть гибким и в работе, и за её пределами становится необходимостью.

«Be Agile!» – прекрасный девиз, чтобы хакнуть этот новый мир :). Гибкая коммуникация – превыше жестких планов и костных подходов. Lifelong learning нам в помощь.

Важно отметить, что аджайл в широком смысле – это не просто методология, а определенный подход к жизни в целом (mindset). Уже в 60-е ученые предсказали движение прогресса к «турбулентному» состоянию, где иерархические социальные структуры не способствуют выживанию, и требуется совсем другой вид социальной организации. Многие авторы сейчас утверждают, что Agile помогает организациям выживать и успешно работать в условиях неопределенности. То же самое утверждали исследователи в середине 60-х, подкрепляя свои слова исследованиями работы шахтеров и сотрудников электростанций. Далекие от ИТ-области, не правда ли? :)

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

  • в 30-40-х был разработан PDCA-цикл Деминга-Шухарта (Plan-Do-Study-Act),
  • в 50-х появилась Toyota Production System – она считается прародителем философии «бережливого» производства,
  • в 1986 г. увидела свет статья «The New New Product Development Game». Ее авторы – японские исследователи Хиротака Такеучи и Икуджиро Нонака – изучили опыт компаний-лидеров. Ученые выявили, что все компании объединяет командно-ориентированный подход, и это, в свою очередь, целиком меняет процесс разработки продукта.
  • в 80-90-х в MIT (Массачусетский институт технологий) стали изучать японские производственные системы, особенно систему Toyota. Учёные использовали термин «lean» («бережливый») для описания методов улучшения производительности системы за счёт избавления от различных потерь (muda), неравномерности выполнения работы (mura) и перегрузки сотрудников или оборудования (muri). 
  • в 1993 г. Джефф Сазерленд, взяв за основу подход Хиротаки Такеучи и Икуджиро Нонакой и PDCA-цикл, создал новый фреймворк для разработки программного обеспечения и назвал его Scrum.

И вот наконец 11-13 февраля 2001 на лыжном курорте The Lodge at Snowbird в горах Юты был разработан и принят Agile Manifesto.

Agile Manifesto содержит 4 основные идеи и 12 принципов. Почитать о них подробнее можно здесь.

Agile включает в себя такие практики как, например:

  • Scrum
  • Kanban
  • Scrumban
  • Lean
  • XP
  • Crystal
  • Dynamic Software Development Method (DSDM)
  • Feature Driven Development (FDD)

Самым распространенным подходом аджайл практик является Scrum (Скрам). Он основывается на принципах прозрачности, инспекции и адаптации, а также пяти ценностях: фокусе, смелости, открытости, обязательстве и уважении.

Итак, мы слегка занырнули в предысторию образования аджайл практик. А теперь, собственно, термины – в переводе с аджайловского на человеческий :)

Аджайл (от англ. «agile») — это итеративный подход к управлению проектами и разработке ПО, позволяющий командам ускорить доставку ценности клиентам.

Бизнес аджилити (от англ. «business agility») — это способность чувствовать крайне смутные, нечеткие, неопределенные внешние и внутренние изменения и отвечать на них реактивно или проактивно на основе инноваций во внутренних операционных процессах, вовлекая потребителей в деятельность по исследовании и разработкам, одновременно усиливая способности партнёров в бизнес-сети.

Майндсет (от англ. «mindset») — это склад ума, образ мыслей, тип мышления.

Дизайн мышление (от англ. «design thinking») — это методология создания новых продуктов и решений, в основе которой лежит творческий, а не аналитический подход. Ключевая особенность методологии – выбор в пользу творческого процесса, а не привычного критического анализа. При использовании дизайн-мышления могут возникать абсолютно неожиданные идеи, которые, в конечном итоге, приводят к наилучшему решению.

Скрам (от англ. «scrum») — это фреймворк, с помощью которого создаются и поддерживаются функционально сложные продукты. Благодаря скрам одна или несколько команд способны найти решение для изменяющихся задач, при этом предоставляя клиенту продукт, у которого будет максимально возможная ценность (value).

Итерация (от англ. «iteretion») — это отрезок времени, за который командой создается готовая к показу часть продукта, обладающая бизнес-ценностью.

МВП (от англ. «mvp» или «minimal viable product») — это тестовая версия товара, услуги или сервиса с минимальным набором функций (иногда даже одной), которая несет ценность для конечного потребителя.

Вэлью (от англ. «value») — это ценность, которую поставляет заказчику скрам команда.

Скрам гайд (от англ. «scrum guide») — это руководство по применению скрам.

Артефакты (от англ. «artefacts») — это материальное/вещественное воплощение работы или некой ценности. Термин кстати распространен для многих IT-специальностей, например, для бизнес-аналитиков. В скраме выделяют 3 артефакта: Бэклог Продукта, Бэклог Спринта и, наконец, Инкремент. Благодаря этим артефактам ключевая информация о проекте максимально прозрачна для всех участников процесса.

Кросс-функциональная команда (от англ. «сross-functional team») — это команда профессионалов различных специализаций и бэкграунда. Такой тип команды собирается под каждый конкретный проект, исходя из его специфики и уровня сложности.

Скрам тим (от англ. «scrum team») — это самоорганизующаяся и кросс-функциональная скрам команда, которая работает над каким-либо продуктом. В подобной команде всегда есть несколько функциональных ролей, а конкретно 3 –  Владелец Продукта, Команда Разработки и, разумеется, Скрам Мастер.

Скрам-мастер (от англ. «scrum master») — одна из основных ролей скрам-команды. Специалист, находящийся в этой роли, ответственен за то, чтобы прочие участники соблюдали теоретические и практические аспекты фреймфорка Скрам.

Продакт оунер (от англ. «artefacts») — также одна из ролей в скраме, участник скрам команды. Владелец Продукта –  главный по видению продукта. Среди его основных обязанностей – координация и приоритезация Бэклога.

Дэв тим (от англ. «development team») — это команда разработчиков. В неё входят профи, которые непосредственно занимаются созданием продукта.

Скрам-метрики (от англ. «scrum metrics») — это показатели, с помощью которых можно измерить эффективность скрам-процессов.

Капасити (от англ. «capacity») — это «мощность команды» или общее количество доступных часов для спринта. Доступные часы рассчитываются на основе запланированного отпуска ресурсов и выходных дней компании, если таковые имеются.

Велосити (от англ. «velocity») — это скорость или количество доставленных стори пойнтов за спринт. Например, если команда запланировала пользовательские истории на 30 стори пойнтов (Бизнес-ценность) в спринте и смогла выполнить их в соответствии с планом, тогда скорость команды в данном спринте будет равна 30.

Стори пойнт (от англ. «story point») — это условная величина, которая задает элементам бэклога относительный вес. Наиболее распространена практика использования чисел Фибоначчи (1, 2, 3, 5, 8, 13, …).

Стейкхолдер (от англ. «stackeholder») — это лицо или круг лиц, заинтересованных в разработке продукта. Стейкхолдеры могут иметь разную степень влияния и заинтересованности в продукте.

Ивент (от англ. «ivent») — это мероприятие в скрам. Всего их 5: спринт, спринт планинг, дейли, спринт ревью и ретроспектива.

Тайм-бокс (от англ. «time-box») — это четко выделенный промежуток времени, предназначенный для выполнения определённой задачи или действия.

Фасилитировать (от англ. «facilitate») — это специальные действия, направленные на организацию групповой работы. Фасилитатор – человек, организовывающий группу так, чтобы она достигла стоящей перед ней цели. В скрам эту роль выполняет Скрам-мастер.

Роудмап (от англ. «roadmap») — верхнеуровневое направление развития проекта, представленное в графическом формате на временной шкале. Роудмап в отличие от плана проекта не насыщен деталями.

Спринт (от англ. «sprint») — основной ивент в Скрам, в рамках которого осуществляется разработка инкрементов продукта. Является «контейнером» для остальных 4 ивентов. Длина спринта варьируется от одной до четырех недель.

Дейлик (от англ. «daily») — ещё одна разновидность скрам-мероприятий. Под ней понимают ежедневную (в рамках рабочей недели) встречу, длительностью не более 15 минут. Одна из особенностей дейлика – единое для всех участников время и место встречи. В дейли-митинге задействованы все разработчики. Цель дейли проинспектировать, как продвигается разработка относительно Цели спринта, есть ли препятствия.

Спринт планинг (от англ. «sprint planning») — также среди must-have мероприятий для скрам-команды. Как видно из названия, на такой встрече планируют работу на будущий Спринт. Для спринта длиной в месяц планинг занимает 8 часов, и соответственно меньше для спринтов с меньшей продолжительностью. Результатом данного ивента является Бэклог спринта.

Спринт ревью или Демо (от англ. «sprint review» or «demo») — ещё одно из обязательных мероприятий. Его назначают в конце спринта, чтобы продемонстрировать и проинспектировать, получившийся результат, обменяться обратной связью. Продолжительность демо –  4 часа максимум.

Релиз (от англ. «release») — это версия программного продукта, характеризующаяся инкрементами (частями) функциональности. Нередко под словом «релиз» понимают некоторый временной промежуток, в ходе которого происходит реализация значимого для пользователей/заказчика функционала. Релиз, как правило, состоит из нескольких итераций (спринтов).

Бэклог рефайнмент (от англ. «backlog refinement») — это встречи, на которых команда пересматривает список задач — бэклог продукта. Решает, что улучшить, «почистить», оценивает приоритетность задач и все максимально детализирует.

Ретро (от англ. «retrospective») — это одно из важных мероприятий в скраме. Дает скрам-команде возможность проинспектировать свою работу, наметить, каким образом можно добиться улучшений в работе. Традиционно ретроспектива проходит после обзора состоявшегося спринта и перед планированием последующего. Для спринта длиной в месяц эта встреча ограничивается 3 часами.

Экшн айтэм (от англ. «action item») — это пункт плана действий. Список экшн айтемов — это результат какого-либо обсуждения, например, ретроспективы, когда команда выбрала перечень пунктов, которых будет придерживаться в работе в следующем спринте.

Цель спринта (от англ. «sprint goal») — это ожидаемый результат спринта (инкремент), который создаётся в ходе работы над элементами бэклога спринта.

Цель продукта (от англ. «product goal») описывает будущее состояние продукта, которое может выступать в качестве конечной цели, используемой скрам-командой при планировании работы. Цель продукта входит в состав бэклога продукта и играет в нем роль commitment’а.

Планинг покер (от англ. «planning poker») — это специальная техника, при которой проводится коллегиальный анализ сложности задачи. Проводится с помощью цифровых карт. Все участники команды исполнителей должны в закрытую оценить сложность задачи (например, стори пойнты с последовательностью Фибоначчи). После того как участники выставили свои оценки, карты переворачивают так, чтобы числа были видны всем участникам процесса. Далее проходит обсуждение и принимается оценка для каждой конкретной задачи. Оценка заносится в таск-менеджер.

Бэклог (от англ. «backlog») — приоритезированный список работ, которые планируется выполнить с учетом имеющихся на данный момент знаний. Элементы Бэклога Продукта, которые могут быть доведены Скрам-командой до состояния готовности в течение одного Спринта, считаются готовыми к помещению в Бэклог Спринта.

PBI (от англ. «Product backlog item») — это элемент бэклога продукта, часть работы, которую планируется сделать с учетом знаний, имеющихся на данный момент.

Бёрндаун чарт (от англ. «sprint burndown chart») — это диаграмма «cгорания» работ спринта. Она визуализирует, насколько команда прогрессирует в стори поинтах по дням спринта, а именно сколько работы уже выполнено и сколько осталось. Диаграмма дает возможность сделать прогноз, насколько спринт будет успешен и вовремя предпринять меры, если что-то идет не так.

Борда (от англ. «sprint board») — это инструмент визуализации работы с Бэклогом. Доска Спринта организуется по-разному, например, используются онлайн-сервисы или физическая доска с необходимым количеством колонок. Как минимум их три – «К выполнению», «В работе», «Готово». Доска Спринта управляется Разработчиками и отражает все элементы, которые а) только планируются б) уже в работе и в) завершены в рамках текущего Спринта.

Фича (от англ. «feature») — это определенная деталь или часть продукта, которая имеет специфические характеристики, какую-то особую функциональность, уникальную характеристику.

Инкремент (от англ. «increment») — один из артефактов скрама, готовый к использованию конечный продукт по итогам спринта. Таким продуктом может считаться новая внедренная функция, прототип и т.п. Каждый спринт завершается как минимум одним инкрементом – только тогда спринт будет признан успешным.

Эпик (от англ. «epic») — это некий объем работы, разделенный на отдельные задания (их называют «историями», или «пользовательскими историями») на основании потребностей/запросов клиентов и/или конечных пользователей.

Юзер стори или Сторя (от англ. «user story») — это описание функциональности или части функциональности, написанное повседневным или деловым языком и показывающее, что делает либо должен делать пользователь. В отличие от формальной документации пользовательских историй обеспечивает быстрый способ обработки требований заказчика без выполнения административных задач, связанных с ее обслуживанием.

Спайк (от англ. «spike») — это исследовательская Enabler-история, работа, которую необходимо проделать для того, чтобы, предоставить ответ/решение, а не выкатить фичу.

Аксэптанс или Критерии приемки (от англ. «acceptance criteria») — набор условий (специфические детали либо приемочные тесты), которые требуются для выполнения определенной User Story, чтобы Клиент либо Владелец продукта считали её (историю) выполненной.

DoD (от англ. «definition of done») — это набор критериев, по которым можно определить, выполнено ли то, что являлось целью разработки. Этот термин легко спутать с Критериями приемки. Но вообще понятия разнятся: Критерии приемки относятся к требованиям Клиента относительно определенного Элемента Бэклога, а Критерии готовности формирует команда + они затрагивают многие Элементы и Инкременты в целом.

DoR (от англ. «definition of ready») — это критерии готовности к разработке. Сюда относят сведения, которые необходимы для работы над Элементом Бэклога Продукта. Описание DoR должно составляется так, чтобы команда не нуждалась в дополнительных обсуждениях и исследованиях.