Путь к Agile: как Braze переосмыслила процесс управления программными проектами

Опубликовано: 2019-02-19

Мы потратили первые пять или около того лет на создание Braze без особого формального управления проектом. Мы использовали проектную документацию, Trello, электронные таблицы, эвристику, лучшие практики и множество совещаний, чтобы сделать огромное количество дел. Не бывает двух одинаковых проектов — некоторыми управляла целая армия из одного человека, которые держали в голове текущий статус, в то время как другие тщательно документировались практически до отдельных коммитов. Все работало достаточно хорошо... пока не сработало.

К началу 2018 года мы начали видеть явные признаки того, что существуют некоторые фундаментальные проблемы:

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

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

Составление плана

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

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

Этот Agile-комитет, как мы его назвали, подошел к ситуации, твердо помня несколько ключевых принципов:

  • Мы хотели использовать проверенные решения, где это возможно, как в методологиях, так и в программном обеспечении. Чтобы быть уникальными, нужно приложить много усилий, и мы хотели быть уникальными только в необходимых и стратегических областях. Мы также хотели, чтобы люди могли использовать Google передовые методы управления своей работой или, что еще лучше, чтобы люди присоединялись к Braze, уже зная, как это сделать.
  • Мы хотели, чтобы команды инженеров по продуктам в Braze были в значительной степени последовательны в том, как они работают, потому что способность говорить на одном языке ценна.
  • Мы не хотели делать что-либо догматически или непродуманно. Просто выбрать метод, а затем следовать книге было недостаточно; для нас было важно, чтобы здравый смысл и продуманная итерация правили днем.

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

Затем мы столкнулись с двумя основными решениями: (1) какие инструменты мы должны использовать для поддержки нашего нового процесса и (2) как мы должны внедрять изменения в наш процесс. Мы обсудили, оценили и продемонстрировали несколько программных продуктов, и в конечном итоге Jira от Atlassian оказалась для нас правильным выбором. Это хорошо зарекомендовавшее себя решение, несколько человек в нашей команде уже имели опыт его использования, и другие команды в Braze уже использовали его, открывая возможность для лучшего сотрудничества между командами, потому что мы все работали в одной системе.

Когда дело дошло до выбора плана развертывания Agile, нам нужно было принять несколько ключевых решений. Во-первых, как мы обучаем/включаем команду? Мы могли бы нанять тренера по Agile, привлечь опытных людей в команду для обучения других или привлечь консультантов для помощи. Во-вторых, должны ли мы заставить инженерные команды, имеющие некоторый опыт работы с Agile, ждать обучения, прежде чем внедрять его?

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

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

Мы решили использовать Scrum, гибкую структуру, доказавшую свою эффективность во многих организациях. Он широко известен, масштабируем и является безопасным выбором по умолчанию, когда вы хотите внедрить Agile-процесс.


Брайан Уилер
вице-президент по разработке продуктов в Braze

Выполнение плана

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

С самого начала мы довольно осторожно относились к переходу на Jira и Scrum. И Интернет, и личный опыт нашей команды были полны предостерегающих рассказов об опасностях чрезмерно догматичных подходов, о том, как Jira может функционировать как «антишаблон», и обо всех способах, которыми Scrum может пойти наперекосяк в организациях. Люди, с которыми мы консультировались, сильно предупреждали нас, что эти изменения, скорее всего, потребуют времени и что вполне могут возникнуть проблемы с ростом, прежде чем мы увидим реальные преимущества Agile.

К счастью, мы сразу нашли ценность в новом процессе. Одна из приятных особенностей этого перехода заключается в том, что мы никогда не чувствовали давления слепо следовать какому-либо конкретному аспекту Scrum; чтобы все работало лучше, мы проводили ретроспективу того, как идут дела, каждые пару недель, а затем модифицировали то, что нужно было изменить. И за три месяца коучинга мы внедрили радикальные изменения в инженерной организации:

  • Все научились писать, ухаживать, указывать, разбивать и подбирать пользовательские истории.
  • Стендапы вновь привлекли внимание, когда дело дошло до завершения текущей работы.
  • Продукт, Дизайн и Инженерия научились говорить на одном языке, а интерфейсы становились все лучше и лучше.

Результаты, достижения

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

У нас также есть значительно более согласованные местоположения для артефактов дизайна, а также более согласованные ожидания относительно того, что на самом деле «сделано» для данного проекта. Стало легко видеть, над чем работают другие команды, и людям проще, чем когда-либо прежде, понять, как хорошо работать вместе.

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

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

Выводы

Два основных элемента наших усилий обеспечили его успех.

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

Во-вторых, решение привлечь третью сторону для обучения нашей команды было очень важным. Наличие объективного, опытного партнера дало нам возможность быстро внести многочисленные улучшения в наш процесс. Наш тренер знал, что такое добро, и мог давать непредвзятые рекомендации, несколько раз мы могли спросить: «Как команды обычно делают X?» и получить немедленное, работоспособное решение. Если бы, с другой стороны, мы использовали внутренние ресурсы, мы бы столкнулись с риском того, что отзывы, которые мы получили, исходили от предвзятой стороны, и увеличили бы конфликт ресурсов с существующими обязанностями.

Что-нибудь еще?

Если вы хотите узнать больше о том, что мы думаем о нашем продукте и о работе, которая идет на его создание, ознакомьтесь с Building Braze. Заинтересованы в присоединении к нашей команде? Ознакомьтесь с нашими текущими вакансиями.