Еще недавно для оплаты коммунальных услуг нужно было идти в банк, а сегодня мы, не выходя из дома, проводим нетривиальные финансовые операции. Во всех сферах нашей жизнедеятельности активно внедряются инновационные технологии – AI, ML, Big Data, RPA. Тренд цифровизации поддерживается государством. Записаться к врачу, заплатить налоги или штрафы ГИБДД, встать в очередь в детский сад, составить выписку по счету или даже открыть новый счет – все это мы делаем с помощью технологий.
Мир меняется как никогда быстро. Четвертая ИТ-революция происходит уже сейчас. Технологии, еще вчера казавшиеся сложными и недосягаемыми, сегодня становятся необходимыми. Глобализация и их доступность позволяют бизнесу становиться более гибким. Сейчас недостаточно просто создать «уникальный продукт». Необходимо быть в постоянном контакте с рынком.
Бизнес больше учится, развивается, ищет инновационные подходы и решения, смело тестирует новые гипотезы. Появляются новые концепции, подходы, методологии и способы развития бизнес-мышления.
Agile и бизнес
Одной из распространенных концепций стала методология Agile. Сейчас она в полной мере помогает бизнесу гибко реагировать на изменения в условиях динамично меняющейся среды.
Agile – альтернатива подходу, движимому планами. В окружении, управляемом планами, работа строится через проекты, а процесс их реализации выглядит следующим образом: идея – согласование бюджета – запуск – сдача проекта с незапланированными издержками. Проектный подход работает, когда нам все известно в самом начале, мы не ожидаем никаких сюрпризов и точно знаем, куда мы идем. В динамично меняющихся процессах IT, с большим количеством взаимосвязей и возможностей ошибиться, использовать проектный подход довольно сложно.
Цель Agile-подхода – применить гибкость к управлению с целью непрерывного создания и совершенствования востребованных продуктов и услуг с минимальным временем выхода на рынок.
Еще в 2001 году 17 независимых программистов собрались, чтобы сформировать принципы и ценности семейства гибких методик разработки в едином манифесте. Документ «Manifesto for Agile Software Development» надолго закрепил важнейшие ценности рабочих процессов в IT:
- Люди и взаимодействие важнее процессов и инструментов.
- Работающий продукт важнее исчерпывающей документации.
- Сотрудничество с клиентом важнее согласования условий контракта.
- Готовность к изменениям важнее следования первоначальному плану
Прошло 20 лет, и подход обретает свое место. Его принципы удачно вписываются в современную концепцию организации бизнеса, когда на рынке достаточно высокая конкуренция, а вести игру становится тяжело даже рыночным гигантам.
Погрузимся в Agile поглубже.
Начнем с того, что Agile – это про разработку…
… и про менеджмент. По «эджайловским догмам» процесс разработки программного продукта циркулирует в треугольной структуре. Взаимодействие происходит между проектной командой, пользователями и руководителем команды. На протяжении всего процесса разработчики и представители бизнеса ежедневно работают вместе, взаимодействуя лично друг с другом. Заинтересованные лица (инвесторы и пользователи) обязательно должны быть вовлечены в процесс, а руководители в этой системе являются не только держателями процесса…
Проекты интересные, задач много, а команда-то одна… Обычно пользовательских историй намного больше, чем может выдержать пропускная способность команды. А каждая фитча, реализованная в коде, рождает новые и новые запросы. Настоящая гидра! На руководителе лежит ответственная задача: формирование воронки жизнеспособных и актуальных для команды задач.
Владелец процесса должен грамотно выбирать, какие идеи будут реализованы и в какие сроки. Это нужно для того, чтобы команда не рассеивала внимание, не теряла мотивацию и концентрацию. Для структурирования работы формируется бэклог – чек-лист из задач для проектной команды, распределенных в порядке приоритетности. Не все задачи, которые ниже приоритетных, отсеиваются, им присваивается статус, и они занимают свое место в «зале ожидания». Нередко бэклоги расписаны на полгода вперед. Без инструментов тайм-менеджмента не обойтись!
Канбан
Благодаря канбану происходит равномерное распределение нагрузки между работниками. Канбан-метод представляет из себя управление разработкой по принципу «точно в срок». Все задачи для проектной команды разбиваются на двух- трехнедельные спринты, в рамках которых на одного специалиста может быть возложено не больше двух основных задач и двух смежных – совместных с другими подразделениями в организации. Для эффективной визуализации процесса обычно в компаниях используют канбан-доску. На ней видно статус каждой задачи и динамику работы команды в ретроспективе, а также прогноз задач и глобальных проектов. Этот инструмент помогает продвигать процесс создания продукта вперед, ускоряя его до необходимых темпов и при этом не перегружая команду.
У Agile есть еще одна особенность: незавершенная задача – это не плохо, а даже хорошо! Когда продукт еще «сырой», его возможности можно и нужно показывать заинтересованным лицам, причем как можно чаще!
Искусство минимизации лишней работы — крайне необходимая опция для упорядочивания сложного процесса в правильном русле. Постоянные и частые уточнения требований помогают нащупывать, куда двигаться дальше. А еще позволяют минимизировать риски в процессе разработки и, соответственно, сокращать затраты на исправление ошибок. Таким образом, Agile похож на плавное движение по оптимальной траектории.
Это движение происходит мелкими шажками. У программистов есть такой термин – «инкрементальность». Инкрементальность означает, что архитектура программы еще до начала реализации проекта делится на небольшие компоненты. Стоит отметить, что архитектор сервисов – крайне важная фигура на этом поле, так как будущая система, состоящая из маленьких кусочков, находится в его голове.
А сейчас давайте представим ситуацию:
На тестировании программы выясняется: «Нужно же было наоборот!»
При обнаружении конфликтов между реализацией проекта и требованиями к нему, ход работы команды может развернуться на все 180 градусов.
В рамках Agile это тоже неплохая новость! Изменение условий приветствуется даже на поздних стадиях. А еще Agile позволяет использовать микросервисную архитектуру разрабатываемого ПО для обратимости процесса в случае ошибки и обеспечения продукту гибкости на какой бы стадии своего жизненного цикла он ни находился. Все это гениально работает на создание конкурентных преимуществ.
Вот для чего маленькие компоненты! Простые формы – это ключ к гибкости. Это то, что поможет в короткие сроки создать продукт, который максимально точно решит задачи как можно большего числа заинтересованных лиц. Чем мельче компоненты создаваемого продукта, тем проще управлять его изменениями и быстро реагировать на изменения рынка и потребности клиентов.
Девиз «эджайловцев»: Искать новые решения в процессе, не ограничивать себя жесткими рамками и стандартами! Главное – это работающая программа, которая в итоге удовлетворяет потребности бизнеса.
В каком еще итоге?
Процесс разработки цикличен. Самые классные программные продукты – это те, которые непрерывно совершенствуются, получают обновления, новые фитчи. Разработка движется короткими итерациями (спринтами). За счет итеративности достигается совпадение продукта с его образами в пожеланиях пользователей. Сами итерации — это параллельные процессы непрерывной разработки и непрерывного анализа ее результатов.
Современный бизнес требует гибких подходов! Пока ты спишь, конкурент делает обновление! Очень важно, чтобы продукт оставался востребованным, и чем быстрее выпускаются обновление, тем лучше!
Мы уже совсем вплотную подобрались к принципам DevOps! DevOps помогает ускорить процесс развертывания обновлений и патчей ПО. Процессы написания кода, тестирования и развертывания приложения синхронизированы благодаря автоматизации. Максимально удобная среда для «девопсеров» – облачная – с безграничными возможностями хранения и тестирования продуктов на беспредельно масштабируемых мощностях. В облаках можно без труда организовать «песочницу» для тестирования проектов. А также автоматизировать процессы деплоя.
DevOps и Agile – не одно и то же, хотя понятия смежные, их даже часто путают. Важные особенности DevOps: тесное взаимодействие между разработчиками и группой эксплуатации, а также автоматизация развертывания приложений. DevOps – это не про частые и быстрые обновления, а, скорее, про систематичность и отсутствие проблем при развертывании. Таким образом, Agile и DevOps вообще о разных этапах разработки. Главный акцент DevOps – удобство на этапе развертывания, а у Agile акцент на процессе самой разработки.
Риски
До момента приемки работ ценность продукта для заказчика равна нулю. Если заказчику нравится итоговый результат, исполнитель должен получить больше, чем он потратил на этот проект.
Вечного двигателя не существует. Поэтому даже в работе команд, использующих Agile-подход, может что-то пойти не так. Нереалистичные сроки и бюджет могут разочаровать инвесторов в возможности реализации проекта. Сроки могут двигаться по нескольким причинам:
- из-за ошибочно взятого вектора на определенном этапе;
- из-за излишнего перфекционизма, от которого так стремятся уйти «эждайловцы». На тестирование никогда не выводят идеальный продукт, обычно показывают сырой;
- из-за неконтролируемого потока пользовательских историй, и, как следствие, – захламленности процессов;
- из-за недостаточной производительности спроектированной системы.
Все это находится в зоне ответственности держателя процесса – тимлида. Контроль и формирование вектора работы с его стороны происходит в основном на начальных стадиях проекта. Дальше все самостоятельно органично развивается. Грамотные Agile-руководители должны давать процессу возможность самостоятельно выбирать направление своего развития. В дело вступает Scrum!
Scrum позволяет развить в сотрудниках Soft Skills (гибкие непрофильные навыки, которые помогают в работе): командное взаимодействие, проактивность, самостоятельность, ответственность, организованность, коммуникабельность и дальновидность. Scrum – это методология управления проектами, которая построена на принципах тайм-менеджмента.
Держатель процесса должен уметь правильно выстроить в команде систему мотивации и подбора людей, наладить коммуникацию, расставить задачи и следить за темпом и стилем работы. Руководителю необходимо сочетать в себе навыки технического специалиста и психолога, а еще развивать soft skills.
Scrum-мастер – это человек, уверенно взаимодействующий с социумом, обладающий обширными знаниями в нескольких профессиональных областях, способный к работе в постоянно меняющихся условиях, обладающий лидерскими навыками и критическим мышлением, способный к самоорганизации и не привязанный к определенной локации. Он следит за процессом и всегда на подхвате, чтобы скорректировать работу команды и создавать условия, способствующие продуктиву.
В рамках самоорганизующихся команд часто рождаются неоридинарные работающие идеи. А если команда еще и кроссфункциональная, где каждый человек – Т-специалист, вас можно поздравить! «T-специалист» – это гибкий сотрудник, который достиг высокого профессионализма в одной узкой сфере деятельности (вертикальная черта буквы «Т») и при этом имеет знания и умения в других разнообразных областях, а также достаточно широкий кругозор (горизонтальная черта буквы «Т»). Такие сотрудники легко самостоятельно обучаются новому, применяют необычные подходы из других областей и чаще достигают качественного результата в своей работе. Не бойтесь повышения их ответственности и полномочий. Если вам удастся грамотно замотивировать профессионалов, можно будет мягко выстроить естественное течение работы без жестких регламентов и правил. Такой команде можно и нужно доверять. Это органическая структура, которая должна систематически анализировать свою работу и корректировать свой стиль в соответствии с результатами "рефлексии".
Agile – это образ мышления
Напоследок хотим вам сказать: Agile – это не шаблон, под который можно подогнать бизнес, а способ мышления и целая философия. Этой идеей должна быть пропитана корпоративная культура организации, если она хочет с помощью гибких моделей добиться высоких результатов.
Agile – это "подсознание" бизнеса
Сейчас дух Agile проник во многие сферы – от промышленной инженерии до ритейла. Некоторые идеи подхода присутствуют и в бирюзовых организациях, понятие о которых появилось спустя более десятка лет после официального «деплоя» принципов Agile, сформированных уже в начале этого тысячелетия. Идеи гибкости, нашедшие воплощение во многих других подходах, дают свои плоды, позволяя даже новичкам в мире бизнеса быть вне конкуренции.