Оздоровление
унаследованной
информационной
системы
Сергей Смирнов,
Виталий Александров
СПб ГУП «Санкт-Петербургский
информационно-аналитический центр»
О нас
Сергей Смирнов
к.т.н., начальник сектора разработки
Виталий Александров
главный разработчик
СПб ГУП «Санкт-Петербургский
информационно-аналитический центр»
sergey.smirnov.1829
serge.smir@gmail.com vetall87@gmail.com
Унаследованные системы
Как
провести
аудит?
Какие
риски
учесть?
Как
работать?
Наша история
Предоставление «важных» гос. услуг населению
Непрерывное межведомственное взаимодействие
Более 25 объектов внедрения
Более 15 лет развития разными подрядчиками
Срывы сроков исполнения работ
Низкое качество
«Затяжные» релизы
Последние 5 лет
Аудит
Системная документация
Куратор у заказчика
IT-отдел заказчика
Источники информации
Ход аудита
• Функции Автоматизация БП
Учет данных
Отчетность
Внешнее
взаимодействие
Обработка персональных данных
Ход аудита
• Функции
• Программная реализация
> 400 формПриложение
(Oracle Forms)
Бизнес-логика в БД
> 3000 объектов
> 300 000 строк PL/SQL
Веб сервисы Веб сервисы
Ход аудита
• Функции
• Программная реализация
• Внешняя интеграция
Форматы не
описаныРегламенты
отсутствуют
Как не
падает?
Ход аудита
• Функции
• Программная реализация
• Внешняя интеграция
• Инфраструктура
Ход аудита
• Функции
• Программная реализация
• Внешняя интеграция
• Инфраструктура
• Мониторинг
Ход аудита
• Функции
• Программная реализация
• Внешняя интеграция
• Инфраструктура
• Мониторинг
• Исходные коды
Ход аудита
• Функции
• Программная реализация
• Внешняя интеграция
• Инфраструктура
• Мониторинг
• Исходные коды
• Багаж проблем
Баги
Заявки
Долги
Ход аудита
• Функции
• Программная реализация
• Внешняя интеграция
• Инфраструктура
• Мониторинг
• Исходные коды
• Багаж проблем
• Устоявшаяся культура
Приступая к работе
• Огромный технический долг
• Незапланированные задачи
• Нехватка ресурсов
Срыв сроков
• Критические ошибки до релиза
• Регрессионные ошибки после релиза
Завал рабочей системы
РискиКак разгрести и
не вляпаться?
Ход работы
• Создание стенда разработки
Закрытый контур
Промышленный стенд
Предрелизовый стенд
Клонирование
(physical to virtual)
Деперсонализация
Контур разработки
Копирование
Стенд разработки
Ход работы
• Создание стенда разработки
• Изучение системы
Функциональная структура
Программная структура
Модель данных
Ведение базы знаний
Обмен знаниями в команде
Описание нештатных ситуаций
Ход работы
Стенды разработки и тестирования
Система контроля версий
Управление миграциями БД
Управление конфигурациями
Автоматизация развертывания
Релиз дельты изменений
Настройка мониторинга
• Создание стенда разработки
• Изучение системы
• Внедрение инженерных практик
Ход работы
• Создание стенда разработки
• Изучение системы
• Внедрение инженерных практик
• Применение паттернов
работы с legacy кодом
→ Адаптер
Внешняя система
Веб сервис
БД
Наша система
→ Адаптер
Внешняя система
Веб сервис
БД
Наша система
Адаптер
Трансформация запроса
в старый формат
Трансформация ответа
в новый формат
→ Переписывание по модулям
Запрос данных в
старом формате
Запрос данных в
новом формате
→ Метод шва
Ход работы
• Создание стенда разработки
• Изучение системы
• Внедрение инженерных практик
• Применение паттернов
работы с legacy кодом
• Поиск разработчиков
• Изменение культуры
>30 чел. 2 чел. 1 чел.
Задание Успех
Ход работы
• Создание стенда разработки
• Изучение системы
• Внедрение инженерных практик
• Применение паттернов
работы с legacy
• Поиск разработчиков
• Изменение культуры
Итерационная инкрементальная разработка
Тесное командное взаимодействие
с заказчиком
Итоговый результат
Работы в срок
8 мажорных релизов за 4 мес.
Развертывание одной кнопкой
Отсутствие сбоев после релизов
Доверие заказчика
Качественный результат
Срывы сроков
Новый релиз 1 раз в год
Хаотичное развертывание
Непредсказуемый регресс
Отсутствие веры у заказчика
Неудовлетворенные потребности
Заключение
Нет безнадежных больных.
Есть только безнадежные врачи.
Авице́нна (980 — 1037гг.)
Борьба со следствием
• Командная работа с заказчиком
• Минимизация избыточной работы
• Управление техническим долгом
• Применение инженерных практик
Устранение причины
• Легализация применения гибких
подходов в государственных проектах
• Требования к применению инженерных
практик в техническом задании
Спасибо за внимание!
Сергей Смирнов
Виталий Александров
sergey.smirnov.1829
serge.smir@gmail.com
vetall87@gmail.com
http://gosagile.ru

Сергей Смирнов, Виталий Александров. Оздоровление унаследованной информационной системы

  • 1.
    Оздоровление унаследованной информационной системы Сергей Смирнов, Виталий Александров СПбГУП «Санкт-Петербургский информационно-аналитический центр»
  • 2.
    О нас Сергей Смирнов к.т.н.,начальник сектора разработки Виталий Александров главный разработчик СПб ГУП «Санкт-Петербургский информационно-аналитический центр» sergey.smirnov.1829 serge.smir@gmail.com vetall87@gmail.com
  • 3.
  • 4.
    Наша история Предоставление «важных»гос. услуг населению Непрерывное межведомственное взаимодействие Более 25 объектов внедрения Более 15 лет развития разными подрядчиками Срывы сроков исполнения работ Низкое качество «Затяжные» релизы Последние 5 лет
  • 5.
    Аудит Системная документация Куратор узаказчика IT-отдел заказчика Источники информации
  • 6.
    Ход аудита • ФункцииАвтоматизация БП Учет данных Отчетность Внешнее взаимодействие Обработка персональных данных
  • 7.
    Ход аудита • Функции •Программная реализация > 400 формПриложение (Oracle Forms) Бизнес-логика в БД > 3000 объектов > 300 000 строк PL/SQL Веб сервисы Веб сервисы
  • 8.
    Ход аудита • Функции •Программная реализация • Внешняя интеграция Форматы не описаныРегламенты отсутствуют Как не падает?
  • 9.
    Ход аудита • Функции •Программная реализация • Внешняя интеграция • Инфраструктура
  • 10.
    Ход аудита • Функции •Программная реализация • Внешняя интеграция • Инфраструктура • Мониторинг
  • 11.
    Ход аудита • Функции •Программная реализация • Внешняя интеграция • Инфраструктура • Мониторинг • Исходные коды
  • 12.
    Ход аудита • Функции •Программная реализация • Внешняя интеграция • Инфраструктура • Мониторинг • Исходные коды • Багаж проблем Баги Заявки Долги
  • 13.
    Ход аудита • Функции •Программная реализация • Внешняя интеграция • Инфраструктура • Мониторинг • Исходные коды • Багаж проблем • Устоявшаяся культура
  • 14.
    Приступая к работе •Огромный технический долг • Незапланированные задачи • Нехватка ресурсов Срыв сроков • Критические ошибки до релиза • Регрессионные ошибки после релиза Завал рабочей системы РискиКак разгрести и не вляпаться?
  • 15.
    Ход работы • Созданиестенда разработки Закрытый контур Промышленный стенд Предрелизовый стенд Клонирование (physical to virtual) Деперсонализация Контур разработки Копирование Стенд разработки
  • 16.
    Ход работы • Созданиестенда разработки • Изучение системы Функциональная структура Программная структура Модель данных Ведение базы знаний Обмен знаниями в команде Описание нештатных ситуаций
  • 17.
    Ход работы Стенды разработкии тестирования Система контроля версий Управление миграциями БД Управление конфигурациями Автоматизация развертывания Релиз дельты изменений Настройка мониторинга • Создание стенда разработки • Изучение системы • Внедрение инженерных практик
  • 18.
    Ход работы • Созданиестенда разработки • Изучение системы • Внедрение инженерных практик • Применение паттернов работы с legacy кодом
  • 19.
    → Адаптер Внешняя система Вебсервис БД Наша система
  • 20.
    → Адаптер Внешняя система Вебсервис БД Наша система Адаптер Трансформация запроса в старый формат Трансформация ответа в новый формат
  • 21.
    → Переписывание помодулям Запрос данных в старом формате Запрос данных в новом формате
  • 22.
  • 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