Что такое Agile и Scrum

Что такое Agile и Scrum

Бывает, обсуждаете что-то в компании и тут речь заходит, скажем, о новой сделке Apple. Признаться, что вы не в теме, стыдно, поэтому остается только кивать с умным видом. Знакомо?

Чтобы таких неловких ситуаций было меньше, мы запустили рубрику «На пальцах». В ней мы просим специалистов объяснить сложные вещи простыми словами.

В новом выпуске Scrum-мастер MacPaw Катя Углицких рассказывает, что такое Agile и Scrum.

Катя Углицких

Что такое Agile

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

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

Обычно итерация длится 2 недели, а потом команда презентует часть работающего продукта (например, новую функцию в мобильном приложении). Затем итерация начинается заново: команда определяет новую цель и идет к ней.

Agile — это не инструкция, по которой может работать команда. Это определенные ценности и принципы, которые помогут организовать работу команды.

Если Agile — это набор принципов, и он достаточно абстрактный, то Scrum, Kanban, TDD, BDD, Extreme programming, Pair programming — это конкретные практики с четкими правилами и ролями. Все они строятся на основе принципов Agile, но отличаются между собой. Например, в Scrum итерации называют «спринтами», а в Kanban понятия «итерация» вообще нет.

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

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

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

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

Как IT-компании работали до того, как Agile стал популярным

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

Проблема Waterfall была в том, что индустрия развивалась очень быстро. Продукты, которые разрабатывались десятками месяцев, в итоге теряли актуальность.

Только представьте, вы целых 2-3-5 лет работаете над продуктом, прикручиваете ему функциональность, которая должна стать killer feature (особенная характеристика, которой нет у продуктов конкурентов — ред.) и наконец решаетесь показать его миру. А потом оказывается, что продукт очень нишевый — он занимает лишь десятую или сотую часть всего рынка.

Таких историй раньше было очень много. Именно с появлением Agile компании смогли определять провальные продукты еще на ранней стадии.

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

Когда Agile стал популярен

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

В 2001 году авторы экстремального программирования, DSDM, Scrum и других методик управления проектами (всего из было 17 человек) собрались вместе, чтобы объединить свои наработки в одну методологию. Вместе они подписали единый Agile-манифест.

Спустя 18 лет Agile-практики используют 97% IT-компаний. В украинские IT-компании Agile пришел около 10 лет назад.

Что такое Scrum

Scrum — одна из практик, основанных на идеях Agile. Чаще всего команды выбирают именно ее.

Scrum похож на децентрализацию власти: если классический проджект-менеджер отвечает и за людей, и за бюджет, и за продукт, то в Scrum за эти элементы отвечают три разных человека.

Командам, которые только начинают работать по принципам Agile, стоит выбрать именно Scrum.

Scrum-команда

В Scrum-команде есть три роли:

Член Scrum-команды — сюда входят все участники команды разработки.

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

Некоторые нанимают профессионального Scrum-мастера, но если компания небольшая, его роль может выполнять любой член Scrum-команды.

Product Owner — это человек, который управляет концепцией проекта и приоритетом выполнения задач.

Бывает, что Product Owner и Scrum-мастер — один и тот же человек, но это неправильно. Задача Scrum-мастера — бросать вызовы не только команде, но и Product Owner.

Эффективность Agile зависит от зрелости команды. Если команда понимает, зачем ей все это, у них не возникнет вопросов насчет распределения ролей.

Scrum-встречи

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

Daily Scrum — ежедневная встреча, на которой выступает каждый член команды. Это помогает всем синхронизироваться. На Daily Scrum команда отвечает на три основных вопроса:

  • Что я сделал вчера?
  • Что я буду делать сегодня?
  • Что мне мешает? Нужна ли мне чья-то помощь?

Планирование — происходит в начале итерации. Сначала Product Owner определяет приоритеты, а затем команда собирается, чтобы конкретизировать задачу, которую они должны выполнить до конца итерации.

Reviews — это презентация в конце каждой итерации, на которой команда показывает демо-версию продукта. На эти мероприятия приходят потребители, которые просили команду сделать эту функцию, Product Owner и владельцы компании.

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

Выводы из практики применения Scrum

  1. Раньше в нашей компании отдел маркетинга работал отдельно, разработчики — отдельно. Каждый был в своем мире.
  2. Раньше у нас были компонентные команды: разработка, маркетинг, веб-разработка. Когда мы работали над одним продуктом, то все занимались исключительно им. Это было наше бутылочное горлышко. Сейчас мы работаем над несколькими продуктами одновременно. Над каждым из них трудятся по несколько кросс-функциональных команд, которые мы создаем под определенные потребности.
  3. Из-за того, что наша команда самоорганизованная, никто не хочет брать на себя ответственность. Когда команды большие, им сложнее самоорганизовываться, вовлеченность может падать. Поэтому в Scrum-команде должно быть не более 9 человек. Вовлечение каждого влияет на то, насколько ясна цель команды.
  4. Из-за того, что мы хотим услышать каждого, иногда тратим много времени на принятие решения.

Кому кроме продуктовых IT-компаний подходят практики Agile

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

Кроме IT-отрасли за последние 5-7 лет Agile начали применять многие украинские банки, фармацевтические компании и неприбыльные организации. К примеру, его используют программисты ProZorro и «ПриватБанка».

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

Читайте нас в Telegram

Поделиться