К содержимому

аудит системы

Аудит 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 дней от доступа до готового отчёта

Всё, что справа, - документы, которые остаются у вас, включая тот вариант, где рекомендация звучит как «оставьте систему в покое».

Как идёт работа

Два прохода по одной системе, машинный и человеческий, потом встреча, где с находками спорят.
  1. 01день 1

    Доступ и разговоры

    Доступ на чтение к репозиториям, инструкции по сборке, расписания заданий и по два-три часа с каждым, кто её поддерживает. Доступ, застрявший в юридическом отделе, - самая частая причина, по которой всё съезжает.

  2. 02дни 1–3

    Машинный проход

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

  3. 03дни 3–4

    Человеческий проход

    Инженер разбирает то, что машина пометила и чего не смогла прочитать, а потом сверяет находки с тем, что сказали ваши люди. Эти два рассказа с первого раза сходятся редко.

  4. 04дни 4–5

    Находки и план

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

Что делает платформа, что делает человек

Машина читает всё и не видит контекста. Разговоры дают контекст и пропускают половину кода. Отчёт получается, когда прошли оба.
Отчёт написан так, чтобы его первыми читали ваши инженеры. Если он работает только как документ для совета директоров, он провалился.
Что делает платформа, что делает человекКто делаетПримечания
Разбирает кодовую базу и строит графыПлатформаВсе языки в дереве, включая те два, о которых вы забыли.
Меряет мёртвый кодПлатформаСтатическая достижимость плюс продовые трассы или логи, если вы можете дать период.
РазговорыИнженерТо, что никогда не записывали, существует только в разговоре и уходит вместе с людьми.
Ранжирует рискиВместеПлатформа находит острые углы. Чтобы их ранжировать, надо знать, какая система стоит вам денег в пятницу.
Оценивает фазыИнженерПо измеренным размерам модулей и связности, диапазонами, с выписанными рядом допущениями.
РекомендацияИнженерВключая «оставьте это в покое и почините процесс релизов», когда факты говорят именно это.

Кто читает ваш код

Инженеры, у которых за плечами больше десяти лет legacy-систем и десятки миграций, плюс платформа, которая разбирает COBOL, RPG, VB6, Delphi, ColdFusion, PHP, Perl, PL/SQL, Java, C#, Fortran, ABAP и горсть диалектов, живущих внутри одной-единственной компании. Вдвоём они почти ничего в дереве исходников не видят впервые.


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

Вопросы, которые задают инженеры

Нам обязательно нанимать вас потом?
Нет, и план написан так, чтобы его могла выполнить ваша команда или другой подрядчик. Фазы описаны модулями и интерфейсами, а не нашим инструментарием, и только так вы вообще сможете сравнивать предложения.
Сколько доступа вам реально нужно?
Доступ на чтение к репозиториям и инструкции, как это собирается. Если добавите расписания заданий и период продовых логов, мёртвый код перестанет быть оценкой и станет измерением.
А что с частями, к которым нет исходников?
Они так и попадают в список: бинарник без исходников, его интерфейсы и то, во что обойдётся воспроизвести или заменить его. Как раз из-за пропуска таких кусков миграции пробивают бюджет на самом финише.
Сколько это идёт для большой системы?
Три-пять дней покрывают большую часть того, что мы видим. Выше примерно двух миллионов строк или при более чем нескольких языках в дереве мы делим работу и оцениваем первую часть отдельно.
Вы подпишете NDA, прежде чем мы что-то пришлём?
Да, до доступа, обычной процедурой. Большая часть нашей работы так и начинается.

Попросите карту своей системы

Расскажите, что за система, примерно какого размера и что подняло этот вопрос сейчас. Ответим объёмом на систему такого размера, сроком и ценой.

Получить оценку

Отвечает инженер, и в первом письме обычно три вопроса про доступ.