Парное программирование: эффективная работа или мучение?
В некоторых компаниях Кремниевой долины считается, что программисту не обязательно иметь отдельный компьютер для того чтобы писать код. Это компании, которые приняли на вооружение парное программирование – оригинальный метод организации рабочего процесса, при котором над одним и тем же кодом работают два сотрудника. Несмотря на то, что метод существенно ускоряет процесс разработки, многим программистам он неудобен чисто с человеческой точки зрения – не каждому разработчику по нраву, когда у него «стоят над душой».
Основное назначение парного программирования заключается в том, чтобы повысить скорость разработки программных продуктов, требующих быстрого выпуска и исправления. Двое разработчиков делят между собой один стол и один компьютер. Один из сотрудников является «ведущим»: он работает на клавиатуре и непосредственно пишет код программы. Тем временем второй сотрудник, «штурман», следит за экраном и проверяет код на наличие ошибок или неверных решений в дизайне.
Истоки популярности парного программирования надо искать в 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), один из тренеров компании, сравнивает парное программирование с семейной жизнью. «Люди, которые какое-то время поработали в паре, начинают вести себя как склочные супруги», - иронически замечает Филипс.
Любовь Касьянова
Короткая ссылка на материал: //cnews.ru/link/a3093