{"id":13657,"url":"\/distributions\/13657\/click?bit=1&hash=566d340c54b853eeeda9db62318bf71978b30f8d7cf7d9099caa6c0c5d13ed5b","title":"\u041a\u0430\u043a \u0434\u0438\u0432\u0435\u0440\u0441\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0440\u0442\u0444\u0435\u043b\u044c? \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u00ab\u0437\u0435\u043b\u0451\u043d\u044b\u043c\u0438\u00bb \u043e\u0431\u043b\u0438\u0433\u0430\u0446\u0438\u044f\u043c\u0438","buttonText":"\u0423\u0437\u043d\u0430\u0442\u044c","imageUuid":"d34c044f-5676-50b8-b978-ab47dfaf9fed","isPaidAndBannersEnabled":false}
GlowByte

Вендор ушёл, а клоуны остались. Как мы начали сопровождать чёрный ящик

Привет! Мы команда сопровождения GlowByte, и мы решаем сложные проблемы. Если проект не хочет брать на поддержку ни одна команда (ссылка на статью Альфы), если с проекта ушли все ключевые сотрудники, если проект бросили разработчики, если на проекте экзотические технологии или же проект захотел отказаться от технической поддержки и порушить все свои бизнес-процессы, то есть отличный повод прийти за помощью к нам. Это история о том, как иностранный вендор бросил крупный проект, о том, как мы пытались протянуть руку помощи, и о том, что мы точно делали НЕправильно.

Хаос проблем

Итак, всё началось с ухода с российского рынка вендора, который предоставлял комплекс ПО по принципу SaaS (ПО как услуга). Вся система была полностью закрытой, никто о ней ничего не знал, не умел поддерживать, управлять и исправлять баги. С такой системой наедине остался один из крупных ритейлеров России. Найти новое решение с ходу – это сложно и больно. Поэтому нашему заказчику понадобилась помощь в поддержке этого “космолёта” до тех пор, пока не случится импортозамещение. Заходить в такой проект как минимум опасно: нет ни документации, ни исходного кода, ни мониторинга. Но зато есть отличные баги, критические для бизнеса проблемы и паникующий заказчик.

Многолетний опыт подготовил нас к приёмке проектов, у которых внедрение проводила команда, которая готова взаимодействовать и общаться. В нашем случае – от команды внедрения уж след простыл, зато осталась закрытая система и большой ком проблем с её работой. Несмотря на сложности, мы смело вызвались помочь, аргументируя свою решительность тем, что имеем опыт работы с подобными технологиями. И... нас завалило заявками в Jira сразу после приёмки. Все они были сложные, часто непонятные.

Отметим, что мы пришли на проект, когда в системе уже начались аварии. Аварией называлось всё, что приводило систему в неработоспособный вид и не решалось, потому что было не понятно, что произошло.

Сама система, как мы упомянули выше, была закрытая, многокомпонентная, со сложными связями этих компонент, а заказчик оказался совершенно не погружённым в техническую часть.

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

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

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

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

Что мы в итоге поняли

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

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

Первой проблемой в этом списке стала приёмка проекта. Обычно мы принимаем проект по принципу ITSM/ITIL: заказчику рассказывается, что он может заводить заявки, если встречает в своей системе проблему, а мы должны “решить” заявку и предоставить ответ. В рамках текущего проекта это не сработало, потому что заказчик хотел от нас самостоятельного мониторинга работоспособности системы.

Это привело к тому, что мы не договорились о том, как сопровождать проект, потому и не приняли проект на саппорт нормально. Исполнители заявок ничего не знали о бизнес-смысле системы, логической схеме или архитектуре, зато ориентировались в деталях какой-то из этих частей. Каждый из нас перечитал все заведенные заявки, комментарии и чаты, для дальнейшего эффективного сотрудничества был составлен список вопросов к команде и заказчику о задачах приложения, архитектуре, инфраструктуре, используемых технологиях, а также 3–4 резюмирующих вопроса к каждой заявке, что давало возможность раскрыть суть происходящего внутри системы.

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

Кстати, ещё одной нашей проблемой было то, что мы не коллекционировали свои знания по погружению в проект. Мало кто любит писать документацию и наполнять базу знаний, часто эта задача воспринимается как факультативная при наличии внушительного количества открытых заявок. Однако отсутствие централизованного знания системы априори делает проект тяжеловесным и неповоротливым, зависимым от конкретных исполнителей и не масштабируемым. Потому мы пришли к правилам и регламентам, разработали структуру, согласно которой по 3–4 резюмирующим вопросам к заявке надо было написать инструкцию, причём на написание ставились дедлайны.

Очень важно было, чтобы инструкции в базе знаний отвечали на вопросы: что это и как это делать. Все документы проходили модерацию и заносились модератором в базу знаний. Так, по сути, мы “наработали” инструмент ведения базы знаний, который стал намного эффективнее, чем добровольное согласие людей писать инструкции.

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

Итак, мы стали проводить регулярные дейли статусы, на которых обязательно обсуждали, что каждый из исполнителей сможет сделать за день, составляли план приоритетов задач, обсуждали, что удалось и не удалось сделать за прошедший день. Если что-то отклонялось от плана, то за этим было легко и удобно следить и принимать решения. В этот же таймлайн задач мы внесли обязательное регламентное наполнение базы знаний. Всё это позволило команде быть постоянно в курсе проблем на проекте, что повысило в дальнейшем эффективность принимаемых решений.

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

Отдельной глобальной проблемой проекта была грусть в коммуникации с заказчиком. Если нам что-то нужно было от него (доступы, ответы на вопросы), эти запросы зависали без движения, ничего не решалось. А если у заказчика были недовольства к нам, то они, как правило, доходили только через эскалацию. Мы решили больше разговаривать. Назначили регулярные встречи, на которые приходили представители всех команд заказчика, структурировали повестку и стали вести статусы. В повестку обязательными пунктами внесли критические вопросы и обсуждение статуса каждой проблемы с ранжированием по приоритетам.

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

Делегировать надо правильно

С приходом на проект мы заметили, что многие задачи имели абстрактное описание, но не предполагали абстрактного решения. Когда команда не знала, как решить задачу и с чего начать, в ход шли проверки всех теорий и гипотез, и, в конце концов, это приводило к тому, что уже было не ясно, что проверять. Наступала тупиковая ситуация. За заявку брался другой исполнитель и проверял добрую половину уже проверенных гипотез. Мы пришли к выводу, что пора выбираться из такого тупика. Стали обсуждать на встречах шаги решения проблемы, включая гипотезы её возникновения, параллельно ведя протокол того, что и кому нужно сделать. Причём шаги должны были быть декомпозированы так, чтобы трудозатраты на выполнение одного из них были не более 4 часов.

Также мы по максимуму избавились от абстракции и поставили подзадачи с чётким результатом на выходе. Это всё дало возможность более последовательно и быстро начать “решать” треки и в случае необходимости наглядно видеть, какие технические ресурсы ещё нужно привлекать для решения.

Армия в рабочих процессах

Как было упомянуто выше, дисциплина является важным обстоятельством нивелирования рисковых ситуаций. Мы стали вести проект с ориентиром на измеримые показатели (наличие комментариев в Jira, прогресса по решению заявок у каждого исполнителя, обходного решения в сроки), более тщательно планировать загруженность команды с детализаций до одного дня. Если у кого-то не получалось выполнить установленный объём работы за день, обсуждали блокирующие вопросы и помогали друг другу их решить. Проводили ежедневную общую встречу, где актуализировали статусы своих задач.

Если вам кажется, что армейская дисциплина может убить все рабочие процессы в подобного рода ситуациях, то это не так. Баланс между бюрократией и полной анархией решается правилами и регламентами действий для каждого. Когда понятно, какой процесс, для чего и как работает, – всё идёт легко. Более того, технические специалисты работают эффективнее, когда им не нужно заниматься менеджментом.

Итак, дисциплину мы отдали тимлиду, а радость от решения технических задач – команде.

Коммуникация "достать мёртвого"

Заказчик, не отвечающий вовсе или отвечающий не вовремя, – типичная ситуация, с которой можно столкнуться на проекте.

Когда входишь в проект, многие вопросы, такие как доступ к приложениям и компонентам, обратные уточняющие вопросы по заявкам, являются острыми и актуальными для продвижения решений инцидентов вперёд. Если заказчик медленно отвечает или не отвечает вообще, то коммуникация в стиле “достать мёртвого” – вполне себе действенный способ. Найти 33 способа переспросить и апнуть один и тот же вопрос разными словами и разным эмоциональным окрасом ожидания и при этом не достать окончательно заказчика – не просто, но очень эффективно. Зачастую это помогает отодвинуть проект подальше от кризисной черты.

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

Анализируя проблемы одну за одной, мы пришли к решению каждой путём чёткого структурирования процессов и применения техник Agile. Тем не менее поддержка – это не та сфера, где подход управления проектами в стиле команд разработки уместен всегда. Это связано с тем, что инциденты систем – слабо прогнозируемое явление. Наработав экспертизу в особенностях проекта, создав паттерн приёмки нетипичного проекта на сопровождение, сформировав базу знаний, на выходе мы получили (почти) классический стиль ведения проектов сопровождения. Подход стал работать сам на себя и планомерно развиваться. Целевой процесс не потребовал плотного курирования, отдельно выделенного на фуллтайм менеджера и такого большого количества исполнителей. Мы сократили расход ресурсов, нормализовали управление и вывели проект на стабильный уровень.

Итак, несмотря на то, что история этого проекта изначально не предполагала иметь счастливый конец, happy end всё же случился. После ряда масштабных манипуляций в менеджменте проекта мы добились того, что поддержка проекта встала на устойчивые рельсы, команда начала успевать выполнять свою работу, а у заказчика перестали простаивать важные бизнес-процессы. Ключевое – дальнейший менеджмент проекта стал поддерживать сам себя: были выработаны паттерны ведения проекта, обязательные условия и поручения, которые обеспечили проекту длительную жизнь без привлечения кризис-менеджеров.

0
1 комментарий
Аспро.Agile

Мы тоже ЗА внедрение базы знаний. Классный инструмент, который позволяет всю нужную информацию объединить в единое целое. А любой сотрудник может в экстренной/повседневной ситуации обратиться в нее за помощью, а не дергать коллег все время. Поэтому эту «плюшку» мы внедрили в сервис Аспро.Agile :)

Ответить
Развернуть ветку
Читать все 1 комментарий
null