
В некоторых компаниях Кремниевой долины считается, что программисту не
обязательно иметь отдельный компьютер для того чтобы писать код. Это
компании, которые приняли на вооружение парное программирование –
оригинальный метод организации рабочего процесса, при котором над одним и
тем же кодом работают два сотрудника. Несмотря на то, что метод
существенно ускоряет процесс разработки, многим программистам он
неудобен чисто с человеческой точки зрения – не каждому разработчику по
нраву, когда у него «стоят над душой».
Основное назначение
парного программирования заключается в том, чтобы повысить скорость
разработки программных продуктов, требующих быстрого выпуска и
исправления. Двое разработчиков делят между собой один стол и один
компьютер. Один из сотрудников является «ведущим»: он работает на
клавиатуре и непосредственно пишет код программы. Тем временем второй
сотрудник, «штурман», следит за экраном и проверяет код на наличие
ошибок или неверных решений в дизайне.
Истоки популярности
парного программирования надо искать в 1999 г., когда в свет вышла
известная книга Кента Бека (Kent Beck) «Экстремальное программирование».
Кент Бек разработал основные положения метода в 1980-х, трудясь над
софтверным проектом совместно с Уордом Каннингемом (Ward Cunningham),
создателем первой wiki. Все началось с того, что Бек попросил Каннингема
проверить свой код на ошибки. Постепенно между двумя разработчиками
установилось глубокое сотрудничество, и они начали работать в паре,
чтобы быстрее выполнять задачи и тем самым высвобождать время на
реализацию любительских проектов.
Парное программирование объединяет
По
словам Бека, парное программирование объединяет сотрудников настолько,
что они начинают мыслить в одном ключе. «Коммуникация становится
настолько глубокой, что вам больше не нужно использовать слова, —
уверяет Бек, который сейчас трудится в Facebook. - Достаточно хмыкнуть и
ткнуть пальцем в экран». Кроме того, метод позволяет вовремя обнаружить
дорогостоящие ошибки программного обеспечения. И повышает дисциплину – в
паре сотрудники не отвлекаются на веб-серфинг.
В настоящее время
практика парного программирования процветает. Метод нашел поклонников в
офисах таких технологических компаний, как Facebook или сервис
мобильных платежей Square. Square, базирующаяся в Сан-Франциско,
утверждает, что по крайней мере 15% из её программистов полный день
работает в парах. Половина сотрудников прибегает к методу время от
времени – тем более что им позволено выбирать, когда и с кем
сотрудничать.
Pivotal Labs, лаборатория разработки программного
обеспечения, в марте текущего года ставшая частью технологического
гиганта EMC, утверждает, что 175 ее инженеров работают в парах
ежедневно. Некоторые сотрудничают на постоянной основе, другие же
предпочитают постоянно менять партнеров, что среди сотрудников компании в
шутку зовётся «беспорядочным спариванием». Есть и другие формы парного
программирования – к примеру, партнерство в стиле «пинг-понг», когда
партнеры «перекидывают» друг другу задачи. Еще один вариант — парное
программирование на удаленной основе: один сотрудник предоставляет
второму доступ к экрану своего компьютера через интернет.
Свидание вслепую
Хорошо,
если сотрудники находят друг в друге родственную душу, работая в паре.
Однако на практике парное программирование нередко напоминает не очень
удачное свидание вслепую. Уилл Сарджент (Will Sargent), бывший инженер
Grockit, интернет-компании из Сан-Франциско, делится неудачным случаем
из своей практики: однажды ему довелось работать в паре с разработчиком
намного опытнее себя. Когда Сарджент, бывший в паре «ведущим», делал
ошибку, его партнер просто отнимал у него клавиатуру и делал все
по-своему. «Тот уровень, на котором он работал, был для меня
недостижим», — вспоминает Сарджент, покинувший компанию в 2010 г.
Генеральный
директор Grockit Рой Гилберт (Roy Gilbert), тем не менее, заявляет, что
практика парного программирования доказала свой успех. «Наши
разработчики продолжают проповедовать этот метод», - утверждает
президент компании.
Главный враг парного программирования –
человеческие привычки. Брайан Кокол (Brian Kocol), технический директор
Drive Current, ИТ-консалтинговой компании по программному обеспечению,
вспоминает одного из своих инженеров, который имел обыкновение
проговаривать вслух все свои действия над кодом. «Некоторые люди имеют
неудобные привычки – например, разговаривают сами с собой, - замечает
он. - Других сотрудников это сводит с ума». Раздражать может что угодно:
недостаток личной гигиены, неумение вести себя за столом, привычка
класть ноги на стол или чавкать.
В отличие от Grockit, Drive
Current встала на сторону сотрудников, которым парное программирование
не по душе. После двух лет эксперимента, когда разработчиков просили по
три часа в день работать в паре, компания прекратила эту практику. «Не
думаю, что кто-то по ней сильно скучает», - язвительно замечает Йон
Сент-Джон (Jon St. John), один из программистов компании, которому тоже
достался слишком опытный и дотошный «штурман».
С другой стороны,
некоторые сотрудники, испытывающие проблемы с партнером по
программированию, стремятся решить их самостоятельно. Джеми Кайт (Jamie Kite), программист из нью-йоркской консалтинговой компании
Relevance, столкнувшись с взаимонепониманием, вызвала партнёра на
откровенный разговор. Чтобы разобраться в ситуации, им пришлось выписать
свои проблемы и мысли по их решению на доске, однако, в конце концов,
компромисс был найден.
В Relevance, где парное программирование применяется очень активно, существует специальная должность «тренера», который помогает запутавшимся партнерам прийти к пониманию. Марк Филипс (Mark Philips), один из тренеров компании, сравнивает парное программирование с семейной жизнью. «Люди, которые какое-то время поработали в паре, начинают вести себя как склочные супруги», - иронически замечает Филипс.