Como usar métricas para garantir a qualidade de software

Aplicação de princípios de engenharia para controle de processos de construção de sistemas

Felipe Corniani de Genaro
Oct 7 · 5 min read

Muito mais do que um programador capaz de escrever as melhores linhas de código, a construção de um software depende do equilíbrio entre seus regimes de desenvolvimento, o que só é possível com processos gerenciais de qualidade. A seguir discutirei como a melhoria contínua na gestão de projetos depende diretamente da integração das áreas de uma organização e do aproveitamento dos dados compreendidos e coletados nos processos iniciais.

A crescente importância da tecnologia como eixo central em diversos setores resulta em um ambiente cada vez mais competitivo para o desenvolvimento de softwares. A reação natural das empresas é tentar se reinventar no mercado e sempre buscar diminuir seus custos, o que faz com elas produzam especificações cada vez mais complexas e de difícil entendimento, onde cada decimal após a vírgula importa.

Fica evidente, portanto, que a qualidade nos serviços prestados se tornou ponto crítico e de grande impacto no produto final, sendo imprescindível a utilização de normas para o controle da qualidade de software e métodos para garantir sua assertividade e conformidade.

Medições de previsão e de controle — SOMMERVILLE, 2011

Engenharia de Software

Como toda engenharia, ela visa construir algo. Mas o que é engenharia de software? É um conjunto de métodos, ferramentas e procedimentos com o objetivo de construir software com qualidade.

A combinação desses 3 elementos fundamentais possibilita ao gerente o controle do processo de desenvolvimento do software desde as fases iniciais de concepção do projeto até sua manutenção, e oferece ao profissional uma base para a construção de softwares de alta qualidade, para além dos processos técnicos. (PRESSMAN, 2002)

Para começar a entender um pouco mais sobre esse mundo é importante entender alguns padrões básicos pré-estabelecidos, como:

Especificação: iteração entre engenheiros e stakeholders para definição de escopo;

Desenvolvimento: plano de criação de protótipo e elaboração do produto;

Validação: verificação do que foi construído e garantia de que foi produzido o que foi definido;

Evolução: inclusão de novas features e alterações no escopo do cliente.

“A qualidade de software não é diretamente comparável à qualidade da manufatura. A ideia de tolerâncias não é aplicável aos sistemas digitais.” Sommerville(2011)

E o que é qualidade? Manter a conformidade com os requisitos especificados. E como garantir a qualidade do produto final? Se tratando de softwares é impossível não mencionar a importância das métricas, que devem ser utilizadas para aperfeiçoar seus processos de desenvolvimento, delineando uma adesão maior ao que foi especificado e garantindo a conformidade com o escopo de recursos disponíveis para a construção. A utilização de métodos estatísticos substitui a subjetividade na avaliação de qualidade por indicadores. Dessa forma, é possível atribuir notas para o comportamento de cada funcionalidade, ou então realizar cálculos para um overall de todo um conjunto de ações que foi especificada, tanto para requisitos funcionais como para os não-funcionais.

A importância do gerenciamento de projeto

A função do gerente é realizar a parametrização do ambiente no qual as suas equipes estão envolvidas, disponibilizando os recursos necessários para a realização do projeto. Para isso é essencial que ele atue com organização e clareza, de forma a garantir uma comunicação efetiva entre os envolvidos e um relacionamento produtivo entre as áreas referentes ao projeto. Um bom gerenciamento pode diminuir e evitar riscos, mitigar impactos não desejados, manter prazos e custos dentro do estipulado.

Para assegurar a constante evolução nas ações de controle e monitoramento do projeto é muito interessante que o gerente seja proativo na implantação de métricas para avaliação dos procedimentos das etapas mais críticas do projeto. Classicamente essas etapas eram definidas pelo triângulo de restrições, que envolvia tempo, custo e escopo. Com a crescente complexidade dos projetos e competitividade de produção, no entanto, este triângulo foi substituído por seis variáveis: escopo, qualidade, cronograma, orçamento, recursos e riscos. Qualquer alteração desses elementos afetará os demais e é papel do gerente de projetos buscar sempre mantê-los em equilíbrio. (WASLAWICK, 2013)

Ciclo PDCA — DEMING, 1986

Métricas no desenvolvimento de software

As métricas podem mensurar fatores diversos, dependendo de sua intenção. Desde detectar tendências até medir quantitativamente a eficácia dos processos, sua premissa é ser simples, de fácil coleta e manipulação de informações, de forma a garantir sua competitividade ao longo do tempo e, portanto, seu monitoramento.

No contexto do desenvolvimento de softwares, é necessário que as metas sejam construídas a partir de dados estatísticos históricos, para que sejam projetadas o mais próximas da realidade possível, de modo a permitir a existência de processos verdadeiramente mais eficientes e eficazes. Tão importante quanto coletar e manipular os dados corretos, é papel do gerente sempre avaliar a necessidade de auditar seus processos periodicamente, evitando desperdício de tempo e esforço em algo sem propósito específico definido.

Metas de processo: medir um processo envolve todo seu ambiente, desde ferramentas, prazos, colaboração e comunicação entre áreas até mesmo as regras específicas do negócio no qual aquele processo está inserido. O resultado esperado do uso de métricas de processo revela-se, então, uma tarefa de longo prazo, pois é preciso primeiro entender o processo como um todo para depois poder propor melhorias em suas etapas.

Metas de projeto: já o controle do projeto tem um fim mais estratégico, sendo possível rastrear riscos, descobrir áreas conflitantes e avaliar o estado do projeto de uma forma mais geral. A abordagem nesse caso deve ser de forma mais sucinta, mas ainda assim promove toda uma melhora no desempenho organizacional. (PRESSMAN, 2002)

Por fim, chegamos à questão de abertura do texto: como usar métricas para garantir a qualidade de software?

Como discutido, a qualidade do produto criado depende diretamente de sua adequação aos requisitos levantados em sua especificação e sua usabilidade no meio proposto. Essa organização e controle é de responsabilidade do gerente de projeto, que devem exercer revisões conjuntas com as equipes, auditorias, revisões de processo e conduzir as reuniões com stakeholders.

Neste contexto, as métricas vêm como instrumento fundamental para calcular e definir prazos, estipular o esforço necessário que a equipe irá precisar para o seu cumprimento, assim como estimar e controlar os recursos do projeto. Procurando sempre atingir as necessidades do cliente em tempo hábil, realizando as correções dentro dos períodos mensurados de forma controlada e segura, e garantindo sua coerência e elegibilidade.

Referências

DEMING, Edwards W.; Out of the Crisis, MIT Center for Advanced Engineering Study, 1986.

PRESSMAN, ROGER S.; Engenharia de Software, São Paulo, Ed. McGraw-Hill, 2002.

SOMMERVILLE, IAN; Engenharia de Software, São Paulo, Ed. Pearson Education, 2011.

WAZLAWICK, RAUL SIDNEI; Engenharia de Software, São Paulo, Ed. ELSEVIER, 2013.

Launchpad

Tecnologia, negócios e desenvolvimento pessoal em uma só plataforma.

Felipe Corniani de Genaro

Written by

Bachelor in Computer Science with Major in Software Engineering.

Launchpad

Launchpad

Tecnologia, negócios e desenvolvimento pessoal em uma só plataforma.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade