BT

Construindo uma Equipe Ágil

Postado por Darren Hale , traduzido por Yan Borowski em 04 Nov 2009 |

Introdução

Construir uma equipe de desenvolvimento ágil de software não é tão fácil como parece. Muitos gerentes e chefes de equipe contratam pessoas tecnicamente capazes, para lançar alguma forma de processo ágil na equipe, e torcem para que tudo funcione bem como a literatura diz que funciona. Esta abordagem não é apenas irreal, mas é propensa ao fracasso. Este artigo irá descrever quais os componentes e como montar esta equipe.

Componentes de uma equipe de sucesso

Uma equipe de desenvolvimento ágil de software de sucesso é composta por colaboradores qualificados, possui valores estabelecidos, tem boa comunicação, e está sempre procurando melhorar. Ter cada um desses pontos não é absolutamente crítico para o sucesso, tendo todos eles o caminho para o sucesso será muito mais curto.

Princípios Básicos

Todo mundo tem uma idéia sobre que tipo de cultura que eles querem estabelecer para sua equipe. A menos que um gerente esteja contratando pessoas que ele conheça bem, transformando a visão de uma cultura em realidade, é muito difícil. Reconhecemos cedo que as características que eram importantes para nós, incluindo ter uma perspectiva do cliente, colaborar de forma eficaz, a gestão de fato, e centrando-se na execução. Uma equipe que incorporou estes princípios seria bem posicionada para o sucesso. Membros de uma equipe que incorporam estes princípios fundamentais apresentam uma série de bons comportamentos. Alguns desses comportamentos são fazer perguntas aos clientes, a pensar como os clientes, estar disposto a pedir ajuda, estar disposto a ajudar os outros, a tomada de decisões com fatos concretos, em vez de opiniões pessoais, e que se esforça para liberar o código finalizado.

Comunicação Eficaz

Uma comunicação eficaz é fundamental para o sucesso. Um dos aspectos mais eficazes de comunicação, que é o cara a cara com as pessoas. É muito mais fácil trabalhar as idéias, quando as pessoas estão localizadas juntas. Outro aspecto crucial da comunicação eficaz é o foco. As conversas não são produtivas, se elas não têm um tema bem definido que os participantes se fixem. Um terceiro elemento essencial de uma comunicação eficaz é manter a conversa focada nos fatos e idéias. As conversas podem rapidamente virar lutas e guerras territoriais quando as opiniões pessoais tomam o lugar dos fatos e idéias.

Boas Pessoas

O aspecto mais importante de uma equipe de sucesso são as pessoas. Uma equipe de desenvolvimento de software precisa de pessoas talentosas. Desenvolvedores especializados são necessários para construir sistemas complexos utilizando as novas tecnologias. A construção destes sistemas complexos não pode ser feita por uma ou duas pessoas. Uma equipe é necessária. Portanto, os desenvolvedores que são necessários também devem ser hábeis no trabalho em equipe.

Melhoria Contínua

Sabíamos que cairíamos muito pois nós construímos uma nova equipe e criamos um novo sistema. A diferença entre uma equipe de sucesso e de uma equipe desastrosa é o aprendizado que acontece com estes erros que aconteceram no passado. Progresso só pode ser alcançado por rever as falhas do passado e fazer as melhorias necessárias.

A construção da equipe

Foco na Comunicação

Desde o início de nossa empresa, têm-se centrado na comunicação. O layout físico do nosso escritório é aberto. A equipe de desenvolvimento senta em uma grande sala aberta. Cada colaborador tem a sua própria mesa, e eles são agrupados de forma a facilitar a comunicação. Este ambiente aberto torna a comunicação muito mais fácil porque as pessoas não podem se esconder em cubículos e as conversas são "públicas". (É importante que todos ajam civilmente e profissionalmente, para que este ambiente não se torne arrogante.)

Estabelecer Princípios Fundamentais

Como se construiu a equipe, nós percebemos que temos necessidade de codificar as características que queríamos para equipe adotar. Inicialmente pensei que o dia-a-dia de interação seria infundir a equipe com as características que procurávamos. Capturando estas características e socializando-as com a equipe era necessário para ter certeza que todos os membros da equipe tinham o foco adequado nos valores que sentiamos ser críticos para o sucesso. A codificação das características que nós queríamos que a equipe adotasse foi uma realização gritante para nós. Uma percepção era de que alguns dos membros da equipe não adotaram as características. Fomos longe com esses membros da equipe, para que apresentassem estas características. Alguns membros da equipe responderam muito positivamente, e outros não. Em alguns casos, tivemos que retirar as pessoas da equipe. A segunda realização para nós foi que o nosso processo de entrevista não estava filtrando os tipos de pessoas que nós queríamos. Nosso processo de início de entrevista focada fortemente no conhecimento técnico conjunto de candidatos. Nosso processo de seleção olhou para as pessoas tecnicamente mais qualificadas. Este critério nos trouxe desenvolvedores muito brilhantes e capazes, mas nem sempre as pessoas prosperaram em nosso ambiente de equipe.

Processo de seleção

Encontrar pessoas tecnicamente capazes que se encaixam com uma cultura existente é difícil. Por um lado, com medidas objetivas filtramos rapidamente um grupo de candidatos. Por outro lado, medidas puramente objetivas não captam as habilidades "sutis" que alguém pode utilizar em um ambiente de equipe. Nós lutamos em como penetrar estas áreas de forma eficaz e eficiente. Nosso atual modelo de seleção é um processo com algumas etapas. O primeiro passo em nosso processo é do telefone. O telefone nos dá uma maneira rápida de apresentar nossa empresa para o candidato e para observar o mesmo a um nível elevado. Na tela do aparelho, cobrimos algumas habilidades técnicas básicas, pensamentos e compreensão sobre o desenvolvimento ágil, e algum nível de introspecção pessoal. Ao entrar nestas áreas, podemos dizer se alguém não funciona em nosso ambiente. Se o candidato não é filtrado durante o processo do telefone, podemos agendar uma entrevista no local. Esta entrevista é dividida em três segmentos: processo, técnico e pessoal. Para cada segmento, temos de atribuir pelo menos dois membros da equipe de modo que a maioria da equipe começa a interagir com o candidato. A parte técnica da entrevista centra-se sobre a capacidade técnica e inclui um exercício de programação. A parcela do processo entra em filosofias de testes, resolução de problemas, programação em pares, dentre outros temas. A secção de pessoal é voltada para a resolução de conflitos, motivação pessoal e estabilidade mental em geral. Descobrimos que esse processo funciona muito bem. Se passar por todos os três segmentos, e não há nenhuma hesitação sobre um candidato, o candidato irá trabalhar bem em nossa equipe.

Melhoria de Processos

Melhoria de processos é fundamental para a construção de uma equipe de desenvolvimento de software bem sucedida. Nós olhamos para a melhoria do processo como um todo, não apenas os processos utilizados para escrever e implementar código mas também os processos utilizados para priorizar o trabalho e contratar novos funcionários. Um mecanismo que usamos para melhoria é o que chamamos de revisão "3x3". Com a equipe toda reunida, cada membro da equipe deve chegar a algo positivo dos últimos três meses, e algo negativo dos últimos três meses. Cada membro da equipe, em seguida, recebe três votos cada um para o positivo e negativo no grupo. Esses votos são distribuídos para cada item listado. Quando a revisão é feita, temos uma visão de alto nível que a equipe vê como atributos positivos e o que ela acha que precisa melhorar. Essa perspectiva ajuda a manter a equipe alinhada com as características que a mesma afirmou. Outra área de melhoria de processos para nós tem sido o processo de entrevista. À medida que nossas compreensões das técnicas de desenvolvimento ágil amadureciam, vimos nossa necessidade de encontrar pessoas que não eram apenas qualificados tecnicamente, mas hábeis em função de uma equipe. Ao longo de dezoito meses, nosso processo ficou refinado e aperfeiçoado a um ponto onde sabemos que um candidato que não iria prosperar em nosso meio. Este processo de melhoria nos dá uma confiança muito maior nas pessoas que contratamos. Tivemos de encontrar um equilíbrio entre a execução de nossos processos existentes e melhorar continuamente os mesmos. Sempre que vemos algo errado em nossos processos, tomamos um pouco de tempo para avaliar o problema. Se o problema parece sistêmico, tentamos identificar mudanças incrementais que possamos fazer para melhorar nosso processo. Se o problema não é sistêmico, adotamos o vamos "esperar para ver" antes de fazer quaisquer outras mudanças.

Conclusão

Durante um curto espaço de tempo, nós aprendemos algumas lições valiosas para a construção de uma equipe de desenvolvimento ágil bem sucedido. Estabelecimento de valores para as equipes e aderir aos mesmos nos ajudou a construir uma cultura de sucesso e aprimorar o nosso processo de seleção. Facilitar a boa comunicação tem removido os obstáculos que impedem muitas equipes. Processo de refino nossa entrevista nos ajudou a identificar os desenvolvedores qualificados que combinam bem com a equipe existente. Reverter nossos processos existentes nos ajudou a melhorar a equipe em uma base contínua.

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão

Dê sua opinião

Conteúdo educacional

Feedback geral
Bugs
Publicidade
Editorial
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2013 C4Media Inc.
Política de privacidade
BT