В наши дни возраст многих информационных систем достигает нескольких десятков лет. Если за это время применяемые технологии и процессы разработки не эволюционировали, а уровень технического долга должным образом не контролировался, то дальнейшее развитие таких систем сильно затруднено, а стоимость внесения изменений чрезмерно высока. Не минует эта учесть и государственные системы, с одной из которых нашей команде и пришлось столкнуться. Нам было поручено дальнейшее развитие системы, автоматизирующей предоставление услуг населению в режиме 24х7. Разработка системы более 15 лет велась различными подрядчиками, качество работ в последние годы значительно ухудшилось, участились срывы сроков. Нам требовалось вывести процесс разработки на новый уровень и выполнить контрактные обязательства по развитию функционала! В докладе речь пойдет о том, как мы успешно прошли этот путь, применяя современные процессные и инженерные Agile практики: как провели аудит системы, какие риски учли, а какие нет, какие практики применили, какой порядок работ выработали. Материалы доклада можно рассматривать как практические советы.
2. О нас
Сергей Смирнов
к.т.н., начальник сектора разработки
Виталий Александров
главный разработчик
СПб ГУП «Санкт-Петербургский
информационно-аналитический центр»
sergey.smirnov.1829
serge.smir@gmail.com vetall87@gmail.com
4. Наша история
Предоставление «важных» гос. услуг населению
Непрерывное межведомственное взаимодействие
Более 25 объектов внедрения
Более 15 лет развития разными подрядчиками
Срывы сроков исполнения работ
Низкое качество
«Затяжные» релизы
Последние 5 лет
10. Ход аудита
• Функции
• Программная реализация
• Внешняя интеграция
• Инфраструктура
• Мониторинг
11. Ход аудита
• Функции
• Программная реализация
• Внешняя интеграция
• Инфраструктура
• Мониторинг
• Исходные коды
12. Ход аудита
• Функции
• Программная реализация
• Внешняя интеграция
• Инфраструктура
• Мониторинг
• Исходные коды
• Багаж проблем
Баги
Заявки
Долги
13. Ход аудита
• Функции
• Программная реализация
• Внешняя интеграция
• Инфраструктура
• Мониторинг
• Исходные коды
• Багаж проблем
• Устоявшаяся культура
14. Приступая к работе
• Огромный технический долг
• Незапланированные задачи
• Нехватка ресурсов
Срыв сроков
• Критические ошибки до релиза
• Регрессионные ошибки после релиза
Завал рабочей системы
РискиКак разгрести и
не вляпаться?
15. Ход работы
• Создание стенда разработки
Закрытый контур
Промышленный стенд
Предрелизовый стенд
Клонирование
(physical to virtual)
Деперсонализация
Контур разработки
Копирование
Стенд разработки
16. Ход работы
• Создание стенда разработки
• Изучение системы
Функциональная структура
Программная структура
Модель данных
Ведение базы знаний
Обмен знаниями в команде
Описание нештатных ситуаций
17. Ход работы
Стенды разработки и тестирования
Система контроля версий
Управление миграциями БД
Управление конфигурациями
Автоматизация развертывания
Релиз дельты изменений
Настройка мониторинга
• Создание стенда разработки
• Изучение системы
• Внедрение инженерных практик
18. Ход работы
• Создание стенда разработки
• Изучение системы
• Внедрение инженерных практик
• Применение паттернов
работы с legacy кодом
23. Ход работы
• Создание стенда разработки
• Изучение системы
• Внедрение инженерных практик
• Применение паттернов
работы с legacy кодом
• Поиск разработчиков
• Изменение культуры
>30 чел. 2 чел. 1 чел.
Задание Успех
24. Ход работы
• Создание стенда разработки
• Изучение системы
• Внедрение инженерных практик
• Применение паттернов
работы с legacy
• Поиск разработчиков
• Изменение культуры
Итерационная инкрементальная разработка
Тесное командное взаимодействие
с заказчиком
25. Итоговый результат
Работы в срок
8 мажорных релизов за 4 мес.
Развертывание одной кнопкой
Отсутствие сбоев после релизов
Доверие заказчика
Качественный результат
Срывы сроков
Новый релиз 1 раз в год
Хаотичное развертывание
Непредсказуемый регресс
Отсутствие веры у заказчика
Неудовлетворенные потребности
26. Заключение
Нет безнадежных больных.
Есть только безнадежные врачи.
Авице́нна (980 — 1037гг.)
Борьба со следствием
• Командная работа с заказчиком
• Минимизация избыточной работы
• Управление техническим долгом
• Применение инженерных практик
Устранение причины
• Легализация применения гибких
подходов в государственных проектах
• Требования к применению инженерных
практик в техническом задании
27. Спасибо за внимание!
Сергей Смирнов
Виталий Александров
sergey.smirnov.1829
serge.smir@gmail.com
vetall87@gmail.com
http://gosagile.ru