I don't know if everybody follows VoiceTechnology Google Group:
http://www.linux.com/archive/feature/56443
Original Post:
2009/10/17 Fabrício
Sent to you by Fabrício via Google Reader:
Bem, é notável o crescimento das metodologias ágeis de desenvolvimento de software. Uma das práticas que me agrada muito, é a programação em pares (pair programming). É bem perceptível, a um longo prazo, a diferença que faz essa prática. Navegando pela internet, como um marujo sem rumo, encontrei um post falando sobre Remote Pair Programming. Parece meio estranho, porque o XP (eXtreme Programming) faz alusão a uma dupla programar em um único computador, com um único teclado e um único mouse.
Então, vamos tentar simular este ambiente utilizando 4 ferramentas simples:
- screen
- ssh
- vim
- skype
Destas, só o skype não é open-source. Mas é interessante manter uma conversa verbal, pois conversas escritas podem desviar o foco da programação, que é bem mais rápida e precisa do que a escrita, que pode deixar brechas para má interpretações. A conversa verbal consegue interromper o programador ao mesmo tempo em que escreve, corrigindo-o ou questionando-o.
Conectados no skype, basta decidir em qual máquina será o desenvolvimento. Esta, por sua vez, terá que ter um servidor ssh. Ela será o host da programação. Será necessário, também, nesta máquina, ter instalado o screen, que é um programa que possibilita criar ’sessões’ no terminal.
Host
screen -S PairProgramming
Parece que nada mudou, mas você está numa sessão do screen chamada PairProgramming.
Precione CTRL+a e digite:
:multiuser on
Pressione CTRL+a novamente e digite:
:acladd usuarioclient
Tudo que você ver nesta sessão, será visto pelo outro usuário (usuarioclient) que se conectará nela.
Então, abra o vim, pois será necessário um edito de textos de verdade , e se divirta:
vim /caminho/arquivo
Client
ssh usuarioclient@host
screen -x usuariohost/PairProgramming
Pronto! Agora você está acessando a mesma seção! Tudo que o usuáriohost fizer, o usuárioclient enxergará e vice-versa.
Agora, basta descutir a tarefa via Skype e programar. As atualizações são em tempo real, ou seja, aparecem ao mesmo tempo que são escritos, digo… depende da conexão, mas não é um grande problema.
Caso seja necessário que o usuarioclient não possa modificar o código, apenas assitir e dar pitacos, o usuáriohost deve pressionar CTRL+A e digitar:
:aclchg usuarioclient -w #
Eu ainda vou programar assim, depois digo a experiência.