Domanda

Abbiamo un team di circa 7 ingegneri, che supervisiono.Non abbiamo un ufficio formale in cui lavoriamo tutti.Invece, una manciata si trova fuori dalla nostra città, mentre il resto di noi è sparso nella Bay Area.

Molto spesso, mi ritrovo a tentare di insegnare concetti come TDD o refactoring ad alcuni dei nostri sviluppatori più giovani (o meno).La migliore tecnica che conosco è la programmazione in coppia, in cui entrambi vi sedete allo stesso computer e lavorate insieme su un problema.Dato che non siamo nello stesso posto per la maggior parte del tempo, l'unica opzione è utilizzare una sorta di condivisione dello schermo e Skype per far sì che uno di noi "guidi" mentre l'altro si consulta, e poi cambiamo.

La mia domanda è: qualcuno ha provato questa programmazione di coppia "virtuale" e l'ha trovata utile?

È stato utile?

Soluzione

Ho fatto parecchia programmazione in coppia non solo tra siti ma anche tra fusi orari.Vivo in Israele e lavoro sempre con persone sulla costa occidentale.Il modo migliore che ho trovato è utilizzare la sessione VNC condivisa e Skype.Hai bisogno di un "buon comportamento" per assicurarti che solo uno di noi scriva alla volta.Il server VNC che utilizziamo ci fornisce due puntatori diversi con cui possiamo muovere i nostri rispettivi mouse senza intralciarci, purché non clicchiamo effettivamente.
Il problema principale è che gli appunti sono condivisi, quindi se qualcuno seleziona qualcosa viene automaticamente copiato negli appunti dell'altro.
Come regola generale, la programmazione in coppia tra siti, sebbene non sia l'ideale, è certamente praticabile e sicuramente utile.

Altri suggerimenti

So che Netbeans ha un plugin per "Collaborazione con gli sviluppatori" (demo flash), che è fondamentalmente come la programmazione multiplayer.Qualsiasi modifica apportata al file locale viene replicata quasi immediatamente all'altra parte.È piuttosto interessante, ma è da un po' che non ci gioco e non l'ho mai usato per un vero progetto.C'è una finestra di chat ma probabilmente è meglio continuare a parlare al telefono o usare Skype.

Sì, puoi assolutamente accoppiare il programma da remoto e l'ho fatto con successo per lunghi periodi di tempo.Avevamo la chat audio di Skype aperta praticamente tutto il giorno e utilizzata TeamViewer per eseguire il mirroring dello schermo.Ha funzionato splendidamente.

Se ricordo bene è dotato di uno strumento penna/disegno che permette al navigatore di mostrare sullo schermo al conducente di cosa sta parlando.

Provare ad accoppiare il programma da remoto probabilmente non sarà utile quanto farlo di persona, ma puoi ovviamente farlo utilizzando editor collaborativi come SubEthaModifica in OS X.

c'è un buon elenco di editor con funzionalità collaborative in tempo reale su Wikipedia:http://en.wikipedia.org/wiki/Collaborative_real-time_editor#List_of_current_editors

Ho provato personalmente Etherpad che è stato successivamente acquisito da Google e parzialmente integrato nella trasmissione "posta" in tempo reale di Google Wave, un set di funzionalità che ora presumibilmente sopravvive nei documenti Google.Un'altra soluzione basata sul web molto interessante è quella di Mozilla Codice nuvola formalmente conosciuto come Bespin.Anche Adobe ha fatto il suo ingresso in questo con BuzzWords, sebbene non venga utilizzato per la codifica, quindi nessuna evidenziazione della sintassi e simili, funziona con il blocco delle sessioni affinché un solo editor possa prendere il controllo.Non ho avuto fortuna con Eclipse COLA Framework (ECF), ma il progetto sembrava promettente l'ultima volta che l'ho esaminato.Alcune persone utilizzano semplicemente Google Documenti

Aziende come Google E Amazzonia comunemente usano anche questi editor web nel loro processo di intervista per sessioni di programmazione rapida della coppia su problemi più piccoli, in cui l'intervistato codifica in una sessione basata sul web e un intervistatore utilizza l'evidenziazione del testo e simili per approfondire sessioni specifiche, ho visto intervistatori anche semplicemente modificare il codice a fianco.

A parte alcuni dei report visti qui, non ho mai avuto problemi con la traversata dell'Atlantico in ritardo e ho svolto sessioni di codifica più lunghe/intense.Esiste una discreta quantità di ricerche sull'influenza del jitter e del ritardo sull'editing collaborativo, dove molto spesso il jitter è percepito come molto più distruttivo e il ritardo costante, uguale in tutti gli strumenti utilizzati, appare come qualcosa che gli utenti possono adottare:http://scholar.google.com/scholar?q=Jitter+and+Delay+real+time+collab

Anche se sedersi uno accanto all’altro può evitare alcuni degli adattamenti richiesti a un diverso stile di comunicazione, ci sono notevoli vantaggi nell’utilizzare il software per collaborare.L'accoppiamento su un sistema consente la registrazione completa di un'intera sessione e, nel caso in cui i dettagli su cui si è lavorato in una sessione diventino poco chiari (anche se ciò forse non dovrebbe accadere, sicuramente a volte accade), puoi semplicemente passare attraverso la registrazione della sessione.Etherpad aveva una piccola e pratica funzionalità che ti consente di scorrere una sequenza temporale di tutte le modifiche e scorrere indietro e in quarto luogo nella sessione.

A mio avviso, la codifica in modo collaborativo non dovrebbe essere affrontata allo stesso modo della programmazione in coppia, in quanto dovresti sfruttare la capacità di modificare contemporaneamente.La programmazione del ping pong diventa molto più interattiva quando i test vengono scritti costantemente, ogni sviluppatore sceglie a piacimento se guardare l'altro dal vivo o aspettare e capire invece il test finito.Consente piccole deviazioni scrivendo lo stesso approccio in modo di programmazione A/B senza dover attendere che entrambi vengano implementati e discussi in sequenza, invece entrambi possono essere scritti insieme.

Migliori saluti Granito

Noi abbiamo usato webex per questo.Sebbene non sia necessariamente l'ideale per questo genere di cose, ha alcune funzionalità per mediare chi controlla il computer e quando.

Volevo solo aggiungere un plugin davvero carino per l'IDE Eclipse: si chiama Saros ed è OSS.Ha delle caratteristiche davvero belle!
Ha alcune funzionalità interessanti (sorgente di evidenziazione, VoIP integrato (beta), chat e altre in arrivo come la condivisione dello schermo e le funzionalità della lavagna)...

Scoprilo su saros-project.org

Stiamo utilizzando le nuove funzionalità ECF in Eclipse 3.4 (Ganymede) e ci piace.In realtà non siamo lontani l'uno dall'altro tranne quando uno di noi lavora a casa, ma ECF ti consente di modificare lo stesso file e ha anche una finestra di messaggistica istantanea per chattare.Se usi Skype tanto meglio.

C'è un bene screencast su Vimeo della condivisione dello schermo che ci ha davvero entusiasmati.

Nel mio lavoro attuale, ho lavorato con un altro sviluppatore che si trovava in un'altra posizione.Anche se ci consultavamo abbastanza spesso tramite telefonate (le cuffie sono un enorme vantaggio!) e la condivisione dello schermo, il vero "lavoro insieme" (inclusa una vera programmazione in coppia) è stato molto più efficace quando ho visitato la sua posizione (l'ho fatto due volte per un'intera settimana, e queste settimane lo furono molto intenso).

Il problema principale con la condivisione dello schermo è che non sai mai chi muoverà il mouse,...(ad esempio per indicare qualcosa sullo schermo).

Su quel progetto, abbiamo finito per dividere il lavoro in 2 sottoprogetti e ci siamo riuniti (ovvero:in viaggio) per collegarli insieme.

Su OSX, ho utilizzato vim e una sessione schermo GNU multiutente: questo offre una reattività molto migliore rispetto a VNC, condivisione dello schermo, ecc.Utilizzo questa configurazione insieme a Skype e un auricolare per la comunicazione vocale.

Ho eseguito molti abbinamenti da remoto come questo e trovo che possa funzionare molto bene.Tuttavia, affinché funzioni bene, proprio come con l’accoppiamento faccia a faccia (ma probabilmente anche di più), penso che sia necessario che entrambe le parti siano ben motivate e abbiano familiarità con gli strumenti che stai utilizzando.Inoltre (più che nello scenario faccia a faccia) penso che sia utile fornire più commenti continui su ciò che stai facendo.

Sì, ho effettuato l'accoppiamento remoto.

Abbiamo utilizzato un vivavoce vecchio stile e VNC.Abbiamo fatto coppia tra Seattle e Bournemouth, in Inghilterra. Il ritardo temporale tra le due sponde dell'Atlantico ha reso VNC molto difficile da usare: è difficile non interrompere qualcun altro che utilizza il mouse con il ritardo di rete casuale.

Serve molta pazienza e alcune convenzioni che si alternano "guidando" tastiera e mouse.

Abbiamo effettuato l'accoppiamento remoto per lo sviluppo solo per brevi periodi di tempo, diciamo circa 30 minuti, perché la maggior parte delle persone ha sviluppato mal di testa abbastanza rapidamente. È stato così doloroso con i ritardi della rete.Ci siamo limitati a risolvere i problemi e a far sì che le persone arrivassero al punto in cui era più facile spiegare tramite dimostrazioni che leggendo il testo su un wiki.

Penso che oggigiorno potresti ottenere risultati migliori utilizzando il desktop remoto, che ho utilizzato anche per l'accoppiamento.Tuttavia, il mio accoppiamento remoto del desktop remoto era per il supporto e la distribuzione ed era tra due sviluppatori remoti che accedevano a una macchina al lavoro.Le persone mi dicono che il desktop remoto è molto più efficiente di VNC in termini di larghezza di banda, ma non posso verificarlo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top