Форк несуществующего кода

August 9, 2017

В любом долгоиграющем проекте случается такая вещь. Одна команда проводит модернизацию какого-то старого решения, а у другой команды есть конкретная задача из этой же области. Например команда Superstars пилит новую крутую универсальную SSO-авторизацию, взамен в хвост и гриву захаченной, но рабочей старой. В тоже время команда SadAngryDudes в рамках срочного проекта BigMoney пробрасывает очередной костыль в текущую систему. (Господи, какую американизированную дичь я пишу, но мне очень хочется конкретный пример, пусть будет такой, вроде смысл получается передать).

У Джули, технического лидера команды SadAngryDudes, возникает желание делать код, базируясь на новой SSO, а не ковырятся в историческом говне коде. И я понимаю Джули, и вы понимаете Джули. Я много раз делал как Джули, но это к сожалению ошибка. Правильно делать любой проект базируясь только на тех технологиях которые есть прямо сейчас. Да - это дороже, да это дублирование кода, да мир боль, а люди сволочи. На самом деле нет. Управленческий риск, что Superstars сорвут сроки, их решение окажется не таким радужным, а BigMoney не запустится в срок, не то что высок, а ровно 100%.

Наилучшая аналогия которую я придумал, это делая проект - вы как будто форкаете мастер, берете картину сегодняшнего мира. Где-то в параллельных форках работают ваши коллеги из других команд. Вы можете подмерживать мастер - добавлять себе уже стабилизированные технологии, которые появились после вашего форка. Вы даже можете смержиться с веткой другой команды - взять у них бета-версию какой-нибудь перспективной библиотеки, но вы не можете сделать форк от несуществующего кода. Делать проект базируясь на ещё не написанном коде команды, которая работает над другим проектом, гарантия срыва сроков и результата.

comments powered by Disqus