Добрый день, друзья.
Сегодня нам хотелось бы обсудить с вами довольно интересный технический термин — "рефакторинг".
Рефакторинг — это процесс изменения внутренней структуры программы, не затрагивающий её внешнего поведения и имеющий целью облегчить понимание её работы. С точки зрения бизнеса данный процесс не несет прямой выгоды. Может возникнуть вопрос - зачем менять “внутренность” программы, если это не прибыльно? Ответ очень прост. Истории известно большое количество проектов, которые канули в лету только из-за того, что вопрос рефакторинга был отложен в долгий ящик. В результате разработка нового функционала начала требовать колоссальных трудозатрат, а расходы на разработку стали значительно превышать прибыль от продукта. Поэтому крайне важно не доводить проект до состояния, когда объем технического долга (задач по рефакторингу) задушит проект.
Однако есть и обратная сторона медали. Любой код не идеален. Попытка добиться идеальной архитектуры и полного отсутствия технического долга может привести к тому, что у команды разработки вообще не останется времени на разработку нового функционала, который потенциально принесёт прямую прибыль.
Как мы находим “золотую середину”?
Уже второй год вся наша команда разбита на три кросс-функциональные подкоманды, две из которых (“продуктовые”) занимаются разработкой нового функционала, а одна (“core-команда”) может полностью сосредоточиться на техническом состоянии проекта. Это не значит, что продуктовые команды пишут код кое-как и за ними постоянно приходится его переделывать. Просто когда ты постоянно добавляешь в продукт куски нового кода, нужно внимательно следить за тем, чтобы они не конфликтовали друг с другом и со старым кодом.
Продуктовые команды заранее все продумывают и стараются не создавать новых проблем, которые нужно будет решать в будущем. К примеру, функционал альбомных сообщений и каналов изначально был хорошо продуман, так что у нас нет необходимости в ближайшее время заниматься рефакторингом этого кода. А вот основные модули — чаты, звонки — мы рефакторим почти постоянно. В последнем спринте объем переделок был очень велик, так что несколько ошибок даже пробрались в релиз - но мы их уже оперативно поправили, выпустив срочный промежуточный релиз.
Оставайтесь с нами и будьте в курсе всего, что у нас происходит!
Всегда ваша,
команда Gem4me