Frage

Wir haben ein Team von etwa 7 Ingenieuren, die ich betreue.Wir haben kein formelles Büro, in dem wir alle arbeiten.Stattdessen befinden sich einige wenige außerhalb unserer Stadt, während der Rest in der Bay Area verstreut ist.

Sehr häufig versuche ich, einigen unserer jüngeren (oder nicht jüngeren) Entwickler Konzepte wie TDD oder Refactoring beizubringen.Die beste Technik, die ich kenne, ist die Paarprogrammierung, bei der man beide am selben Computer sitzt und gemeinsam an einem Problem arbeitet.Da wir die meiste Zeit nicht am selben Ort sind, besteht die einzige Möglichkeit darin, eine Art Bildschirmfreigabe und Skype zu nutzen, damit einer von uns „fährt“, während der andere sich berät, und dann wechselt.

Meine Frage ist, hat jemand diese „virtuelle“ Paarprogrammierung ausprobiert und fanden Sie sie überhaupt nützlich?

War es hilfreich?

Lösung

Ich habe ziemlich viel Paarprogrammierung durchgeführt, nicht nur standortübergreifend, sondern auch zeitzonenübergreifend.Ich lebe in Israel und arbeite ständig mit Menschen an der Westküste.Der beste Weg, den ich gefunden habe, ist die Verwendung einer gemeinsamen VNC-Sitzung und Skype.Sie benötigen ein gewisses „gutes Benehmen“, um sicherzustellen, dass jeweils nur einer von uns tippt.Der von uns verwendete VNC-Server stellt uns zwei unterschiedliche Zeiger zur Verfügung, sodass wir unsere jeweiligen Mäuse bewegen können, ohne uns in die Quere zu kommen, solange wir nicht tatsächlich klicken.
Das Hauptproblem besteht darin, dass die Zwischenablage gemeinsam genutzt wird. Wenn also jemand etwas auswählt, wird es automatisch in die Zwischenablage des anderen kopiert.
Generell gilt, dass die standortübergreifende Paarprogrammierung zwar nicht ideal, aber durchaus praktikabel und auf jeden Fall nützlich ist.

Andere Tipps

Ich weiß, dass Netbeans ein Plugin für „Developer Collaboration“ hat (Flash-Demo), was im Grunde einer Multiplayer-Programmierung ähnelt.Alle Änderungen, die Sie in Ihrer lokalen Datei vornehmen, werden fast sofort auf die andere Partei repliziert.Es ist ziemlich cool, aber es ist schon eine Weile her, seit ich damit gespielt habe, und ich habe es nie für ein echtes Projekt verwendet.Es gibt ein Chat-Fenster, aber wahrscheinlich ist es besser, weiterhin zu telefonieren oder Skype zu nutzen.

Ja, Sie können Programme durchaus aus der Ferne koppeln, und ich habe dies über längere Zeiträume erfolgreich getan.Wir hatten den Skype-Audio-Chat fast den ganzen Tag über geöffnet und genutzt Teamviewer um den Bildschirm zu spiegeln.Hat super funktioniert.

Wenn ich mich richtig erinnere, verfügt es über ein Stift-/Zeichenwerkzeug, mit dem der Navigator dem Fahrer auf dem Bildschirm zeigen kann, worüber er spricht.

Der Versuch, Programme aus der Ferne zu koppeln, wird wahrscheinlich nicht so nützlich sein wie dies persönlich zu tun, aber Sie können dies natürlich auch mit kollaborativen Editoren tun SubEthaEdit in OS X.

Auf Wikipedia gibt es eine ziemlich gute Liste von Editoren mit kollaborativen Echtzeitfunktionen:http://en.wikipedia.org/wiki/Collaborative_real-time_editor#List_of_current_editors

Ich persönlich habe es versucht Etherpad das später von Google übernommen und teilweise in die Echtzeit-„Mail“-Übertragung von Google Wave integriert wurde, ein Funktionssatz, der jetzt vermutlich in Google-Dokumenten erhalten bleibt.Eine weitere sehr schöne webbasierte Lösung ist die von Mozilla Cloud-Code früher bekannt als Bespin.Auch Adobe ist mit BuzzWords in dieses Thema eingestiegen, wird jedoch nicht zum Codieren verwendet, daher gibt es keine Syntaxhervorhebung und es funktioniert auch mit Sperrsitzungen, damit nur ein Editor die Kontrolle übernimmt.Mit dem Eclipse COLA Framework (ECF) hatte ich kein Glück, aber das Projekt sah vielversprechend aus, als ich es mir das letzte Mal angesehen habe.Manche Leute verwenden einfach Google Docs

Unternehmen wie z.B Google Und Amazonas verwenden diese Web-Editoren auch häufig in ihrem Interviewprozess für schnelle Paarprogrammierungssitzungen Bei kleineren Problemen, bei denen der Befragte in einer webbasierten Sitzung codiert und ein Interviewer Texthervorhebungen usw. verwendet, um bestimmte Sitzungen genauer zu untersuchen, habe ich gesehen, dass Interviewer sogar einfach den Code nebenher bearbeitet haben.

Abgesehen von einigen der hier gezeigten Berichte hatte ich nie Probleme mit Verzögerungen bei der Überquerung des Atlantiks und habe längere/intensive Codierungssitzungen durchgeführt.Es gibt zahlreiche Untersuchungen zum Einfluss von Jitter und Verzögerungen auf die kollaborative Bearbeitung, wobei Jitter häufig als weitaus störender empfunden wird und eine konstante Verzögerung, die bei allen verwendeten Tools gleich ist, als etwas erscheint, das Benutzer übernehmen können, um:http://scholar.google.com/scholar?q=Jitter+and+Delay+real+time+collab

Wenn man nebeneinander sitzt, kann man zwar einige der erforderlichen Anpassungen an einen anderen Kommunikationsstil vermeiden, es gibt jedoch deutliche Vorteile bei der Verwendung von Software für die Zusammenarbeit.Die Kopplung über ein System ermöglicht die vollständige Aufzeichnung einer gesamten Sitzung. Sollten Details, an denen in einer Sitzung gearbeitet wurde, unklar werden (obwohl das vielleicht nicht passieren sollte, aber sicherlich manchmal der Fall ist), können Sie einfach die Aufzeichnung der Sitzung durchgehen.Etherpad verfügt über eine praktische kleine Funktion, mit der Sie eine Zeitleiste aller Bearbeitungen durchgehen und durch die Sitzung hin- und herblättern können.

Meiner Meinung nach sollte die gemeinsame Codierung nicht auf die gleiche Weise wie die Paarprogrammierung angegangen werden, da Sie die Möglichkeit zur gleichzeitigen Bearbeitung nutzen sollten.Ping-Pong-Programmierung wird viel interaktiver, wenn ständig Tests geschrieben werden und jeder Entwickler nach Belieben entscheidet, ob er dem anderen live zusieht oder stattdessen den fertigen Test abwartet und versteht.Es ermöglicht kleine Umwege, den gleichen Ansatz im A/B-Programmierstil zu schreiben, ohne darauf warten zu müssen, dass beide nacheinander implementiert und diskutiert werden, sondern beide parallel geschrieben werden können.

Mit freundlichen Grüßen Granit

Wir haben verwendet webex dafür.Obwohl es für solche Dinge nicht unbedingt ideal ist, verfügt es über einige Funktionen, mit denen man festlegen kann, wer wann den Computer steuert.

Ich wollte einfach ein wirklich nettes Plugin für die Eclipse-IDE hinzufügen – es heißt Saros und es ist OSS.Hat einige wirklich schöne Funktionen!
Es verfügt über einige nette Funktionen (Hervorhebung der Quelle, integriertes VoIP (Beta), Chat und einige weitere, die folgen werden, wie z. B. Bildschirmfreigabe- und Whiteboard-Funktionen) ...

Informieren Sie sich unter saros-project.org

Wir haben die neuen ECF-Funktionen in Eclipse 3.4 (Ganymede) verwendet und es gefällt uns.Wir sind nicht wirklich voneinander entfernt, außer wenn einer von uns zu Hause arbeitet, aber ECF ermöglicht Ihnen das Bearbeiten derselben Datei und verfügt außerdem über ein IM-Fenster zum Chatten.Wenn Sie Skype nutzen, umso besser.

Es gibt ein gutes Screencast auf Vimeo von der Bildschirmfreigabe, die uns wirklich begeistert hat.

In meinem aktuellen Job habe ich mit einem anderen Entwickler zusammengearbeitet, der an einem anderen Standort tätig war.Während wir uns ziemlich oft durch Telefonanrufe (Headsets sind ein großes Plus!) und Bildschirmfreigabe beraten, war die echte „gemeinsame Arbeit“ (einschließlich einiger echter Paarprogrammierung) viel effektiver, als ich seinen Standort besuchte (habe das zweimal gemacht). eine ganze Woche, und diese Wochen waren sehr intensiv).

Das Hauptproblem bei der Bildschirmfreigabe besteht darin, dass man nie weiß, wer die Maus bewegen wird, ...(zum Beispiel auf etwas auf dem Bildschirm zeigen).

Bei diesem Projekt teilten wir die Arbeit schließlich in zwei Teilprojekte auf und kamen zusammen (was bedeutet:auf Reisen), um sie zusammenzustecken.

Unter OSX habe ich vim und eine GNU-Bildschirmsitzung für mehrere Benutzer verwendet – dies führt zu einer viel besseren Reaktionsfähigkeit als VNC, Bildschirmfreigabe usw.Ich verwende dieses Setup zusammen mit Skype und einem Headset für die Sprachkommunikation.

Ich habe schon oft eine solche Fernkopplung durchgeführt und finde, dass sie sehr gut funktionieren kann.Damit es jedoch gut funktioniert, müssen meiner Meinung nach, genau wie beim Face-to-Face-Pairing (aber wahrscheinlich noch mehr), beide Parteien gut motiviert und mit den von Ihnen verwendeten Tools vertraut sein.Außerdem (mehr als im persönlichen Szenario) denke ich, dass es hilfreich ist, mehr fortlaufende Kommentare zu dem abzugeben, was Sie tun.

Ja – ich habe die Fernkopplung durchgeführt.

Wir verwendeten eine altmodische Freisprecheinrichtung und VNC.Wir haben uns zwischen Seattle und Bournemouth, England, zusammengefunden. Die transatlantische Zeitverzögerung machte die Verwendung von VNC sehr schwierig – es ist schwierig, durch die zufällige Netzwerkverzögerung nicht jemanden zu unterbrechen, der die Maus benutzt.

Man braucht viel Geduld und einige Konventionen, um abwechselnd Tastatur und Maus zu „steuern“.

Wir haben das Remote-Pairing für die Entwicklung nur für kurze Zeiträume durchgeführt – sagen wir etwa 30 Minuten, weil die meisten Leute ziemlich schnell Kopfschmerzen bekamen. Es war so schmerzhaft mit den Netzwerkverzögerungen.Wir haben uns nur auf die Lösung von Problemen konzentriert und darauf, dass die Leute an einen Punkt kamen, an dem es einfacher war, es durch Demonstrationen zu erklären, als durch das Lesen von Texten in einem Wiki.

Ich denke, dass man heutzutage mit Remotedesktop – den ich auch für die Kopplung verwendet habe – möglicherweise bessere Ergebnisse erzielen kann.Mein Remote-Desktop-Remote-Pairing diente jedoch der Unterstützung und Bereitstellung und fand zwischen zwei Remote-Entwicklern statt, die sich bei der Arbeit an einem Computer anmeldeten.Die Leute sagen mir, dass Remote-Desktop hinsichtlich der Bandbreite viel effizienter ist als VNC – aber ich kann das nicht bestätigen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top