Международна компания от морския транспорт · пазарни данни и договори

От система с интерфейс от 2011 г. до нов продукт за 9 седмици

Вътрешна система за пазарни данни от 237 000 реда код, с интерфейсни компоненти отпреди 14 години, пренаписана като нов продукт. Анализът преди кода доказа, че 65% от старата система е мъртва — клиентът плати само за живото.

  • 9 седмици до нов продукт
  • 65% от обхвата отрязан след анализ
  • 237 000 реда наследен код анализирани

Клиентът

Международна компания от морския транспорт, чиято ежедневна работа зависи от вътрешна система за пазарни данни и договори — въвеждане, справки, Excel обмен, PDF отчети и автоматични имейл отчети за ръководството и партньорите.

Предизвикателството

Системата беше на повече от десетилетие: 237 000 реда код, интерфейс върху компоненти от 2011 г., неподдържани от години, и база от 119 таблици, натрупала пластове от отдавна забравени функционалности. Лицензите бяха стари, хостингът — обвързан с остаряла инфраструктура, а всяка промяна изискваше археология.

Класическият рефлекс би бил „да пренапишем всичко едно към едно". Точно това не направихме.

Подходът

Пълно разузнаване преди оферта. Разглобихме старата система и — по-важното — живата ѝ база данни. Откритията говорят сами: около 35% от базата беше невидима от кода — скрит тригер, мъртви процедури, неизползвани от 2016 г., 19 изгледа, които никой не чете, таблици без нито един ред код към тях.

Режем, преди да строим. Резултатът от анализа беше разговор с клиента по списък: кое от това реално ползвате? Оказа се — около една трета. 65% от системата беше отрязана по взаимно съгласие още преди първия ред нов код. Клиентът не плати за пренасяне на мъртвото.

Проверка на съответствието, не на усещането. Реални данни от старата система бяха импортирани за сравнение ред по ред, а независим одит съпостави новото със старото функция по функция — потвърдените разлики влязоха в план, а не в изненади след пускането. Две междинни версии минаха през обратна връзка от реалните потребители.

Модерна основа без стари окови. Новата система е на .NET 10 със свободни (безлицензионни) интерфейсни компоненти, автоматични фонови задачи, PDF и Excel отчети и одитна следа на всяко действие. Старата система продължи да работи необезпокоявана по време на целия преход.

Резултатът

  • Нов, отделно брандиран продукт за около 9 седмици — включително два кръга клиентска обратна връзка и финално втвърдяване.
  • Клиентът плати за ~35% от старата система — живата част; останалото беше доказано мъртво и остана в миналото.
  • Без лицензионни такси за интерфейсни компоненти; съвременен вид, който потребителите получиха без загуба на навици.
  • Документиран анализ, който остава у клиента — картата на системата вече съществува и следващата промяна не започва с археология.

Най-ценният ред код често е ненаписаният: една трета от цената на проекта беше спестена, защото първо доказахме кое е мъртво.

Технологии

.NET 10 · ASP.NET Core MVC · EF Core 9 · MariaDB · Quartz.NET