Desenvolvimento distribuído: precisamos estar no mesmo lugar?

Todos nós estamos presenciando um aumento exponencial por profissionais de TI, seja em desenvolvimento ou infra-estrutura. Das 630 mil oportunidades existentes na América Latina, 300 mil serão criadas no Brasil. Se traduzirmos isto para o nosso dia-a-dia, veremos e comprovaremos que está muito difícil formar equipes consistentes e responsáveis.

É fato que todas as empresas têm enfrentado problemas com contratação de profissionais desta área. Não é fácil efetuar uma seleção e achar inúmeros profissionais disponíveis, atender suas expectativas e suas pretensões salariais, além de prover um ambiente agradável de desenvolvimento.

Então por que não andar por outros caminhos?
Será que precisamos realmente contratar profissionais para estarem fisicamente lado a lado, na mesma sala, todo dia, no mesmo horário?

O conceito de localização não é mais o mesmo.

De qualquer maneira, não podemos fugir de uma verdade básica de todos os projetos: comunicação simples e rápida é fundamental. Além disso, criar afinidades pessoais e conhecer os profissionais com quem você trabalha facilita seu dia-a-dia e aigiliza seu processo de desenvolvimento. Não quero de maneira nenhuma colocar isto em pauta... mas a questão é se realmente temos que estar localizados no mesmo lugar, na mesma cidade, ou no mesmo país.

Na terceira pesquisa sobre desenvolvimento Agile, realizada pela VersionOne, 57% dos entrevistados disseram que algum representante ou equipe estão localizados em outros lugares. Quer dizer, a equipe completa não está concentrada em apenas um escritório, ou prédio, ou cidade. 

Segundo o Distributed Agile Developmento at Microsoft patterns & practices, existem 3 fortes razões para esta porcentagem tão grande:

  1. Necessidade de conhecimento do mercado externo. Equipes localizadas conhecem mais do mercado atual do que equipes de fora estudando este local.
  2. Os talentos não estão em um só lugar. Quanto maior a necessidade por talentos, maior a necessidade de procurar em outros lugares, já que os talentos locais não estão disponíveis.
  3. Redução de custos. Grandes centros têm custo de vida maior, por consequencia, salários maiores. Migrar os custos de desenvolvimento para centros menores pode ser muito lucrativo (se bem feito).

Apesar destes três itens serem importantes, vou focar apenas no segundo. Os talentos não estão em um só lugar.

Fábrica de Software, home office, etc?!?

Se os talentos não podem vir até o trabalho, por que não levar o trabalho até eles?

Atualmente existe uma opção amplamente utilizada: fábrica de software / codificação. Segundo uma grande empresa de TI do Brasil,

“A Fábrica de Codificação é uma solução completa de apoio à programação e controle de qualidade (CQ).

Foi estruturada para ser uma extensão natural da área de TI das organizações, absorvendo as atividades de codificação de componentes e controle de qualidade de código. A Fábrica de Codificação possibilita foco e dedicação do cliente em atividades de desenho e testes das soluções, sem impacto negativo na dinâmica operacional.

O modelo proporciona uma significativa otimização da gestão dos custos, seja pelo reagrupamento dos serviços dentro de um conceito de nivelamento de demanda e ganhos de escala ou por métricas e instrumentos de acompanhamento e controle.”

A idéia é perfeita: criar um centro de desenvolvimento fora dos grandes centros tradicionais, visando a contratação de novos talentos e redução de custos, além de um “departamento” focado em seus processos de desenvolvimento e melhorias. E aqui está o primeiro erro desta “onda” de equipes distribuídas: onde está a questão da comunicação? Em grandes empresas a tendência por fábricas de software é muito grande, mas a preocupação com a comunicação entre os centros responsáveis pela fábrica e a equipe que a compõe é falha ou inexistente.

Ainda estamos em uma fase que a comunicação person to person é fundamental. Por isso, o foco deve ser (mesmo internamente) a comunicação. Se a escolha para criar equipes esteja utilizando uma solução distribuída geograficamente, os seguintes itens devem fazer parte dos planos de ação:

  • Fornecer as ferramentas certas. Ferramentas para o desenvolvimento em equipes, ferramentas para desenvolvimento distribuídos e em par e geração de relatório: Visual Studio Team System (e seus add-ins), Live Metting, Office Communicator, Live Services, Windows Azure, SharedView, etc.
  • Video Conferência. Salas exclusivas para conferência em vídeo e texto.
  • Metodologias agéis, que focam em grande parte a comunicação como um item essencial para o sucesso.
  • Viagens. Sim, o planejamento de viagens deve ser feito antes do início do projeto. Lembre-se: estar de frente com o cliente ainda é necessário.
  • Suporte 100% do tempo.

Se o foco não for a comunicação, a distribuição da equipe não será adotada de forma correta, trazendo prejuízo e muito estresse para as empresas e seus centros.

Conclusão

Estamos chegando a uma nova era de desenvolvimento, onde a comunicação, independente da localização geográfica da equipe, será tão importante quanto a sua formação. E apesar de muita gente saber disso, este ainda não é o foco. Criar equipes de forma local não será possível, e a distribuição geográfica será um fator tão comum quanto a adoção de reuniões diárias.

Pense nisso. Se não podemos trazer os talentos para perto, basta levar o trabalho até eles, nunca se esquecendo da comunicação efetiva, direta e simples. Utilize as tecnologias a seu favor, e esqueça as barreiras. Webcams, Live Meetings, Compartilhamento de Desktop, VPNs, Live Services, Azure, etc. Faça tudo isso estar a seu favor e a favor da sua empresa.

Referências

> 3rd Annual "State of Agile Development" Survey (Released August 2008) http://www.versionone.com/pdf/3rdAnnualStateOfAgile_FullDataReport.pdf
> Distributed Agile Development at Microsoft patterns & practices

Abraços.

1 Comment

Comments have been disabled for this content.