O trabalho em equipe tem diversos desafios e é largamente estudado em diversas áreas do conhecimento como administração, psicologia, saúde e militar. Mas o que se sabe sobre a computação? Por isso, neste artigo vamos conhecer o conceito de conhecimento em equipe (ou Team Knowledge no original em inglês) e sua importância para times mais entrosados e produtivos.
Além disso, vamos apresentar os principais resultados de pesquisa sobre equipes de desenvolvimento de software na literatura de computação que podem fazer com que sua equipe performe melhor e com mais qualidade.
Onde essa pesquisa pode ser encontrada?
Essa pesquisa foi publicada em um artigo na revista ISys – Brazilian Journal of Information Systems em 2019 e fez parte do meu doutorado concluído em 2020 pela Universidade Federal de Pernambuco (UFPE).
Trabalho em equipe e conhecimento em equipe
Apesar das atividades do processo de desenvolvimento puderem ser feitas de maneira independente, é mais comum vermos um software sendo desenvolvido em equipe. Portanto, faz todo o sentido querer entender melhor como o conhecimento em equipe pode impactar o trabalho e os resultados no contexto de software.
Imagine que para construir este texto, várias partes do meu corpo tiveram que trabalhar em conjunto. A visão manda informações para o meu cérebro, que processa isso e gera impulsos para os meus dedos escreverem o que estou pensando. Nosso corpo é um ótimo exemplo de trabalho em equipe, e consequentemente conhecimento em equipe.
Para que tudo funcione da melhor maneira possível, é necessário que as várias partes (pessoas) do meu corpo (equipe) estejam coordenadas e com um entendimento do que as outras partes estão fazendo e são capazes de fazer.
Quando trabalhamos em equipe é possível que diversos processos se combinem em atividades cognitivas, como entender a explicação do outro uma atividade, e comportamentais, como a maneira adequada de falar com um determinado membro da equipe, que surgem a partir das interações dos membros da equipe, gerando assim outros resultados para a equipe, nos exemplos dados: menos tempo para realizar uma feature ou menos conflito entre os membros da equipe (KOZLOWSKI e ILGEN 2006).
É aquilo: o que eu sei, vivi e experienciei pode ser importante e mais proveitoso se combinado com o que outra pessoa sabe, viveu e experienciou. Logo, uma das alternativas para conseguir um melhor desempenho das equipes no desenvolvimento de software é proporcionar um melhor entendimento dessas atividades cognitivas que acontecem no nível das equipes e dos indivíduos.
Afinal, o que é conhecimento em equipe?
De acordo com Cooke et al. (2007), o conhecimento em equipe é o compartilhamento de modelos mentais de indivíduos com todos em um grupo, permitindo assim que o grupo possa realizar as tarefas como uma unidade coordenada.
Em outras palavras, o conhecimento em equipe define estruturas para que ela trabalhe da melhor forma, a partir dos resultados das interações cognitivas de cada membro de uma equipe (KLIMOSKY e MOHAMMED, 1994).
O conhecimento em equipe, ou Team Knowledge no original em inglês, também é chamado de conhecimento do time, conhecimento da equipe ou cognição em equipe.
4 categorias do conhecimento em equipe
Wildman et al. (2012) fez um levantamento dos principais conhecimentos em equipes já pesquisados na literatura em todas as áreas. Faegri et al. (2016), a partir desta pesquisa desenvolveu uma adaptação do framework para equipes de desenvolvimento de software, com enfoque nas equipes que trabalham em algum nível de maneira remota.
A adaptação de Faegri et al. (2016) propõe um framework em quatro categorias de conhecimento em equipe:
- relacionado à tarefa;
- relacionado ao time;
- relacionado ao processo;
- relacionado aos objetivos.
A seguir vamos ver cada um dos itens que compõem esse esquema em detalhes!
1- Relacionado à tarefa
A primeira categoria de conhecimento em equipe é a relacionada à tarefa. Nesta categoria ficam todos os conhecimentos necessários para entender a tarefa e executá-la de maneira adequada.
De acordo com Ribeiro et al. (2019) o conhecimento em equipe relacionado à tarefa é: “uma representação focada no conhecimento sobre como a tarefa está sendo executada pela equipe”. Para o desenvolvimento de software, Faegri et al. propõe dois tipos de conhecimento:
- (i) Conhecimento das estratégias da tarefa.
- (ii) Conhecimento da tarefa.
Vamos a eles:
(i) Conhecimento das estratégias da tarefa
O conhecimento das estratégias da tarefa é o conhecimento de como a tarefa deve ser “dividida/quebrada”, priorizada e realizada pelas pessoas da equipe.
Para Faegri et al. (2016), é necessário que todas as pessoas envolvidas de fato nas execuções das tarefas tenham conhecimento de como essas tarefas estão conectadas, para que todo mundo tenha uma visão do todo da execução.
Já Mathieu et al. (2000) afirmam que quanto mais imprevisíveis as tarefas forem, mais crucial será o efeito deste conhecimento porque ele permite às pessoas discutirem sobre quais os procedimentos necessários para realizar a tarefa, possíveis cenários de contingência e estratégias para realizar a tarefa.
Para completar, Canfora et al. (2007) apresenta um exemplo de estudo em que profissionais de desenvolvimento que discutiam as estratégias encontraram uma solução de melhor qualidade do que quem participou individualmente.
(ii) Conhecimento da tarefa
O outro conhecimento desta categoria é o (ii) Conhecimento da tarefa. Ele pode ser definido como o conhecimento que as pessoas da equipe têm do que deve ser empregado na realização da tarefa.
Mathieu et al. (2008) comentam que o conhecimento da tarefa é vital para as equipes que realizam uma tarefa constantemente, pois além da equipe desempenhar melhor, também é capaz de definir as metas e planejar ações futuras mais adequadamente.
Para Faegri et al. (2016), toda a equipe deve ter um conhecimento mínimo do que deve ser utilizado para realizar a tarefa e principalmente do conhecimento de arquitetura, padrões etc. Isso pode ser útil para caso aconteça algum imprevisto. Além disso, ao desenvolver um software, entender toda a arquitetura (por exemplo) pode evitar pequenos deslizes em soluções com pouca qualidade(RIBEIRO et al 2019).
Já Espinosa et al. (2002) observaram que o conhecimento da tarefa tem uma relação positiva com a coordenação de equipes de desenvolvimento de software.
Relacionado ao time
A segunda categoria de conhecimento é relacionada ao time. Esta categoria pode ser definida como as estruturas mentais sobre as características e qualidades das pessoas da equipe ou da equipe como uma entidade social holística (WILDMAN et al. 2012).
Ela foi dividida de três formas:
(i) Identificação da equipe
A primeira é a (i) Identificação da equipe, que pode ser definida como a sensação de pertencimento à equipe. Por exemplo: quando as pessoas se sentem bem ao trabalhar na equipe ou se identificam com a equipe.
Marks e Lockyer (2005) afirmam que a identificação da equipe afeta positivamente a satisfação das pessoas com o trabalho.
(ii) localização de expertise
A segunda é a (ii) localização de expertise. Ela tem seu ápice quando as pessoas sabem quem é especialista naquela determinada linguagem ou ainda quem produziu determinada parte do código, por exemplo.
He, Blutle e King (2007) afirmam que a localização de expertise ajuda no desempenho das equipes de desenvolvimento de software.
Já Lin et al. (2015) afirmam que a localização de expertise pode ajudar as equipes de software a terem maior competência na resolução de problemas.
(iii) modelo mental dos membros
Por fim, o (iii) modelo mental dos membros é referente a estruturas de conhecimento que permitem formar explicações sobre a tarefa para coordenar suas ações.
Levesque et al. (2001) afirmam que em equipes de software temporárias (em que as pessoas não esperam trabalhar juntas novamente), as pessoas têm dificuldades de manter modelos mentais uma das outras, o que pode afetar a performance do time como um todo.
Relacionado ao processo
Refere-se ao trabalho em equipe e processos interpessoais envolvidos em suas interações como a comunicação, coordenação e liderança. Ele pode ser dividido em:
(i) Modelos mentais de interação
(i) Modelos mentais de interação, ocorrem quando a equipe compartilha modelos de interação, comunicação e liderança. Esses entendimentos podem ser sobre os papéis e responsabilidades das pessoas da equipe, padrões de interação, fluxo de informação e canais de comunicação (MATHIEU et al. 2000).
Em outras palavras, é quando a equipe tem um entendimento comum de como deve estruturar uma conversa entre si, por exemplo, mais direta nas reuniões ou falando mais delicadamente entre si (RIBEIRO et al. 2019).
Bass (2014) afirma que algumas vezes em equipes distribuídas as pessoas adotam padrões que acham mais viáveis para o trabalho para que possam executar as tarefas da melhor maneira possível. Além disso, também foi observado que as pessoas da equipe preferiam interagir umas com as outras individualmente, do que realizar reuniões diárias coletivas.
(ii) Normas
Outro conhecimento em equipe da categoria processo são as (ii) Normas, que podem ser definidas como códigos de conduta aceitos pelas pessoas da equipe e podem melhorar sua eficácia (RIBEIRO et al. 2019).
Essas normas não precisam ser explícitas, ou seja, estarem em um documento. Elas podem ser criadas de maneira informal pela equipe (FAEGRI et al 2016). E, de fato, Teh et al. (2012) apresenta que no processo de desenvolvimento de software, muitas normas não explícitas são criadas.
Ribeiro et al (2019) investigou uma equipe em que, quando alguém colocava o chapéu de rei da Burger King na cabeça, as outras pessoas não o incomodavam, pois sabiam que estava concentrado em uma tarefa. Essa norma não estava escrita, mas toda equipe entendia.
Teh et al. (2012) afirma que as normas de grupos são essenciais para que as equipes desenvolvam as tarefas de maneira otimizada.
O Google, por exemplo, tem um conjunto de estudos sobre normas de equipe em que afirmam que as normas de grupo são um dos poucos fatores que conseguiram identificar que contribui efetivamente para a evolução de suas equipes e consequentemente ajudam na sua performance. Saiba mais sobre o caso do Google neste artigo do New York Times.
Relacionado aos objetivos
Por fim, o conhecimento em equipe relacionado aos objetivos refere-se às construções que capturam a estrutura das representações mentais quanto às metas e objetivos da equipe, além de suas representações quanto à realização desses objetivos.
Em outras palavras, quais são os objetivos, visões e acordos gerais que devem ter seus entendimentos compartilhados em equipe. Ele é dividido em dois:
(i) Visão compartilhada
(i) Visão compartilhada, em que a equipe compartilha quais são seus objetivos, as expectativas, as métricas e como atingi-los. Crowston e Kammerer (1998) afirmam que quando a equipe tem objetivos e métricas compartilhadas, ela trabalha de maneira mais coordenada, o que pode levar a um maior desempenho.
Preston e Karahanna (2009) sugerem que é importante que equipes de desenvolvimento de software tenham uma visão compartilhada para que a organização possa definir melhor suas estratégias.
A visão compartilhada pode ser alcançada com algumas cerimônias dos métodos ágeis como reunião diária (RIBEIRO et al. 2019).
(ii) Consenso estratégico
(ii) Consenso estratégico, acontece quando a equipe compartilha um consenso sobre metas estratégicas para a organização.
Knight et al. (1999) investigou como fatores demográficos e os processos do grupo influenciam o consenso estratégico da organização e no desempenho da equipe, resultados semelhantes ao observado por Ribeiro et al. (2019).
Consequências da ausência do conhecimento em equipe
Com o que já sabemos sobre o conhecimento em equipe, podemos entender que sua ausência pode causar problemas. Por exemplo, Stray et al. (2016) observaram que quando as normas de codificação da equipe não estão claras entre as pessoas, elas podem tomar decisões equivocadas, afetando assim o desempenho da equipe.
Em outro exemplo, Ribeiro et al (2019) observou que a ausência de conhecimento sobre as habilidades das pessoas na equipe pode levar a um maior tempo para entrega de uma demanda.
Experimento para desenvolver o conhecimento em equipe
Por fim, Moe et al. (2016) realizaram outro estudo baseado no framework proposto por Faegri et al. (2016), em que apresentavam um conjunto de lições aprendidas sobre como uma equipe distribuída de desenvolvimento de software pode promover o conhecimento em equipe.
Durante o estudo, a equipe de desenvolvimento de software ficou reunida durante cinco dias, brevemente descritos abaixo.
- Os primeiros dois dias foram destinados a um fórum de usuários, o qual sete pessoas da equipe conheceram clientes e fizeram demonstrações do produto.
- No terceiro dia, quem participou do fórum apresentou e discutiu os acontecimentos para toda equipe. Além disso, as pessoas das equipes de diferentes localidades realizaram entrevistas entre si para entender o que as outras fazem fora do trabalho.
- No quarto dia, o Product Owner apresentou sua perspectiva sobre o futuro do produto seguido de uma sessão sobre perguntas e respostas. Em seguida, os grupos identificaram tópicos que precisavam discutir entre si e implementaram um roteiro para isso.
- Por fim, no quinto dia, as pessoas fizeram caminhadas nas montanhas norueguesas sob condições adversas com o objetivo de se integrar ainda mais.
Para melhorar o conhecimento em equipe em relação aos processos, foram criados e discutidos tópicos (dia 4) que as pessoas achavam relevantes sobre os processos da equipe. Para melhorar o conhecimento em equipe relacionado ao time, quem participou da reunião com clientes apresentou para toda a equipe os feedbacks coletados.
Além disso, as pessoas realizaram pequenas entrevistas entre diferentes equipes buscando entender quais eram os hobbies e interesses das outras pessoas, o que achavam mais divertido no trabalho e o que consideravam que estavam bem no trabalho.
Quanto ao conhecimento em equipe relacionado aos objetivos, foi utilizada a estratégia de roadmap dos objetivos. Assim como a apresentação de pontos que chamaram a atenção das pessoas que participaram das reuniões com clientes.
Conclusões
Com base na revisão da literatura apresentada, concluímos que o conhecimento em equipe é algo essencial para seu desempenho individual também. Portanto, a empresa como um todo deve promover maneiras para ajudar no seu desenvolvimento.
Neste texto, foram observados os principais conceitos ligados ao desenvolvimento do conhecimento em equipe e alguns exemplos deles. Assim como foi apresentado uma breve descrição de um trabalho em que um time de pesquisa observou uma equipe desenvolvendo esses conceitos na prática.
E como você promove o conhecimento em equipe? Conta para a gente nos comentários!
Referências bibliográficas
KOZLOWSKI, Steve WJ; ILGEN, Daniel R. Enhancing the effectiveness of work groups and teams. Psychological science in the public interest, v. 7, n. 3, p. 77-124, 2006.
COOKE, Nancy J. et al. Team cognition. Handbook of applied cognition, v. 2, p. 239-, 2007.
KLIMOSKI, Richard; MOHAMMED, Susan. Team mental model: Construct or metaphor?. Journal of management, v. 20, n. 2, p. 403-437, 1994.
WILDMAN, Jessica L. et al. Team knowledge research: Emerging trends and critical needs. Human Factors, v. 54, n. 1, p. 84-111, 2012.
FÆGRI, Tor Erlend; STRAY, Viktoria; MOE, Nils Brede. Shared Knowledge in Virtual Software Teams: A Preliminary Framework. In: 2016 IEEE 11th International Conference on Global Software Engineering (ICGSE). IEEE, 2016. p. 174-178.
Ribeiro, D. M., Cartaxo, B., & Da Silva, F. Q. (2019). Explorando o Conhecimento em Equipe na Engenharia de Software: Um Estudo de Caso Múltiplo. ISys – Brazilian Journal of Information Systems, 12(4), 117–150. Recuperado de http://www.seer.unirio.br/isys/article/view/8354
MATHIEU, John E. et al. The influence of shared mental models on team process and performance. Journal of applied psychology, v. 85, n. 2, p. 273, 2000.
MATHIEU, John et al. Team effectiveness 1997-2007: A review of recent advancements and a glimpse into the future. Journal of management, v. 34, n. 3, p. 410-476, 2008.
ESPINOSA, J. Alberto et al. Team knowledge and coordination in geographically distributed software development. Journal of management information systems, v. 24, n. 1, p. 135-169, 2007.
MARKS, Abigail; LOCKYER, Cliff. Debugging the system: the impact of dispersion on the identity of software team members. The International Journal of Human Resource Management, v. 16, n. 2, p. 219-237, 2005.
HE, Jun; BUTLER, Brian S.; KING, William R. Team cognition: Development and evolution in software project teams. Journal of Management Information Systems, v., n. 2, p. 261-292, 2007.
BASS, Julian M. How product owner teams scale agile methods to large distributed enterprises. Empirical Software Engineering, v. 20, n. 6, p. 1525-1557, 2015.
TEH, Alvin et al. Social psychology and software teams: Establishing task-effective group norms. IEEE software, v. 29, n. 4, p. 53-58, 2012.
CROWSTON, Kevin; KAMMERER, Ericka Eve . Coordination and collective mind in software requirements development. IBM Systems Journal, v. 37, n. 2, p. 227-245.
PRESTON, David; KARAHANNA, Elena. How to develop a shared vision: The key to IS strategic alignment. MIS Quarterly Executive, v. 8, n. 1, 2009.
KNIGHT, Don et al. Top management team diversity, group process, and strategic consensus. Strategic Management Journal, p. 445-465, 1999.
STRAY, Viktoria; SJØBERG, Dag IK; DYBÅ, Tore. The daily stand-up meeting: A grounded theory study. Journal of Systems and Software, v. 114, p. 101-124, 2016.
MOE, Nils Brede et al.. Enabling knowledge sharing in agile virtual teams. In: GlobaL Software Engineering (ICGSE), 2016 IEEE 11th International Conference on. IEEE, p. 29-33