Я буду очень тупым ...
- Вы отвечаете за разработчиков в этой работе?
- Вы руководитель проекта?
- Какую «долю» держат разработчики в проекте?
- Каково ваше деловое оправдание для переписывания?
- Что такого в кодовой базе, которая делает его совершенно бесполезным и невосстанавливаемым?
Вы заявили, что только что приступили к работе, и, тем не менее, вы уже являетесь хозяином ситуации. Возможно, я неправильно понял цель вашего вопроса, но у меня сложилось впечатление, что вы вошли в работу, где вы видите ряд проблем, и вы пришли к самому простому выводу, что код не работает и единственный путь вперед - переписать, но вы действительно считаете, что ваш работодатель заплатил за это?
С любой существующей кодовой базой - независимо от того, в каком плохом состоянии она находится - владелец обычно будет иметь значительные инвестиции в продукт (ы), который представляет код. Существуют как прямые, так и косвенные затраты, связанные с базой кода, и переписывание часто является самой последней вещью, которую вы хотите сделать как разработчик программного обеспечения, поскольку вы рискуете обесценить свои активы кода и, таким образом, получить более низкую отдачу от всех ваших предыдущих усилия.
Возьмите операционную систему Windows в качестве примера. С каждой новой созданной версией был большой кусок кода, перенесенный с предыдущей версии. Иногда целые библиотеки и API переносятся через несколько поколений ОС. Зачем? Поскольку разработчики знают, что эти элементы работают, были протестированы, исправлены и исправлены, чтобы предотвратить проблемы безопасности и памяти, а также потому, что они попали в это состояние очень дорого. Никто не хочет выбрасывать рабочий код, когда он зарабатывает деньги, даже если затраты на обслуживание относительно высоки, затраты на запуск с нуля всегда будут еще выше, а в такой компании, как Microsoft, в банке есть миллиарды, которые позволяют им начать с самого начала, если они хотят, но они не т, потому что они хотят максимизировать свою отдачу от своих инвестиций. Ваш работодатель ничем не отличается от Microsoft, за исключением небольшого количества наличных денег на проект.
Таким образом, код является беспорядком, и кажется, что существуют различные проблемы связи и границ между различными областями компании. Что вы или ваши коллеги можете сделать по этому поводу?
Один из вариантов - просто продолжать работать в команде и надеяться на чудо в будущем. Вероятно, не очень хорошая идея, и, скорее всего, только увеличит ваше разочарование и стресс.
Лучший вариант - просто собраться с силами и выполнить свою работу, но в рамках этого поиска нужно искать возможности для добавления тестов для поддержки тех областей кода, которые кажутся наиболее хрупкими, а затем проводить рефакторинг, пока они не станут более стабильными. Вам будет легче выдвинуть убедительный аргумент, чтобы улучшить инвестиции компании, вместо того, чтобы просто выбросить все это.
Еще лучший вариант - организовать команду как единое целое, чтобы вы могли привлечь кого-то к себе со стажем, достаточным для того, чтобы он мог подготовить хороший пример, чтобы позволить группе более гибко планировать время для улучшения базы кода. Мне все равно, насколько занята компания или насколько жестким является график, всегда есть случайные «затишья» в деятельности, которые можно использовать, чтобы втиснуть улучшение или два. Однако еще лучше, если улучшения могут быть сделаны при выполнении других задач. Если бы это был я, я бы побеседовал с менеджером и познакомил бы их с концепциями в некоторых канонических книгах, которые читают разработчики программного обеспечения. Чистый кодВероятно, это то, что вашей команде нужно больше всего. Расскажите о том, как улучшить код, и приведите несколько примеров того, что вы имеете в виду. Хороший менеджер увидит ценность добавления дополнительных улучшений в код, особенно если вы в состоянии описать концепцию технического долга . Помогите руководителю вашей команды или менеджеру составить хорошее экономическое обоснование для улучшения кода, и у них будет лучшая мотивация для его решения.
Также недостаточно сказать «код неопрятен». Вы должны поощрять своих коллег постоянно практиковаться в кодировании и использовать чистую технику кодирования, чтобы поощрять небольшую уборку в процессе работы. У меня есть небольшой плакат, который я распечатываю и вешаю на стену своего офиса каждый раз, когда беру на себя новую работу. Он говорит: «Всегда старайся сделать код немного красивее, чем ты его нашел». Прямо рядом с ним я добавляю еще один, который гласит: «Лилии не нужно золочить». Они оба напоминают мне, что я всегда должен пытаться улучшить то, что нахожу, но избегать просто позолоты одной проблемы с другой. Массовые переписывания часто являются наихудшим видом «позолоты», потому что они часто делаются по неправильным причинам. Конечно, в какой-то момент совершенно новая версия продукта может быть оправдана,