Инструмент

Сможет ли другая команда принять эту систему?

Девятнадцать вопросов с фактическими ответами. В конце — три названные группы вместо числа и конкретный список того, что стоит установить до передачи, а не во время неё.

of answered

Where this leaves you

Подтверждено

Установлено — в идеале тем, что это делали, а не тем, что об этом рассказали.

Не подтверждено

Известные дыры. У каждой рядом написан конкретный первый шаг.

Нужно проверить

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

Владение

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

Домен зарегистрирован на аккаунт, которым владеет ваша компания?

Вопрос не «есть ли у вас доступ», а на чьё имя оформлена регистрация и куда уходит адрес для восстановления — в почтовый ящик компании?

If Подтверждено Хорошо. Проверьте заодно почту и телефон восстановления у регистратора: аккаунт компании с личным адресом восстановления — не аккаунт компании.

If Не подтверждено Начните с этого, до всего остального на этой странице. Потерять домен — значит потерять продукт, почту и каждую интеграцию, которая на него резолвится. Перенос между регистраторами занимает дни, так что начинайте сейчас.

If Нужно проверить Это проверяется за десять минут. Откройте панель регистратора, посмотрите владельца аккаунта и контакты восстановления и запишите, что увидели.

Продакшен-аккаунт или организация в облаке принадлежит вашей компании?

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

If Подтверждено Убедитесь, что root-доступ держит компания и что счета идут на корпоративный способ оплаты.

If Не подтверждено Это перенос, а не смена прав, и у него есть процедура. Поднимите вопрос, пока отношения ещё комфортные, а не в период уведомления о расторжении.

If Нужно проверить Посмотрите, кому приходит счёт. Обычно это выясняет всё быстрее, чем расспросы.

Репозиторий лежит в организации, принадлежащей компании, вместе со всей историей?

Схлопнутый снимок, переданный zip-архивом, — не репозиторий: именно в истории новая команда находит, почему всё устроено так, как устроено.

If Подтверждено Проверьте также, что права владельца организации есть минимум у двух человек в компании.

If Не подтверждено Попросите передать организацию или перенести репозиторий с сохранением истории. Обычно это не вызывает споров.

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

Аккаунты внешних сервисов — платежи, почта, хранилище, мониторинг — оформлены на компанию?

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

If Подтверждено Держите этот список. Его спросят первым при любой due diligence.

If Не подтверждено Выпишите их и переносите по одному. Сначала платёжный провайдер и почта: там деньги и контакт с клиентами.

If Нужно проверить Начните с того, куда система реально ходит. Карта интеграций — самый быстрый способ получить список, а не воспоминание о нём.

Эксплуатируемость

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

Кто-нибудь вне текущей команды поднимал систему локально по одной только инструкции?

По одной только инструкции. Когда вас ведёт за руку тот, кто её писал, это ничего не доказывает про инструкцию.

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

If Не подтверждено Попробуйте. Это самая дешёвая проверка на странице, и обычно она находит два-три недокументированных шага.

If Нужно проверить Если никто не может назвать человека, который делал это последним, ответ — нет.

Кто-нибудь вне текущей команды выкатывал в продакшен?

Иметь доступы — не то же самое, что сделать это. Процессы релиза обрастают шагами, которые живут в привычке одного человека.

If Подтверждено Хорошо. Проверьте, что процедура записана так, как её реально выполняли, а не так, как её помнят.

If Не подтверждено Организуйте релиз под присмотром сейчас, пока знающие люди рядом и относятся к этому спокойно.

If Нужно проверить Спросите прямо, кто выкатывал за последние три месяца. Если имя одно — это и есть ответ.

Есть процедура отката, которой кто-то реально пользовался?

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

If Подтверждено Проверьте, покрывает ли она изменения в базе, а не только код. Обычно ломается именно там.

If Не подтверждено Запишите её и отрепетируйте один раз. Это полдня работы и разница между плохим часом и плохой неделей.

If Нужно проверить Спросите, что было в прошлый раз, когда релиз пошёл не так. Ответ и описывает вашу настоящую процедуру отката.

Есть список всех существующих сред и того, что в каждой развёрнуто?

В забытых стендах на удивление часто лежат настоящие клиентские данные.

If Подтверждено Сверьте список с консолью облака, а не с памятью.

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

If Нужно проверить Ищите всё запущенное, чего нет в списке. Именно на этом упражнение окупается.

Восстановление

Бэкап, который никто не разворачивал, — это вера. Раздел короткий, потому что в нём только то, что вы либо сделали, либо нет.

Бэкапы делаются, и кто-нибудь проверяет, что они делаются?

Задачи резервного копирования падают тихо. Конфигурация, верная два года назад, — не свидетельство о прошлой ночи.

If Подтверждено Убедитесь, что сбой поднимает оповещение, которое кто-то действительно получает.

If Не подтверждено После владения доменом это самое ценное, что есть на этой странице.

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

Бэкап разворачивали в рабочую среду за последние полгода?

Восстановление — другая операция, чем резервное копирование, и падает именно она.

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

If Не подтверждено Разверните в отдельную временную среду. Одно это упражнение находит больше реальных проблем, чем любой аудит.

If Нужно проверить Восстановление бэкапа не забывают. Если есть сомнение — значит, этого не было.

Продакшен-доступы лежат там, где ими управляет компания, а не в инструментах одного человека?

Общее хранилище, принадлежащее компании; не личный менеджер паролей и не таблица.

If Подтверждено Убедитесь, что до него дотянутся минимум двое и что есть процедура на случай ухода человека.

If Не подтверждено Перенесите их в хранилище, которым управляет компания, а потом всё поменяйте. Именно в таком порядке.

If Нужно проверить Спросите, где лежит пароль от продакшен-базы. Ответ покажет всю картину.

Понимание

Именно эта часть решает, сколько передача продлится. И именно её почти никогда не измеряют до её начала.

Есть актуальное письменное описание того, из чего система состоит?

Актуальное — значит описывает систему такой, какая она сейчас, а не какой её кто-то помнит.

If Подтверждено Посмотрите, когда его в последний раз сверяли с системой, а не когда правили. Это разные даты.

If Не подтверждено Это выводится за часы, а не за недели, и делает короче каждый следующий разговор при передаче.

If Нужно проверить Если вы не можете назвать документ и его дату — ответ нет.

Есть список всех внешних сервисов, без которых система не работает?

Включая добавленные годы назад кем-то, кто уже ушёл, и исходящие интеграции, о которых никто не думает.

If Подтверждено Добавьте колонку «на чьём аккаунте». Значение имеет именно эта версия списка.

If Не подтверждено Выведите его из системы, а не собирайте по памяти: память надёжно опускает самые интересные.

If Нужно проверить Спросите двух человек по отдельности и сравните списки. Разница и есть ответ.

Вы знаете всё, что запускается по расписанию, и что делает каждая задача?

У задач по расписанию самое высокое отношение «никто не знал, что это существует» к размеру.

If Подтверждено Убедитесь, что у каждой есть названный владелец и что кто-то заметил бы её остановку.

If Не подтверждено Смотрите в кодовую базу, в консоль облака и в серверные crontab. Во все три: они редко сходятся.

If Нужно проверить Месячную или квартальную задачу легко пропустить. Посмотрите логи за целый год, если они есть.

Вы знаете, где живут клиентские данные и что уходит из системы наружу?

Исходящие потоки — ночной файл, аналитика, выгрузка партнёру — это одновременно вопрос регуляторики и вопрос эксплуатации.

If Подтверждено Проверьте, что получатель каждого исходящего потока — всё ещё тот, с кем у вас есть отношения.

If Не подтверждено Начните с исходящей стороны. Входящую восстановить позже проще.

If Нужно проверить Там, где файл пишется по пути, настроенному вне репозитория, ответить по одному коду нельзя. Это стоит знать явно.

Есть ли часть системы, которую может объяснить только один человек?

Отвечайте «да», если таких мест нет, а не если такое место есть.

If Подтверждено Хорошо и редко. Проверьте это: попросите кого-нибудь другого объяснить самую рискованную часть.

If Не подтверждено Сосчитайте их, назовите поимённо и вытащите рассуждения из этих людей, пока они доступны. Это самый ценный список, который вы составите.

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

Сама передача

О том, продумана ли механика передачи вообще — в отличие от «подразумевается».

В договоре написано, что происходит при расторжении: аккаунты, результаты, срок уведомления, период передачи?

Выясните это сейчас, пока это вопрос. Позже это станет позицией на переговорах.

If Подтверждено Проверьте, названы ли там критерии приёмки, а не только перечень результатов.

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

If Нужно проверить Прочитайте пункт о расторжении сегодня. Это десять минут, и это меняет планирование.

Запланирован период, когда обе команды доступны одновременно?

Разрыв между уходящей и приходящей командой — это то место, где всё подразумеваемое оказывается неправдой.

If Подтверждено Потратьте его на показ — выкатить, восстановить, выпустить настоящее изменение, — а не на презентации.

If Не подтверждено Запланируйте и оплатите его. Это самая дешёвая страховка в переходе.

If Нужно проверить Если никто не назвал его длительность — значит, он не запланирован.

Есть письменный список вопросов, на которые может ответить только уходящая команда?

На конкретные письменные вопросы отвечают и в последнюю неделю. На «напишите документацию» — нет.

If Подтверждено Получите ответы письменно и держите их не в почтовом ящике.

If Не подтверждено Соберите его из дыр в вашей технической картине. Эти дыры и есть список.

If Нужно проверить Если это не записано — этого нет, и вы вспомните о нём через три недели после их ухода.

Your answers stay in this browser. There is no server behind this page: nothing is submitted, no account is needed, and no email address is asked for. Clearing the page or pressing “Start again” removes them.

  • 19 вопросов
  • около 10 минут
  • без аккаунта и почты
  • ничего не отправляется

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

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

#Что здесь проверяется и почему именно эти девятнадцать

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

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

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

#Как это решает

Здесь нет ни модели, ни весов, ни скрытой арифметики.

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

Почему не балл

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

#Как выглядит типичный результат

Обычный четырёхлетний продукт Вымышленный пример — не клиент
ПОДТВЕРЖДЕНО        5
  Домен на аккаунте компании
  Репозиторий в организации компании, история целиком
  Бэкапы делаются
  В договоре есть условия расторжения
  Список сред существует

НЕ ПОДТВЕРЖДЕНО     4
  Бэкап не разворачивали последние полгода
  Никто вне текущей команды не выкатывал
  Продакшен-доступы в личном менеджере паролей
  Две подсистемы объясняет только один человек

НУЖНО ПРОВЕРИТЬ     9
  Чьи аккаунты у внешних сервисов
  Всё, что работает по расписанию
  Куда уходят клиентские данные
  ... и ещё шесть

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

#Чего это не делает

Чего это не делает

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

#Что происходит с вашими ответами

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

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

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

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

Потому что число прячет ту единственную строку, которая имела значение. «Подтверждено / не подтверждено / нужно проверить» — это результат, с которым можно идти на встречу; 73 из 100 — нет.

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

Да. Кнопка печати выдаёт чистую версию с вашими ответами и относящимися к ним пояснениями, и в любом браузере она же работает как экспорт в PDF.

Вы отвечали по памяти. Теперь проверьте систему.

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

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