Я только что закончил читать Peopleware (DeMarco, Lister) и немного раньше исследовал экстремальное программирование (XP). На мой взгляд, эти два подхода почти исключают друг друга.
Peopleware предлагает изолировать программистов от любых помех и устанавливает приоритет для непрерывной работы, чтобы помочь программистам добиться успеха. С другой стороны, XP предлагает обеспечить как можно большую связь, даже предлагая программистам «сидеть вместе», кодировать парами и вообще работать в одной комнате (создавая много шума).
Являются ли эти две конкурирующие философские школы, возможно, одна из них оказалась правильной / неправильной или есть эффективный компромисс? Я вижу замечания обеих сторон, но не вижу разумного компромисса.
Я очень новичок в изучении управления разработкой программного обеспечения, поэтому возможно, что я просто что-то неправильно понял. Все комментарии приветствуются.
PS Как дополнительный мини-вопрос, как программист, что вы найдете более продуктивным?
источник
Ответы:
Вы упустили момент с Peopleware. Нигде в книге не предлагается выделять программистов в отдельных офисах, но группируйте их по 2-4 человека в офисе.
Основная причина заключается в том, чтобы изолировать программистов от шума, не связанного с программированием, такого как продавец, который кричит на телефон, болтовня между менеджером и секретарем, шум, создаваемый движущимися людьми, звон по телефону, хлопки дверьми и многое другое.
Экстремальное программирование полностью совместимо с 2-4 офисами. Для парного программирования вам нужно максимум 2 или 3.
источник
Я думаю, что оба подхода описывают общую стратегию работы, но не обязательно каждую рабочую минуту в день. Баланс должен существовать.
Будьте достаточно близко, чтобы обеспечить быстрое общение, но отступите в какую-то укромную область, когда обсуждение закончено и должна последовать реальная работа.
Я лично нахожу, что «сидеть вместе» и «генерировать много шума» в течение всего времени не работает. Есть время для разговора, чтобы обсудить проблемы, принять решение о следующих шагах и так далее, а затем есть время для кодирования, и у людей должны быть тихие области, чтобы сделать это.
источник
Ключевой является фраза «изолировать программистов от любых нарушений и устанавливать приоритет непрерывной работы». Приоритет ясен в XP, когда истории выбираются на каждой итерации как наиболее ценные. Клиенты должны стремиться иметь «стабильный» набор историй, не слишком меняя свое мнение в середине итерации (это может случиться, но это должны быть особые случаи, а не норма).
Часть «изолировать программистов» является самой сложной. Это означает, что программисты должны делать то, что умеют лучше всего: программировать. Чтобы XP работала, программисты должны быть помещены в среду, в которой они сосредоточены исключительно на завершении историй, без каких-либо внешних издержек, таких как встречи, телефонные звонки, небольшие услуги и тому подобное. Это может быть достигнуто либо путем помещения каждой пары программистов в их собственный офис, либо путем размещения всех программистов в военной комнате, куда никто не может войти, если в этом нет крайней необходимости.
источник
Лично я считаю невозможным работать в паре с кем-то, даже если я учусь у этого человека. Может быть, просто так, что некоторые люди (то есть я) работают лучше в «классическом» стиле (вход в зону, тишина и т. Д.).
Или, может быть, это тот факт, что XP в основном реализуется в магазинах веб-разработок, в которых люди носят много шляп, и вместо того, чтобы решать сложные проблемы в одном домене (например, оптимизировать кусок кода), они тратят время на поиск уже существующего решения проблемы, а не очень сложный интеллектуально (например, интеграция корзины покупок на страницу и т. д.).
Для чего-то подобного, работа в парах, много общения и т. Д. Может быть единственным способом эффективного продвижения вперед (вы не собираетесь тратить X часов только на то, чтобы найти модуль отправки электронной почты Joomla! / Droopal bug, вы ?)
источник
Да, XP полностью несовместима с Peopleware и хорошими методами разработки программного обеспечения. Возможно, вам нужно обновить раздел, прежде чем продолжить?
http://code.scottshipp.com/2017/03/22/open-office-plans-excerpt-from-peopleware/
Таблица 8-1 внизу в значительной степени расшифровывает его, а последняя запись является последней торпедой.
В офисе с несколькими людьми физически не существует способа избежать этого. Чья-то супружеская пара звонит им, и даже если человек уходит после ответа, вы все равно будете прерваны ответом. Кто-то пытается быть вежливым, идет на кофе и кричит, хочет ли кто-нибудь чего-нибудь.
Давайте не будем забывать, что кодер, который надевает наушники и увеличивает громкость, чтобы вы могли все еще слышать ее на расстоянии 6 футов или хуже, чувствует себя вынужденным использовать ручку / карандаш для игры на барабане вместе с частью «великолепной мелодии». О, и если вам не повезло иметь одного спортивного болельщика, работающего в сфере ИТ, они приходят с накачкой.
"О! Вы видели игру прошлой ночью? !!!! И тот ЗВОНОК !!!! Они были слепы ?? !!"
Ну, вы поняли.
XP по раннему определению - это 2 программиста и одна клавиатура. Эта методология действительно подходит только для глубокого погружения в труднодоступные исправления ошибок, а не для крупномасштабной разработки программного обеспечения. Концепции Open Plan и Team Room нарушают исследования, проведенные в Peopleware.
источник