Por que nada é óbvio: a arte da comunicação no desenvolvimento de software

Publicados: 2020-10-22

Todos nós temos que nos comunicar diariamente. Na vida privada, na escola, no trabalho. Em todos os lugares e o tempo todo. Alguns têm melhores habilidades de comunicação do que outros, mas no final do dia, todos cometemos erros de vez em quando.

Enquanto algumas falhas de comunicação têm um impacto menor em nossas vidas (não é o fim do mundo se você pedir uma cerveja sem álcool ;)), algumas podem ter consequências maiores (apontar o dente errado a ser extraído). Os mal-entendidos na comunicação no desenvolvimento de software são os últimos e podem ter implicações financeiras.

Um dos problemas mais comuns que todos nós temos é supor que outra pessoa pode ler nossas mentes. Todos nós somos culpados disso às vezes. Você já ouviu esta frase: 'Era óbvio!'? Aposto que você tem.

Não acredito em obviedade objetiva. Achamos que algumas coisas são óbvias para todos, mas o que é claro para uma pessoa pode não ser tão aparente para outras. Para alcançar uma comunicação eficaz no desenvolvimento de software, vamos parar de acreditar na leitura da mente e apenas dizer o que temos em mente.

Por que é mais fácil falar do que fazer? Vamos analisar primeiro o processo de comunicação.

Elementos de comunicação

Há mais de 50 anos, Roman Jakobson apresentou um modelo de comunicação que pode ser muito útil para analisar problemas de compreensão mútua. Dê uma olhada no diagrama:

Está claro que a comunicação é mais do que apenas uma mensagem entre um emissor e um receptor. Contexto, canal e código influenciam a mensagem e podem alterar a recepção das palavras. Mesmo que dois dos fatores estejam em vigor e um esteja faltando, problemas ocorrerão.

Como estamos falando especificamente de comunicação no desenvolvimento de software, devemos analisar o que aconteceria durante as sessões de refinamento do projeto se faltássemos em algum dos fatores mencionados acima. Em outras palavras, vamos dar uma olhada na importância da comunicação no gerenciamento de projetos.

Sempre forneça contexto

O contexto fornece uma explicação do panorama geral em torno de qualquer problema. Pode-se não ver o ponto de contar a um desenvolvedor de back-end sobre o grupo-alvo do produto. Pode parecer que a equipe de desenvolvimento só precisa saber o que é necessário do seu lado, e não as razões de negócios por trás disso. Nada poderia estar mais longe da verdade.

A comunicação no desenvolvimento de software não é apenas sobre requisitos funcionais. Quanto mais contexto você puder fornecer à equipe, melhor. A introdução adequada ao conceito do produto pode ser demorada e pode parecer um desperdício de tempo e dinheiro, mas, a longo prazo, ajuda a evitar uma implementação técnica deficiente.

Se a equipe souber quais são os planos de longo prazo para o produto, poderá fornecer soluções técnicas mais adequadas. Mesmo que você não queira implementar códigos promocionais na primeira versão do seu aplicativo móvel de entrega de comida, é bom informar aos programadores de software que ele virá na próxima versão.

Para ter certeza de que forneceu o contexto completo, pergunte a si mesmo se compartilhou todas as informações que possui. Se você se pegar pensando 'isso não é importante para os desenvolvedores, eles não precisam saber disso, pelo menos pergunte à equipe se essas informações podem ajudá-los. Você pode se surpreender com os fatores que outros podem achar cruciais.

Use o canal com sabedoria

O canal é um fator de comunicação comumente esquecido no gerenciamento de projetos. Hoje em dia, quando as equipes de desenvolvimento muitas vezes trabalham em diferentes países, quando o back-end está na Índia (agora, 85% das empresas americanas terceirizam a maior parte de suas operações para a Índia), o desenvolvimento de front-end na Polônia e o Product Owner está nos EUA , todos nós usamos muitas ferramentas diferentes para nos comunicar.

Escolher o canal adequado e usá-lo de forma eficaz pode ser impactante. Teleconferências, e-mails e chats são ótimos e nos permitem estar em contato constante. Mas também criam novas maneiras de a mensagem ser mal compreendida.

Não podemos fingir que conversar online é o mesmo que conversar na mesma sala com a equipe. O que podemos fazer é ter em mente as limitações da comunicação remota e tentar superá-las.

Dicas para uma comunicação remota eficaz

  1. Ligue a câmera enquanto conversa por meio de chamadas em conferência. Dependendo da situação, a comunicação não verbal pode representar mais de 50% da mensagem. É muito mais fácil pegar se você está sendo sarcástico quando os outros podem vê-lo, por exemplo. Você também pode ver as reações em tempo real de seus interlocutores. Você é capaz de perceber se os outros estão confusos com suas palavras ou não.
  2. Use salas separadas no chat para categorizar as conversas. Quando o projeto é complexo, a comunicação no desenvolvimento de software também tende a se tornar complexa e novos tópicos para discussões surgem constantemente. Salas separadas permitem que você mantenha as mensagens organizadas e alcance os destinatários adequados com menos problemas.
  3. Marque os destinatários das mensagens enquanto escreve via chat. Não é fácil acompanhar cada conversa. É de seu interesse certificar-se de que a pessoa para quem você está escrevendo seja notificada.
  4. Na conversa escrita, use emoticons quando apropriado. Não use muitos, mas deixe o público saber que você está brincando sobre a implantação da tarde de sexta-feira

Revisão do código de comunicação

No início do trabalho, você precisa estabelecer um código comum para entender os principais termos da mesma maneira. Mesmo os 'óbvios'. Por exemplo, temos um requisito: 'Como usuário, posso fazer um pedido apenas pela manhã para que o produto escolhido seja enviado no mesmo dia'. Parece claro, não é?

Bem… Então, o que exatamente significa manhã neste recurso? Quando começa a manhã? Quando o sol nasce ou em uma hora exata, ou seja, 7h00? Se às 7h, qual fuso horário você tem em mente?

A comunicação no gerenciamento de projetos, especialmente em TI, precisa ser clara. Não há lugar para adivinhação. No nosso caso, isso pode causar uma situação em que os produtos não podem ser encomendados antes das 10h (quando o desenvolvedor principal acorda, então é isso que a manhã significa para ele) e o proprietário do aplicativo perde dinheiro com a falta de pedidos dos madrugadores.

Práticas recomendadas de código de comunicação comum

  1. Crie um glossário com os termos mais usados. Isso ajuda no início do projeto e é extremamente útil para novos participantes entenderem a linguagem que a equipe de desenvolvimento está falando.
  2. Também é bom perguntar ao receptor como ele entende o requisito ou a frase. E não estou falando do inútil: 'Está tudo claro?'. Seja específico. Pergunte sobre os detalhes. Certifique-se de que você é compreendido. Faça uma revisão do código de comunicação.

    Vejamos mais uma vez o nosso exemplo: para chegar a um entendimento comum do termo “manhã”, peça à pessoa que o utilizou para reformulá-lo.
  3. A regra geral é que é melhor ser repetitivo na comunicação no desenvolvimento de software do que deixar espaço para jogos de adivinhação.

A questão da perícia

Além de todos os métodos de comunicação em gerenciamento de projetos mencionados acima, há mais uma coisa crucial que é bom ter em mente ao discutir os requisitos de software. Não importa se é uma startup ou um produto corporativo, na maioria dos casos, antes de um cliente ir para a software house, ele passa um bom tempo pensando em seu produto. Quanto mais tempo gastam com isso, mais experientes eles se tornam no assunto.

Quando você é um especialista, é fácil esquecer que nem todos ao seu redor têm o mesmo conhecimento de domínio que você. Isso significa que os problemas que são óbvios para você não são tão claros para a equipe de desenvolvimento com quem você está falando.

Como evitar o problema da perícia

  1. Dê um passo atrás no início de sua jornada com o produto e explique à equipe de desenvolvimento todas as decisões que você tomou. Quando eles entenderem como tudo começou, eles encontrarão melhores soluções técnicas ou até preencherão lacunas em sua forma de pensar.
  2. Permita que a equipe faça quantas perguntas forem necessárias. Não há exagero no provérbio de que não há perguntas estúpidas.

Como se comunicar efetivamente na equipe de engenharia de software

O mais claro possível! Não há lugar para falhas de comunicação, pois as consequências podem ser dolorosas. Lembre-se de que não há obviedade objetiva e é melhor repetir várias vezes do que perder uma informação importante.

Ícone de oficinas

Transforme sua ideia em um excelente produto digital

Vamos trabalhar juntos

Tenha em mente todos os três fatores de comunicação e verifique novamente se sua mensagem foi entendida como você pretendia. Com o tempo, a comunicação no desenvolvimento de software será mais fácil para você, e explicar os requisitos corretamente não será mais um problema.

Se você está procurando uma casa de software que seja especialista em desenvolvimento de aplicativos E comunicação, não procure mais!

Basta falar com os nossos especialistas em Miquido e dar vida às suas ideias!