Olá pessoal, no post de hoje irei falar sobre medição de software, em especial, medição de software em projetos gerenciados com Scrum.

Em qualquer área da Engenharia, o ato de se medir o produto gerado é fundamental, é uma forma de se obter conhecimento sobre o trabalho que está sendo realizado e aprender a estimar os trabalhos futuros, se não realizamos medições ou não é possível a realização das mesmas, não sabemos nada sobre o produto que está sendo gerado.

Segundo Pressman, na Engenharia de Software a medição pode ser aplicada ao processo de desenvolvimento com o objetivo de melhorá-lo de forma contínua. Pode ser usada ao longo do projeto para auxiliar na estimativa, controle de qualidade, na avaliação de produtividade e no controle do projeto. A medição é importante pare remover a subjetividade das avaliações, pois um número é frio, não carrega sentimento, é apenas um resultado que deve ser avaliado.

Através de medições somos capazes de responder perguntas como: Qual o tamanho do software desenvolvido? Quantas horas de trabalho foram gastas no seu desenvolvimento? Qual o nível de qualidade do software entregue? Apesar de saber responder essas e outras perguntas ser fundamental em um projeto, segundo Pressman, a maioria dos desenvolvedores ainda não realiza medições e, não possuem vontade de realizar tal tarefa. 

No mundo da gestão tradicional de projetos, esses problemas são resolvidos através das diversas gerências dentro da Gerência do Projeto. Se um projeto for bem gerenciado ele possuirá medições constantes, pois sem as medições, o gerente do projeto não será capaz de conduzir o projeto para o sucesso.

Entretanto, no mundo do Scrum, isso é necessário? A resposta para essa pergunta é SIM!! Voltando ao segundo parágrafo, o principal objetivo da medição de software é permitir aos envolvidos conhecer o processo e melhorá-lo de forma contínua. Como um dos princípios do Scrum são transparência, inspeção e adaptação, não há forma melhor de deixarmos transparente a qualidade, efetividade e eficiência do processo de desenvolvimento Scrum utilizado pela equipe que não seja utilizando números.

Ainda, o Scrum prega que, no final de cada Sprint, na Reunião de Restrospectiva, o processo Scrum da equipe deve ser avaliado e evoluído. Logo, sem a utilização de medições, a equipe não será capaz de aperfeiçoar seu processo Scrum.

Logo, apesar da medição de software nos remeter à métricas como KLOC (Kilo Lines of Code) e APF (Análise de Pontos de Função), que são amplamente utilizadas na gerência de projetos tradicionais, em Scrum, a medição também é importante. O Scrum também possui algumas métricas que usamos constantemente como: velocidade média da equipe, estimativa da história, tamanho da sprint, número de pontos aprovados em uma Sprint, etc.

Entretanto, no Scrum, não há um gerente de projetos responsável por decidir como o software será medido. O ideal é que a equipe se conscientize da importância da medição para que a mesma possa aperfeiçoar seu processo Scrum. As métricas escolhidas devem ser apenas as necessárias para responder perguntas específicas que visam melhorar o seu processo Scrum. Por fim, como implantar essa cultura na equipe é um assunto longo, que discutirei em outro post futuramente.

Então pessoal, ficaram convencidos da importância da medição de software independente da metodologia empregada? E você, qual a sua experiência com a medição de software em projetos ágeis?