Кинули на новый проект – переписывать или нет

  • Подписчик:
    Меня неделю назад кинули на проект, где я единственный iOS-ник. Приложение было написано давно, дописывалось в разное время разными командами, поэтому сейчас там винегрет из кода.

    Передо мной поставили задачу как по добавлению новых фич, так и по рефакторингу приложения. Планируют приложение развивать и улучшать еще довольно долго.

    Архитектуры, как таковой нет. Документации по коду нет, комментариев тоже, тестов нет. Код-стайла нет от слова совсем. Есть аналитика, есть бэк. Сроки мои на проекте ограничены 4-мя месяцами (вроде как).

    Вопрос на миллион: стоит ли переписывать всё приложение на условный вайпер или мввм? Нужно ли писать тесты, чтобы всё не поломать при рефакторинге? Еще есть вариант отказаться от проекта и бежать как можно дальше, но он не рассматривается.
Переписывать не стоит, потому что сроки прибывания на проекте маленькие - 4 месяца. Если проект заказной, на нём ещё много раз сменится команда, и каждый новый разработчик будет браковать предыдущие решения и писать новое. Как говорит мой хороший друг - инвестиция в говно.
Лучше сделать косметический рефакторинг, изменять только то, что невероятно мешает. Смена архитектуры - огромная работа, поэтому есть шанс просчитаться в сроках - я попадал в эту ловушку неоднократно. Менеджер проекта будет не рад такому раскладу) А ещё можно самому сгореть в процессе.
Тесты имеет смысл написать, но только на самые критичные участки кода
Вкладываться в переработку архитектуры нужно в проектах от года. И даже при таком раскладе считается хорошей практикой инвестировать не более 20% времени. Хотя, конечно, бывают исключения.