28 октября прошёл митап на тему «Теория и практика Agile» с Кристиной Очкиной, сертифицированным SCRUM-мастером в компании iDecide.
Возможно, части аудитории будут непривычны многие слова, однако мы надеемся, что после прочтения вы больше узнаете про то, как именно происходит процесс разработки вашего сайта или приложения.
Agile – (англ. Agile software development, agile-методы) — серия подходов к разработке программного обеспечения. Agile – это определённая система ценностей, философия, которая помогает по-другому посмотреть на процесс разработки продукта.
История Agile показывает, как в мире IT решалась дилемма «процесс производства или люди». Что легче: человеку адаптироваться под рабочий процесс или поменять процесс, чтобы человеку было комфортно работать?
Agile – это не руководство к действию, а скорее образ мысли, влияющий на ваше отношение к работе.
Принципы Agile
-
Люди и взаимодействия между людьми важнее процессов и инструментов
Важно не отталкиваться от процесса производства, а исходить из организации комфортной работы для людей. Например, в некоторых компаниях есть жёсткие условия графика работы (с 9 до 18), однако современные методы организации работы склоняются к более гибкому графику и лояльно относятся к началу рабочего дня в 11 утра, потому что от чувства комфорта напрямую зависит продуктивность человека.
-
Рабочий продукт важнее исчерпывающей документации
Можно полгода писать техническое задание (ТЗ) на 500 страниц, которое в итоге не приведёт вас к финальному продукту. Поэтому намного важнее проявлять осознанность при чтении ТЗ и способность сказать заказчику, что нарисованная кнопка на прототипе сайта не нужна.
-
Сотрудничество с заказчиком важнее согласования условий контракта
Отношения между исполнителем и заказчиком могут строиться на модели подчинения либо диалога. В первом случае исполнитель чётко выполняет все требования, во втором он вступает в диалог с заказчиком, если видит, что предписанные ему действия не приведут заказчика к цели.
Для создания такого диалога Agile предлагает уходить от длительных промежутков коммуникации с заказчиком. Постоянное консультирование и поддержка обратной связи с заказчиком лучше, чем составление графика, в котором вы показываете свою работу 2 раза в месяц.
-
Готовность к изменениям важнее следования первоначальному плану
В ТЗ может быть прописана платформа, понедельные планы действия, однако если возникает момент, когда команда понимает бессмысленность своих действий, то лучше сделать шаг назад, чем продолжать работу. Анализ работы происходит во время ежедневных встреч (Daily-meeting), на которых можно (нужно) задавать вопрос: «Как твоё настроение?», – и ответ на него даст больше почвы для размышлений, чем директивный «разбор полётов».
Agile – это образ мышления, это про то, как получать удовольствие от работы. И, возможно, если бы я была вписана в какие-то более жёсткие рамки, процессы компании, где все делают всё только ради денег, то мне было бы тяжело, и я бы не смогла так работать.
История про снеговика, или почему важно часто общаться с заказчиком
Представь, что тебя поставили в одну комнату, а команду оставили в другой. И ты говоришь им, уходя: «Ребята, слепите снеговика». Команда делает там что-то, скатала 3 шара, зовёт тебя и говорит: «Иди, мы там снеговика слепили! Но нам ещё снега надо». Ты заходишь, видишь 3 раздельных шара лежат и не понимаешь, что происходит. «Ребята, я вас полгода ждал, вы мне 3 шара показываете и ещё снега просите». И это нормально, а как человек должен реагировать?
Вот если бы команда выбегала почаще и говорила: «Посмотри, что у нас со снеговиком!». Ты заходишь, видишь 2 шара и говоришь: «Не-е-ет, эти 2 шара друг на дружке должны быть, а руки посередине». А может случиться, что команда выбежит и скажет: «У нас ведра нет для снеговика, может повяжем шарфик?». И ты смотришь, что вроде симпатичный снеговик получился, соглашаешься, и все в плюсе оказываются.
В чём различия между SCRUM и Agile
Если Agile – это больше философия и принципы работы, то SCRUM – метод, помогающий вам эффективнее и быстрее сделать конечный продукт, а не находиться в постоянном процессе разработке.
В SCRUM есть 3 роли: Product Owner (заказчик), Scrum-master, The Team (команда).
Product Owner (заказчик) – человек, ответственный за продукт, которым будут все пользоваться. В его задачи входит исследование и анализ рынка. Он формирует видение продукта и понимание того, чем его продукт будет отличаться от существующих. Его роль расставить приоритеты в выполнении задач и согласовать с командой сроки их выполнения, время спринта.
Спринт — это то количество времени, за которое команда делает что-то конечное рабочее, что можно выпустить и показать заказчику.
Scrum-мастер – человек, который отслеживает процесс работы, он наблюдает за общим настроением команды, видит, каких навыков кому не хватает и кого нужно отправить на обучение, он решает текущие проекты, и благодаря ему процесс разработки находится в постоянном движении.
The Team (команда) обладает двумя важными качествами: кроссфункциональность и самоорганизация.
Кроссфункциональная команда – это своеобразный IT-спецназ из людей, которые могли бы заменить друг друга в экстренных случаях.
Если мы договариваемся на встречу в 10 часов, то никто никому не напоминает о встрече. Если мы один раз сказали дизайнеру про цвет кнопки, то больше об этом говорить не стоит.
Самоорганизация предполагает, что каждый чувствует ответственность за продукт и мотивацию сделать его качественно.
На митапе мы познакомились только с базовыми понятиями Agile, и для желающих побольше узнать про эту методологию можно почитать ряд книг:
- Henrik Kniberg and Mattias Skarin Kanban and Scrum — making the most of both
- Вольфсон Борис «Гибкие методологии разработки»
- Agile-манифест