Для начала нужно убедиться, что код действительно плох: не исключено, что он сложен для понимания из-за специфики предметной области. Например, код DSP-контроллера чрезвычайно сложно читать без релевантного опыта. Для верности стоит посоветоваться с коллегами, более осведомленными в данном вопросе.
Если код действительно плохого качества, важно понять, можно ли закрыть на него глаза. Толерантность к чужому коду — важный скилл. Если нельзя, стоит определить:
— Какова трудоемкость переписывания кода (оценка трудоемкости — это сложно, есть риск просчитаться на целые месяцы);
— Хорошо ли ты понимаешь код, который планируешь переписать;
— А сможешь ли ты написать более качественный код;
— Если проблемный код не покрыт тестами (а так, скорее всего, и будет), то есть риск, что новый код создаст регрессию в проекте. Готов ли ты взять на себя ответственность за результат?
На заметку: переписанный код в лучшем случае будет оценен по достоинству вашими коллегами, но не начальством. Другими словами, премию и прочие плюшки за это не жди.
Если все же остается желание переписать код, могу дать несколько советов:
— Максимально декомпозируй код — чем меньше кусок переписываемого кода, тем лучше.
— Используй методы рефакторинга, покрой код тестами, если их нет.
— Не трать много времени на переписывание, оно не должно мешать основной работе.