Старые программы на .NET и Windows
Сначала исправить. Заменять, только если это оправдано.
Если от старой программы для Windows по-прежнему зависит важная часть вашего бизнеса, вариантов больше, чем «не трогать» или «переписать всё с нуля». Я поддерживаю, исправляю и постепенно модернизирую программы на .NET, а компания всё это время продолжает ими пользоваться.
Что я делаю
Восстанавливаю сборку
Воспроизводимая сборка на чистом компьютере, код в системе контроля версий, зависимости найдены и зафиксированы.
Устраняю самые острые проблемы
Сбои, ошибки в данных, медленная работа и неработающие интеграции, в порядке важности для бизнеса.
Делаю изменения безопасными
Прежде чем что-либо менять, пишу тесты, которые фиксируют текущее поведение рискованных участков кода.
Дорабатываю
Новые функции, отчёты или интеграции, когда основа стабильна.
Модернизирую поэтапно
Например, по частям перевожу программу с .NET Framework на актуальный .NET, а компания всё это время продолжает ею пользоваться.
Исправлять, дорабатывать или заменять? Как я принимаю решение
| Что я вижу | Что я обычно предлагаю |
|---|---|
| Основная логика работает, и люди к ней привыкли | Исправить ошибки и стабилизировать |
| Нужны новые функции, а основа стабильна | Доработать то, что есть |
| Программа зависит от технологий, которые уже нельзя безопасно запускать или защищать | Поэтапно перенести на современную платформу |
| Бизнес изменился так, что программа за ним не успевает | Рассмотреть замену, но сначала описать, что на самом деле делает текущая программа |
Иногда замена оправдана. Но начинать с неё стоит редко.
Как я работаю со старым кодом
Сборка
Воспроизводимая сборка и код, с которым можно безопасно работать.
Анализ
Карта зависимостей и описание ключевых сценариев.
Тесты
Тесты текущего поведения там, где планируются изменения.
Исправление
Сначала самые острые проблемы, согласованными этапами.
Модернизация
Постепенно и только там, где это окупается.
Вопросы по теме
Наша программа написана не на .NET. Вы сможете помочь?
Я специализируюсь на .NET, настольных приложениях для Windows и VBA. Если у вас другая технология, всё равно опишите ситуацию, и я честно скажу, смогу ли помочь.
У нас нет исходного кода. Можно что-то сделать?
Возможно. Всё зависит от ситуации и от ваших прав на программу. Укажите это в первом сообщении, так как от этого зависит подход к работе.
Вы перепишете всё на новом фреймворке?
Только если это действительно лучший вариант. Переход на актуальный .NET обычно проходит постепенно, а некоторые программы пока разумнее просто стабилизировать на текущей платформе.
Можно ли пользоваться программой, пока вы с ней работаете?
Да, обычно так и происходит. Я вношу и проверяю изменения отдельно, а внедряем мы их согласованными этапами.