К основному содержанию

Модернизация

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

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

Почему переписывания буксуют.

Команда растёт, срок съезжает, старая система работает дальше — потому что новой никто не доверяет.

Прод

Система каждый день приносит деньги. Обычная программа работ просит её подождать восемнадцать месяцев.

Регрессия

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

Расхождение

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

Пока идёт работа

Что видно в любой момент.

Где это лежит

Ваше облако. Ваш репозиторий.

  1. 01 Приложение Веб, мобильные клиенты и отчёты работают в ваших аккаунтах.
  2. 02 Репозиторий Первый коммит уже ваш.
  3. 03 Хостинг Мы никогда не размещаем продукт. Когда уходим, нечего сворачивать.
Новое ядро работает в ваших аккаунтах. Названное вами должно продолжать работать — это доказывает тест.

Работа

Как идёт, по порядку.

01 Первый план

Что остаётся, что меняется

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

02 Контракты

Зафиксировать интерфейсы

Сначала стоят API, события и отчёты. Рой собирает под них. Новое ядро не может изобрести их потом.

03 Параллельная перестройка

Сначала самый высокий риск

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

04 Переключение

Выключить старое ядро

Трафик уходит по компонентам. Старый контур гасится, только когда ваша команда приняла файлы.

01 Проверки

То, что нельзя ломать, — это тест, не надежда.

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

Проверки

Что блокирует непройденная проверка

  1. 01 Релиз Сборка с ошибкой не выпускается. Даже на staging.
  2. 02 Прод Непройденная проверка безопасности или производительности в прод не идёт.
  3. 03 Переключение Без письменного, отрепетированного отката переключения нет.
Боевой трафик не переключают ради срока.
02 Риск

Вы не ведёте переписывание и потом не несёте каждый срыв.

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

Кто несёт

Риск поставки закреплён за одним человеком

  1. 01 Часы Много подрядчиков, много рук. Каждый срыв — ваш.
  2. 02 UNIT01 Один ответственный инженер отвечает за результат, пока вы не примете.
  3. 03 Прод Вы решаете, когда переключается трафик. Мы делаем так, чтобы вы могли это решить.
Переключать боевой трафик — ваше решение. Сделать это безопасно — наше.
03 Приёмка

Старое ядро остаётся, пока ваша команда не примет.

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

Приёмка

Что лежит в вашем репозитории до подписи

  1. 01 Тесты Написаны вместе с кодом. Работают в вашем конвейере.
  2. 02 Регламенты эксплуатации Как эксплуатировать. Кому звонить. Как откатить.
  3. 03 Риски У каждого открытого пункта есть ответственный. Ничего не всплывает потом.
Демонстрация — не приёмка. Файлы в вашем репозитории — да.

В первом плане

Что зафиксировано до старта.

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

Карта

Перестроить / обернуть / вывести

Решается по каждому компоненту в первом плане. Не обнаруживается на шестом месяце.

Проверки

Что должно продолжать работать

У названных сценариев есть критерии прохождения, прежде чем мы трогаем ядро. Это тесты, не список.

Изменения

Список намеренных изменений

Приёмка называет, что новое. Неучтённое изменение — дефект.

Ответственный инженер

Один человек по имени

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

Файлы

В вашем репозитории

Код, тесты, регламенты эксплуатации, мониторинг и открытые риски. Есть до приёмки.

IP

Код и бренд остаются у вас

Передаются в договоре. Мы не размещаем продукт и не оставляем его у себя.

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

Частые вопросы.

01

Почему это быстрее, чем если сделает наша команда?

У вашей команды есть основная работа. У роя — нет. Рой параллельно перестраивает компоненты и пишет их тесты, а ответственный инженер держит работу внутри интерфейсов, которые вы зафиксировали.

02

Это обновление интерфейса?

Только если риск в интерфейсе. Обычно он в сервисах и данных. Что именно — скажет первый план.

03

Вы сохраняете каждое поведение?

Сохраняем то, что вы называете, и подтверждаем тестами. Всё остальное — учтённое изменение, которое вы принимаете.

04

Можно ли оставить части старой системы?

Да. Обернуть и вывести — равноправные варианты, не провал.

05

А если прежний подрядчик остаётся?

Нормально, пока у результата один ответственный. На первой неделе скажем, если разделение небезопасное.

06

Когда эксплуатация принимает?

Когда принимает файлы в вашем репозитории. Не когда прошла выкладка.

Другие работы

Тот же способ работы, на другой системе.

Следующий шаг

Скажите, что должно заработать — и к какому сроку.

Вы получите первый план: что считается готовым — вашими словами, сколько стоит и к какому сроку. Решение за вами.