У проекта, над которым я сейчас работаю, есть проблема: ошибки и задачи часто назначаются людям, которые слишком новы или слишком неопытны, и их работа в конечном итоге приводит к появлению новых ошибок в будущем. Проблема в том, что с некоторыми частями нашего программного обеспечения работать гораздо опаснее, чем с другими, из-за проблем с качеством кода. Я пытался бороться с этой проблемой, оценивая риск, связанный с задачами, и обращая пристальное внимание на то, каким разработчикам назначены какие задачи.
Мы используем JIRA, поэтому я начал маркировать проблемы, чтобы отслеживать эту оценку. Я заметил, что в итоге я использовал несколько метрик для классификации ошибки / задачи:
- Насколько это ясно / понятно. Например, нужно ли много работать над дизайном или просто исправить ошибку в пользовательском интерфейсе.
- Насколько ремонтопригодна уязвимая область кода. Это хорошо продуманная территория или большой клубок грязи.
- На какую часть программы, я думаю, повлияет необходимое изменение.
Мои лейблы немного запутаны, так как у меня не было четкого представления о том, какими будут возможные категории, а я до сих пор не знаю. Я думаю о том, чтобы попросить добавить новое поле (что-то вроде «Риск»), чтобы мы могли требовать оценки, прежде чем назначать кому-либо работу.
Кто-нибудь имел дело с такими вещами раньше?
Я бы сказал, что то, на что вы ссылаетесь, лучше назвать «сложностью». Конечно, чем сложнее изменение, тем выше «риск» того, что неопытный программист может внести какую-то новую ошибку. Неплохая идея ввести такое поле, если это реальная проблема.
Однако, судя по тому, что вы написали, у вас, похоже, есть две проблемы:
В дополнение к введению чего-то наподобие поля «сложность» (которое поможет управлять и расставить приоритеты в вашей работе), я бы посоветовал вам сосредоточиться на уменьшении риска двух вышеупомянутых проблем.
Для решения первой проблемы я хотел бы создать процесс, посредством которого новые программисты сначала обсуждают все новые ошибки с более опытным программистом, прежде чем работать над ошибкой. Кроме того, я обязательно представлю обзоры кода, которые позволят снизить риск появления новых ошибок и использовать их как возможность для обучения новых программистов быстрее освоиться.
Что касается качества кода, я бы сделал две вещи. Во-первых, остановите процесс гниения: договоритесь о стандартах и методах кодирования, которые бы препятствовали внедрению любого нового кода. Предлагаемые обзоры кода также помогут здесь. Во-вторых, я бы выявил худшие части вашего кода и начал бы рефакторинг и их очистку.
источник
Да, это хорошая идея - не давать неопытным разработчикам слишком сложные задачи. Но обратная сторона в том, что если вы позволите им делать легкие вещи, они не будут учиться.
Я предлагаю альтернативную стратегию - ввести режим проверки кода. Пусть новички поработают над хитрыми вещами (в пределах разумного), но тщательно проанализируют свою работу.
В краткосрочной перспективе это больше работы для всех. В более долгосрочной перспективе вы получите целую команду разработчиков, которые могут справиться со сложными вещами, и находятся «на одной странице» в том, что касается качества кода.
источник