Технологии

Коротко: Как устроена методология разработки Agile, которая помогает организовать работу в команде

2314
Автор:
Даша Козлукова
20 октября 2017 11:04
18+
Коротко: Как устроена методология разработки Agile, которая помогает организовать работу в команде
Как организовать работу в команде и сделать качественный продукт.

Сообщество тестировщиков QA talk Voronezh в DataArt постоянно проводит открытые встречи. В конце сентября Senior QA Наталья Киян рассказала об Agile — способе организации разработки, при котором залогом успеха является коммуникация внутри команды и с заказчиком. Downtown записал самое важное, что будет полезно не только разработчикам, но и всем, кто работает в команде.

Наталья Киян, Senior QA, DataArt

Что такое Agile

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

В Agile четыре главных принципа, на которых строится вся система:

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

То есть для Agile на первом месте стоит коммуникация — она и является залогом успеха. Но не стоит полностью исключать планирование и документацию.


Участники Agile

Обычно в команде от 5 до 9 человек. Если коллектив большой, он разбивается на несколько команд. В идеале, в каждой команде, помимо разработчиков и тестировщиков, должны быть участники с разными ролями.

Владелец продукта (Product Owner) — человек, который задает цели и точно знает, для кого разрабатывается продукт и какие проблемы будет решать. Он генерирует идеи и приоритизирует задачи. Также есть заинтересованные лица — стейкхлолдеры (Stakeholders). У них есть определенные ожидания относительно итогового продукта. Они могут влиять на требования и принимать решения. Например, если продукт создается для огромной компании, то стейкхолдеры могут быть представителями разных отделов. И они точно знают, что должен делать продукт. В команде бывает скрам мастер (Scrum Master) — своеобразный гуру и хранитель знаний, который не вмешивается в процессы, а только регулирует их и помогает команде прийти к результатам вовремя. Но в реальной жизни он участвует в разработке. Может быть и такое, что эта роль передается между участниками команды.


Как происходит процесс разработки и тестирования

Одной из методологий гибкой разработки является Scrum. Если Agile — это концепция, общая идея гибкой разработки, то Scrum набор конкретных инструментов. В его основе лежит спринт, или итерация. Это ограниченный по времени промежуток, обычно 1-4 недели. В идеале, каждый спринт должен иметь цель, которая мотивирует всю команду. На входе в спринт берется несколько задач, а на выходе получается готовый продукт, которым смогут пользоваться люди. Разумеется, это не конечный вариант — его еще долго будут дорабатывать и улучшать.

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


Коммуникация как основа успеха

В Agile важна коммуникация не только с заказчиком, но и внутри команды. Перед началом каждого спринта проходит Sprint Planning. Это такой митинг (встреча), на котором команда вместе с владельцем продукта обсуждает будущий спринт. Они решают, какие задачи в него войдут и сколько времени потребуется на их реализацию. После проходят ежедневные митинги (Daily Meeting), где все члены команды отвечают на три вопроса: «Что я делал вчера?», «Что буду делать сегодня?»«Что мне мешает двигаться вперед?» Это позволяет видеть весь прогресс команды и не накапливать проблемы, а решать их сразу и не тормозить процесс.

Обзор итогов спринта (Sprint Review Meeting) проходит в конце проекта. На встречах команды показывают все, чего смогли достичь. Владельцы продукта любят такие митинги, потому что они видят прогресс. После окончания проекта команда проводит последнюю встречу (Sprint Retrospective), где выявляет проблемы во время спринта и решает, как улучшить процесс в будущем.

Материал подготовлен при поддержке DataArt в Воронеже

 

Фотографии: Дмитрий Чернов

Поделиться: