Если нельзя, но очень хочется, то нужно обязательно и ничего в мире не стоит того, чтобы делать из этого проблему!


Интересна Java? Кликай по ссылке и изучай!
Если тебе полезно что-то из того, чем я делюсь в своем блоге - можешь поделиться своими деньгами со мной.
с пожеланием
столько времени читатели провели на блоге - 
сейчас онлайн - 

пятница, 18 декабря 2009 г.

Как перейти от классического программирования к парному?

Сегодня, проглядывая почту, наткнулся на письмо, которое выслал команде как предложение по решению проблемы. Это было больше года назад. Я его перечитал и приятно удивился, все что я писал - многое из того сошлось и теперь я более чем уверен, что это подойдет команде. Вот письмо:

"Тим, прошу прочитать эту статью, как вводный курс в эти дебри :) Статья наверное самая стаящая что я читал по этой теме (всего где-то 20) но длиннная.
http://www.google.com.ua/url?sa=t&sourc ... bRV1GGCn0Q
Если нету времени или же по каким-то другим причинам не удается этого сделать, то ничего не поделать - риллайф.

Дальше письмо можно не читать (многа букофф).
Это всего лишь мои мысли, они не претендуют на идеальность. Это всего лишь стартап для обсуждения, наработки. Последнее слово всеравно за тимом - на пленниге все решим.

Сережа прав - внедрение в команду чего-то ногового занимает много времени, которого к сожалению у нас сейчас катастрофически мало. У нас сразу мало что получился. Посади Тоху с Натахой, Колю со мной или Иру с Сережей и в первый день результатов будет сравнительно немного а нервов напротив. Но спешу успокоить - это длится не долго. Мы уже довольно неплохо сформированная команда и знаем про личные качества друг друга не по наслышке.

Первым что у нас может получиться - это не парный программинг а партнерский программинг. Это что-то похожее на то что говорил Сережа: начало вместе, потом когда разработка пошла каждый за своим таском, а результат перед коммитом снова вместе. Но это уже и так неформально есть сейчас - кто не пользовлся магоческим заклинанием "можешь подойти?" в чате.

Чтобы сделать качественно качественно иной шаг в сторону программирования парами можно попробовать следующее: когда звучит магическое "можешь подойти", то все не заканчивается простым советом, а продолжается до коммита (пара вместе кодят до ближайшего коммита, даже если после ответа на вопрос все очевидно). Тут будет стимул сделать коммит быстрее (а такое возможно).

Если вопросов нет, и как бы разработка идет. То можно спонтанно попроситься к кому-то посидеть покодить рядом. С этого можно стартовать рабочий день (валшебный пендель) или же сразу после обеда.

А можно пойти дальше и сделать так.
Нас честверо кодеров + пара дизайнеров. Наталка, Тоха, Коля и Я.
Андрей и Сережа ссори что не внес в список - вы очень заняты чтобы решить задачу о программинге парами тривиально.
Ирка и Артур вы сами можете решить как вам взаимодейтвовать, я незнаю как работают дизайнера и возможнно ли применить парную разработку в вашем деле.
Кстати QA: Жека и Винни тоже могут попробовать тестить парой. Но это надо обсудить с ними.
Так вот что касается 4х основных разработчиков: работаем парами. Каждый день формируется одна пара. Например Коля + Наташа утром до обеда работают над задачей Коля а потом после работают над задачей Наташи. Типа: "ты мне я тебе". На следующий день пары меняются. Коля уже может быть с Тохой.

Что делать с пленнингом? Получается попугаев (идеальных часов) у нас становится вдвое меньше. Так только кажется. Реалько мы сможем это узнать (посчитать коефициент завершенности) после деливери.
Можно (классически) взять задач на деливери столько, сколько каждый бы запленил если бы вел разработку сам, тогда фича привязывается к кому-то как и прежде.
Получается по пол дня на твою фичу. Страшно? А кто сказал что будет просто? Посмотрим в конце как справимся.

Очевидная проблема - необходимы таски кратные дню. Если таск вылазит - стоит два или три дня, то выход один - дробить. Пленнинг проделать совместно так, чтобы каждый день можно было получать какой-то результат.

Если это неудастся, то можно увеличить время итерации разработки парой с пол дня на день. То есть сегодня я с Наташей ее задачу, а завтра Наташа со мной мою. Можно так же еще увеличить время итерации и работать с одной парой вплоть до половины деливери. Можно пару не менять, а можно менять часто. Параметров для манипулирования много. Выбор велик - подберем по настроению.

Что касается самого парного программинга, то тут могу предложить только то, что мы успешно опробовали с Тохой.
Роли две: 1. кто непосредственно кодит подзадачу. 2. кто ведет лог подзадач и смотрит за тем что делает первый стараясь не вмешиваться до тех пор, пока все идет пучком.
При выполнении всех подзадач - таск можно сдавать КьюА.
Если какая-то подзадача появляется (баг/фича) - ее тут же заносят в список и продолжают прерванную подзадачу.
Когда кто-то утомляется от его роли или малокомпетентен в данной области, то можно поменяться местами.
При завершении подзадачи она вычеркивается из списка и после возможного совместного перерыва на выполнение поступает следующая подзадача с наивысшим приоритетом.
Список потом можно дать КьюА как контрольный, а можно написать приемочные тесты.
Если ктому-то что-то непонятно то разработка прерывается и устранябтся все разногласия.
Если подзадача занимает много времени, или кто-то начинает зевать - верный знак что пошли не тем путем. Перерывчик и снова в путь.
Самое сложное - не спорить. Спор занимает много времени и скорее всего не приведет к нужному результату. Спорный таск посжно отложить и обсудить на перерыве.

Вроде как все. :) Спасибо что дочитал до конца.

"Одна голова хорошо, а две лучше"
У нас все получится. Если, конечно, мы готовы к экспериментам."

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

Отправить комментарий