К предложению

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

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

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

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

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

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

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

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

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

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

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

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

человеко-месяцы
   13 |####  первая услуга: обследование, сборка, настройка места, обучение
    7 |####  услуга нового ведомства
    4 |####  услуга с новым видом сведений
  1,2 |####  услуга того же ведомства
      +---------------------------------------------------------------

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

0,10%платформы стоит одна услуга на готовой платформе
49услуг укладывается в пять процентов стоимости платформы
6человеко-месяцев стоит подключение ведомства — отдельная статья, в эти проценты не входит

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

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

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

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

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

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

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

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

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

Дальше

Дорожная карта программы → Предложение целиком →

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