аудит системы
Аудит legacy-кода: карта системы, риски и план с ценами
Доступ на чтение к репозиторию, несколько часов с теми, кто её ещё помнит, и наша платформа по всей кодовой базе, на чём бы она ни была написана: COBOL, RPG, VB6, Delphi, ColdFusion, PHP, Perl, PL/SQL, Java, C#. Обратно приходят карта модулей, измеренный список мёртвого кода, ранжированный реестр рисков и план по фазам с ценами. Три-пять дней, и документ остаётся у вас, будете вы что-то переписывать или нет.
3–5 дней от доступа до готового отчёта
Всё, что справа, - документы, которые остаются у вас, включая тот вариант, где рекомендация звучит как «оставьте систему в покое».
Неизвестность
Дерево исходников неизвестного размера, задания без документации, тестов нет.
- source treeunknown size
- nobody left who wrote itrisk
- undocumented jobscron · JCL
- no testscoverage 0
Карта
Карта модулей, измеренный мёртвый код, ранжированные риски, план с фазами и ценами.
- module mapgraph
- dead code listmeasured
- risk registerranked
- migration planphased · costed
3–5 дней от доступа до готового отчёта
Как идёт работа
- 01день 1
Доступ и разговоры
Доступ на чтение к репозиториям, инструкции по сборке, расписания заданий и по два-три часа с каждым, кто её поддерживает. Доступ, застрявший в юридическом отделе, - самая частая причина, по которой всё съезжает.
- 02дни 1–3
Машинный проход
Платформа разбирает всё: граф вызовов, границы модулей, внешние интерфейсы, работу с базой, достижимость. Размер редко бывает проблемой. Проблемой бывает модуль на диалекте, который никто не поддерживает.
- 03дни 3–4
Человеческий проход
Инженер разбирает то, что машина пометила и чего не смогла прочитать, а потом сверяет находки с тем, что сказали ваши люди. Эти два рассказа с первого раза сходятся редко.
- 04дни 4–5
Находки и план
Письменный отчёт и рабочая сессия: что мертво, что опасно, во что обойдётся переписывание по фазам и что мы сделали бы первым, будь это наша система.
Что делает платформа, что делает человек
| Что делает платформа, что делает человек | Кто делает | Примечания |
|---|---|---|
| Разбирает кодовую базу и строит графы | Платформа | Все языки в дереве, включая те два, о которых вы забыли. |
| Меряет мёртвый код | Платформа | Статическая достижимость плюс продовые трассы или логи, если вы можете дать период. |
| Разговоры | Инженер | То, что никогда не записывали, существует только в разговоре и уходит вместе с людьми. |
| Ранжирует риски | Вместе | Платформа находит острые углы. Чтобы их ранжировать, надо знать, какая система стоит вам денег в пятницу. |
| Оценивает фазы | Инженер | По измеренным размерам модулей и связности, диапазонами, с выписанными рядом допущениями. |
| Рекомендация | Инженер | Включая «оставьте это в покое и почините процесс релизов», когда факты говорят именно это. |
Кто читает ваш код
Инженеры, у которых за плечами больше десяти лет legacy-систем и десятки миграций, плюс платформа, которая разбирает COBOL, RPG, VB6, Delphi, ColdFusion, PHP, Perl, PL/SQL, Java, C#, Fortran, ABAP и горсть диалектов, живущих внутри одной-единственной компании. Вдвоём они почти ничего в дереве исходников не видят впервые.
Аудит - ограниченная работа по фиксированной цене, и документ в любом случае остаётся у вас. Узнать в последние дни переписывания то, что сказал бы пятидневный аудит, стоит заметно дороже.
Вопросы, которые задают инженеры
- Нам обязательно нанимать вас потом?
- Нет, и план написан так, чтобы его могла выполнить ваша команда или другой подрядчик. Фазы описаны модулями и интерфейсами, а не нашим инструментарием, и только так вы вообще сможете сравнивать предложения.
- Сколько доступа вам реально нужно?
- Доступ на чтение к репозиториям и инструкции, как это собирается. Если добавите расписания заданий и период продовых логов, мёртвый код перестанет быть оценкой и станет измерением.
- А что с частями, к которым нет исходников?
- Они так и попадают в список: бинарник без исходников, его интерфейсы и то, во что обойдётся воспроизвести или заменить его. Как раз из-за пропуска таких кусков миграции пробивают бюджет на самом финише.
- Сколько это идёт для большой системы?
- Три-пять дней покрывают большую часть того, что мы видим. Выше примерно двух миллионов строк или при более чем нескольких языках в дереве мы делим работу и оцениваем первую часть отдельно.
- Вы подпишете NDA, прежде чем мы что-то пришлём?
- Да, до доступа, обычной процедурой. Большая часть нашей работы так и начинается.
Попросите карту своей системы
Расскажите, что за система, примерно какого размера и что подняло этот вопрос сейчас. Ответим объёмом на систему такого размера, сроком и ценой.
Отвечает инженер, и в первом письме обычно три вопроса про доступ.