17 янв. 2008 г.

Разработческое

Интересная статья на TheServerSide

Ничего нового там нет, но есть некоторые точно сформулированные моменты. Например, про излишнюю радикальность выбора между отсутствием дизайна до работы и полным завершением дизайна перед реализацией - усредненный подход работает здесь в полной мере (хотя мне трудно представить себе апологета первой техники, это чистое безумие и ковбойство!). Не нужно путать XP и отсутствие дизайна, но, к сожалению, не все чувствуют разницу.
Еще есть там полезная мысль о Code Reuse: тесты должны быть тоже поддерживаемы, как и основной код. Обычно им уделяется меньше внимания с этой точки зрения.
Pair programming - ну что тут сказать, моя (впрочем, недолгая) профессиональная жизнь сделала меня полным приверженцем этой техники. Опять же не ясно, почему ей противопоставляется Code Review, веть оба этих подхода вполне успешно сочетаются (при достаточном количестве ресурсов). ИМХО для парного программирования основная проблема - человеческий фактор. Не каждому разработчику легко делить власть над кодом, быть ведомым, когда кто-то постоянно комментирует и отвлекает от полета фантазии :) А у ж тем более ведущим (что, по моему мнению, труднее) - сохранять внимательность и критический взгляд на труд коллеги долгое время довольно утомительно. Но это приносит свои плоды, в прошлом году наиболее продуктивным я чувствовал себя именно работая в паре.

Вообще, смотреть на процесс или на методологию как догму странно. Это ведь не религия! Но дает ли эффект методология, от которой откушены некоторые части? Мне кажется, да. Главное - фундаментальные ценности, лежащие в основе процесса. Для кого-то то ориентированность на пользователя и максимально простая система, для кого-то это тщательная документация, следование формальным процедурам и стабильность. Однажды выбраны, эти ценности должны пронизвать систему, поддерживать концептуальную целостность и процесса, и кода. И, конечно, должны быть приняты и поняты членами команды. Но как эти ценности должны распространяться? Это должно быть что-то вроде программистской "корпоративной культуры", которая у крупных компаний выражается лозунгами (outstanding professionals working together to deliver value;) ) и прочими речевками? Может казаться странным, что фирма имеет свою культуру - это ведь не страна или секта - но без нее невелика цена такой компании.

Комментариев нет: