Инженерный подход

Страница описывает, как устроена работа и чем проверяется её качество. Она не заменяет предложение, а отвечает на вопрос, который обычно задают инженеры заказчика: чем это отличается от презентации.

Что такое платформа

Платформа — это то, что не знает ни об одной конкретной услуге.

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

ПлатформаНе платформа
Механизм проверки поляПравило «дата рождения не позже даты регистрации»
Механизм межведомственного запросаЗапрос свидетельства о рождении
Движок маршрута с приостановкой срокаМаршрут конкретной услуги
Шаблонизатор с машиночитаемым кодомТекст бланка

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

Это не проектное предположение

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

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

Почему следующая услуга дешевле

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

относительная стоимость услуги

  ██████████████████████████████████  первая услуга: обследование, сборка, место, обучение
  ███████████████████  услуга нового ведомства
  ██████████  услуга с новым видом сведений
  ███  услуга того же ведомства
  ────────────────────────────────────

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

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

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

Чем проверяется проработка

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

требование → юзкейс → компонент → план → смета


каждое требование имеет основание и проверяемое условие приёмки
каждое требование покрыто хотя бы одним юзкейсом, связь двусторонняя
каждое требование закреплено за компонентом — иначе реализовывать некому
каждое требование имеет план работ с зависимостями и риском
трудозатраты планов сходятся с карточками компонентов
карточки компонентов сходятся с расчётной моделью
123требования, у каждого основание и приёмка
56юзкейсов с альтернативами
27компонентов с разбором поведения при отказе
123плана реализации

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

Правило собственности

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

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

Дальше

Предложение целиком →

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