Страница описывает, как устроена работа и чем проверяется её качество. Она не заменяет предложение, а отвечает на вопрос, который обычно задают инженеры заказчика: чем это отличается от презентации.
Платформа — это то, что не знает ни об одной конкретной услуге.
Определение не описательное, а проверяемое. Тест применим к любой строке кода: если при добавлении новой услуги её нужно изменить — код не платформенный.
| Платформа | Не платформа |
|---|---|
| Механизм проверки поля | Правило «дата рождения не позже даты регистрации» |
| Механизм межведомственного запроса | Запрос свидетельства о рождении |
| Движок маршрута с приостановкой срока | Маршрут конкретной услуги |
| Шаблонизатор с машиночитаемым кодом | Текст бланка |
Услуга при этом не является программой. Услуга — запись данных: форма, правила, маршрут, статусы, сроки, запросы сведений, начисления, шаблоны, уведомления, требуемый уровень доступа. Платформа её интерпретирует. Отсюда следует то, ради чего всё затевается: выпуск услуги не является выпуском версии платформы.
Модель воспроизводит устройство действующей системы государственных услуг, которую строили участники нашей команды. Там услуга — набор настроек блоков, хранимый машиночитаемой спецификацией в отдельном репозитории, а не программа в коде платформы.
Для оценки риска различие существенное. Мы не проверяем гипотезу на заказчике: подход отработан на системе национального масштаба, и нам известно не только то, что он работает, но и где он даёт сбои. Все известные сбои вынесены в риски и сопровождены мерами.
Из четырнадцати элементов, которые нужны первой услуге, при следующей кодируется ноль. Работой остаётся описание, сборка и — если ведомство новое — его подключение.
относительная стоимость услуги ██████████████████████████████████ первая услуга: обследование, сборка, место, обучение ███████████████████ услуга нового ведомства ██████████ услуга с новым видом сведений ███ услуга того же ведомства ────────────────────────────────────
Кривая падает не потому, что мы становимся опытнее, а потому что подключение ведомства — разовая работа, а услуги того же ведомства переиспользуют её целиком. Отсюда правило планирования: волна формируется по ведомствам, а не по популярности услуг. Пять услуг одного ведомства дешевле пяти услуг из пяти ведомств примерно вчетверо.
Третья карточка важна не меньше первых двух. Подключение ведомства — отдельная работа, сопоставимая по величине со всеми услугами этого ведомства вместе взятыми. Об этом мы говорим сразу: заказчик, узнавший об этом позже, был бы прав, посчитав себя введённым в заблуждение.
Проработка сцеплена в одну цепочку, и связность проверяется программой, а не вычиткой. Разрыв в любом звене останавливает проверку.
Первый прогон проверки нашёл восемь разрывов. Они разобраны по существу, а не подгонкой чисел: под нефункциональные требования заведён юзкейс испытаний с протоколом, план выхода и лицензионная чистота отнесены к приёмке релиза, лишняя ссылка снята. Расчётная модель после этого не изменилась — она и не должна была: проверка ловит расхождения, а не переписывает их.
Исходный код, документация и процедуры развёртывания передаются с каждым релизом, а не по завершении программы. Передача — условие закрытия приёмки: не подтверждена, значит релиз не принят.
Проверка простая и буквальная: сотрудники заказчика разворачивают среду с нуля по документации без нашего участия. Платформа, которую умеем разворачивать только мы, остаётся нашей при любом оформлении прав.
Полные каталоги требований, юзкейсов, архитектуры и планов реализации передаются отдельным досье по запросу.