singalen: (Default)
[personal profile] singalen
Размышляю об XP.
Читал матчасть - увы, не Бека, а Ауэра-Миллера. Много воды и улюлюкания, мало собственно технических методик.
Почитал мнение [livejournal.com profile] dz. Здраво, хотя и либо НЕМНОГО предвзято, либо, что более вероятно, это отзыв из другого мира, от более сложных информсистем, гораздо более требовательных к качеству и вообще стоящих в разы ближе к системному барьеру.
XP кодо-центрична и предназначена для людей, которые обожают кодировать, но при этом способны делать дизайн и держать его в голове/на карточках. XP не терпит дилетантов. Вкратце - без дизайна может обойтись тот, кто "и так, в уме" может сделать, покритиковать и передалать хороший дизайн.
Да, высшее умение делать дизайн и документацию, наверное, может состоять в том, чтобы работать без дизайна и документации. У Бека и Фаулера это может получаться. Может быть, это может получиться у нас. У начинающих это не получится в принципе: они не знают, как писать тесты, в какую сторону рефакторить.
И - что важно - это сработает на не очень больших системах. Предположим, объёмом кода до 20М и со структурой БД менее чем на 200-500 таблиц - в зависимости от таланта разработчиков. На таланте разработчиков и держится первый из пяти уровней технологической зрелости по CMM. Подчеркиваю, первый.
Интересные линки на комменты внутри статьи dz:
первый коммент
второй коммент

(no subject)

28/8/05 16:21 (UTC)
Posted by [identity profile] sanyok-ua.livejournal.com
> Да, высшее умение делать дизайн и документацию, наверное, может состоять в том, чтобы работать без
> дизайна и документации. У Бека и Фаулера это может получаться. Может быть, это может получиться у нас.
> У начинающих это не получится в принципе: они не знают, как писать тесты, в какую сторону рефакторить.

Так будем их этому пытаться обучать.
Какие-то техники XP могут использовать новички, какие-то требуют определённой квалификации, и это - нормально. Вот если вся команда, кроме тебя, состоит из начинающих - это уже куже. Как писал Джоэль,
http://www.joelonsoftware.com/articles/fog0000000072.html,
===========
One of the most important things that made Microsoft successful was Bill Gates' devotion to hiring the best people. If you hire all A people, he said, they'll also hire A people. But if you hire B people, they'll hire the C people and then it's all over. This was certainly true at Microsoft. There were huge branches of the Microsoft tree filled with great people; these businesses were perennially successful (Office, Windows, and the developer products). But there were also branches that were just not as successful: MSN failed again and again and again; Microsoft Money took forever to get going, and Microsoft Consulting Services is full of airheads. In each of these cases it's pretty clear that a B leader built up a business unit full of C players and it just didn't work.
===========


> Игра в планирование

Делаем все вместе, новички смотрят и учатся. Когда-то наступит момент, когда 1) они внесут свои 5 копеек; 2) они примут активное участие

> Небольшие выпуски
> Метафора системы
> Стремление к простоте при проектировании
> Постоянное тестирование (модульное и приемочное)

Угу. Этому надо учить.

> Переделка кода (refactoring)

новички знают, что "в этом коде есть что переделать, есть такие задачи". Сеньоры переделывают. Новички смотрят на этот процесс с помощью:
> Парное программирование

> Коллективное владение кодом
> Частая интеграция
> 40 часовая рабочая неделя
> Постоянное присутствие клиента
> Единый стиль кодирования