Коммуникация — это ключ: кейс спасения проекта
Когда-то очень давно один американец-клиент сказал мне: Communication is key. И я снова и снова убеждаюсь, что зачастую “просто правильно выстроенная” коммуникация выруливает сложные технические ситуации. Рапортую свежий кейс.
Ко мне обратился давний клиент с просьбой добавить в их мобильное приложение (далее “МП”) поддержку кастомного Bluetooth-девайса. Сей девайс является новым элементом в их программно-разрабатываемом комплексе, прослойкой между МП и датчиками, которые ранее подключались к смартфону с МП через USB. Этот девайс разрабатывается сторонней компанией. Таким образом, в этом спектакле участвуют 3 стороны: заказчик; мы, Zennex — как разработчик мобильного приложения; и третья компания — разработчик железа и онборд-софта для него.
Для полноты картины: четкого ТЗ не было и новый девайс изначально представлял из себя для нас черный ящик. На первом этапе мой Android-разработчик интегрировал в МП поддержку BLE (Bluetooth Low Emission) и начал пробовать получать данные. На этом этапе мы столкнулись с проблемами сбора получаемых данных из нескольких пакетов в один кусок и со скоростью их передачи. Я намеренно описываю технические детали очень общо, потому что:
• на другом проекте технические сложности могут быть другими, а организационные меры для их успешного преодоления будут аналогичными
• я, как управленец, не могу знать всех технических деталей и ищу решение, опираясь на общее понимание и знания других специалистов
Собственно на этом прелюдия окончена и я опишу, что было сделано в данной ситуации 🙂
Шаг 1
Организовал общий созвон, где:
• взял на себя активную роль, не будучи формально генподрядчиком
• дал всем вовлеченным технарям высказаться с описанием проблем, требований и ограничений, которые они видят каждый в своей части
• выступил в роли аналитика, просуммировав все вышеозвученные элементы, попытался определить связи между ними и высказал возможные гипотезы, как можно перестроить взаимодействие между ними, чтобы обойти ограничения
• попросил своего разработчика и разработчика железа нарисовать алгоритм работы всех компонент ПАК (программно-аппаратного комплекса)
• на выходе из созвона написал резюме с попунктным указанием договоренностей и плана действий (кто, что и когда делает)
Результат шага 1: началась командная работа с участием всех трех сторон.
Шаг 2
После реализации первой версии графического алгоритма обнаружил, что НЕ получил его в том виде, в котором я его видел внутренним взором. Принял на себя ответственность за это — что плохо объяснил. Организовал второй созвон, на котором:
• накидал на бумажке примерно так, как я хочу это видеть, и нашел в интернете название этой нотации, скинул ребятам несколько примеров
• еще раз проговорили, в каком виде я хочу видеть алгоритм — с указанием взаимодействия трех компонент системы: МП, BLE-девайса, датчиков
• задал вопрос, понятно ли то, что я хочу, разработчикам (моему и третьей стороны) и смогут ли они сделать алгоритм в таком виде — получил от них подтверждение, что да
• на выходе снова написал резюме, включающее договоренности и план действий
• согласно плана разработчики созвонились тет-а-тет и спонтанно выработали иной, облегченный вариант алгоритма, который вроде бы решал текущую задачу
• затем они реализовали свой облегченный алгоритм в виде кода
Результат шага 2: здесь появились первые плоды командной работы в виде нарисованного алгоритма.
Шаг 3
Для анализа результатов софта, написанного на предыдущем шаге, организовал третий созвон:
• обнаружилось, что сделанное по-прежнему не удовлетворяло заказчика
• выяснилось, что заказчик так и не предоставил разработчику железа некую информацию, которая была запрошена очень давно, в самом начале работы над проектом — вот это поворот 🤯
• подробно еще раз разобрали алгоритм, ограничения, возможности всех компонент — по сути еще раз обсудили алгоритм в деталях, выяснили, что нужно кодить именно так, как было нарисовано на шаге 2
• снова резюме с планом действий
• на данный момент ожидаем реализации софта согласно алгоритму, после чего, надеюсь, выйдем на финишную прямую
Результат шага 3: наконец-то появилось ощущение, что все на одной странице и мы наконец-то дожмем проект, по поводу которого заказчик уже начал высказывать пессимистичные ожидания.
Чем закончится история — расскажу. Промежуточные выводы👇
📌 Ключевые действия, которые продвинули проект вперед:
✔ Активная позиция: сам взял и всех сорганизовал (кстати, за это клиент мне уже сказал “спасибо”)
✔ Организация командной работы через активное и конструктивное вовлечение всех сторон в мозгоштурм в реальном времени
✔ Использование стандартных процедур: планы действий по выходу из созвонов (кто что и когда делает), получение коммитментов от вовлеченных сторон
✔ Настойчивость и терпение: да, люди не роботы и тормозят, инерция мышления, ошибки восприятия и постепенное заглубление в суть вопроса приводят к тому, что требуются множественные итерации — это не повод сдаваться рано
✔ Азарт: кайф от разруливания ситуации 🔥
А у вас бывало, что коммуникация буквально спасала проект?
• Кто в вашей практике берет на себя инициативу в неразруленных ситуациях?
• Сколько итераций вы считаете «нормой» для сложной команды?
• Сталкивались с ситуацией, когда заказчик сам был "узким горлышком"? Как решали?