Dark mode switch icon Light mode switch icon

Команда в Legacy проекте

• 1 минут чтобы прочитать

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

Работа над Legacy в проекте

Если проект над которым вы работаете содерджит много легаси (“опасно менять, но дорого удалить”), то это требует определённого навыка не только работы с кодом, но и планирования его развития. Невозможно же просто работать над чем-то новым и полностью игнорировать это чудовище в углу. Или можно? В конце концов, если проект опасно менять, то можно его “законсервировать” и просто не трогать - работает и не лезь.

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

Большие проекты давно не пишутся в одиночку

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

Да, для минимального прототипа вам достаточно вас самих, но каждый участник хакатонов вам подтвердит — с командой можно свернуть горы.

Команда это не просто N человек, бегущих в одну сторону. Слаженная команда это синергия, которой непросто добиться, но один из ключевых факторов её функционирования — общие ценности и общая цель. Тут конечно меня много кто поправит и добавит что в ключевые факторы функционирования команды также входит ещё вот это… и вот то…

Испанская инквизиция

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

Один в поле — воин?

Но бывает ведь так - вы фрилансите или может штат сократили и вот вы в команде — один. Стоит ли формировать все эти правила работы с этим богомерзким наследием предков? Зачем и для кого писать эти коментарии и документацию с наполеоновскими планами по поеданию слона по кусочкам?

Определённо стоит, и это даже важнее чем если вы работаете в “настоящей” команде. Потому что вы и есть вся ваша команда, но вместо пространства которое легко предолеть с помощью созвонов и мессенджеров, вас разделяет время и коммуникация здесь идёт только в одну сторону.

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

Слышали когда-нибудь эту цитату? Её автор, конечно, немного преувеличивает, но с очень большой вероятностью тот, кто будет читать ваш код в будущем — это вы сами, но с другим опытом, другими знаниями, даже другой мотивацией и другим настроением.

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

Вы и снова вы из будущего

Чтобы не тянуть этот воз как лебедь, рак и щука в одном лице, но в разных временных линиях, наметьте план и придерживайтесь его.

Не высечен в камне

Это конечно не значит что план нельзя менять — может и вправду его осмысленность изменится со временем так сильно, что придётся его подкорректировать или переписать, но это должно потребовать от вас явных действий, возможно даже с согласованием в команде.

Чем это лучше, чем просто запомнить? Тем что наш мозг очень ленив и ненадёжен как инструмент. Он умеет подделывать воспоминания. Он эффективно срезает углы лишь бы не напрягаться. Он сметёт ваш план лавиной эмоций, переживаний и воспоминаний как нечего делать. Но любой сторонний артефакт игнорировать и подделывать сильно сложнее. Даже просто открыть план в гуглодоке и изменить его, сформулировав мысль, требует сильно больших трудозатрат, чем просто “передумать” или “забыть”.

План писать необходимо, плана нужно держаться, но при необходимости его можно и нужно менять.

Впервые опубликовано от Эдуард Сухарев