Я знаю, что парное программирование - это техника гибкой разработки программного обеспечения, при которой два программиста работают вместе на одной рабочей станции. Один, драйвер, пишет код, а другой, наблюдатель, просматривает каждую строку кода в том виде, в каком она введена.
Но мне просто интересно, стратегия еще работает в этом случае. Например
- если у них очень разные навыки программирования.
- если один никогда не сталкивался с проблемной областью, а другой -
- Это все еще нормально, если у них низкий уровень навыков программирования?
Не могли бы вы предложить стратегию парного программирования в приведенном выше случае?
agile
pair-programming
Sakares
источник
источник
Ответы:
Предполагая, что более опытный человек в паре имеет склонность наставлять другого человека, соединение человека с небольшим опытом в области языка или проблемной области с опытным человеком будет способствовать передаче знаний. Менее опытный человек будет иметь наставника, который будет инструктировать их по языку, предметной области, применению и передовым методам или соглашениям группы.
На C2 wiki есть интересное резюме о передаче знаний с использованием парного программирования . Более старший человек, которого привлекли к работе в качестве наставника команды, многому научился у младших программистов, и его знания даже выросли в результате сотрудничества с более младшими, менее опытными разработчиками программного обеспечения. Есть и другие истории о том, что опытные программисты были в паре с экспертами по предметной области.
источник
Это именно то, для чего было разработано парное программирование: обмен опытом между старой бородой и молодым кузнечиком.
Это двусторонний обмен: ловкие насекомые могут многому научить ревматический мозг.
источник
Когда меня повысили в моей нынешней команде, я был новичком в J2EE, но я был экспертом в этой области. Мой старший (новый руководитель группы) был опытным в J2EE, но не в платформе.
Я думаю, что я узнал больше о Java2EE за эти 4 месяца с парным программированием, чем читая книгу, и руководитель группы также узнал о платформе.
Разрыв в опыте между ними является ключом к парному программированию imho.
источник
Я опишу свой опыт и постараюсь извлечь из него «стратегию».
Я однажды запрограммировал пару с полным непрограммистом. Он был экспертом в предмете программного продукта, который мы разработали. Напротив, у меня не было опыта в проблемной области. И он также был моим руководителем в данный момент (я знаю, это может звучать странно :)
Основным преимуществом этой методологии было то, что мне пришлось объяснять реализацию многих вещей из его области знаний, таким образом обеспечивая точность реализации и его понимание процесса, что означало, что он понимал, почему это заняло это время.
Еще одним преимуществом является легкость сосредоточиться на задаче, не отвлекаясь (ха-ха, представьте, что вы открываете Twitter перед носом вашего босса).
Однако иногда это было довольно пугающе, поскольку даже перерыв на чай стал «отвлечением от работы» (не с его точки зрения; просто было неудобно просить перерыв и так далее).
Таким образом, это на самом деле не парное программирование, так как он практически не мог просмотреть код в том виде, в котором он был напечатан. Однако, это казалось разумной стратегией (по крайней мере, какое-то время). В конечном итоге это сработало из-за относительной простоты как методологии разработки (я имею в виду, что не было задействовано никаких сложных методик проектирования программного обеспечения, таких как шаблоны ООП), так и предмета. Я думаю, это не сработало бы, если бы нам пришлось разрабатывать компилятор. Я полагаю, что это все еще могло бы работать, если наблюдатель, не являющийся программистом, участвует в процессе разработки небольших четко определенных частей. Скажем, нормально, чтобы он наблюдал за программированием функции «вычислить параметр X из Y и Z по заданному алгоритму», но может быть не так хорошо, чтобы он наблюдал за всем процессом проектирования системы (то есть за развитием архитектуры программного обеспечения, то есть за иерархией классы,
Я думаю, что он работал бы еще лучше, если бы у него были некоторые базовые навыки программиста, поскольку мне не пришлось бы объяснять, что такое массив.
Надеюсь, это поможет :)
источник
По моему опыту, если оба программиста имеют низкий уровень квалификации, это может быть проблемой. В этом случае часто возникает тенденция попробовать программирование копирования-вставки. Я думаю, что может быть хорошей идеей не объединять двух начинающих программистов, пока они не достигнут определенного уровня, определенного командой.
В противном случае парное программирование может быть отличной идеей, если конечно два парня готовы поделиться тем, что они знают. Это не только отличный способ держать всех в курсе исходного кода, но и отличное место для новых идей и дискуссий.
источник
Пока члены команды уважают друг друга, парное программирование может быть полезным независимо от уровня опыта программистов. Даже если младший программист обнаружит несколько синтаксических ошибок (которые мы все делаем!) Перед более опытным программистом, это все равно сэкономит время при компиляции кода.
Я также думаю, что это может открыть отношение программиста к возможностям других членов их команды, особенно если они непредвзяты и ожидают, что каждый может научить вас чему-то.
источник