Archive | 2019
Avaliação da Maturidade em Colaboração de Equipes Ágeis de Desenvolvimento de Software
Abstract
This paper describes an ongoing research that seeks to elaborate a process for assessing the collaborative maturity of teams that develop software using agile methods. As preliminary results, it presents a literature review and the result of a Survey on Encouraging and Using Collaboration in Agile Methods that drew 271 respondents. Resumo. Este artigo descreve uma pesquisa em andamento que busca elaborar um processo para avaliar a maturidade em colaboração de equipes que desenvolvem softwares utilizando de métodos ágeis. Como resultados preliminares, apresenta uma revisão da bibliografia e o resultado de uma Survey sobre incentivo e uso da colaboração em métodos ágeis que obteve 271 respondentes. 1. Contexto do trabalho Os processos de desenvolvimento de software passaram por grandes transformações nas últimas décadas, necessitando maior interação entre os envolvidos. Cada vez são mais utilizados modelos baseados em processos mais flexíveis e incrementais, como os métodos ágeis. Estes buscam a entrega contínua de valor de partes do software, buscando melhoria contínua tanto do produto de software quanto do seu processo de desenvolvimento (PRESSMAN, 2011). Estas transformações vêm ao encontro de um mercado em constante mudança, em que é necessário adaptar-se continuamente e agir de modo eficiente para que o resultado produzido pelo software seja efetivo para os negócios das organizações (GOLDMAN, NAGEL e PREISS, 1994). Parte das contribuições dos métodos ágeis é o incentivo à comunicação e colaboração. Quanto melhor for a colaboração entre os membros dos times de desenvolvimento, patrocinadores, clientes e os demais envolvidos, mais bem direcionados serão os esforços para a produção do software, mais fluida será a resposta contínua às mudanças, maior será a capacidade de produzir software alinhado às necessidades de negócio e de inovação e maior será a qualidade do software aferida sob a ótica do usuário (BECK et al., 2001; HIGHSMITH E COCKBURN, 2001; COCKBURN, 2002; JACOBSON, 2002; PRESSMAN, 2011). Além disso, segundo Jacobson (2002), uma equipe ágil reconhece que as capacidades individuais somadas à capacidade de colaborar são fatores principais de sucesso de um projeto. Pressman (2011) ressalta que agilidade vai além de resposta a mudanças, “incentiva a estruturação e as atitudes em equipe que tornam a comunicação mais fácil (entre membros da equipe, entre o pessoal ligado à tecnologia e o pessoal da área comercial, entre os engenheiros de software e seus gerentes)” (PRESSMAN, 2011, p. 83). 2. Problema a ser investigado Atualmente, as organizações enfrentam problemas de tamanha complexidade, que nenhum indivíduo possui conhecimento, influência e recursos para resolvê-los sozinho. Neste cenário, a colaboração se tornou ubíqua na vida das organizações (VREEDE, MASSEY e BRIGGS, 2009). As organizações ainda possuem dificuldade em integrar práticas, técnicas e características de colaboração aos processos ágeis de desenvolvimento de software que permitam cooperação, fluidez da comunicação e flexibilização na coordenação capazes de melhorar o resultado dos projetos de software. Neste contexto, este estudo guia-se pela seguinte questão de pesquisa: Quais elementos devem compor um processo de avaliação que permita aferir o nível de maturidade em colaboração de equipes inseridas no processo de desenvolvimento de software? O objetivo geral deste estudo é desenvolver um processo que permita aferir o nível de maturidade em colaboração de equipes de desenvolvimento de software nas empresas, de forma que possa ser utilizado como guia para diagnosticar e evoluir a colaboração nos processos de desenvolvimento de software. Como objetivos específicos, busca: • Encontrar fatores de colaboração pertinentes às equipes de desenvolvimento de software em métodos ágeis; • Propor uma classificação dos fatores em níveis de maturidade de colaboração utilizando como base o ColabMM (MAGDALENO, 2016); • Definir um processo de avaliação da colaboração em equipes de desenvolvimento de software; • Avaliar a situação de equipes quanto à utilização de colaboração.