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