Переписывать ли канал взаимодействия? Например, мобильное приложение, админку, личный кабинет. Это частый вопрос. Начнем с технических особенностей. Единственная техническая причина переписывать с нуля, - это если канал - стороннее решение, кода у вас физически нет возможности провести рефакторинг. Остальные причины - экономические, когда развивать дороже, чем переписать, и тут все намного сложнее, потому что - «а насколько дороже?», «а как посчитать?» и так далее. Ответить на эти и другие вопросы можно, тем более, что оценить можно в относительных единицах. Экономические (внезапно) причины: ▪️Умер стек, на котором разработана текущая имплементация канала. Сложно или дорого найти компетенции под стек. ▪️Архитектура фундаментально несовместима с направлением бизнеса. Вроде, - проектировали под single tenant, а теперь работаем с multitenant, сюда же если изначально не закладывался highload и так далее. При архитектурной несовместимости постепенная замена модулей может оказаться дороже, чем полная замена с разработкой с нуля ▪️Банкротство. Это когда годовая стоимость поддержки старой системы (проценты) доходит до 40% от реалистичной оценки переписывания. Речь только о процентах, а есть еще тело долга. ▪️ Бизнес-модель поменялась настолько, что старая система решает не ту задачу, - нужен другой продукт Это были рациональные причины. Чтобы их обсчитать и принять рациональные решения, нередко придется потрудиться, это затратно, поэтому иногда решения принимаются иррационально, например: ▪️В целом выглядит привлекательно начать с чистого листа, чтобы скинуть балласт. Часто решение принимается при смене команды или руководства, - «нам проще переписать, чем разбираться и поддерживать, что они там написали». Это скорее организационная причина. ▪️Переписать - это понятный проект с границами, который можно защитить (формально) в отличие от нередко непонятного (что печально) менеджменту постепенного рефакторинга. Это, скорее политическая причина, понятный проект выглядит просто привлекательнее по форме. Вспомните этот пост, когда в следующий раз будете обсуждать вопрос «переписывать или нет» и задайте себе вопрос - есть ли рациональные причины писать с нуля? Если строго нет, рассмотрите альтернативы. И если альтернативы дороже, чем переписать - ну тогда погнали :)
Переписывать ли канал взаимодействия? Например, мобильное приложение, админку,…
Из этого канала
- #831Новый кейс в «Архитектурных этюдах» Как решаете задачи валидации, когда…
Новый кейс в «Архитектурных этюдах» Как решаете задачи валидации, когда смешиваются в одной задаче и размытые формулировки и алгоритмически проверяемые…
- #829Архитектурные конференции Несмотря на то, что ArchDays проходит аж с 2019-го…
Архитектурные конференции Несмотря на то, что ArchDays проходит аж с 2019-го года, я все равно постоянно размышляю о том, что конференция может дать…
- #828Презентация с вебинара
Презентация с вебинара