Сотрудник передал следующую проблему, предположим, что он вымышленный, чтобы защитить виновных:
Команда из 5-10 работает над проектом, который управляется проблемами. То есть, типичный поток выглядит следующим образом:
- фрагмент работы (ошибка, улучшение и т.д.) создается как проблема в отслеживании проблем.
- Проблема назначается разработчику
- Разработчик решает проблему и фиксирует свои изменения кода в trunk
- В момент выпуска замороженная и сильно протестированная соединительная линия или релизная ветка или что-то еще встроенное в режиме выпуска и выпущенный
Проблема, с которой он сталкивается, заключается в том, что пара новичков сделала несколько плохих коммитов, которые не были пойманы из-за неудачной цепочки событий. За этим последовал плохой выпуск с откатом или шквал горячих исправлений.
Одна идея, с которой мы играем:
Отменить фиксацию доступа к соединительной линии для новичков и заставить их развиваться в ветке для каждого разработчика (мы используем SVN):
- Хорошо: новички изолированы и не могут навредить другим.
- Хорошо: коммиттеры часто объединяют ветки новичков с туловищем
- Хорошо: это обеспечивает жесткие обзоры кода.
- Плохо: это обременительно для коммиттеров (но, вероятно, нет никакого способа обойти его, поскольку код нуждается в проверке!)
- Плохо: это может сделать отслеживаемость изменений сундуков немного сложнее, так как рецензент будет делать фиксацию - не слишком уверен в этом.
Обновление: Спасибо, всем, за ценный вклад.
Я пришел к выводу, что это гораздо меньше проблем с кодом/кодером, чем я впервые представил. Корень проблемы заключается в том, что процедура выпуска не смогла захватить и протестировать некоторые незначительные изменения качества в багажнике. Особенно важно подключить это отверстие. Опираясь на ложное предположение, что код в багажнике "хорош", не является решением.
После того, как это отверстие - тестирование - будет включено, ошибки всех - новичков или старших - будут пойманы правильно и обработаны соответствующим образом.
Далее, больший акцент на просмотрах кода и наставничестве (возможно, вызванный некоторыми систематическими изменениями для его поощрения) будет иметь большое значение для улучшения качества кода.
С этими двумя исправлениями я не думаю, что что-то жесткое или драконовское, как то, что я предложил выше, необходимо. Спасибо!