Extreme Programming

boombick

boombick.org
Extreme Programming

У кого-нибудь есть реальный опыт внедрения? Не вот так, чтоб для себя посмотреть, а серьезные проекты, написанные при помощи XP. Поделитесь опытом, господа... ;)
 

Alexandre

PHPПенсионер
был я на собеседовании в одной крупной компании, которая ориентирована на методологии XP.
Как сказали мне менеджеры, методология XP, в частности парное программирование, не всем подходит по характеру.
К сожалению, (или счастью - что не случается - все к лучшему) меня туда не взяли, так как сказали, что по их мнению - я "подхожу под методологию парного программирования". Много лишнего на собеседовании наболтал :D
 

boombick

boombick.org
я вот тоже смутно себе представляю кодинг в паре... Тем более, что я программирую всегда в наушниках, мне некомфортно без музыки. Как в этом случае общаться? Или XP - это все-таки для западного менталитета?
 

magic

lancer
Было у нас лет 15 назад "парное программирование", правда я тогда не знал модного слова Extreme Programming. Все было гораздо банальнее - не хватало компьютеров и приходилось работать парами.

Так что, XP это ХРеновый метод - все от бедности или жадности. :D
 

Alexandre

PHPПенсионер
в XP ориентированной организации:
- каждый день представляет минипроект
- каждый день начинается с литучки, цели, задачи, разбивка на пары
- каждый день заканчивается подведением итогов и раздачей слонов.
Как плюс, не знаю, не работал, должен идти обмен опытом, т.е. на литучках (подведениях) должен идти разбор кода как хорошего, так и плохого.
Методика XP исключает зависимость проекта от индивидума, все взаимозаменяемы.
Плюсы - стандартизация кода,
Минусы - приходится разбираться в чужом коде, хотя если существует стандартизация кода - это не так страшно
Парное программирование:
- кол-во глупых ошибок уменьшается в разы.
- стоимость разработки проекта возрастает, хотя это спорно
если парная отладка занимает меньше времени, то стоимость проекта где-то то на то и выходит...
Если пары организовать ведомый - ведущий, то происходит более тесный обмен опытом у стажеров и не ведущих программистов ...
короче всю работу тащит ведущий... и он же опять следит за работой ведомого...
опять же хз, как это эффективно, если я не работал.

Отвергать все передовое - плохо, в ХР есть свои преимущества, например TDD, ну и время "волков одиночек" - проходит, нужно осваивать новые конкурентносособные методики разработки ПО.
 

boombick

boombick.org
TDD согласен, отличная методика! Но как все-таки быть с парным программированием, если я не умею работать без музыки? =) А если исключить парное программирование, то это уже не ХР?
 

Alexandre

PHPПенсионер
если исключить парное программирование, то это уже не ХР?
Методика XP - это набор методик!
Методика XP - расчитана на большие проекты, большие коллективы.
Возможно, что парное программирование - предполагает и программирование в наушниках, хотя в этом случае эффекта "мозгового штурма" - не ощущается в полной мере.

Подход - "напишем-исправим" уходит на задний план и остается в фирмах, с кол-вом до 10 чел. (к сожалению я работаю в фирме - с 5 чел и именно этим подходом ) Остальные - должны выживать в море конкурентноспособности, соответственно повышать методики управления проектами.
 

whirlwind

TDD infected, paranoid
Тем более, что я программирую всегда в наушниках, мне некомфортно без музыки. Как в этом случае общаться?
А какая связь между ушами и работой в паре? Не думаю что работа в паре подразумевает бесконечную беседу двух программеров. Я представляю себе это примерно как:

1П. тест class1
2П. реализация class1

2П. тест class2
1П. реализация class2

и варианты
 

Alexandre

PHPПенсионер
А какая связь между ушами и работой в паре? Не думаю что работа в паре подразумевает бесконечную беседу двух программеров
Читая Мартина, http://www.books.ru/shop/books/147550, он на своем примере описывает приемы парного программирования, все-таки ... они разговаривают....
 

Gorynych

Посетитель PHP-Клуба
был я на собеседовании в одной крупной компании, которая ориентирована на методологии XP.
Как сказали мне менеджеры, методология XP, в частности парное программирование, не всем подходит по характеру.
ОМГ! ПлакалЪ! Почти рыдал!

ох уж мне эта точность буквы закона :) М-да... Я бы сам сбежал из компании столь кропотливо подошедшей к вопросу. При этом...

работу с использованием пользовательских историй, утренних брифов и прочих полезных подходов довольно успешно использовали в рамках рабочей группы внутри большой корпорации (фактически, было предложено в качестве пробного варианта выхода из штопора срыва сроков. Практика показала что да, нам это подходит, эффективность на лицо)

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

никакой дури вроде: "Один набирает, другой смотрит. Время от времени они меняются. Не разрешается работать в одиночку". Образно говоря мы впахивали посменно, в том числе и спали в разное время.

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

самое интересное, что мы с этим человеком раньше НИКОГДА не писали код в одной команде (хотя довольно давно знакомы) и на некоторые вещи смотрим по разному, но...

...примерно три недели парного программирования на практике дали на выходе примерно 60% эффективного кода проекта :) Существенное замечание: это был наш проект, интересный для нас обоих, делавшийся в режиме аутсорсинга и т.п.

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

Gorynych

Посетитель PHP-Клуба
magic

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

Alexandre

PHPПенсионер
Gorynychвсе-таки фишка парного программирования именно в одновременном сидении за компом в стенах офиса, одна голова хорошо - две лучше.
 

Gorynych

Посетитель PHP-Клуба
Alexandre
вот именно в офисе я этого не представляю. Что было у нас? Прежде всего отсутствие дополнительных раздражающих факторов типа "другие люди". Нет, если конечно имеется в виду утопия что в офисе у пары программистов отдельная комната, где они без помех занимаются программированием в паре, то может и так, но имхо - это утопия.

в большинстве компаний в одной комнате сидит гораздо больше человек (про варианты много народу в одном зале, максимум - разделенном перегородками по типу улья, я вообще молчу. А для больших компаний - это реальность. Возьмем тот же IBS или РБК).

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

две головы - это хорошо. Я писал о реальном случае из своей собственной практики, а не выдумывал ситуацию. Эффективность меня тогда просто потрясла. Было переписано, закрыто багов и наваяно нового, недостающего больше чем за два месяца раздельной работы. Но я не представляю себе эту же ситуацию в офисном окружении. Реально, для себя - не представляю.
 

Denix

Новичок
Автор оригинала: Gorynych
Alexandre
вот именно в офисе я этого не представляю. Что было у нас? Прежде всего отсутствие дополнительных раздражающих факторов типа "другие люди". Нет, если конечно имеется в виду утопия что в офисе у пары программистов отдельная комната, где они без помех занимаются программированием в паре, то может и так, но имхо - это утопия.

в большинстве компаний в одной комнате сидит гораздо больше человек (про варианты много народу в одном зале, максимум - разделенном перегородками по типу улья, я вообще молчу. А для больших компаний - это реальность. Возьмем тот же IBS или РБК).

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

две головы - это хорошо. Я писал о реальном случае из своей собственной практики, а не выдумывал ситуацию. Эффективность меня тогда просто потрясла. Было переписано, закрыто багов и наваяно нового, недостающего больше чем за два месяца раздельной работы. Но я не представляю себе эту же ситуацию в офисном окружении. Реально, для себя - не представляю.
Насколько я помню, по методе ХР, как раз весь народ и должен быть в одной комнате, + представитель заказчика тоже там же :)
 

tf

крылья рулят
я вот тоже смутно себе представляю кодинг в паре... Тем более, что я программирую всегда в наушниках, мне некомфортно без музыки. Как в этом случае общаться? Или XP - это все-таки для западного менталитета?
на время наушниками придется пожертвовать, хотя опыта как такового нет
пытался пробовать на работе по мелким задачкам :)
 

confguru

ExAdmin
Команда форума
две головы - это хорошо. Я писал о реальном случае из своей собственной практики, а не выдумывал ситуацию. Эффективность меня тогда просто потрясла.
Ага - это масштабирование мыслительных процессов,
одна голова пишет, другая не дает первой писать х..ню
и сразу протестует...
День парного программирования может заменить неделю работы 2-х програмистов - и что немаловажно оба будут
знать код :)
 

denver

?>Скриптер
boombick
Тем более, что я программирую всегда в наушниках, мне некомфортно без музыки.
Проблема ж :) Поставь 2.1 систему. Час(день) один слушает своё, другой час второй слушает своё любимое. И тогда у вас будет полная литучка.
 

boombick

boombick.org
Час(день) один слушает своё, другой час второй слушает своё любимое
Нафиг мне _в процессе работы_ слушать музыку, которая мне не нравится? Как думаешь, это благоприятно отразится на качестве кода?
 
Сверху