• Nenhum resultado encontrado

2.2 Melhoria do Processo de Software

2.2.1 Abordagens para Melhoria do Processo

Independente da definição específica de MPS, ela é realizada nas organizações por meio de abordagens (Persse, 2006). Uma abordagem para MPS é uma orientação para um conjunto de ações para a melhoria do processo em uma organização intensiva em software, descrevendo fases, atividades e recursos necessários para um esforço de melhoria bem sucedido (Rocha et al., 2001; Salviano, 2006).

Nos últimos anos, diversas abordagens têm sido elaboradas com o objetivo de guiar as organizações no caminho da melhoria do processo de software provendo um roteiro racional para isto. A ISO/IEC 15504-5 define MPS como um grupo de processos com três processos (ISO/IEC 15504-5, 2006):

Estabelecimento do processo de software: estabelecer um conjunto de

processos organizacionais para todos os processos do ciclo de vida à medida que eles se aplicam às atividades do negócio;

Avaliação do processo de software: determinar o quanto os processos

padrões da organização contribuem para o atendimento de seus objetivos estratégicos e apoiar o foco da organização na necessidade de melhoria contínua do processo;

Melhoria do processo de software: a melhoria contínua da eficiência e

eficácia da organização por meio dos processos utilizados e mantidos de forma alinhada às necessidades de negócio.

Várias abordagens para MPS têm como referência o ciclo PDCA (Plan-Do-

Check-Act, Planeja-Executa-Verifica-Atua), proposto por Walter Shewart e popularizado

por Deming (Deming, 1982). O ciclo PDCA é iniciado com o planejamento (Plan) do que será feito, estabelecimento de metas e, definição dos métodos para atingir as metas. A segunda fase (Do) envolve a realização das atividades com os métodos definidos e conforme o planejado para atendimento das metas. A terceira fase (Check) envolve a verificação dos resultados em relação às metas definidas e, finalmente, a quarta fase (Action) envolve correções de rotas se for necessário e, tomadas de ações corretivas ou de melhoria. A partir do conceito do PDCA foram criadas outras abordagens, como exemplo: o modelo IDEAL (Mcfeeley, 1996) e o ciclo de melhoria da ISO/IEC 15504 (ISO/IEC 15504-7, 1998).

2.2.1.1 Melhoria do Processo baseada em Modelos

A MPS pode ser implementada de forma ad-hoc, contudo a melhoria do processo implementada sistematicamente, baseada em modelos, padrões ou abordagens, mostrou- se mais eficiente (Mutafelija e Stromberg (2003) apud Salviano (2006)).

Salviano (2006) descreve a Melhoria do Processo de Software Baseada em

Modelos de Maturidade e da Capacidade de Processo como: “Abordagem para a

melhoria de organizações intensivas em software, baseada em modelos de capacidade de processo de software, por meio do estabelecimento, avaliação e melhoria da capacidade de seus processos mais importantes, relacionados às atividades de aquisição, fornecimento, operação, desenvolvimento, manutenção, gerência, melhoria e/ou apoio de sistemas de software com objetivo de satisfazer de forma mais eficiente e eficaz os objetivos estratégicos da organização.”

De acordo com a norma ISO/IEC 15504 (ISO/IEC 15504, 2003), a capacidade

do processo é uma caracterização da habilidade do processo atingir os objetivos de

negócios atuais ou futuros. Essencialmente, capacidade do processo é a habilidade inerente de um processo produzir resultados como o planejado (Ahern et al., 2001 apud Salviano, 2006).

Os modelos de capacidade de processo, comumente também chamados de

de forma sistemática e baseadas nos conceitos de capacidade do processo. O termo “boas práticas” diz respeito a ações consolidadas na prática como boa forma de desenvolver determinada atividade (Salviano, 2006).

A MPS utiliza um ou mais modelos como referência para orientar as ações de melhoria. Os principais modelos são estruturados através dos níveis de capacidade de processo segundo uma representação contínua ou estagiada. A representação contínua é caracterizada por um conjunto de áreas de processo e um conjunto de níveis de capacidade de processo; na representação estagiada existe um conjunto de níveis de maturidade com áreas de processo e nível de capacidade pré-definidos. Os modelos CMMI, por exemplo, são modelos de capacidade de processo, e podem ser implementados tanto na forma contínua quanto na estagiada (SEI, 2010a; SEI, 2010b). No Quadro 2.2 é apresentado a comparação das duas abordagens do modelo.

Quadro 2.2. Representação Contínua e Estagiada do CMMI (Salviano, 2006) Representação Contínua do CMMI Representação Estagiada do CMMI Possibilita liberdade explícita para selecionar a

ordem da melhoria que melhor atenda os objetivos estratégicos da organização e trate as áreas de risco da organização.

Permite que as organizações tenham um caminho de melhoria predeterminado e provado.

Permite uma maior visibilidade da capacidade

atingida em cada área de processo. Foca em um conjunto de processos com uma capacidade específica que é caracterizada por cada nível de maturidade.

Provê uma pontuação de nível de capacidade que é utilizada primeiramente para melhoria da organização e é raramente comunicada externamente.

Provê um nível de maturidade que é geralmente utilizado em comunicações gerenciais internas, comunicações externas à organização, e durante aquisições com um meio para a qualidade. Permite melhoria de processos diferentes serem

realizadas em diferentes taxas

Resume resultados de melhoria de processo em uma forma simples, um único número de nível de maturidade

Reflete uma nova abordagem que ainda não tem dados para demostrar que está relacionado ao retorno de investimento

Baseado em uma história relativamente longa de uso que inclui estudos de caso e dados que demostram retorno de investimento provado

O modelo CMMI (SEI, 2010a) destaca que as duas abordagens são válidas, e que o mais importante é que as empresas considerem quais objetivos de negócio deverão ser apoiados pela melhoria do processo, e a partir daí, avaliar qual representação é mais apropriada.

Shaeffer (2004) apud Salviano (2006) aponta que um problema das representações estagiadas está relacionado aos efeitos negativos dos níveis de maturidade, incluindo a “supervalorização” pelas organizações do foco nos níveis de maturidade em detrimento

da melhoria contínua, e o errôneo entendimento de níveis de maturidade como um fim e não como um meio para um fim.

2.2.1.2 Abordagem Prescritiva vesrus Indutiva

A respeito da forma de condução da MPS, Wang e King (2000) apud Barreto (2011) estabelecem que as principais abordagens para a definição de processos são:

Definição de processos com base em modelos de referência (Top-Down):

Para isto, os seguintes passos são seguidos: (i) selecionar, a partir de modelos de processo de referência, elementos para reutilização, estabelecendo um processo padrão para a organização; (ii) derivar, a partir do processo padrão organizacional, processos instanciados para os projetos da organização, que devem ser adequados à complexidade, tamanho e demais características do projeto; (iii) aplicar o processo instanciado nos projetos;

Definição de processos com base na cultura da organização (Bottom-Up):

neste caso aproveita-se o máximo os processos já existentes na organização, que serão sucessivamente melhorados em função dos resultados de avaliações e objetivos de melhoria;

Definição de processos com base nos objetivos organizacionais: em função

dos objetivos estabelecidos para a organização são definidos quais processos atendem a estes objetivos, sendo então priorizados, definidos e implantados conforme planos e recursos;

Definição de processos com base nas necessidades dos clientes: A definição

de processos orientada àqueles que têm maior potencial de gerar satisfação nos clientes da organização.

Barreto (2011) afirma que, apesar desta diferenciação de tipos de abordagem, na prática são utilizadas soluções híbridas que combinam características de diferentes tipos. Santana (2012) compara as abordagens “Top-Down” ou “Prescritiva” e “Bottom-

up” ou “Indutiva”. De acordo com o autor, a abordagem prescritiva é mais comum nas

iniciativas de MPS, onde existe há identificação dos processos “to-be-improved”. Esta abordagem prega que os processos reais devem ser comparados com um conjunto de boas práticas. Em caso de divergências, devem ser identificadas as oportunidades de melhoria, e eliminadas as diferenças entre o processo real e o conjunto de boas práticas providas pelos modelos (Siakas et al., 2005 apud Santana, 2012).

Ainda de acordo com o autor, os métodos indutivos de MPS apresentam uma abordagem bottom-up baseada no que deve ser realizado, em termos de melhorias organizacionais, face a compreensão aprofundada da situação atual do processo. A ideia é fundamentar a melhoria do processo mediante experiências na execução de projetos. Não existe uma avaliação inicial formal ou comparação com um conjunto pré-definido de práticas. Em vez disso, são definidas metas quantificáveis e, a partir delas, melhorias são escolhidas (Pettersson et al., 2008 apud Santana, 2012).

Neste trabalho, são adotados os conceitos da abordagem Indutiva (Bottom-up) e

Prescritiva (Top-Down) conforme mencionados por Santana (2012), considerando que a

definição de processos de forma indutiva abrange os conceitos de definição de processos com base na cultura da organização, com base nos objetivos de negócio e com base nas necessidades dos clientes, estabelecidos por Wang e King (2000) apud Barreto (2011).

Além disso, a abordagem proposta neste trabalho adota a Melhoria do Processo de Software Baseada em Modelos de Capacidade de Processo, por meio da representação contínua dos modelos CMMI-DEV e CMMI-SVC, para a definição de um Perfil de Capacidade de Processo (PCP).