Подтвердить что ты не робот

Можете ли вы спамить программу удаленно?

У нас есть команда из 7 инженеров, которых я контролирую. У нас нет официального офиса, где мы все работаем. Вместо этого горстка находится за пределами нашего города, а остальные из нас разбросаны по области залива.

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

Мой вопрос: кто-нибудь пробовал это "виртуальное" программирование пары, и нашел ли вы его вообще полезным?

4b9b3361

Ответ 1

Я сделал довольно много парного программирования не только кросс-сайта, но и кросс-часовую зону. Я живу в Израиле, и я постоянно работаю с людьми на Западном побережье. Лучший способ, который я нашел, - использовать общий сеанс VNC и скайп. Вам нужно какое-то "хорошее поведение", чтобы убедиться, что только один из нас набирает в определенное время. Сервер VNC, который мы используем, дает нам два разных указателя, поэтому мы можем перемещать наших соответствующих мышей, не мешая им, пока мы на самом деле не нажимаем.
Основная проблема заключается в том, что буфер обмена является общим, поэтому, если кто-то выбирает то, что он автоматически копирует в другой буфер обмена.
Как правило, парное программирование кросс-сайта, хотя и не идеальное, безусловно выполнимо и наиболее определенно полезно.

Ответ 2

Я знаю, что у Netbeans есть плагин для "Collaboration Developer" (flash-демонстрация), которая в основном похожа на многопользовательское программирование. Любые изменения, внесенные вами в локальный файл, реплицируются почти немедленно другой стороне. Это довольно круто, но с тех пор я играл с ним, и я никогда не использовал его для реального проекта. Существует окно чата, но вы, вероятно, лучше разговариваете по телефону или используете скайп.

Ответ 3

Да, вы можете полностью спаривать программу удаленно, и я сделал это успешно в течение длительных периодов времени. У нас был широко открытый Skype-чат в течение всего дня, и он использовал TeamViewer, чтобы отобразить экран. Работала великолепно.

Если я правильно помню, у него есть инструмент для рисования/рисования, который позволяет навигатору показывать драйверу, о чем он говорит на экране.

Ответ 4

Попытка скомпоновать пару программ, вероятно, не будет столь же полезной, как это делать лично, но вы можете, конечно, сделать это, используя совлокальные редакторы, как SubEthaEdit в OS X.

Ответ 5

есть довольно хороший список редакторов с совместными функциями реального времени в википедии: http://en.wikipedia.org/wiki/Collaborative_real-time_editor#List_of_current_editors

Я лично попробовал Etherpad, который позже был приобретен Google и частично интегрирован в трансляцию "почты" в режиме реального времени в Google Wave, которая сейчас предположительно сохраняется в документах Google. Еще одним очень приятным веб-решением является Mozilla Cloud code, ранее известный как Bespin. Adobe также вступила в это с BuzzWords, хотя и не используется для кодирования, следовательно, не выделяет синтаксис и не работает, он работает с сеансами блокировки только для одного редактора. Мне не повезло с Eclipse COLA Framework (ECF), но проект выглядел многообещающим, когда я в последний раз заглядывал в него. Некоторые люди просто используют документы Google

Компании, такие как Google и Amazon, также часто используют те веб-редакторы в процессе собеседования для быстрых сессий парного программирования strong > по меньшим проблемам, когда коды респондентов на веб-сеансе и интервьюер используют подсветку текста и, таким образом, для обучения в конкретных сеансах, я видел, как интервьюеры даже просто редактировали код вместе.

Помимо некоторых из представленных здесь отчетов, я никогда не сталкивался с проблемами в Атлантике с задержкой и делал более длинные/интенсивные сессии кодирования. Существует множество исследований влияния джиттера и задержки на совместное редактирование, где довольно часто дрожание воспринимается как гораздо более разрушительная и постоянная задержка, равная всем используемым инструментам, как то, что пользователи могут принять: http://scholar.google.com/scholar?q=Jitter+and+Delay+real+time+collab

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

По-моему, кодовое сотрудничество не должно подходить так же, как и парное программирование, поскольку вы должны использовать возможность одновременного редактирования. Программирование пинг-понга становится гораздо более интерактивным, когда тесты постоянно пишутся, каждый разработчик выбирает по желанию, смотреть ли другой в прямом эфире или ждать и понимать готовый тест. Это позволяет малым объединителям писать один и тот же подход в режиме программирования A/B без необходимости ждать, чтобы оба они были последовательно реализованы и обсуждены, вместо этого оба могут быть написаны вместе.

С наилучшими пожеланиями Granit

Ответ 6

Мы использовали webex для этого. Хотя это не обязательно идеально подходит для такого рода вещей, у него есть некоторые функции для оповещения о том, кто контролирует компьютер и когда.

Ответ 7

Я просто хотел добавить действительно хороший плагин для Eclipse IDE - его называемый Saros и это OSS. Есть некоторые действительно красивые функции!
У него есть несколько приятных функций (подсветка источника, встроенного VoIP (бета), чата и некоторых других возможностей, таких как функции совместного использования экрана и доски)...

Узнайте об этом на saros-project.org

Ответ 8

Мы использовали новые функции ECF в Eclipse 3.4 (Ganymede), и нам это нравится. Мы на самом деле не удалены друг от друга, кроме случаев, когда один из нас работает дома, но ECF позволяет редактировать один и тот же файл, а также имеет окно чата для чата. Если вы используете Skype, тем лучше.

Там хороший screencast на Vimeo, который действительно заставлял нас в восторге от этого.

Ответ 9

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

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

В этом проекте мы разделили работу на 2 подпроекта и собрались вместе (что означает: путешествие), чтобы объединить их.

Ответ 10

В OSX я использовал vim и многопользовательский сеанс экрана GNU - это дает гораздо лучшую отзывчивость, чем VNC, совместное использование экрана и т.д. Я использую эту настройку вместе со Skype и гарнитурой для голосовой связи.

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

Ответ 11

Да - я сделал удаленное соединение.

Мы использовали старомодный громкоговоритель и VNC. Мы спаривались между Сиэтлом и Борнмутом, Англия. Кросс-атлантическое отставание времени сделало VNC очень трудным в использовании - трудно не прерывать кого-то другого с помощью мыши со случайным сетевым отставанием.

Вам нужно много терпения, а некоторые соглашения по очереди "управляют" клавиатурой и мышью.

Мы только удалили пару для разработки в течение коротких периодов времени - скажем, 30 минут или около того, потому что большинство людей быстро развивали головные боли. Было так больно с задержками в сети. Мы просто продолжали решать проблемы, и люди дошли до точки, где ее легче было объяснить демонстрацией, чем путем чтения текста в вики.

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