Окей, это произошло. Мы быстро выкатили MVP проекта, он как-то | Программист и бизнес
Окей, это произошло. Мы быстро выкатили MVP проекта, он как-то взлетел и им даже пользуются люди.
Проходит время, и всплывают отдельные косяки. Там хреновая архитектура, здесь медленно работает, а здесь какой-то программист вообще такую дичь написал. И что делать, переписывать проект в учетом этих ошибок?
Нет, и еще раз нет. Переписывание работающего проекта с нуля - это на 99% огромный факап.
Я тоже раньше думал, что можем взять, и просто переписать проект с нуля. Без ошибок, с хорошей архитектурой. Горькая правда такая, что нет - не можем.
Переписывая проект с нуля, вы получите новые ошибки, которых не было в старом проекте. А добавляя новые фичи в красивый переписанный проект, вы неизбежно будете ломать новую красивую архитектуру. И мы возвращаемся на стартовую точку.
Есть много примеров компаний, которые совершили эту ошибку, и их выкинули с рынка. Яркий пример - браузер Netscape Navigator. Одно время это был наиболее популярный браузер в мире. Но в нем было дофига костылей, некрасивой архитектуры и вот этого всего. Компания-разработчик решила переписать его с нуля.
Итог закономерен. Переписывание заняло пару лет. В ходе переписывания всплывали новые баги. Старую версию заморозили, фичи не добавляли. В итоге получился большой факап. Старая версия устарела сама по себе. А новая, на момент выхода, была уже устаревшая и забагованная.
А если бы парни просто допиливали и плавно рефакторили старый код - все было бы окей.
Поэтому, если у вас есть работающий проект, то пусть он растет эволюционно. Где-то выделяем пару дней на рефакторинг (улучшение) кода. Удаляем неактульные куски кода. Плавно включаем новые технологии.
Поэтому, если кто-то предлагает вам взять и переписать все к чертям - посмотрите на него очень пристально.
Человек, который предлагает переписать проект с нуля, скорей всего не знает, какой ящик Пандоры он открывает.