Круговое поручительство
февраля 16, 2012 | Published in Development Processes | 9 Comments
Мне на ум пришла такая идея (на оригинальность не претендую), что было бы хорошо организовывать «круговое поручительство» для разработчиков, которое заключается вот в чем:
- Группа программистов занятая в одном проекте выполняет проверку труда друг-друга.
- Круговое поручительство похоже на хоровод — тот, кто ведет тебя предоставляет тебе результаты своего труда для проверки, а ты сам предоставляешь свой код тому человеку, который идет за тобой.
- «Поручитель» не только изучает чужой код, но и делает его рефакторинг и оптимизацию производительности, там где узкие места очевидны.
- После полученных правок к своему коду каждый член команды должен изучить их и сделать соответствующие выводы.
- Через определенный промежуток времени все «перетасовываются» заново, так, чтобы у каждого появился новый «поручитель».
Что это дает?
- Улучшается качество кода за счет «мгновенного» рефакторинга.
- Ускоряется обучение начинающих разработчиков за счет осознания и исправления своих ошибок и изучения правильных техник.
- Разработчик разрабатывая определенную часть приложения не зацикливается на ней, а имеет возможность изучить все приложение целиком.
Недостатком является падение производительности в плане количество фич на человека за единицу времени.
Сейчас я хочу испытать эту идею в команде разработчиков Quasar CMS, а позже поделюсь впечатлениями и выводами. Будет интересно узнать мнение кого-то, кто уже работает с применением подобных техник и тех, кто попробует на практике то, что я здесь описал.
февраля 16, 2012 at 19:09 (#)
А называется все это обязательный code-review )
Замечательная штука, но, как и большинмтво практик, работает только если вся команда хочет ее использовать.
февраля 16, 2012 at 20:05 (#)
Очевидный минус, что скорость одной итерации будет заисеть от слабого звена цепочки. =)
февраля 16, 2012 at 20:36 (#)
Черт) На нас будут ставить опыты)
февраля 16, 2012 at 21:19 (#)
roma, все зависит от того, как нагрузить эти самые слабые звенья. Если нагрузка распределена пропорционально опыту и продуктивности, то все должно быть ок.
февраля 16, 2012 at 21:20 (#)
solenko, спасибо, буду знать.
февраля 16, 2012 at 21:21 (#)
Ras, а как же, мы вообще — экспериментаторы. Сразу кучу модных штук взялись юзать. Тот же Cucumber — достаточно редкая штука.
февраля 16, 2012 at 21:32 (#)
Да мы вообщем то маладцы, разве может быть иначе)
февраля 17, 2012 at 10:13 (#)
Ну это в разы может увеличить время разработки.
Во-вторых, необходимо жёстко прописать миллион мелочей и не только, потому как у людей разные подходы к коду, не только к построению, но и оформлению: у кого-то используется Tab 8 символов, у кого-то 2, а у кого-то эти два и то пробелы.
Так что хорошая штука, но может быть утопией…
февраля 17, 2012 at 12:30 (#)
none, у рубистов все более-менее однотипно, все используют 2 пробела и все такое… Исключение составляют новички, которые еще не насмотрелись чужого кода. Кроме того, у в Quasar Team уже имеется соглашение по стилистике кода. Здесь под рефакторингом и оптимизацией подразумеваются не такие глобальные вещи, как изменение архитектуры, но более лаконичное переписывание кода с пупотным увеличением производительности, если возможно.