Conceito: Colaborar para alinhar os interesses e compartilhar o entendimento

Desenvolver práticas colaborativas que estimule um ambiente de equipe saudável. Boas práticas colaborativas alinham os interesses dos participantes do projeto e os ajudam a desenvolver uma compreensão compartilhada do projeto.

Descrição Principal

Introdução

O software é criado por pessoas com diferentes interesses e habilidades e que devem trabalhar juntas para criar o software efetivamente.

Assim, desenvolva práticas que estimule um ambiente de equipe saudável. Um ambiente de equipe saudável permite que colaborações efetivas, que alinham os interesses dos participantes do projeto (equipe de desenvolvimento, garantia da qualidade, stakeholders do produto, clientes) e ajudam os participantes do projeto a desenvolver uma compressão compartilhada do projeto.

Práticas

As próximas seções descrevem as práticas associadas com este princípio.

Mantenha um entendimento comum

Participantes do projeto precisam do entendimento comum de um projeto para que possam cooperar efetivamente. Caso contrário, a desordem estará estabelecida, porque os membros da equipe não poderão alinhar os seus entendimentos e interesses, e trabalharão com diferentes propósitos.

Tenha uma comunicação pró-ativa e compartilhe informações com os participantes do projeto e não assuma que todos encontrarão o que precisam saber  ou que todas as pessoas tenham o mesmo entendimento do projeto. Use produtos de trabalho, tal como a Visão, a Lista de Itens de Trabalho e Requisitos para alinhar o entendimento entre os stakeholders e desenvolvedores. Use a arquitetura para focar e alinhar interesses dos desenvolvedores. No final de cada iteração, chegue a um acordo sobre se as metas da iteração foram atingidas e, se não foram atingidas, quais as ações que deverão ser tomadas.

Estimular um ambiente de alta-lealdade

As pessoas que não se sentirem seguras, não comunicarão suas idéias, não tomarão iniciativas ou admitir sua ignorância. Em ambientes de alta-lealdade, as atividades devem ser arduamente planejadas e detalhadas, cuidadosamente supervisionadas, e extensivamente auditadas. Uma equipe trabalhando num ambiente de baixa-lealdade pode não se manter com mudanças rápidas.

Assim, tome ações que estimulem um ambiente de alta-lealdade:

  • Gerencie por objetivos. Crie um ambiente onde as equipes possam se autogerenciar, e gerentes sirvam como mentores das equipes para ajudá-los a completar seus objetivos.

  • Destrua os muros. Trabalhe para remover tanto as barreiras físicas quanto as mentais que inibam o desenvolvimento de um entendimento comum entre os participantes do projeto.

  • Caminhe uma milha (ou 1,6 quilômetros) com os sapatos de outra pessoa. Respeite e tente entender a perspectiva de outros antes de criticar as idéias ou responder às suas críticas.

  • Responda às conversações relevantes.  As pessoas, especialmente os trabalhadores técnicos, normalmente respondem com argumentos ou desaprovação, o que gera rivalidades e o estabelecimento da lei do mais forte, onde somente algumas pessoas contribuem para a discussão. Desenvolva e encoraje comportamentos que valorizem a curiosidade e a relevância  acima dos argumentos e desaprovações.

  • Sempre procure primeiramente em você a fonte dos problemas de comunicação. Entenda que, no fundo, todos nós somos individualistas (embora isso seja óbvio). Desenvolva o hábito de identificar as suposições e preconceitos dentro de você e que conduzam a discussões ou falta de comunicação. Aprenda a superá-los no momento das conversações. É preciso prática. Há momentos de rebeldia, mas normalmente o problema pode ser atacado combatendo a sua própria perspectiva.

  • Entenda as restrições culturais do ambiente de trabalho. Algumas organizações operam de maneira a permitir que pessoas admitam seus erros, façam questionamentos e experiências. Algumas organizações limitam tais expressões, mas eles podem mudar, com tempo e esforço. Algumas organizações não toleram o erro e trabalhadores se colocam em perigo ao admitir enganos ou realizações de experiências. Entenda seu ambiente e se proteja apropriadamente. Entenda que as organizações de baixa-lealdade possuem mais problemas em atingir suas metas e promover um mínimo necessário para um ambiente satisfatório.

Compartilhe responsabilidades

Indivíduos que trabalham sozinhos podem ter desvantagens. A comunicação com a equipe pode ficar esporádica e então parar. As pessoas podem ter dificuldades e não pedir ajuda ou não perceber que a equipe está com dificuldades e precisa de sua ajuda. O seu entendimento do projeto pode ficar desalinhado com o de sua equipe. Na pior das situações, um verdadeiro caos se instala quando indivíduos vêem a equipe trabalhando com propósitos diferentes dos seus. 

Assim, embora os indivíduos tenham a responsabilidade primária pelos produtos de seu trabalho, a responsabilidade pelos produtos é compartilhada. Ninguém está isento de responsabilidades. Isto significa que ou deixamos de ser negligentes e trabalhamos com alguém que está atrasado ou pedimos ajuda. Um membro da equipe experiente deve ser precavido e proteger os membros menos experientes, encorajando-os a perguntar e pedir ajuda se necessário.

Aprenda continuamente

O desenvolvimento de software não é apenas um campo de rápida evolução onde as habilidades técnicas ficam rapidamente obsoletas; também é um processo empírico onde o software é desenvolvido de tal maneira que às vezes até parece que é desenvolvido através de tentativas e erros. Além disso, o software é desenvolvido por equipes de pessoas que precisam trabalhar em conjunto para alcançar resultados.

Assim, desenvolva continuamente tanto as suas habilidades técnicas quanto as interpessoais. Aprenda com os exemplos de seus colegas. Aproveite a oportunidade para ser tanto um discípulo de seus colegas, como também seu mestre. Sempre aumente a sua habilidade pessoal para superar sua própria oposição em relação a outros membros da equipe.

Organize-se em torno da arquitetura


Quando projetos crescem em tamanho, a comunicação entre os membros da equipe torna-se altamente complexa. Embora os membros da equipe compreendam o sistema de forma global, eles podem ficar concentrados principalmente em um ou mais subsistemas de sua responsabilidade. A organização em torno da arquitetura ajuda na comunicação ao fornecer à equipe um vocabulário comum e um modelo mental compartilhado do sistema. A comunicação entre os membros da equipe torna-se incrivelmente complexa. Assim, organize a equipe ao redor da arquitetura, vocabulário e do modelo mental compartilhado do sistema. Porém, cuide para que os indivíduos e equipes organizadas dessa maneira não formem a tão conhecida “mentalidade de silo”, onde o foco da equipe acaba sendo estritamente em seus subsistemas e tornarem-se ignorantes nos outros subsistemas. 

Uma arquitetura que reflita a estrutura organizacional não comprova que a equipe tenha sido organizada com sucesso em torno da arquitetura. Se as organizações e as equipe não estiverem organizadas em torno da arquitetura, então a arquitetura naturalmente se adequará à organização, como resultado da política e influências culturais. No final, a arquitetura e a organização quase sempre irá se refletir uma na outra. O objetivo é, sempre que possível, guiar a organização da equipe a partir das necessidades da arquitetura.