Как выработать хорошую практику кодирования?
Как содействовать выработке хорошей практики кодирования?
Для улучшения практики кодирования можно внедрить в проект технический стандарт. Внедрение такого стандарта со стороны менеджера можеть быть не лучшей идеей. Лучше, если этим человеком будет архитектор, пользующейся уважением. Если этот архитектор считается идейным лидером проекта, то скорее всего команда будет придерживаться стандартов, установленных им. Но, если архитектор – это человек, который уже давно не принимает участие в кодировании, то он не может быть хорошей кандидатурой для внедрения стандарта.
Способы достижения хорошего кодирования
- Назначить двух человек на каждую часть проекта. У вас как минимум будет гарантия, что хотя бы два человека думают, что код работает.
- Рецензируйте каждую строку кода. В рецензировании кода участвует программист и как минимум еще два человека. Рецензирование кода улучшает его качество, так как программист знает, что как минимум 2 человека будут читать его код, а также это является страховкой на тот случай если человек покинет проект.
- Введите процедуру подписания кода. Подписанный код показывает, что программист соотвествует уровню квалификации и только подписанный код считается завершенным.
- Распространяйте для ознакомления хорошие примеры кода. Это предоставит ясный пример, того качества, которого вы хотите добиться. Никакое описание не передаст более точно, то что можно показать в примере кода.
- Подчеркивайте, что код – это общее имущество. Иногда программисты считают, что код который они написали – “их” личная собственность. Хотя это результат их работы, но он является частью свего проекта и должен быть доступен любому участнику проекта.
- Награждайте за хороший код. 1. Награда должна представлять интерес для программиста. 2. Код поощряемый таким образом должен быть исключительно хорошим.
- Один простой стандарт. Если вы управляете программным проектом и в прошлом были программистом, то простым и эффективным способом добиться хорошего результат будет фраза: “Я должен быть в состоянии прочесть и понять любой код написанный в проекте”.
Стив Макконнелл. Совершенный код.

> Введите процедуру подписания кода.
Авторство кода давно можно отследить более детально, вплоть до каждой строчки, при помощи VCS (SVN, Mercurial, Git). Поэтому наоборот, код лучше не подписывать, потому что это может создавать психологический барьер для других (не авторов данного файла) программистов по поводу его изменения. Файл становится как бы принадлежащим автору. Есть вероятность что люди будут “воздерживаться” от исправления в нем мелких неточностей, потому что это может потенциально расцениваться как критика автора.
Любые вознаграждения не должны быть материальными. Иначе есть риск несправедливого награждения, или риск того что люди начнуть себя сравнивать и противопоставлять соседям по команде, думать кто кого лучше и почему. Это может уничтожить командный дух.