Ситуация

Как безопасно сменить агентство разработки?

Два риска, и это не те, к которым готовятся: аккаунты, о которых выясняется, что они не ваши, и разрыв, где ни за что не отвечает никто.

Короткий ответ

Сделайте три вещи до объявления об уходе: установите, какие аккаунты оформлены на вашу компанию, и переоформите остальные; получите независимую техническую картину системы, выведенную из кода, а не написанную уходящим агентством; и запланируйте настоящий перехлёст, в котором приходящая команда выкатывает, восстанавливает копию и получает письменные ответы. Самая дорогая ошибка — обнаружить проблемы владения после того, как отношения стали враждебными.

#До объявления об уходе

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

  1. Установите владение каждым аккаунтом

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

    Это опись, а не конфронтация. Большую часть можно сделать, просто посмотрев.

  2. Переоформите всё критичное, что не ваше

    Сначала домен и облачная организация. У нескольких из них процесс занимает дни, и минимум одному понадобится содействие уходящего агентства, — а его сегодня у вас куда больше, чем будет после объявления.

  3. Почините адреса восстановления

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

  4. Получите независимую техническую картину

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

  5. Прочитайте в договоре условия выхода

    Срок уведомления, что подлежит передаче при расторжении, кому принадлежат права, что происходит с аккаунтами. Выясните это сейчас, а не во время переговоров.

  6. И только потом говорите с ними

    С закреплённым владением и картиной на руках разговор идёт о том, как назначить профессиональный переход. Без них это переговоры, в которых активы у другой стороны.

#Что уходящее агентство вам должно

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

Активы и доступы

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

Эксплуатируемость — показанная, а не описанная

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

Знание, которое есть только у них

  • Письменные ответы на конкретный список вопросов, а не «документация» На список вопросов отвечают. Открытая просьба даёт спешно написанный документ о том, что кто-то помнит.
  • Какие части им было бы тревожно отдать кому-то на изменение и почему
  • Что ломается регулярно и что они с этим делают
  • Какие внешние стороны зависят от этой системы — партнёры, интеграторы, потребители API
  • Любой ручной шаг и то, как часто его приходится делать

#Что нужно приходящему агентству

И что стоит поостеречься отдавать по умолчанию.

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

  • Аккаунты остаются на вас. Давайте доступ, а не владение. Самый частый способ, которым одна зависимость превращается в другую, — новый подрядчик заводит следующий набор аккаунтов в своей организации, потому что так быстрее.
  • Понимание, которое они наработают, должно оказаться там, где его храните вы. Первые два месяца любой новой работы уходят на изучение системы. Если результат живёт только в их головах, вы заплатили за перемещение зависимости, а не за её уменьшение.

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

#Разрыв, где не отвечает никто

Характерный провал смены агентства не драматичен. Это трёхнедельный период, когда старой команде уже всё равно, а новая ещё не может, — и что-то нужно сделать.

Закончить старый договор в пятницу и начать новый в понедельник.

Вместо этого Наложите их друг на друга и заплатите за это. Перехлёст — это место, где каждое «должно работать» превращается в факт при наличии того, кто объяснит, почему не сработало.

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

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

Менять учётные данные до подтверждения владения.

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

Считать последний счёт концом перехода.

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

#Как измерить, что получилось

Те же три проверки, что и у любой передачи, и их стоит вписать в условия выхода приёмочными критериями вместо «документация сдана»:

  1. Приходящая команда выкатывает настоящее изменение, не обращаясь к уходящей.
  2. Она восстанавливает резервную копию в отдельное окружение.
  3. Она письменно и верно отвечает на десять вопросов о системе, выбранных вами.

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

#Где 1ADK помогает, а где нет

Где помогает

  • Картина принадлежит вам, а не одному из агентств.
  • Пробелы — конкретный список вопросов для условий выхода.
  • Сравнение «до и после» перехода.
  • То, с чем можно сверить приходящую команду.
  • Преемственность: следующая смена подрядчика начнётся с записи, а не с нуля.

Где не помогает

  • Переоформление доменов и облачных аккаунтов.
  • Условия договора, сроки уведомления и права на результат.
  • Оценка работы любого из агентств.
  • Доказательство, что система работает, — это делает только её запуск.
  • Переговоры с подрядчиком, решившим не содействовать.

Вопросы, которые задают на самом деле

Сначала закрепите владение там, где это можно сделать без объявления, — часть переоформлений это обычная административная работа, которую не нужно объяснять. Чего делать не стоит: объявить об уходе и потом обнаружить, что домен оформлен на них, — в этот момент рутинное переоформление превращается в рычаг в коммерческом разговоре.

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

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

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

Сначала установите, что у вас на самом деле есть.

Техническая картина системы, выведенная из кода, а не написанная той стороной, от которой вы уходите. Первая бесплатна, и запустить её может как раз приходящая команда.

Построить карту проекта — бесплатно Сначала проверить готовность