В настоящее время я работаю в небольшой компании, у которой мало технически сложных продуктов. Я единственный разработчик для одного из них. Около года назад я получил устаревшую версию продукта и начал «поддерживать» ее.
Клиент говорит только о новой функции, бизнес-ценности и других подобных вещах. Проблема в том, что, хотя код написан на C #, он довольно процедурный. Абстракций нет, классы используются только там, где они нужны Visual Studio - например, Forms. Реализации этих классов действительно ужасны, и код действительно трудно поддерживать.
Все эти годы я трачу свое время на рефакторинг. В последней версии есть красивые абстракции и тому подобное. Мне пришлось переопределить несколько компонентов с нуля, и я действительно чувствую, что добавить новую функцию или изменить поведение этих компонентов НАМНОГО проще, чем другим.
Проблема в том, что я провожу свое время. Мне очень нравятся результаты, но я не люблю работать по 12 часов в день. Вы когда-нибудь были в подобной ситуации? Что я должен попробовать? Я уже пытался обсудить это, но все еще безуспешно.
Я просто боюсь того момента, когда мы решим реализовать новую функцию, которая требует много изменений в унаследованном коде. Это может быть шокирующим для покупателя: зачем вам 8 часов на смену этих значков? Заказчику просто все равно, что в коде есть 500 мест, которые мне нужно изменить. И я должен сначала найти все эти 500 мест.
Есть идеи?