Умные люди уже написали всё, что хотел написать я, но вставлю свои пять копеек, уж извините.
Я очень хорошо знаком с этой болью. И раньше тоже(на прошлых местах работы) неоднократно заводил разговор о том, что нужно всё переписывать. Молодо - зелено.
Бизнесу действительно не выгодно тратить любого вида ресурсы(время, деньги) на переписывание с нуля.
Здесь бизнес следует правилу, которое мы - разработчики периодически забываем "работает - не трогай".
Другое дело, что мы, в отличие от бизнеса, понимаем, что ещё немного и кодовую базу будет невозможно поддерживать.
И хочется бросить это всё и переписать, или просто бросить и уйти туда, где трава зеленее, код чище(идеален), где можно будет использовать любые фреймворки, библиотеки, инструменты, которые на данный момент кажутся вам самыми клёвыми. Однако этого не бывает практически никогда.
Теперь о позитивном.
Переработка кода - отличный опыт. Я бы даже сказал, что он ценнее, чем разработка на Angular 100500 версии, которую вы хотите использовать больше для того, чтобы сказать "теперь я умею angular(подставь своё) 100500 версии".
Вам придётся быть ещё более внимательным чем обычно, так как обновлять код нужно осторожно, чтобы ничего не сломать. Ещё более вдумчивым, ещё более внимательными, ещё более *, так как читать/понимать/править чей-то код - великий труд. К слову, это может показаться бредом, но вы вполне можете изучить что-то новое для себя пока будете рефакторить.
И да - рефакторить нужно частями. И чем части эти будут меньше, тем лучше.
Поэтому рекомендую взять самый адовый на ваш взгляд модуль/кусок/файл с кодом и разбить на логические части его работу. Затем осознать, что нужно разбить ещё.. ещё.. и ещё... Словом, декомпозируйте до тех пор, пока не поймёте, что дальше декомпозировать некуда.
В итоге вы обнаружите огромный список задач. С этим списком уже можно работать. Для начала необходимо оценить его в человеко-часах. Дальше можно показать его руководителю, показать временные оценки, а самое главное - объяснить, на кой чёрт нужно тратить столько времени на эти задачи, вместо того, чтобы запилить новую фичу.
А тратить это время нужно по той простой причине, которую мы преследуем изначально - ради чистоты, понятности, поддерживаемости кода. И.. да - если рефакторите js, то делайте это через TDD, это должно облегчить вам задачу (хотя вначале будет казаться иначе).
Моя коллега с первой работы сейчас занимается одним интернет-магазином. Мне невероятно нравится читать её сообщения о том, что она выпиливает css код тысячами строк. Даже не представляю, насколько приятно ей смотреть на результат своей работы.
Может показаться, что предложенный подход(рефакторинг) - полный бред и безумие, но это не так.
Удачи вам.