Bandicoot
@Bandicoot
Вась-программист

Как развить интерес к работе с легаси кодом, если приходится с ним работать?

Заранее скажу, что я уже давно в разработке. Возможно вопрос покажется признаком недостаточного профессионализма, но если есть проблема - ее нужно решать. Заметил у себя одну особенность: я работаю совершенно по-разному в 2-х случаях:

1. Если я пишу проект в нуля, в одиночку и на знакомом фреймворке. В этом случае мне очень легко войти в состояние потока, я могу часами без перерыва программировать. Чувствую себя художником, пишущим картину с чистого листа, в буквальном смысле. Я могу работать больше стандартных 8-ми часов и не уставать. Могу работать в нерабочее время. Грубо говоря - хлебом не корми, дай творить.

2. Если я работаю со старым, большим, дико разросшимся легаси проектом. Здесь ситуация прямо противоположная. Когда начинается рабочий день, я максимально далеко оттягиваю непосредственное начало работы над проектом. Могу начать под вечер, повозиться от получаса до максимум 2-3 часов, не больше. Работаю с черепашьей скоростью, при этом максимально раздуваю важность своих правок перед руководством. Каждая возникающая проблема, где нужно разбираться что и как в этом проекте работает, меня дико демотивирует. Прокрастинация и детские отмазки включаются на максимум.

Со 2-м кейсом нужно что-то делать) Как вы себя мотивируете в данной ситуации? Как "искусственно" развиваете интерес к работе, там где его нет?
  • Вопрос задан
  • 360 просмотров
Решения вопроса 2
vabka
@vabka
Токсичный шарпист
Искусственно развить интерес не получится)
Я обычно как-то так работаю:
1. Объясняю самому себе, что это комуто нужно, и моя работа над этим легаси приносит пользу.
2. Любой проект превращается в легаси.
3. Сама работа над легаси - это челедж. Нужно сделать минимальное изменение, чтобы ничего не поломать, при этом код должен стать лучше. Это чтото среднее между работой сапёра и исследователя.
4. Если предыдущие три не помогли - надо уже глубже в себе копать, что именно не нравится, или как можно себя замотивировать - например деньгами.

Если вам ну совсем не приносит удовольствия работа над легаси - это нормально. Просто берите её меньше, а над не-легаси больше.

Например мне ну совсем не нравится работать над неисправимым легаси, когда даже мелкая задача - это закапывание в код на несколько дней. При этом проект большой, тяжелый, и на старых технологиях.
Деньгами меня замотивировать сложно - по этому я стараюсь над таким кодом не работать вообще
Ответ написан
Комментировать
@User628
Мотивирует то, что быстро сделав противную работу, можно дальше будет делать то, что нравится или отдыхать.
Иногда мотивирует то, после рефакторинга хотя бы какая-то часть проекта стала лучше, особенно если из очень говеного кода сделал конфетку, например, убрав дублирование сразу во множестве мест.
Также стоит помнить, что заказчику нужен лишь конечный результат. Красота кода и архитектура - ему до лампочки.
Исправил как смог, чтоб работало на старых технологиях и ты свободен.
Перелопачивать весь проект с ног на голову себе дороже. Помни, что время не безгранично, и не круто - работать над говнецом все свободное время. Все мы когда-то умрем и твой охрененный код не будет никому нужен.
Тебя ведь не просили все перелопачивать? А только пофиксить бажок или добавить фичу. Вот и сделай только это.

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

Еще можно устроить небольшое соревнование с самим собой: с помощью какого-нибудь Resharper или CodeRush найти в проекте самый говнистый класс по какому-либо критерию (например, самый длинный), выразив его сложность в виде какой-то конкретной величины = количества строк в данном случае. И постараться во что бы то ни стало уменьшить эту цифру. Забыть о всяких хотелках юзеров, а временно сконцентрироваться только на уменьшении строк, неважно каким способом (ну лучше конечно - выносом частей в другие классы).
Мотивировать будет реально измеряемое уменьшение длины класса, когда было 1200 строк, а стало 400.
Есть и другие параметры качества кода...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@mkone112
Начинающий питонист.
Как вы себя мотивируете в данной ситуации?

60659d847e2b6617867040.png
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы