Metodologias Ágeis
Melhoria de Processo de Software no Desenvolvimento Ágil
Este artigo apresenta o conceito de melhoria de processo de software e sua aplicação em aplicações que utilizam abordagens de metodologias ágeis.
Para que serve:
Serve como fonte de exemplos de aplicações da utilização de Melhoria de Processo de Software (MPS) em ambientes ágeis e entender sua diferença em relação ao MPS tradicional.
Em que situação o tema é útil:
A procura pelo conhecimento e aplicação de metodologias ágeis vem aumentando. Desta forma, este artigo tem a finalidade de prover (i) um melhor entendimento de como e quando realizar um processo MPS; e (ii) apresentar etapas a serem seguidas e resultados esperados tratados através do uso de técnicas utilizadas nas metodologias ágeis para iniciativas de MPS.
O surgimento das metodologias ágeis foi de fato um importante marco na indústria do desenvolvimento de software. Algumas definições, disponíveis na literatura [Schuh 2004; Mnkandla & Dwolatzky 2004], tratam o tema como algo revolucionário, sendo considerada uma nova disciplina de engenharia que modificava os valores do processo de desenvolvimento de software do mecânico (orientado a processos e utilizando regras da ciência) para o orgânico (dirigido por questões sobre pessoas e suas interações).
De uma forma geral, a apresentação destas metodologias trouxe mudanças culturais em vários aspectos no desenvolvimento de software, a exemplo da proposição de técnicas e procedimentos, até a contribuição na realização da Melhoria de Processo de Software (MPS).
Baseado nesse contexto de mudança cultural, uma nova forma para a realização da Melhoria de Processo de Software era necessária sem que fosse tirado o foco do “orgânico”, valorizando ainda mais as pessoas e suas competências. Neste artigo será mostrado como é proposto o MPS nas metodologias ágeis e sua diferença do MPS tradicional.
Histórico
Para melhor entendermos o contexto do MPS em ambientes tradicionais, devemos entender o que aconteceu com o rumo que a Qualidade de Software tomou a partir daquela reunião da OTAN em 1968 onde o termo “Engenharia de Software” foi utilizado pela primeira vez por F. L. Bauer.
Naquela reunião foi utilizado também o termo “Crise do Software” para definir a situação em que a indústria do software atravessava naquele momento. E a crise foi atribuída à complexidade de desenvolver sistemas cada vez maiores, bem como à falta de gerenciamento no processo de desenvolvimento de software.
A partir daí, “engenheiros de software” tentaram imitar a engenharia convencional, para resolver problemas de qualidade e falhas em sistemas de informação. Uma quantidade significativa de experiência foi obtida através de processos de garantia da qualidade praticados na indústria de manufatura e essa adaptação para a indústria de software foi, em alguns casos, um fracasso e, em outros, um sucesso, como, por exemplo, a utilização de controle estatístico de processo (base do Six Sigma) para avaliação de processos de software.
Ainda no fim da década de 1980, o controle de qualidade existente na indústria de software era centrado no produto final e com utilização de métodos corretivos em inspeções no fim da linha de produção, e se mostrava pouco efetivo para a solução de problemas gerenciais como prazos e custos.
No início da década de 1990, o mercado substituía aquele controle de qualidade pela Garantia da Qualidade com um foco centrado no processo e que utilizava auditorias durante todo o ciclo de vida de desenvolvimento. A partir daí, foram surgindo normas (ISO 9000-3, ISO 15504, ISO 12207), padrões (IEEE 1074, IEEE 1298) e Modelos (SW-CMM, CMMI) para Qualidade de Software.
A partir daí começaram a surgir os modelos para Melhoria de Processos de Software. A maioria é baseada no PDCA (Plan-Do-Check-Action) de Eduard Deming. Os modelos para MPS mais utilizados foram o IDEAL [Mcfeeley 1996], utilizado em conjunto com o SW-CMM, e o Modelo DMAIC utilizado pelo Six Sigma.
Com o advento da Garantia da Qualidade, a indústria de software passou a ser centrada em documentação e orientada a planejamento, e essa forma de desenvolvimento de software ficou conhecida como modelo tradicional [Boehm 1988].
Nesse contexto, a Melhoria do Processo de Software pode ser genericamente estereotipada com as seguintes características:
...