Você está na página 1de 64

Modéstia à parte, sua

melhor opção para


se destacar no mercado!
A Escola Superior da Tecnologia da PÓS- GRADUAÇÃO
Informação oferece as melhores Engenharia de Software:
opções em cursos, formações, Desenvolvimento Java
graduações e pós-graduações para Engenharia de Software:
Desenvolvimento .NET
profissionais de desenvolvimento
GRADUAÇÃO
e programação.
Engenharia de Computação
São programas voltados para a Análise e Desenv. de Sistemas
formação de profissionais de elite,
F ORMAÇÕES
com aulas 100% práticas, corpo
Desenvolvedor Java
docente atuante no mercado,
Desenv. Java: Sist. Distribuídos
acesso à mais atualizada biblioteca
Gestor de TI
de TI do Rio, laboratórios equipados
Desenvolvedor Web .NET 2008
com tecnologia de ponta, salas de
MCITP Server Administrator
estudo e exames.
SQL Server 2008

r/esti
Acesse nosso site e conheça todos os nossos programas: www.infnet.edu.br/esti

TURMAS
NO RIO DE
JANEIRO
www.infnet.edu.br - cursos@infnet.edu.br - Central de Atendimento: (21) 2122-8800

EDUCAÇÃO SUPERIOR ORIENTADA AO MERCADO


EDITORIAL

O
propósito da qualidade é estabelecer um diferencial competi-
tivo, através de contribuições como redução de defeitos, redu-
ção de custos, redução de retrabalho e aumento da produtivi-
dade, entre outras. Existem diversas iniciativas para garantia da qualida-
de de produtos e processos nas empresas. Nesta edição, a Engenharia
Ano 2 - 21ª Edição - 2010 Impresso no Brasil de Software Magazine destaca duas delas:
• CMMI, (Capability Maturity Model Integration), um modelo de ma-
turidade mundialmente conhecido, usado para criar uma infraestrutu-
Corpo Editorial ra de processos organizacionais, abordando domínios específicos, tais
como software e engenharia de sistemas.
Colaboradores
Rodrigo Oliveira Spínola • Seis Sigma, uma metodologia criada pela Motorola, caracterizada por
rodrigo@sqlmagazine.com.br uma abordagem sistêmica e utilização intensiva do pensamento esta-
Marco Antônio Pereira Araújo tístico, que visa a redução de defeitos nos produtos para 3,4 defeitos
Eduardo Oliveira Spínola por milhões de oportunidades (Seis Sigma) por meio da otimização de
Capa produtos e processos.
Romulo Araujo - romulo@devmedia.com.br Neste contexto, temos como capa desta edição um artigo que fornece
a compreensão necessária das relações entre as iniciativas e propor a
Diagramação
Janete Feitosa utilização do Seis Sigma na melhoria da qualidade de software para a
obtenção dos níveis de maturidade 4 e 5 do CMMI.
Coordenação Geral Além desta matéria, esta edição traz mais cinco artigos:
Daniella Costa - daniella@devmedia.com.br
• Colaboração em Processos de Aquisição de Software
Revisor e Supervisor • Customização e Integração de Ferramentas Open-Source
Thiago Vincenzo - thiago.v.ciancio@devmedia.com.br
• Organização Fábrica de Experiência
Na Web • Métricas de Software
www.devmedia.com.br/esmag
• Integração contínua com Hudson, Maven2, TestNG e Subversion
Apoio

Desejamos uma ótima leitura!


Equipe Editorial Engenharia de Software Magazine

Rodrigo Oliveira Spínola


Atendimento ao Leitor rodrigo@sqlmagazine.com.br
A DevMedia conta com um departamento exclusivo para o atendimento ao leitor. Doutorando em Engenharia de Sistemas e Computação (COPPE/UFRJ). Mestre em
Se você tiver algum problema no recebimento do seu exemplar ou precisar de Engenharia de Software (COPPE/UFRJ, 2004). Bacharel em Ciências da Computa-
algum esclarecimento sobre assinaturas, exemplares anteriores, endereço de ção (UNIFACS, 2001). Colaborador da Kali Software (www.kalisoftware.com), ten-
bancas de jornal, entre outros, entre em contato com: do ministrado cursos na área de Qualidade de Produtos e Processos de Software,
Requisitos e Desenvolvimento Orientado a Objetos. Consultor para implementação
Cristiany Queiróz– Atendimento ao Leitor do MPS.BR. Atua como Gerente de Projeto e Analista de Requisitos em projetos de
www.devmedia.com.br/mancad
(21) 2220-5338 consultoria na COPPE/UFRJ. É Colaborador da Engenharia de Software Magazine.
Kaline Dolabella
Gerente de Marketing e Atendimento
kalined@terra.com.br
(21) 2220-5338
Marco Antônio Pereira Araújo
(maraujo@devmedia.com.br)
Doutor e Mestre em Engenharia de Sistemas e Computação pela COPPE/UFRJ - Li-
Publicidade
nha de Pesquisa em Engenharia de Software, Especialista em Métodos Estatísticos
Para informações sobre veiculação de anúncio na revista ou no site entre em
Computacionais e Bacharel em Matemática com Habilitação em Informática pela
contato com:
UFJF, Professor e Coordenador do curso de Bacharelado em Sistemas de Informação
Kaline Dolabella
publicidade@devmedia.com.br do Centro de Ensino Superior de Juiz de Fora, Professor do curso de Bacharelado
em Sistemas de Informação da Faculdade Metodista Granbery, Professor e Diretor
Fale com o Editor!
do Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas da
É muito importante para a equipe saber o que você está achando da revista: que tipo de artigo
Fundação Educacional D. André Arcoverde, Analista de Sistemas da Prefeitura de
você gostaria de ler, que artigo você mais gostou e qual artigo você menos gostou. Fique a
Juiz de Fora, Colaborador da Engenharia de Software Magazine.
vontade para entrar em contato com os editores e dar a sua sugestão!
Se você estiver interessado em publicar um artigo na revista ou no site SQL Magazine,
entre em contato com os editores, informando o título e mini-resumo do tema que você
Eduardo Oliveira Spínola
(eduspinola@gmail.com)
gostaria de publicar:
É Colaborador das revistas Engenharia de Software Magazine, Java Magazine e
Rodrigo Oliveira Spínola - Colaborador
SQL Magazine. É bacharel em Ciências da Computação pela Universidade Salva-
editor@sqlmagazine.com.br
dor (UNIFACS) onde atualmente cursa o mestrado em Sistemas e Computação na
linha de Engenharia de Software, sendo membro do GESA (Grupo de Engenharia
de Software e Aplicações).
Caro Leitor, ÍNDICE

Abordagens Tradicionais de Desenvolvimento


Para esta edição, temos um conjunto de 4 vídeo
05 - Seis Sigma e CMMI
aulas. Estas vídeo aulas estão disponíveis para Luiz Fernando da Silva Fiel, Ana Nathalie de Mello Rodrigues e Marcelo Nascimento Costa
download no Portal da Engenharia de Software 32 - Colaboração em Processos de Aquisição de Software
Magazine e certamente trarão uma significativa João Condack, Rafael Vieira
contribuição para seu aprendizado. A lista de 38 - Organização Fábrica de Experiência
aulas publicadas pode ser vista abaixo: Fernando Hadad Zaidan, George Leal Jamil e Leandro Libério da Silva

43 - Customização e Integração de Ferramentas Open-Source


Tipo: Requisitos Felipe Furtado, Gustavo Carvalho, Andrea Pinto e Ryan Albuquerque
Título: Diagrama de Casos de Uso na Prática – Partes 4 a 7 50 - Métricas de Software
Autor: Rodrigo Oliveira Spínola Thamine Chaves Leite de Abreu, Leonardo da Silva Mota e Marco Antônio Pereira Araújo
Mini-Resumo: Estas aulas são parte de uma série sobre a
construção de diagrama de casos de uso da UML. O objetivo
do conjunto de aulas é apresentar de forma prática como Validação, Verificação e Teste
elaborar o diagrama de casos de uso a partir de diferentes
estudos de caso. Nestas aulas, serão elaborados diversos dia- 56 - Integração contínua com Hudson, Maven2, TestNG e Subversion
gramas de casos de uso. Também será visto como especificar Victor Vidigal Ribeiro, Fabrício Nogueira de Almeida e Marco Antônio Pereira Araújo
um caso de uso para um dos diagramas elaborados.

4 Engenharia de Software Magazine


Abordagens Tradicionais de Desenvolvimento
Esta seção traz artigos que apresentam como e quando utilizar as diferentes abordagens
tradicionais de apoio ao desenvolvimento de projetos de software

Seis Sigma e CMMI


Uso do Seis Sigma para Melhoria da Qualidade de Software junto aos Altos
Níveis de Maturidade do CMMI

O
propósito da qualidade é esta- O objetivo deste artigo é fornecer a
belecer um diferencial compe- compreensão necessária das relações
titivo, através de contribuições entre as iniciativas e propor a utilização
como redução de defeitos, redução de do Seis Sigma na melhoria da qualidade
Luiz Fernando da Silva Fiel custos, redução de retrabalho e aumento de software para a obtenção dos níveis
Bacharel em Ciência da Computação pelo da produtividade, entre outras. de maturidade 4 e 5 do CMMI.
Centro Universitário Metodista Bennett.
Existem diversas iniciativas para
garantia da qualidade de produtos e Introdução
processos nas empresas. Para este artigo,
selecionamos duas: Motivação
Ana Nathalie de Mello Rodrigues • CMMI, (Capability Maturity Model Em meados dos anos 80, influenciado
Estagiária na área de Governança de TI da
Wilson, Sons. Bacharel em Ciência da Com- Integration), um modelo de maturidade pela introdução crescente de técnicas
putação pelo Centro Universitário Metodis- mundialmente conhecido, usado para industriais japonesas nas fábricas bra-
ta Bennett. Técnica em Processamento de criar uma infraestrutura de processos sileiras, o conceito de melhoria da qua-
Dados pela FAETEC. organizacionais, abordando domínios lidade ganhou destaque. Foi o auge do
específicos, tais como software e enge- impacto nipônico na indústria nacional,
Marcelo Nascimento Costa nharia de sistemas. impulsionado por visita de técnicos bra-
mnc@kalisoftware.com
• Seis Sigma, uma metodologia criada sileiros ao Japão em missões especiais e
Diretor de Tecnologia da Kali Software.
Mestre em Engenharia de Sistemas e pela Motorola, caracterizada por uma pelo sucesso das ferramentas japonesas
Computação pela COPPE/UFRJ. Bacharel abordagem sistêmica e utilização inten- de administração da qualidade.
em Ciência da Computação pela UFPA. siva do pensamento estatístico, que visa O desenvolvimento de novas técnicas
Especialista em CMMI, tendo participado a redução de defeitos nos produtos para de produção e a adaptação de proce-
de diversas implementações e avaliações
3,4 defeitos por milhões de oportunida- dimentos criados, sobretudo no Japão,
deste modelo. Professor do curso de Ciên-
cia da Computação do Centro Universitário des (Seis Sigma) por meio da otimização foram experiências marcantes no perío-
Metodista Bennett. de produtos e processos. do, caracterizado também pelo advento

Edição 21 - Engenharia de Software Magazine 5


da norma ISO 9000, então vista como nova forma de avaliar o de maturidade mundialmente conhecido, usado para criar
processo produtivo. uma infraestrutura de processos organizacionais, abordando
No Brasil, o termo “qualidade” tem mudado seguidamente de domínios específicos, tais como software e engenharia de
sentido. Ainda persiste a ideia de que a qualidade é o esforço sistemas;
para minimizar defeitos. Como também permanece a visão 2. Seis Sigma - uma iniciativa top-down que abrange toda a
de que a qualidade está restrita às melhorias localizadas. Ou empresa, incluindo áreas como engenharia, vendas, marketing
até mesmo a uma maior qualificação das pessoas. Mas atual- e pesquisa.  Pode ser definido como “estratégia gerencial,
mente a qualidade já pode ser vista como um diferencial ou filosofia ou metodologia”, que tem por objetivo reduzir dras-
até mesmo como um item básico de manutenção da empresa, ticamente a variabilidade dos processos críticos e aumentar a
principalmente nestes tempos de concorrência acirrada (CAR- lucratividade das empresas, por meio da otimização de produ-
VALHO; PALADINI, 2005). tos e processos, buscando satisfação de clientes e consumidores
Em termos simples e objetivos, o propósito da qualidade é (CARVALHO; PALADINI, 2005).
estabelecer um diferencial competitivo. Ou seja: garantir um
espaço para a organização, diferenciando-a das demais exis- Concepções tão diferenciadas podem gerar dúvidas como:
tentes no mercado. Em outras palavras: fixar raízes à frente “Será que é interessante utilizar ambos no mesmo processo
dos concorrentes. de melhoria? A qualidade pode aumentar dessa forma? O Seis
A qualidade oferece contribuições operacionais que não po- Sigma é uma boa alternativa para empresas de TI?”. Desta for-
dem ser desprezadas, como por exemplo: redução de defeitos, ma, o objetivo deste artigo é fornecer a compreensão necessária
redução de custos, redução de retrabalho, aumento da produti- das relações entre as iniciativas, de modo que sua aplicação
vidade. Existem também contribuições táticas relevantes como em conjunto seja bem sucedida.
a formação de pessoas mais preparadas para tomar decisões
gerenciais críticas para o funcionamento da empresa. Mas as Organização do Artigo
contribuições mais relevantes são as de natureza estratégica: Os tópicos a seguir mostram como está organizado este
garantir não apenas a sobrevivência da organização, mas seu artigo.
contínuo crescimento (evolução). Inicialmente será abordado o histórico dos modelos de
Considerando o escopo das empresas de processo de sof- qualidade, passando por gestão e excelência, e trata do mo-
tware, além das certificações ISO entre outras iniciativas delo CMMI, mostrando suas principais características, como
aplicáveis, existem modelos de maturidade como o CMMI e estrutura e benefícios.
o MPS.BR, que podem ser utilizados para atingir os objetivos Na sequencia, é apresentado o Seis Sigma, fazendo um relato
de qualidade desejados. do histórico, objetivos, perfis das pessoas responsáveis pela
O que move as empresas no processo de obtenção das certifi- implementação do modelo e suas metodologias.
cações dos altos níveis de maturidade (tanto do CMMI quanto Feito isto, é apresentada aplicação do Seis Sigma na melhoria
do MPS.BR) é a necessidade de se ter qualidade de processos, dos processos de qualidade de software, através do mapeamen-
condições de previsibilidade em termos de prazo, de custo e to de suas atividades com as práticas definidas nos níveis de
de volume de trabalho a ser feito para que consiga satisfazer o maturidade 4 e 5 do CMMI. Ainda neste tópico, é apresentado
cliente. As empresas estão sempre em evolução para atender as um estudo de caso da aplicação integrada do Seis Sigma e
exigências do mercado cada vez mais competitivo e com as cer- CMMI em uma empresa de software, mostrando como esta
tificações de maturidade, são adquiridas condições de medir a estratégia de melhoria de processos pode trazer benefícios
melhoria e comprovar as vantagens de se encontrar em outro significativos. Finalmente, é apresentada a conclusão deste
nível de excelência em termos de controle de processos. trabalho.
Para algumas empresas, as principais dificuldades encontra-
das na obtenção dos mais altos níveis são: o custo de implemen- Histórico dos Modelos de Qualidade
tação (melhorar requer mudanças e mudanças geram custos) e a
maturidade organizacional, que requer também uma mudança Relatos Históricos
cultural e a colaboração de todas as equipes. Estas dificuldades A necessidade pela gestão da qualidade surgiu há muitos
trazem resistência por parte dos envolvidos, porém, ao longo anos atrás, onde os artesãos faziam todo o processo, desde a
do tempo percebe-se que o custo é muito maior quando não concepção até o pós-venda de seus produtos. Como a popu-
se pratica estes processos, pois o nível de qualidade é menor lação não era numerosa, as necessidades eram mínimas e o
e há muito retrabalho. trabalho era artesanal. O artesão, sabendo que seus produtos
dependiam da reputação de qualidade, que era feita pelo boca
Objetivos a boca dos clientes, usava como abordagem de qualidade o
Este artigo propõe uma solução integrada em termos de me- atendimento às necessidades do cliente. Por esse motivo, nessa
lhoria de processos de software e obtenção de altos níveis de época o foco do controle da qualidade ainda era o produto,
maturidade, através da utilização de duas iniciativas:  não o processo. Como exemplo disso, no final do século XIX, a
1. CMMI (Capability Maturity Model Integration) -  um modelo montadora de automóveis Panhard e Levassor (P&L) montava

6 Engenharia de Software Magazine - Seis Sigma e CMMI


M etodologias Ágeis

seus veículos atendendo às necessidades dos clientes que a prever o comportamento do processo, o que permitiria uma ação
procuravam, e como era um produto para poucos, não havia proativa, evitando novas ocorrências. A facilidade de utilização
dois carros iguais. do gráfico foi um dos aspectos que ajudou na sua difusão, pois
Em 1750, durante a Revolução Industrial, surgiram as era uma ferramenta visual, que podia ser preenchida no am-
primeiras máquinas projetadas para obter grande volume biente de trabalho, com os parâmetros estatísticos do processo
de produção e uma nova forma de organização do trabalho já sintetizados (CARVALHO; PALADINI, 2005).
permitiu alcançar a produção em massa. Nessa nova ordem Geralmente, o gráfico de controle é utilizado na detecção de
produtiva, a customização foi substituída pela padronização alterações inusitadas de uma ou mais características de um
e a produção em larga escala. processo ou produto. Em outras palavras, é uma ferramenta
A linha de montagem era o modelo ideal para a produção estatística que alerta para a presença de causas especiais gran-
em massa. O trabalho foi fragmentado e os trabalhadores des na linha de produção. Existem diversos tipos de gráficos
tinham domínio apenas de uma pequena fração do trabalho. de controle e cada um deles é melhor aplicável a determinadas
O trabalhador não fazia mais parte das etapas de concepção e situações. Normalmente, todos os tipos de gráficos de controle
planejamento e surgiu a função do inspetor, responsável pela seguem a estrutura da Figura 1.
qualidade dos produtos.
No período de 1908 a 1927, a Ford tinha apenas um carro na
linha de montagem, o modelo Ford T ou Ford Bigode, como era
conhecido. Tinha uma única cor, a preta. De qualquer forma, 15
milhões de unidades foram vendidas. O carro passou a ser um
produto acessível à classe trabalhadora, mudando o conceito
dessa indústria, que investiu em capacidade para atender à
demanda, que era maior que a oferta. Como um veículo ainda
diferia bastante de outro produzido sob o mesmo projeto, a
Ford investiu na intercambialidade das peças e na facilidade
de ajustes, adotando um sistema padronizado de medida para
todas as peças. O modelo de linha de montagem se difundiu
em outros industriais, e para garantir a intercambialidade das
peças, tornou-se importante investir no desenvolvimento de
áreas com a metrologia, sistema de medidas e especificações.
O foco da qualidade ainda era a inspeção, mas já existiam Figura 1. Gráfico de controle em formato conceitual (Fonte: Adaptação
elementos que mostravam o que viria a ser o conceito de qua- (CARVALHO; PALADINI, 2005))
lidade que priorizava uma abordagem voltada à produção e
à conformidade. O gráfico consiste na plotagem de três linhas e os pontos que
representam as médias de pequenas amostras (chamados sub-
Gestão da Qualidade grupos racionais), cada qual de tamanho n (= 1, 4, 9, 16, 1000, por
Existem algumas pessoas que são consideradas como Gu- exemplo), de mensurações periódicas de alguma característica
rus da Qualidade. Eles foram alguns teóricos que ajudaram importante de um processo (peso, cumprimento, volume etc.),
a construir a área de qualidade e tiveram um papel especial ou o número ou porcentagem de peças defeituosas ou número
para merecer a denominação. Alguns dos Gurus mais citados de defeitos. As três linhas representam dois limites de controle,
são: Walter A. Shewhart, W. Edwards Deming, Joseph M. Ju- um superior (LCS) e outro inferior (LCI), e uma linha no meio
ran, Armand Feigenbaum, Philip B. Crosby, Kaoru Ishikawa que é a média da variável ou o alvo da característica.
e Genichi Taguchi. Tradicionalmente, as linhas de controle ficam numa distância
Em 1924, Walter A. Shewhart fez o conceito de controle da de três desvios-padrão da média ou do alvo do processo. Os
qualidade dar um novo salto, criando os gráficos de contro- limites definem uma área razoavelmente grande que vai evitar
le. Com essa ferramenta, Shewhart fundiu os conceitos de alarmes falsos. O desvio-padrão utilizado é o desvio-padrão
estatística em um método gráfico de fácil utilização no chão das médias (erro-padrão); teoricamente, é o desvio-padrão da
de fábrica e os aplicou à realidade produtiva da empresa de população dividido pela raiz quadrada do tamanho da amos-
telefonia Bell Telephone Laboratories. tra - σ/√n. Em termos estatísticos, os dois limites de controle
A ferramenta proposta analisava os resultados das inspeções, definem um intervalo de confiança com nível de confiança de
que até aquele momento eram utilizadas apenas para a segrega- 99,73%. Esse número significa que um alarme falso pode ocor-
ção dos produtos com defeito, por meio de gráficos de controle, rer uma vez em 370 subgrupos. Se forem tiradas 16 amostras
que permitiam facilmente distinguir entre as causas de variação por dia numa fábrica, o alarme falso iria ocorrer apenas uma
comuns ao processo e aquelas causas especiais, que deveriam ser vez a cada 23 dias, um preço muito razoável, considerando-se
investigadas. Com a análise desses resultados à luz dos conceitos o grande valor relacionado aos gráficos de controle (CARVA-
estatísticos era possível sair de uma postura reativa e entender e LHO; PALADINI, 2005).

Edição 21 - Engenharia de Software Magazine 7


Walter A. Shewhart também propôs o ciclo PDCA (plan-do- • Caso não sejam identificados desvios, é possível realizar
check-act), que direcionaria as atividades de análise e solução um trabalho preventivo, identificando quais os desvios são
de problema, percorrendo o ciclo de planejar, fazer, checar o re- passíveis de ocorrer no futuro, suas causas, soluções etc.
sultado e depois agir, ou seja, implementar a melhoria e garan-
tir o alcance das metas na empresa, disseminado para o mundo O PDCA pode ser utilizado na realização de toda e qualquer
por Deming William Edwards, que era seu discípulo. atividade da organização (Tabela 1). O ideal é que todos utilizem
O ciclo PDCA é composto das seguintes etapas (Figura 2): esta ferramenta de gestão no dia-a-dia de suas atividades.

Da Gestão da Qualidade para a Qualidade Total


A gestão da qualidade consiste no conjunto de atividades coor-
denadas para dirigir e controlar uma organização com relação à
qualidade, englobando o planejamento, o controle, a garantia e
a melhoria da qualidade (CARVALHO; PALADINI, 2005).
Esse conceito necessita ser trazido para o âmbito organiza-
cional, ou seja, precisa ser “operacionalizado” na organização.
Existe uma necessidade de gerenciar o conjunto de atividades re-
lativas à qualidade, de modo que atenda a qualquer enfoque.
A Figura 3 mostra a relação entre a definição da qualidade
Figura 2. Ciclo PDCA estabelecida pela norma ISO 9000: 2000, seguido pela necessi-
dade de trazer essa definição para a operação organizacional,
Planejar (PLAN) por meio da gestão da qualidade, que, por sua vez, se subdivide
• Definir as metas a serem alcançadas; em planejamento, controle, garantia, e melhoria da qualidade,
• Definir o método para alcançar as metas propostas. cujas definições são também apresentadas na Figura 3 (CAR-
VALHO; PALADINI, 2005).
Executar (DO)
• Executar as tarefas exatamente como foi previsto na etapa
de planejamento;
• Coletar dados que serão utilizados na próxima etapa de
verificação do processo;
• Nesta etapa são essenciais a educação e o treinamento no
trabalho.

Verificar, checar (CHECK)


• Verificar se o executado está conforme o planejado, ou seja,
se a meta foi alcançada, dentro do método definido;
• Identificar os desvios na meta ou no método.

Agir corretivamente (ACTION)


• Caso sejam identificados desvios, é necessário definir e im- Figura 3. Inter-relação entre o conceito de qualidade, Gestão da Qualidade e
plementar soluções que eliminem as suas causas; elementos que a compõem. Fonte: Adaptação (CARVALHO; PALADINI, 2005)

PDCA FLUXO ETAPA OBJETIVO


1 Identificação do Problema Definir claramente o problema/processo e reconhecer sua importância.
2 Observação Investigar as características específicas do problema/processo com uma visão ampla e sob vários pontos de vista.
P
3 Análise Descobrir a causa fundamental.
4 Plano de ação Conceber um plano para bloquear a causa fundamental.
D 5 Execução Bloquear a causa fundamental.

C 6 Verificação Verificar se o bloqueio foi efetivo.

7 Padronização Prevenir contra o reaparecimento do problema.

A
8 Conclusão Recapitular todo o método de solução do problema para trabalhos futuros.

Tabela 1. Etapas do Ciclo PDCA (Fonte: Adaptação (SSPJ, 2009))

8 Engenharia de Software Magazine - Seis Sigma e CMMI


M etodologias Ágeis

A partir da Figura 3, que mostra o conceito de Após uma evolução, o TQC viria a se tornar o TQM (Gestão de Qualidade
gestão da qualidade, e das inter-relações mostradas, Total ou Total Quality Management). Esse termo surgiu em 1980.
o que poderia definir a “qualidade total”? A ideia central do TQM é que a qualidade esteja presente na função de
De acordo com a ISO 8402: 1994, pode ser defini- gerenciamento organizacional, em uma tentativa de ampliar seu foco,
da como o “modo de gestão de uma organização, não se limitando às atividades inerentes ao controle (CARVALHO; PA-
centrado na qualidade, baseado na participação LADINI, 2005).
de todos os membros, visando ao sucesso a longo Desde seu surgimento até meados da década de 1990, diversos estudos
prazo, por meio da satisfação do cliente e dos be- indicaram elementos que são considerados como fatores críticos que
nefícios para todos os membros da organização e devem estar presentes no TQM. São eles:
sociedade”. • Liderança e apoio da alta direção;
A origem da qualidade total remonta à década de • Relacionamento com os clientes;
1950. Armand Feigenbaum foi o primeiro a tratar a • Gestão da força de trabalho;
qualidade de forma sistêmica nas organizações, for- • Relação com os fornecedores;
mulando o sistema de Controle da Qualidade Total • Gestão por processos;
(TQC – Total Quality Control) em seu livro. • Projeto de produto;
Essa origem desencadeou o conceito do que viria • Fatos e dados da qualidade.
a tornar-se duas correntes similares, porém diferen-
ciadas, do TQC: a visão japonesa, conhecida como Modelos de Excelência
CWQC (Company-wide Quality Control – que no A qualidade total é bastante ampla, envolvendo diversas áreas fun-
Brasil foi traduzido para Qualidade por Toda a Em- cionais das organizações, mas também diferentes conceitos, que vão
presa ou Controle da Qualidade Amplo Empresarial) desde a liderança até os meios de controle nos processos produtivos.
e a visão norte-americana do TQC. Uma evolução no conceito da qualidade total veio com a necessidade de
O CWQC surgiu no Japão no final de década de 60. incorporar os diversos interesses dos stakeholders (partes interessadas) de
Kaoru Ishikawa teve importante papel no CWQC,
contribuindo para sua formulação. Em alguns livros,
os autores traduzem o TQC japonês da seguinte
forma: o compromisso para a qualidade total, enal-
tecendo o envolvimento e comprometimento dos
funcionários com essa prática, aliado ao apoio da
alta direção da empresa.
Outro ponto central do CWQC é o gerenciamento
pelas diretrizes, que direciona o foco organizacional
às metas da organização por meio do desdobramen-
to dessas metas e do envolvimento e autonomia dos
funcionários na gestão das atividades diárias da
organização.
No TQC americano existe outro foco, que Feigen-
baum define como um sistema eficaz para integrar a
manutenção da qualidade e os esforços de melhoria
da qualidade dos vários grupos na organização, de
modo a possibilitar a produção em níveis mais eco-
nômicos, permitindo alcançar a completa satisfação
dos clientes.
Mesmo existindo diferenças entre as linhas de
pensamento japonesa e americana, sobre o que
vem a ser o TQC, na essência, o conceito é bastante
similar. No Japão acontece um maior envolvimento
e comprometimento dos funcionários nas atividades
da gestão da qualidade e nos Estados Unidos existe
muita ênfase à aplicação de métodos e técnicas asso-
ciadas à qualidade. Outro ponto é que nos Estados
Unidos a maior preocupação é com a detecção dos
problemas e segregação dos produtos com defeitos
e no Japão, as empresas desenvolvem processos
capazes de detectar e evitar os problemas.

Edição 21 - Engenharia de Software Magazine 9


uma organização na busca da excelência em desempenho. No critérios e apresenta um critério especificamente direcionado à
passado, o acionista ou proprietário da organização era a maior responsabilidade social, considerando resposta aos requisitos
parte interessada em seu desempenho, para o qual era dada a sociais e contribuição para a sociedade.
maior atenção e importância. Atualmente ele continua sendo
mais importante, mas a alteração do enfoque considera hoje Malcolm Baldrige National Quality Award
outros indivíduos, grupos de indivíduos, ou seja, agentes inte- Em 1987, para aumentar a competitividade nas empresas
ressados no desempenho de uma organização. Essa mudança americanas, os Estados Unidos lançaram o Malcolm Baldrige
ocorreu pelo fato de não ser suficiente que uma organização National Quality Award, esse modelo foi uma das tentativas
concentre seus esforços somente no desempenho financeiro. de resposta para responder à invasão de produtos japoneses
O enfoque deve considerar as pessoas e processos e os agentes naquele país.
internos e externos, que são formados pelos acionistas ou pro- O principal objetivo do prêmio nacional da qualidade
prietários, pelos clientes da organização, pela força de trabalho, americano é melhorar a competitividade das empresas ame-
pelos funcionários e pela comunidade e sociedade. ricanas por meio da conscientização para a qualidade, do
Os modelos de excelência visam a avaliar a gestão de uma reconhecimento dos resultados de excelência em desempenho
organização com relação às práticas de gestão utilizadas e nas empresas americanas e da publicação desses resultados
os resultados organizacionais, de forma direcionada para de sucesso das empresas premiadas, como fator de troca de
atender às necessidades de seus stakeholders. As organizações informações e experiência.
descrevem as práticas organizacionais por meio de um re-
latório, que é avaliado por especialistas. Posteriormente, as Prêmio Europeu da Qualidade
organizações recebem um relatório de avaliação, podendo ou O Prêmio Europeu da Qualidade, EFQM (European Quality
não ser premiadas. A premiação é um reconhecimento das Award), é a estrutura mais utilizada na Europa e é a base para
práticas de gestão. a maioria dos prêmios de qualidade nacionais e regionais. É
usado como ferramenta de avaliação para as empresas e tam-
Prêmio Deming bém como modelo de gestão para definir como as organizações
Em junho de 1950, W. Edwards Deming foi ao Japão falar podem melhorar o desempenho. Sobre o modelo:
sobre controle de qualidade, a convite da União da Ciência e • É uma estrutura para o sistema de gestão da organização;
Engenharia Japonesa (JUSE). Entre 1950 e 1952 Deming conse- • Pode ser usado como parte de uma auto-avaliação;
guiu reunir e sensibilizar os principais executivos japoneses • For ne c e u m q uad r o de c ompa raç ão c om out ra s
das grandes empresas e mostrou-lhes a importância do con- organizações;
trole estatístico da qualidade (ABRANTES, 2001). • Ajuda a identificar áreas que podem passar por uma
A convivência com os japoneses durou quase duas décadas, melhoria.
período em que as empresas japonesas fizeram uma verda-
deira revolução, em termos de qualidade. Em agradecimento O EFQM tem a seguinte premissa: excelentes resultados, no
ao papel desempenhado, Deming era tratado como pai do que diz respeito ao desempenho, clientes, pessoas e sociedade,
controle de qualidade no Japão e seu nome tornou-se o Prêmio são alcançados através da liderança conduzindo a política e
Japonês da Qualidade – Deming Prize (CARVALHO; PALA- a estratégia, que é entregue através das pessoas, parcerias,
DINI, 2005). recursos e processos. Ou seja, a ideia é que a satisfação do con-
O modelo de excelência Deming Prize ou Prêmio Deming, foi sumidor, funcionários e o impacto na sociedade são atingidos
o primeiro prêmio da qualidade lançado no mundo, visando através de liderança, política de direção e estratégia, adminis-
a avaliar o desempenho das organizações. Ele foi aberto para tração de pessoas, recursos e processos, levando, finalmente a
organizações não japonesas em 1984. O julgamento do prêmio excelência nos resultados da empresa.
é baseado em dez critérios principais:
1. Política; Prêmio Nacional da Qualidade
2. Organização e sua Operação; O Brasil também tem seu modelo de excelência chamado PNQ
3. Informação; (Prêmio Nacional da Qualidade), que é um importante incenti-
4. Padronização; vo à competitividade, na forma de avaliação de empresas que
5. Recursos Humanos; buscam alcançar reconhecimento em excelência daquilo que
6. Garantia da Qualidade; produzem e/ou comercializam, sejam produtos ou serviços.
7. Manutenção; O prêmio é concedido em reconhecimento a empresas com
8. Melhoria; operação no Brasil, após passarem por uma avaliação de suas
9. Efeitos (Resultados); práticas.
10. Planos Futuros. Em 1989, um grupo de estudos iniciou um estudo sobre o
desenvolvimento de um prêmio brasileiro nos moldes dos exis-
Atualmente o Japão conta com um outro modelo de exce- tentes no mundo, e em 1990 o Comitê Nacional de Qualidade
lência, chamado Japan Quality Award. Ele é dividido em oito e Produtividade considerou o estabelecimento de um prêmio

10 Engenharia de Software Magazine - Seis Sigma e CMMI


M etodologias Ágeis

nacional, com participação no processo. Como resultado, em Os oito Critérios de Excelência se subdividem em 24 Itens,
11 de outubro de 1991 foi instituída a FPNQ (Fundação para conforme o ilustrado na Figura 5.
o Prêmio Nacional da Qualidade), que mudou de nome em
2005 e passou a se chamar Fundação Nacional da Qualidade. Programa de Qualidade 8S
Ela é formada por organizações públicas e privadas para ad- Em maio de 1950, o Centro de Educação para a Qualidade no
ministrar o PNQ. Japão, com a equipe do Dr. Kaoru Ishikawa, criou um modelo
A estrutura dos critérios de avaliação segue um enfoque prático para o combate às causas de perdas e desperdícios. O mo-
sistêmico, que deve ser trabalhado na forma de estratégias e delo foi nomeado de Regra dos 5S, que é formado pelas palavras
planos de ação da empresa (Figura 4). japonesas Seiri, Seiton, Seiso, Seiketsu e Shitsuke. Estas palavras
Os oito Critérios de Excelência referem-se a: podem ser traduzidas para o português, sem perderem o sentido,
1. Liderança da seguinte forma: Utilização, Ordenação, Limpeza, Bem-Estar
2. Estratégias e Planos e Autodisciplina.
3. Clientes No Japão, existem empresas que já acrescentaram mais 3S aos
4. Sociedade cinco já existentes. São eles: Shikari Yaro (Determinação e União),
5. Informações e Conhecimento Shido (Treinamento), Setsuyaku (Economia e Combate aos Des-
6. Pessoas perdícios). Dessa forma, o 5S passa a ser o Programa 8S, que é
7. Processos uma metodologia que promove a mudança de comportamento de
8. Resultados dirigentes e funcionários, que passam a formar um grupo unido
com visão de sobrevivência e continuidade dos negócios, princi-
palmente através das sugestões de melhorias dos funcionários.
O Programa 8S depende totalmente da ação das pessoas (Figura
6); assim sendo, três fatores são fundamentais para a educação,
treinamento e mudança de comportamento: motivação, liderança,
e comunicação (ABRANTES, 2001).
No final da década de 1980, surgiu o programa de Gestão da
Qualidade, na Motorola, chamado Seis Sigma que será detalhado
e estudado ainda neste artigo.

CMMI
Esta seção tem por objetivo introduzir o conceito de CMMI,
Figura 4. Modelo de excelência do PNQ (Fonte: (FNQ, 2009)). expondo como o modelo surgiu, quais são seus propósitos,

Figura 5. Subdivisões dos Critérios de Excelência PNQ (Fonte: (FNQ, 2009))

Edição 21 - Engenharia de Software Magazine 11


estrutura, componentes e abordagens, de modo a fornecer um e processo e terceirização, além do conceito de “constelações”
contexto claro para os níveis de maturidade 4 e 5 que serão na arquitetura do modelo, que permite a sua expansão para
mapeados neste artigo. outros focos, tais como aquisições e entrega de serviços.

Figura 7. CMMI - Integração dos Modelos CMM

Figura 6. Programa 8S (Fonte: (ROCHA, 2009)) Definição e objetivos do modelo


O CMMI (Capability Maturity Model Integration) é um mo-
delo de maturidade de melhoria de processos para desenvol-
Histórico do modelo vimento de produtos e serviços. (CMMI, 2006). Seu principal
Em 1991, o Software Engineering Institute (SEI), da Univer- propósito é fornecer diretrizes baseadas nas melhores práticas
sidade Carnegie Mellon (EUA), criou o SW-CMM (Capability voltadas para atividades de desenvolvimento e manutenção,
Maturity Model para Software) a partir de uma encomenda abrangendo todo o ciclo de vida do produto, desde a concepção,
feita pelo Departamento de Defesa dos Estados Unidos. desenvolvimento, aquisição até a entrega e manutenção. As
Esse modelo foi criado focando o processo de engenharia de abordagens do CMMI envolvem a avaliação da maturidade
software na proposta de melhoria contínua, trazendo discipli- da organização ou a capacitação das suas áreas de processo,
na e controle no desenvolvimento e manutenção do software o estabelecimento de prioridades e a implementação de ações
(BARTIÉ, 2002). Desta forma, passou a servir como uma das de melhorias (FERNANDES, 2008).
principais referências de modelo de qualidade para o mercado
de empresas de software. Estrutura do modelo
Com o passar do tempo, observou-se que variações aplicáveis Visão Geral
a outras disciplinas, tais como engenharia de sistemas, aquisi- O modelo possui duas abordagens: contínua e por estágios,
ção de software, gestão e desenvolvimento de mão-de-obra e permitindo à organização optar pela mais adequada a seu
desenvolvimento integrado de produtos e processos, surgiram contexto. Atendendo a requisitos de “componentização”,
de acordo com as diferentes necessidades das organizações. a versão 1.2 do CMMI apresenta tais abordagens reuni-
Como cada um destes modelos possuía a sua própria arqui- das em um mesmo documento, dentro do escopo de cada
tetura e abordagem de implementação, a sua utilização por constelação.
organizações que possuíam processos integrados envolvendo Uma constelação é uma coleção de componentes do CMMI
várias destas disciplinas tornou-se difícil devido aos altos que compreende um modelo, seus materiais de treinamento
custos de treinamento, avaliação e ações de melhoria. e documentos relacionados à avaliação para uma área de in-
Diante deste cenário, o CMMI (Capability Maturity Model teresse. “Adições” podem ser usadas para expandir constela-
Integration) foi criado pelo SEI em 2002 como um modelo evo- ções com conteúdos específicos adicionais. Atualmente, três
lutivo em relação aos vários CMMs, com o objetivo de combinar constelações são suportadas pela versão 1.2 do CMMI:
as suas várias disciplinas em uma estrutura única, flexível e • CMMI for Development (CMMI-DEV) – fornece diretivas
componentizada (Figura 7), que pudesse ser utilizada de forma para monitoração, medição e gerenciamento de processos de
integrada por organizações que demandavam processos de desenvolvimento. Pode ser estendido através da adição para o
melhoria em âmbito corporativo (FERNANDES, 2008). Desenvolvimento Integrado de Produto e Processo (IPPD);
A versão 1.2 do CMMI foi publicada pelo SEI em agosto de • CMMI for Services (CMMI-SVC) – fornece diretivas para
2006, trazendo um conjunto de melhorias e simplificações em entrega de serviços dentro das organizações e para clientes
relação à versão anterior. Com o documento CMMI for Deve- externos;
lopment (CMMI para Desenvolvimento), houve a unificação • CMMI for Acquisition (CMMI-ACQ) – fornece diretivas
do tratamento das disciplinas de engenharia de software, en- para suporte às decisões relacionadas à aquisição de produtos
genharia de sistemas, desenvolvimento integrado de produto e serviços.

12 Engenharia de Software Magazine - Seis Sigma e CMMI


M etodologias Ágeis

Componentes do Modelo - Áreas de Processo Relacionadas: lista referências a áreas de


Os componentes do modelo se agrupam em três categorias processo relacionadas e reflete as relações de alto nível entre
que indicam como interpretá-los: as áreas de processo.
• Componentes requeridos: descreve o que uma organização
deve realizar para satisfazer uma área de processo. Devem • Metas Específicas: são metas relacionadas a uma deter-
ser visivelmente implementados nos processos de uma orga- minada área de processo, que descrevem o que deve ser
nização. Os componentes requeridos no CMMI são as metas realizado para assegurar que esta esteja definitivamente
específicas e as metas genéricas. A satisfação das metas é implementada;
utilizada em avaliações como base para determinar se uma • Metas Genéricas: se denominam “genéricas” porque a mes-
área de processo foi realizada e satisfeita; ma declaração da meta se aplica a múltiplas áreas de processo.
• Componentes esperados: descreve o que uma organização Descreve as características que devem estar presentes para
pode implementar para realizar um componente requerido. institucionalizar os processos que implementam uma área
Orientam os que implementam melhorias ou executam ava- de processo;
liações. Incluem as práticas específicas e as práticas genéricas. • Práticas Específicas: descreve as atividades consideradas
Antes que os objetivos possam ser considerados satisfeitos, as importantes para alcançar uma meta específica associada.
práticas tal como descritas ou práticas aceitáveis alternativas Subcomponentes informativos:
a elas, deverão estar presentes nos processos planejados e - Produtos de Trabalho Típicos: lista exemplos de resultados
implementados da organização; de uma prática específica.
• Componentes informativos: proporciona detalhes que aju- - Subpráticas: descrições detalhadas que proporcionam uma
dam as organizações a começar a pensar em como se aproximar orientação para interpretar e implantar uma prática específica
dos componentes requeridos e esperados. As sub-práticas, os ou genérica.
produtos de trabalho típicos, ampliações, a elaboração das
práticas genéricas, os títulos de metas e práticas, as anotações • Práticas Genéricas: se denominam “genéricas” porque a
de metas e práticas, e as referências são exemplos de compo- mesma prática se aplica a múltiplas áreas de processo. Descreve
nentes informativos do modelo. as atividades consideradas importantes para alcançar uma
meta genérica associada.
A Figura 8 representa esquematicamente os componentes Subcomponentes informativos:
e seus relacionamentos. A descrição de cada componente é - Elaboração de Práticas Genéricas: proporciona um guia
feita em seguida. sobre como a prática genérica deveria aplicar-se de forma
exclusiva à área de processo.

• Componentes Informativos de Suporte: informação adicio-


nal necessária para descrever um conceito. São eles:
- Notas: pode proporcionar detalhes, fundamentação teórica
ou premissas/restrições relacionadas ao componente;
- Exemplos: texto ou lista provendo um ou mais exemplos
para esclarecer um conceito ou atividade descrita;
- Ampliações: nota ou exemplo relevante para uma disciplina
particular. As disciplinas cobertas neste modelo são Engenha-
ria de Hardware, Engenharia de Sistemas e Engenharia de
Software. Cada amplificação é rotulada com um cabeçalho
que indica à qual disciplina se aplica;
- Referências: indicação para informação adicional ou mais
detalhada em áreas de processo relacionadas.

Figura 8. Componentes da Estrutura do CMMI (Fonte: Adaptação Abordagens de Implementação


(CMMI, 2006)) Como mencionado anteriormente, o CMMI possui duas abor-
dagens. Para desenvolvimento deste artigo, utilizamos como base
• Áreas de Processo: é um grupo de práticas relacionadas que, a abordagem de implantação por estágios, devido à sua grande
quando implementadas coletivamente, satisfazem um grupo de aderência no mercado e maior proximidade com os demais mo-
objetivos considerados importantes para uma determinada área. delos CMMI que também utilizam níveis de maturidade para
Subcomponentes informativos: mensurar a qualidade dos processos organizacionais. Dessa
- Objetivo: descreve a finalidade da área de processo; maneira, daremos a esta representação um foco especial.
- Notas introdutórias: descreve os principais conceitos com- Objetivamente, podemos descrever as abordagens da se-
preendidos pela área de processo; guinte maneira:

Edição 21 - Engenharia de Software Magazine 13


• Abordagem contínua: permite que a organização selecione Níveis de Maturidade
uma área de processo (ou um grupo de áreas de processo) Para dar suporte àqueles que utilizam a abordagem por es-
e melhore os processos relacionados. Essa representação tágios, todos os modelos CMMI trazem níveis de maturidade
utiliza seis níveis de capacidade (numerados de 0 a 5) para em seu desenho e conteúdo (Figura 10).
caracterizar melhorias relativas a uma área de processo Um nível de maturidade pode ser considerado um degrau
individual; evolucionário para a melhoria do processo organizacional
• Abordagem por estágios: utiliza grupos pré-definidos de como um todo e consistem em práticas específicas e genéricas
áreas de processo (PAs) para definir um caminho de melho- que integram um conjunto predefinido de áreas de processo. O
ria para uma organização. Este caminho é caracterizado por cumprimento das metas específicas e genéricas correspondentes
cinco níveis de maturidade (numerados de 1 a 5). Cada nível a estas áreas de processo é um pré-requisito para o alcance do
de maturidade contém uma série de áreas de processo que nível de maturidade correspondente (FERNANDES, 2008).
caracteriza diferentes condutas organizacionais.

A Figura 9 ilustra a estrutura de ambas as abordagens evi-


denciando suas diferenças: níveis de capacidade x níveis de
maturidade.

Figura 10. Níveis de Maturidade do CMMI (Fonte: Adaptação (CITS, 2009))

A seguir são descritas as principais características de cada nível


de maturidade e as áreas de processo pertencentes aos mesmos.
Como o foco deste trabalho é relacionar as práticas do modelo
de qualidade Seis Sigma com os altos níveis de maturidade do
CMMI, os níveis 4 e 5 serão expostos de forma mais detalhada
nos próximos capítulos.
• Nível 1 – Inicial:
É o nível de maturidade mais baixo. Em geral, as organizações
desse nível têm processos imprevisíveis que são pobremente
controlados e reativos. Nesse nível de maturidade os processos
são normalmente “ad hoc” e caóticos. A organização geralmente
não fornece um ambiente estável.
Áreas de Processo: Não há.
Figura 9. Estruturas das abordagens contínua e por estágios (Fonte:
• Nível 2 – Gerenciado:
Adaptação (CMMI, 2006))
Neste nível, o foco é o gerenciamento básico de projetos da or-
A Tabela 2 faz uma comparação entre os seis níveis de ca- ganização, proporcionando-lhes a garantia de que os requisitos
pacidade e os cinco de maturidade. Como se pode observar, o são gerenciados, planejados, executados, medidos e controlados.
ponto de início é diferente para as duas implementações, visto Quando essas práticas são adequadas, os projetos são executados
que não há nível 0 para a abordagem por estágios. e controlados de acordo com o planejado.
Áreas de Processo: Gestão de Requisitos (REQM), Planejamento
Níveis de Capacidade da Abordagem Níveis de Maturidade da do Projeto (PP), Controle e Monitoração do Projeto (PMC), Gestão
Nível
Contínua Abordagem por Estágios do Acordo com o Fornecedor (SAM), Medição e Análise (MA),
Nível 0 Incompleto --- Garantia da Qualidade de Processo e do Produto (PPQA) e Gestão
Nível 1 Executado Inicial da Configuração (CM).
• Nível 3 – Definido:
Nível 2 Gerenciado Gerenciado
Neste nível, processos são bem caracterizados, compreendidos e
Nível 3 Definido Definido
descritos em padrões, procedimentos, ferramentas e métodos. O
Nível 4 Gerenciado Quantitativamente Gerenciado Quantitativamente conjunto de processos padrão da organização, que é a base para
Nível 5 Otimizado Otimizado o nível 3 de maturidade, é estabelecido e melhorado ao longo do
Tabela 2. Comparação dos níveis de capacidade e maturidade (Fonte: tempo. Esses processos padronizados são usados para estabelecer
Adaptação (CMMI, 2006)) consistência em toda a organização. Todos os projetos utilizam 

14 Engenharia de Software Magazine - Seis Sigma e CMMI


M etodologias Ágeis

uma versão de um desses processos padrão adaptando-a às suas


características especificas.
Áreas de Processo: Desenvolvimento de Requisitos (RD), Solução
Técnica (TS), Integração do Produto (PI), Verificação (VER), Vali-
dação (VAL), Foco no Processo Organizacional (OPF), Definição
do Processo Organizacional (OPD), Treinamento Organizacional
(OT), Gestão Integrada do Projeto (IPM), Gestão de Riscos (RSKM),
Análise de Decisões e Resolução (DAR).

• Nível 4 – Gerenciado Quantitativamente:


A gestão quantitativa baseada em medições e indicadores cobre,
de forma integrada, todo o conjunto de processos organizacionais,
assim como os projetos e respectivos produtos, como instrumento
de suporte para o atendimento dos objetivos de desempenho de
processo e de qualidade. Os projetos e seus produtos assim como
o processo organizacional, são controlados estatisticamente.
Áreas de Processo:
- Desempenho do Processo Organizacional (OPP) – Tem por
objetivos: estabelecer e manter uma visão quantitativa do de- Figura 11. Os Níveis de Maturidade e suas Áreas de Processo
sempenho dos processos padrões, e prover modelos e baselines
de desempenho, visando melhorar a gestão dos projetos através Benefícios do Modelo
de métricas de processo e produto. A utilização do modelo CMMI inclui uma série de bene-
- Gestão Quantitativa do Projeto (QPM) – Tem por objetivo geren- fícios significativos e quantificáveis para a organização
ciar quantitativamente (através de métricas) o processo definido que o utiliza na melhoria de seus processos e podem ser
do projeto, visando o alcance dos objetivos preestabelecidos de categorizados e resumidos por: custo, prazo, produtivi-
desempenho de qualidade e processo. dade, qualidade, satisfação dos clientes e Retorno sobre o
Investimento (ROI – Return on Investment).
• Nível 5 – Otimizado: Em 2006, o SEI publicou um relatório técnico (Perfor-
Neste nível, os processos são continuamente aperfeiçoados com mance Results of CMMI - Based Process Improvement)
base em um entendimento quantitativo no qual a variação de um apresentando dados quantitativos de 35 organizações,
processo existe devido às interações, normais e presumidas, entre entre elas grandes empresas com mais de uma organiza-
seus componentes. Esse nível de maturidade tem como objetivo ção constituinte (SEI, 2006). Os esforços no processo de
a melhoria contínua do processo. melhoria dessas organizações incluem tanto pequenas
Áreas de Processo: como grandes unidades organizacionais que atuam em
- Inovação e Desenvolvimento Organizacional (OID) – Tem por uma variedade de setores e domínios do mercado. Foram
objetivo selecionar e implantar melhorias incrementais e inova- aplicadas as práticas do modelo CMMI para engenharia
ções nos processos e nas tecnologias que promovam, quantitati- de software, engenharia de sistemas, e outras disciplinas
vamente, o aumento da habilidade da organização para cumprir de engenharia. Enquanto a maioria dos resultados vem
os seus objetivos de desempenho de processos e qualidade. de organizações de maior maturidade, melhorias notáveis
- Análise e Resolução de Causas (CAR) – Tem por objetivo também foram alcançadas pelas organizações de menor
identificar causas de defeitos e outros problemas e tomar ações maturidade. Todas as organizações no relatório explici-
corretivas para prevenir a sua ocorrência futura. tamente atribuem suas realizações a orientação fornecida
pelo CMMI.
A Figura 11 representa de forma resumida, os níveis de maturi- A Tabela 3 resume a média percentual de melhorias nas
dade, seus principais focos e áreas de processo envolvidas. cinco categorias apresentadas.

Categoria Percentual Médio Exemplos


Custo Redução de 34% Redução dos custos de retrabalho, remoção de defeitos, overhead de projetos.
Prazo Melhoria de 50% Redução do número de dias de atraso de aproximadamente 50 para menos de 10.
Produtividade Aumento de 61% Aumento na quantidade de linhas de código por pessoa/dia, aumento do número de releases de software liberados por ano.
Qualidade Aumento de 48% Redução dos defeitos encontrados e das requisições de mudança no sistema em ambiente de produção.
Satisfação dos Clientes Aumento de 14% Aumento em 55% comparado ao SW-CMM nível 2 e 10% comparado ao nível 5.
Retorno sobre o Investimento 4,0 : 1 Retorno de 5:1 em relação às horas investidas em atividades de qualidade.

Tabela 3. Benefícios Quantitativos da Utilização do CMMI (Fonte: Adaptação (SEI, 2006))

Edição 21 - Engenharia de Software Magazine 15


SEIS SIGMA em economias como resultado de seus esforços com o Seis
Este tópico tem por objetivo introduzir o conceito de Seis Sigma. Tais resultados concederam à companhia a conquista
Sigma como modelo de gestão da qualidade, expondo o seu do prestigioso prêmio Malcolm Baldrige National Quality
histórico, propósito, certificações relacionadas e metodologias Award (MBNQA) em 1988.
criadas a partir de sua concepção. A aplicação na melhoria dos Em 1991, a Motorola introduziu treinamentos para a formação
processos de qualidade de software e a estrutura da metodo- de especialistas em Seis Sigma, que foram denominados “black
logia serão detalhadas no tópico seguinte, no qual será feito belts”. Em 1992, a metodologia passou a ser adotada por outras
o mapeamento entre suas práticas no apoio à implementação indústrias, incluindo seguros, serviços financeiros, saúde, etc.
dos níveis de maturidade 4 e 5 do CMMI. Em 1999, a Motorola, através da Motorola University, começou
a ensinar o Seis Sigma para outras organizações de sua cadeia de
Histórico do Modelo valor (fornecedores e clientes) e também para outras indústrias.
As origens do Seis Sigma como um padrão de medição vêm Em 2001, o agora ex-CEO da General Electric (GE), Jack Welch,
dos trabalhos de Carl Frederick Gauss (1777-1855), que intro- dedicou um capítulo inteiro em sua biografia (WELCH, 2001) à
duziu o conceito da curva normal ou curva de Gauss. As raízes iniciativa Seis Sigma, fazendo elogios que se tornaram ao longo
do Seis Sigma como um padrão de medição da variação dos do tempo a grande bandeira da área de qualidade e melhorias
produtos podem ser rastreadas até a década de 1920, quando de processos no mundo. Em suas próprias palavras, “Tornei-me
Walter Shewhart mostrou que a partir de três desvios padrões um fanático pelo Seis Sigma” e “O Seis Sigma tornará a GE a
ou três “sigmas” da média, o processo requer correção. Muitos maior empresa do mundo dos negócios”. De fato, o modelo ge-
padrões de medição (CPK, Zero Defeitos, etc.) entraram em rou no ano de 2000 mais de 2,4 bilhões de dólares em benefícios
cena posteriormente, dando base para o movimento da quali- (Figura 13), enquanto no mesmo período a GE teve a maior
dade total, liderado mais tarde por Edward Deming e outros valorização de suas ações na história (Figura 14).
profissionais militantes da qualidade (ISIXSIGMA, 2009a).
No início e meados dos anos 80, com o presidente Bob Galvin
na direção, engenheiros da Motorola decidiram que os níveis
tradicionais de qualidade – medição de defeitos em milhares de
oportunidades – não forneciam granularidade suficiente. Esta
conclusão partiu de informações vindas da força de vendas,
a respeito da grande quantidade de reclamações de uso de
garantias pelos clientes. Para reverter este quadro, eles deter-
minaram a necessidade de medir os defeitos por milhões de
oportunidades. Desta forma, a Motorola desenvolveu este novo
padrão, criou a metodologia e, em 1986, o termo “Seis Sigma”
foi cunhado pelo engenheiro da Divisão de Comunicações da
Motorola, Bill Smith (Figura 12).
Figura 13. Benefícios do Seis Sigma na GE (1996-2000) (Fonte: Adaptação
(VASQUES, 2006))

Figura 12. 1986: Processo de qualidade Seis Sigma (Fonte: Adaptação


(MOTOROLA, 2009))

Em 1987, foi lançado um ambicioso programa por Bob Gal- Figura 14. Situação das Ações na GE (1965-2004) (Fonte: (FINANCE, 2009))
vin visando a redução de defeitos nos produtos para “seis
sigma” ou 3,4 defeitos por milhões de oportunidades, tendo Em 2002, a Motorola ganhou novamente o MBNQA e
como meta o ano de 1991 e como pilar o modelo Seis Sigma milhares de empresas ao redor do mundo adotaram o Seis
(FERNANDES, 2008). Sigma como uma maneira de fazer negócios, ou seja, seu foco
O modelo ajudou a Motorola a obter excelentes resultados em se alargou para além da melhoria da qualidade em produ-
sua organização, documentando mais de 16 bilhões de dólares tos. Um dos idealizadores deste programa, Michel Harry,

16 Engenharia de Software Magazine - Seis Sigma e CMMI


M etodologias Ágeis

define o Seis Sigma como uma estratégia que não deve Sigma procura melhorias que agreguem valor para o cliente
estar encapsulada na área de qualidade, devendo espalhar e também pode ser aplicado para problemas localizados
seus “tentáculos” por toda a organização, da manufatura e (FERNANDES, 2008).
engenharia à área de serviço. Existem algumas estratégias para se alcançar uma produção
Em 2004, a Motorola obteve receitas 42% maiores e um lucro com “zero erro”. PANDE, NEUMAN e CAVANAGH (2001)
por ação 257% maior do que no primeiro trimestre do ano fiscal afirmam que há três estratégias Seis Sigma. As estratégias são:
anterior com o uso do Seis Sigma em todos os seus processos (i) estratégia de melhoria de processo; (ii) estratégia de projeto/
(FERNANDES, 2008). reprojeto de processo; e, (iii) estratégia de gerenciamento de
processo. A melhoria de processo refere-se à estratégia de
Definição e Objetivos do Modelo desenvolver soluções com a finalidade de eliminar as causas-
Diferentemente de outros programas de qualidade, as empresas raiz dos problemas de desempenho de uma empresa, sem,
que utilizam o Seis Sigma divulgam cifras milionárias de ganhos no entanto, interferir na estrutura básica do processo. Na es-
obtidos com sua implementação. Desta maneira, podemos con- tratégia projeto/reprojeto de processo, o objetivo é substituir
cluir que o Seis Sigma é mais do que apenas um sistema de qua- uma parte ou todo o processo por um novo. Já na estratégia de
lidade como o TQM ou ISO. É uma maneira de fazer negócios. gerenciamento de processo, as exigências do cliente são claras
Geoff Tennant descreve em seu livro Six Sigma: SPC and TQM e regularmente atualizadas, os processos são documentados
in Manufacturing and Services (TENNANT, 2001): “Seis Sigma é e gerenciados com medições em todas as suas etapas. Nesta
muitas coisas e talvez fosse mais fácil listar todas as coisas que última estratégia, os gestores também usam as medições e o co-
a qualidade Seis Sigma não é. Seis Sigma pode ser visto como: nhecimento do processo para avaliar os seus desempenhos.
uma visão; uma filosofia; um símbolo; uma métrica; um objeti- A Figura 15 resume alguns métodos importantes do pro-
vo; uma metodologia”. (ISIXSIGMA, 2009a). A estas descrições grama Seis Sigma.
pode-se acrescentar ainda: uma estratégia organizacional, um
modelo de gestão, um conjunto de ferramentas estatísticas ou um
método de comparação (benchmarking) – 3,4 defeitos por milhão
de oportunidades.
É comum encontrar diferentes, embora convergentes, definições
sobre o que é Seis Sigma.
Para VASQUES (2006) da ISD Brasil (Integrated System
Diagnostics Brasil), a definição mais completa e íntegra seria:
“Metodologia de grande rigor analítico, baseada em projetos de
melhorias de processos de negócio onde utilizamos um conjunto
preestabelecido de ferramentas (tipicamente estatísticas) que
direciona a organização para uma mudança cultural profunda
(filosofia), buscando sempre altos resultados financeiros e intenso
foco nos clientes”.
Segundo CARVALHO e PALADINI (2005), o modelo de Gestão
Figura 15. Métodos e ferramentas essenciais do programa Seis Sigma
da Qualidade Seis Sigma é uma estratégia gerencial disciplinada,
(Fonte: Adaptação (PANDE; NEUMAN; CAVANAGH, 2001))
caracterizada por uma abordagem sistêmica e pela utilização
intensiva do pensamento estatístico, que tem por objetivo reduzir Um programa Seis Sigma tem como requisitos:
drasticamente a variabilidade dos processos críticos e aumentar a • Alinhar o esforço Seis Sigma aos objetivos do negócio;
lucratividade das empresas, por meio da otimização de produtos • Forte patrocínio da administração;
e processos, buscando satisfação de clientes e consumidores. • Focalizar em resultados de curto prazo;
Os objetivos do Seis Sigma variam de acordo com os objetivos • I mpla nt a r u ma nova for ma de ad m i n i st ração
da melhoria, conforme a lista a seguir: duradoura;
• Redução de custos; • Tornar a aprendizagem uma tarefa contínua;
• Melhoria da produtividade; • Selecionar os projetos corretos;
• Crescimento de fatia de mercado; • Ênfase em treinamento e capacitação de recursos
• Retenção de clientes; humanos;
• Redução de tempo de ciclo; • Definir claramente papéis e responsabilidades;
• Redução de defeitos; • Forte liderança para a mudança.
• Mudança cultural para a qualidade;
• Excelência no desenvolvimento de produtos e serviços. O programa Seis Sigma foi batizado com o nome da letra
grega sigma (σ), que representa o desvio-padrão em notação
Ao contrário do “Total Quality Management – TQM”, que estatística, já evidenciando a grande ênfase na utilização
pretendia melhorar a qualidade de toda a organização, o Seis destas ferramentas. O uso sistemático de ferramentas

Edição 21 - Engenharia de Software Magazine 17


estatísticas nos projetos tem como objetivo reduzir a varia- • Operar em apoio ou sob a supervisão de um Six Sigma Black
bilidade, até a obtenção da difícil meta de 3,4 defeitos por Belt.
milhão (CARVALHO; PALADINI, 2005) ou “seis sigma”, • Analisar e resolver problemas de qualidade.
que equivale a um rendimento de 99,9997% de resultados • Envolvimento em projetos de melhoria da qualidade.
do processo isentos de defeitos. A Tabela 4 mostra o que • Participação em um projeto, mas não conduzí-lo sozinho.
significa o Seis Sigma em termos de qualidade e defeitos • Ter pelo menos três anos de experiência de trabalho.
por milhão. • Ter capacidade de demonstrar seu conhecimento das ferra-
mentas do Seis Sigma e dos processos. (ASQ, 2009c)
Sigma Qualidade Defeitos por milhão
6σ 99,9997% 3,4 Exame
Os candidatos à certificação precisam passar por um exame
5σ 99,9767% 233
escrito que consiste em perguntas de múltipla escolha para medir
4σ 99,379% 6.210
a compreensão Six Sigma Green Belt Body of Knowledge (Corpo
3σ 93,32% 66.807 de Conhecimentos do Seis Sigma Green Belt). A prova dura quatro
2σ 69,1% 308.537 horas, tem 100 questões e é feita no idioma inglês, caso seja feita
1σ 31% 690.000 pela ASQ. Cada participante deve levar seu próprio material de
Tabela 4. Qualidade e defeitos sigma (Fonte: Adaptação (FERNANDES, 2008))
referência, pois o exame é “open-book” (com consulta).
O comitê que prepara o exame utiliza o Six Sigma Green Belt
Certificações e Responsabilidades Body of Knowledge como orientação para escrever as pergun-
Existem certificações profissionais para qualificar pessoas tas do teste. Este foi feito para ajudar a preparar os candidatos
como especialistas em Seis Sigma, relativas a “Black Belt”, a identificar o conteúdo específico dentro de cada tema que
“Green Belt” e outras. Ambas são fornecidas pela Motorola pode ser cobrado.
University, por diversas empresas especializadas e pela ASQ Os exames são realizados duas vezes por ano, em junho e
(American Society for Quality). A ASQ é dedicada a assuntos dezembro, pela ASQ e organizações internacionais.
relacionados à qualidade e a mais indicada para realizar as
certificações (FERNANDES, 2008). Six Sigma Black Belt Certification – SSBB
Os especialistas são responsáveis pela implantação da estra- Papel na empresa
tégia Seis Sigma. Sua formação é altamente focada em buscar O profissional que possui a certificação Six Sigma Black Belt,
soluções para a verdadeira causa dos problemas. Eles atuam está habilitado a explicar a filosofia e os princípios do Seis
como agentes de mudança na organização, aplicando e disse- Sigma, incluindo sistemas de apoio e ferramentas. O Black
minando o uso das ferramentas estatísticas e da qualidade no Belt tem que demonstrar liderança, entender a dinâmica da
aprimoramento dos projetos. equipe, saber resolver problemas em projetos, atribuir funções
Para realizar o treinamento, é essencial selecionar pessoas e responsabilidades aos membros e também preparar equipes
adequadas, definir claramente as expectativas de como este de projeto. Também possui um profundo conhecimento dos
treinamento deve ser aplicado no local de trabalho e assegu- aspectos do modelo DMAIC de acordo com os princípios do
rar que seja fornecido o suporte necessário para obter bons Seis Sigma.
resultados.
Existem duas certificações Seis Sigma da ASQ (ASQ, 2009a): Requisitos de experiência
A Six Sigma Green Belt Certification (SSGB) e a Six Sigma Black Para a certificação é preciso ter realizado dois projetos completos
Belt Certification (SSBB). Seus criadores atribuíram tais títulos e certificados/aprovados, ou ter finalizado um projeto certificado/
(“faixa verde”, “faixa preta”), pois acreditam que as certifica- aprovado e mais três anos de experiência em uma ou mais áreas
ções têm habilidades em comum com as artes marciais. do Seis Sigma Black Belt Body of Knowledge. A certificação Seis
Sigma Green Belt não é requisito para este exame.
Six Sigma Green Belt Certification – SSGB
Papel na empresa Expectativas e atribuições mínimas para um SSBB
Esse profissional auxilia na coleta e análise de projetos de Segundo recomendação da American Society for Quality
Black Belt. Lidera a resolução de problemas em projetos de (ASQ, 2009b), podemos citar:
Green Belt e outras equipes, de acordo com sua experiência. • Será capaz de explicar a filosofia e os princípios do Seis Sig-
ma, incluindo sistemas e ferramentas (qualidade, processos /
Requisitos de experiência melhoria contínua, etc.), e poderá descrever seu impacto nos
Três anos de experiência de trabalho em uma ou mais áreas diversos processos de negócios em toda a organização;
do Seis Sigma Green Belt. Esta certificação não é um requisito • Conhecer várias guias e saber sobre funções e responsabili-
para a Certificação Seis Sigma Black Belt. dades no Seis Sigma. Ao reconhecer obstáculos na organização,
deverá ser capaz de utilizar técnicas de gestão de mudança
Expectativas e atribuições mínimas para um SSGB para gerir a mudança organizacional;

18 Engenharia de Software Magazine - Seis Sigma e CMMI


M etodologias Ágeis

• Será capaz de definir benchmarking, entender sobre várias Exame


medidas financeiras e outras de desempenho de negócios. Os candidatos à certificação precisam passar por um exame
Será capaz de identificar as necessidades dos clientes e escrito que consiste em perguntas de múltipla escolha para
descrever o impacto que os projetos Seis Sigma podem ter medir a compreensão Six Sigma Black Belt Body of Knowledge
sobre os diversos tipos de clientes; (Corpo de Conhecimentos do Seis Sigma Black Belt). A prova
• Terá uma compreensão fundamental dos componentes e dura quatro horas, tem 150 questões e é feita, pela ASQ, no
técnicas utilizados na gestão de equipes, incluindo o tempo idioma inglês. Assim como no exame para Green Belt, cada
de gestão, planejamento e ferramentas de tomada de decisão, participante deve levar seu próprio material de referência,
formação de equipe e avaliação de desempenho e gratifica- pois o exame é “open-book” (com consulta).
ção. Saberá como usar as técnicas adequadas para superar Os exames são realizados duas vezes por ano, em março e
os diferentes desafios da dinâmica de grupo; outubro, pela ASQ e organizações internacionais.
• Entenderá os elementos de um relatório do projeto (defi-
nição do problema, escopo, metas, etc.) e será capaz de usar Resumo dos papéis da equipe
vários instrumentos para acompanhar seu andamento; A Tabela 5 mostra a descrição resumida dos papéis compo-
• Será capaz de usar o feedback do cliente para determinar nentes de uma equipe Seis Sigma.
suas necessidades;
• Terá um conhecimento básico sobre técnicas de coleta Metodologias do 6 Sigma
de dados, elementos do processo e suas ferramentas de Esta seção apresenta as principais metodologias existentes
análise; no Seis Sigma, abordando suas definições, conceitos e aplica-
• Terá u m con hec i mento bá sico s obre si stema s de bilidade. As metodologias DMAIC e DFSS são utilizadas na
medição; eliminação dos defeitos de um processo ou produto.
• Terá um conhecimento básico de conceitos de probabili-
dade e distribuições; O modelo DMAIC
• Será capaz de realizar cálculos estatísticos e de capacidade O DMAIC foca na robustez e simplificação dos processos,
do processo; visando diminuir o nível de defeitos, o aumento da satisfação
• Será capaz de realizar testes de hipóteses e analisar seus dos clientes e a lucratividade da organização. O DMAIC é
resultados; um aperfeiçoamento do processo Seis Sigma que passa por
• Será capaz de utilizar várias ferramentas para eliminar o cinco fases: definir (define), medição (measure), análise (analyze),
desperdício e reduzir o tempo de ciclo; aperfeiçoamento (improve) e controle (control). Existem diversas
• Terá uma compreensão fundamental de como implemen- ferramentas que são utilizadas de maneira integrada às fases
tar um processo de melhoria e como analisar e interpretar do DMAIC, constituindo um método sistemático, disciplinado,
estudos de risco; baseado em dados e no uso de ferramentas estatísticas para se
• Será capaz de criar planos de controle e usar ferramentas atingir os resultados almejados pela organização (CARVALHO;
para manter e sustentar melhorias. PALADINI, 2005).

Papel exercido no Seis Sigma Pessoa


É o principal executivo da empresa. Responsável pela implantação do Seis Sigma. Essa pessoa deve ter total comprometimento, pois ele é indispensável
Executivo Líder para o sucesso da implantação da estratégia de melhoria. Deve conduzir, incentivar e supervisionar as iniciativas do programa Seis Sigma em toda
a empresa.
Deve liderar os executivos-chave da organização rumo ao programa Seis Sigma. É responsável por organizar e guiar o começo, o desdobramento e a
Champions
implementação do Seis Sigma em toda a organização.
Ajuda o campeão na tarefa de implantar o Seis Sigma na organização. Também ajuda o campeão na escolha e no treinamento de novos projetos de
Master Black Belts melhoria, oferecendo liderança técnica no preparo dos profissionais de Seis Sigma, treinando e instruindo os Black Belts e os Green Belts. Dedicam
100% do tempo às atividades relacionadas ao programa Seis Sigma.
Os Black Belts dedicam 100% do tempo aos projetos Seis Sigma, assim como os Master Black Belts, recebendo treinamento intensivo em técnicas
Black Belts
estatísticas e de solução de problemas. Lideram equipes na condução dos projetos e são capazes de treinar até 100 Green Belts ao ano.
Ficam parcialmente envolvidos com as atividades Seis Sigma. Esses profissionais possuem duas tarefas principais:
Green Belts 1. Auxiliar aos Black Belts na coleta de dados e no desenvolvimento de experimentos;
2. Liderar pequenos projetos de melhoria nas suas respectivas áreas de atuação.
Participam como membros das equipes de projeto supervisionando a utilização das ferramentas Seis Sigma na rotina da empresa e executam
Yellow Belts
projetos mais focados e de desenvolvimento mais rápido que os executados pelos Green Belts.
Não faz parte de uma equipe de projeto. São do nível operacional. Dão suporte aos Black Belts, Green Belts e Yellow Belts na implementação dos
White Belts
projetos. São executores de ações, garantindo que os resultados alcançados sejam mantidos no longo prazo, na operação da rotina da empresa.
Tabela 5. Papéis da equipe Seis Sigma (Fonte: Adaptação (GRUPO WERKEMA, 2008))

Edição 21 - Engenharia de Software Magazine 19


Primeira fase: Define (definir as prioridades) Essa é considerada uma fase crítica, onde as melhorias se
A primeira fase consiste em definir quais são os requisitos materializam no processo, quando a equipe interage com as
do cliente (voz do cliente) e traduzir essas necessidades em pessoas que executam as atividades.
Características Críticas para a Qualidade (CTQ – Critical to As equipes promovem melhorias nas variáveis vitais do
Quality). Esta etapa torna-se fundamental por levar a visão do processo e realizam a quantificação dos efeitos nas CTQs, ou
cliente para dentro da empresa. Os objetivos dos projetos Seis seja, nas metas financeiras e de desempenho (CARVALHO;
Sigma de melhoria têm de estar relacionados a um CTQ. PALADINI, 2005). Depois, deve testar as soluções, pois a equipe
Os desenhos dos processos críticos são feitos por uma equipe começa a passar para o pessoal operacional a responsabilidade
preparada para aplicar as ferramentas Seis Sigma e procuram de executar o processo modificado.
identificar aqueles que têm relação com os CTQs do cliente
e que estão gerando resultados ruins, como reclamações de Quinta fase: Control (manutenção das melhorias)
clientes, problemas funcionais, problemas trabalhistas, baixa Nesta fase, pode surgir a seguinte pergunta: por que ir além
qualidade de suprimentos, altos custos de mão-de-obra, erros da fase de melhoria, já que os objetivos do projeto foram
de forma, ajuste e funcionamento etc. Logo após, a equipe atingidos?
realiza uma análise custo-benefício do projeto, de modo a Qualquer sistema, mesmo que esteja em ordem, pode vir a
ter uma visão clara do retorno que a atividade deverá trazer ter algum tipo de desordem, ou seja, o processo pode ficar
para a empresa. mais bagunçado no futuro, caso não esteja sob controle, e
isso pode fazer a capacidade voltar para os níveis do início
Segunda fase: Measure (como o processo é medido e como do projeto Seis Sigma.
é executado?) A equipe deve definir como serão feitos esses controles e
Na segunda fase a equipe assessorada pela Black Belt vai passar essa informação para aqueles que trabalham no pro-
agora desenhar o processo e os subprocessos que se relacionam cesso normalmente no dia-a-dia. Também nesta fase, para
com as CTQs, definindo as entradas e saídas. medir continuamente o processo de modo a garantir que a
Para cada processo, deve-se utilizar o sistema de medição capacidade do processo seja mantida, deve ser estabelecido
adequado. Em seguida, a equipe coleta os dados do processo e validado um sistema de medição e controle.
por meio de um sistema que produza amostras representativas O monitoramento dos pontos (Xs) críticos é fundamental
e aleatórias. Com isso, os índices de capacidade do processo a não só para manter a capacidade do processo estabelecida,
curto e longo prazos são determinados. mas para indicar melhorias futuras. O outro ponto (Y), que
é a saída do processo, deve ser controlado para garantir que
Terceira fase: Analyze (identificação das principais causas) os resultados sejam conforme o planejado.
A equipe Seis Sigma, na terceira fase, faz a análise dos dados É elaborada a documentação do processo por meio de méto-
coletados, que é uma importante função da metodologia. Para dos estatísticos de controle de processo, além do monitoramen-
esse trabalho, além de utilizar as ferramentas tradicionais da to das novas condições do processo. A capacidade do processo
qualidade, são utilizadas ferramentas estatísticas de modo a é reavaliada para garantir que os ganhos sejam mantidos. A
identificar as causas óbvias e as causas não óbvias. A utiliza- reavaliação pode mostrar no resultado, que pode ser necessário
ção de ferramentas estatísticas de forma competente e prática rever uma ou mais fases precedentes do processo.
é uma das forças da metodologia. A estatística passa a ser A implementação correta do programa Seis Sigma permite
a principal ferramenta a ser utilizada pela equipe, quando criar uma linguagem comum entre as diversas áreas de uma
evoluímos para uma visão de que os processos devem ser a empresa (Figura 16), compartilhando sucessos e fracassos,
principal ferramenta a ser utilizada pela equipe. fazendo com que uma unidade aprenda com a experiência
Nesta fase, é imprescindível a utilização de software esta- de outra (CARVALHO; PALADINI, 2005).
tístico, que facilita muito o trabalho da equipe nos cálculos e
desenha os gráficos necessários. A equipe consegue descobrir O modelo DFSS (Design For Six Sigma)
as causas geradoras dos defeitos e as fontes de variações nos A metodologia lida com a qualidade no projeto de novos pro-
processos. dutos e pode ser aplicada a processos produtivos e de serviços
que precisam ser constituídos de forma que, ao estarem em
Quarta fase: Improve (eliminação das causas dos defeitos) funcionamento, já atinjam o nível Seis Sigma e também surgiu
Na fase de aperfeiçoamento, a equipe deve fazer as melho- para preencher uma lacuna no DMAIC.
rias no processo existente. Os dados estatísticos devem ser O DFSS também pode ser aplicado a processo nos quais seu
transformados em dados do processo, e a equipe deve estudar nível de desempenho esteja tão baixo, e o próprio processo
tecnicamente quais transformações deve executar. A equipe esteja tão ruim, que quaisquer esforços aplicados para se re-
pode vir a ter que resolver problemas, pois podem ocorrer alizar um projeto DMAIC não resultarão em um processo de
modificações técnicas do processo. O trabalho da equipe será nível Seis Sigma. Ou seja, pode-se projetar um novo produto
modificar os elementos das atividades de transformação, ou serviço, ou reprojetar um produto ou serviço já existente
atuando sobre as causas-raiz. (CARVALHO; PALADINI, 2005).

20 Engenharia de Software Magazine - Seis Sigma e CMMI


M etodologias Ágeis

Figura 16. Descrição dos passos do modelo DMAIC (Fonte: Adaptação (SMIDT & PARTNERS, 2005; PDP net, 2008))

Nesta metodologia existem ferramentas que podem reduzir nos processos de infraestrutura, em especial gerenciamento
custos e melhorar a qualidade, mas principalmente adicionar de incidentes, gerenciamento de problemas, gerenciamento da
valor ao produto por meio de inovações e do atendimento das disponibilidade e central de serviços.
reais necessidades dos clientes. Como a qualidade do produto/ O Seis Sigma também pode ser utilizado em questões de
processo é projetada, e não melhorada, o DFSS é o programa apoio ao CIO, como no caso de elaboração de orçamento,
apontado como a única forma de atingir o nível Seis Sigma controle de custos, etc.
na qualidade. Para isso, é adotada a metodologia DMADV Na área de TI, pode ser aplicado em processos de desenvolvi-
(definição, medição, análise, projeto e verificação) que também mento de software, principalmente em fábricas de programas e
possui cinco fases bem definidas: manutenção de sistemas, onde há maior quantidade de projetos
• Definir (Define): identifica-se o que será projetado e os e um maior índice de repetição dos mesmos.
objetivos a serem alcançados;
• Medir (Measure): entendimento das necessidades e expec- Mapeamento entre Seis Sigma e CMMI Níveis 4 e 5
tativas dos clientes relativas ao produto ou serviço que está Este tópico tem o objetivo de apresentar a aplicação do Seis
sendo criado. São definidas as características críticas para a Sigma na melhoria dos processos de qualidade de software,
qualidade (CTQ) do projeto, que serão os objetivos do novo através do mapeamento de suas atividades com as práticas
processo; definidas nos níveis de maturidade 4 e 5 do CMMI.
• Analisar (Analyze): escolher a melhor solução entre as possí-
veis alternativas de desenho, visando atender as necessidades Qualidade de Software
dos clientes; Há algumas décadas, no desenvolvimento de software, nave-
• Projeto (Design): será desenvolvido o design de alto nível gar pelo código e corrigir problemas era uma prática comum
(descrição do conceito de produto/serviço escolhido, mapas entre os desenvolvedores. Assim eram feitos os testes para
do processo e arranjo das instalações) para todos os elementos verificação de erros e a busca pela qualidade. Foi através dos
apropriados, como: produto/serviço, processo, informação, testes que as organizações começaram a prestar mais atenção
instalações, equipamentos, e materiais/suprimentos; na importância da qualidade do software. Apesar disso, no
• Verificação (Verify): testar e validar o projeto. A equipe irá final da década de 1950, o teste ainda era encarado como
monitorar o desempenho das CTQs do produto ou serviço por uma atividade que ocorreria somente no final do processo de
meio das cartas de controle. (CARVALHO; PALADINI, 2005) desenvolvimento.
Nas décadas seguintes (1960 e 1970), a Engenharia de Softwa-
Aplicabilidade do Modelo re passou a ser adotada pelas universidades e organizações.
O modelo pode ser aplicado para projetos de melhoria de Isso ajudou o processo de desenvolvimento de software a ter
processos, gerenciamento do processo e para projetos de uma abordagem mais profunda. Glenford J. Myers, em 1979,
novos processos. produziu um dos primeiros trabalhos sobre um processo de
Na área de segurança da informação, há um campo vasto para teste, no qual afirmou que realizar testes com o objetivo de
identificar melhorias nos processos de segurança, assim como provar a boa funcionalidade de um projeto é errôneo, pois toda

Edição 21 - Engenharia de Software Magazine 21


energia gasta para comprovar esse fato é em vão devido aos para enriquecer diretamente os processos definidos que abor-
poucos defeitos encontrados. Desta maneira, ele definiu o teste dam as áreas de processo de alta maturidade. Por exemplo, os
como um “processo de trabalho com a intenção de encontrar processos relacionados com a Gestão Quantitativa de Projeto
erros”. Com esta definição, um maior número de problemas e Análise de Causa e Solução de Problemas refletem tanto as
será encontrado, uma vez que os profissionais de qualidade práticas específicas destas áreas de processo quanto as etapas,
buscarão vários cenários para avaliar o comportamento do sub-etapas e ferramentas do DMAIC. (SEI, 2005)
software. Existem várias definições sobre as etapas de cada fase
O conceito de qualidade de software surgiu no início da do DMAIC. A Figura 17 apresenta um roteiro resumido
década de 1980, onde cada fase do processo passava por uma sobre os passos executados no DMAIC, oferecido no curso
verificação feita por desenvolvedores e testadores, para garan- “Measuring for Performance-Driven Improvement do
tir que a fase estava completa. Algumas organizações foram SEI (SEI, 2005).
formadas com o intuito de padronizar a qualidade, entre elas:
IEEE (Institute of Eletrical and Electronics Engineers), ANSI
(American National Standards Institute), ISO (International
Organization for Standardization), CMM (Capability Maturity
Model). O modelo avaliação CMM, foi o que mais se destacou
e ganhou maior dimensão e importância para as organizações
de software.
Atualmente, as organizações estão buscando maior eficiência
para conseguir superar a concorrência e estão buscando as
soluções através da tecnologia, que torna os sistemas informati-
zados, reduzindo custos e ampliando a forma de atuação. Para
acompanhar esse crescimento, os ambientes estão tornando-se
mais complexos e fica mais difícil alcançar um elevado nível
de qualidade. Implantar um processo de garantia de qualidade
tornou-se essencial e uma boa estratégia para o mercado.
O produto final é o somatório de todas as decisões e rea-
lizações geradas durante o ciclo de desenvolvimento. Essas
Figura 17. DMAIC Roadmap (Fonte: Adaptação (SEI, 2005))
decisões podem afetar a sua qualidade final. Para alcançar
uma alta qualidade, é necessário investir em qualidade em
todos os pontos do processo. Segundo Bartié (2002), Qualida- A Tabela 6 apresenta os passos de forma mais detalhada
de de Software é um processo sistemático que focaliza todas dentro roteiro de atividades (roadmap) do DMAIC.
as etapas e artefatos produzidos com o objetivo de garantir a A aplicação bem sucedida do CMMI em conjunto com o Seis
conformidade de processos e produtos, prevenindo e elimi- Sigma exige uma análise das relações entre os dois.
nando defeitos. O CMMI é usado para criar uma infraestrutura de processos
Gerentes, diretores e acionistas podem tomar decisões organizacionais, abordando domínios específicos, tais como
equivocadas, por terem como base informações com erros. software e engenharia de sistemas. Seis Sigma é uma iniciativa
Os prejuízos podem tornar-se enormes às organizações. A top-down que abrange toda a empresa, incluindo áreas como
qualidade das informações depende da qualidade das deci- engenharia, vendas, marketing e pesquisa. O Seis Sigma foi
sões. Com processos de desenvolvimento frágeis e deficientes concebido para ser implementado com um foco em problemas
é impossível garantir a qualidade do software. Portanto, é e oportunidades, muitas vezes com escopos específicos, que
importante verificar duas dimensões fundamentais para trarão benefícios significativos nos negócios. Centra-se no
atingirmos a qualidade do software: a dimensão da qualidade desempenho dos processos e práticas implementadas. Embo-
do produto, onde o objetivo principal é garantir a qualidade ra estas duas iniciativas de melhoria sejam diferentes na sua
do produto tecnológico gerado durante o ciclo de desenvolvi- concepção, elas são interdependentes em seu uso. Na prática,
mento, através de atividades testes e correção de problemas; a alternância entre os focos é muitas vezes eficaz. Por exemplo,
e a dimensão da qualidade do processo, onde é feita a estru- o Seis Sigma pode ser usado para descobrir que os processos
turação de processos que possuam mecanismos de inibição e precisam ser mais repetitivos, enquanto o CMMI pode ser
impedimento de falhas. usado para instituir processos baseados nas melhores práticas
da comunidade, e, em seguida, o Seis Sigma pode ser usado
Relações entre CMMI e SEIS SIGMA para otimizar os processos (SEI, 2005).
Do ponto de vista de definição do processo, há uma siner- Normalmente, é criado um mapeamento quando se compara
gia natural entre as áreas de alta maturidade do processo do uma outra iniciativa de melhoria com CMMI. Neste caso, de-
CMMI e os princípios do framework DMAIC do Seis Sigma. vido ao fato do CMMI e Seis Sigma serem dois tipos diferentes
Desta forma, as táticas do Seis Sigma podem ser utilizadas de iniciativas, com muitas conexões e sobreposições diferentes,

22 Engenharia de Software Magazine - Seis Sigma e CMMI


M etodologias Ágeis

um mapeamento completo e generalizado é complexo e ofe-


rece pouco valor prático. É mais útil compreender seus focos
complementares e as formas pelas quais eles estão conectados.
Unir esse entendimento a uma estratégia consciente, permite
que uma organização possa criar planos táticos e mapeamentos
específicos para apoiar as suas implementações.
Partindo de uma visão macro, a metodologia DMAIC pode
ser conjugada com as práticas genéricas para institucionali-
zar, otimizar e atingir alta capacidade nesses processos (SEI,
2005). A Figura 18 faz uma relação visual entre várias áreas de
processo do CMMI e práticas genéricas alinhadas com passos
do roteiro DMAIC.

Figura 18. Áreas de Processo do CMMI e Passos do DMAIC (Fonte: Adaptação


(SEI, 2005))

Figura 19. DMAIC Roadmap e as áreas do CMMI (4 e 5) (Fonte: Adaptação


(SEI, 2005))

Mapeamento CMMI x Seis Sigma


Nesta seção, é feita a relação entre as metas e práticas es-
Tabela 6. Six Sigma DMAIC Roadmap (Fonte: Adaptação (ISIXSIGMA, 2009b)) pecíficas das áreas de processo dos níveis de maturidade
O diagrama da Figura 18 mostra um fluxograma do processo 4 e 5 com os passos das fases do Seis Sigma - DMAIC. Em
geral de medição de uma organização, revestido com passos seguida, há uma breve descrição das metas e práticas para
DMAIC e áreas de processo selecionadas. Enquanto este pro- que possa ser compreendido o relacionamento existente.
cesso da organização foi projetado com observância do modelo
em mente, ele representa uma abordagem integrada para a Desempenho do Processo Organizacional (OPP)
utilização global de medição, em vez de uma replicação das A área de processo (PA) “Desempenho do Processo Or-
práticas específicas de cada área de processo. Da mesma forma, ganizacional (OPP)” (Tabela 7) está englobada no nível 4
esse processo organizativo aproveita ideias do DMAIC, mas de maturidade e possui uma única meta específica (SG):
não é uma replicação das etapas DMAIC (SEI, 2005). Estabelecer Baselines e Modelos de Desempenho, na qual
A Figura 19 apresenta uma visão resumida dos relaciona- são estabelecidas e mantidas as baselines e os modelos que
mentos dos passos do Seis Sigma com as práticas específicas caracterizam o desempenho esperado dos processos do
dos níveis 4 e 5 do CMMI. conjunto de processos padrão da organização. Nesta área

Edição 21 - Engenharia de Software Magazine 23


OPP Desempenho do Processo Organizacional (OPP)
SG1 Estabelecer Baselines e Modelos de Desempenho
Práticas Específicas - CMMI Passos do Seis Sigma

SP 1.1 Selecionar Processos ---- ---

Definir defeitos, oportunidades, unidades e métricas


SP 1.2 Estabelecer Medidas de Desempenho de Processo MEASURE Desenvolver plano de coleta de dados
Validar o sistema de medição
Definir objetivos de desempenho
ANALYZE Identificar fontes de variação
SP 1.3 Estabelecer Objetivos de Qualidade e de Desempenho de Processo
Determinar a(s) causa(s) raiz(es)
MEASURE Mapa detalhado do processo e áreas adequadas
Coleta de dados
SP 1.4 Estabelecer Baselines de Desempenho de Processo MEASURE
Determinar capacidade do processo e Baseline Sigma

SP 1.5 Estabelecer Modelos de Desempenho de Processo ---- ----

Tabela 7. Mapeamento da área de processo OPP e DMAIC

existem três, das cinco práticas específicas (SP), que pode- SP 1.5 Estabelecer Modelos de Desempenho de Processo
mos relacionar com o DMAIC. Resume-se em estabelecer e manter os modelos de desem-
penho de processo para o conjunto de processos padrão da
SP 1.1 Selecionar Processos organização. Os modelos de desempenho de processo são
Consiste em selecionar os processos ou subprocessos usados para estimar ou prever os valores de uma medida de
no conjunto de processos padrão organização que serão desempenho de processo a partir de valores de medições de
incluídos nas análises de desempenho do processo. Não se outros processos, produtos e serviços. Neste caso, o próprio
aplica ao Seis Sigma, pois o mesmo parte do princípio de seis sigma (6σ) é o valor modelo, obtido através do cálculo do
que tudo é um processo, e, portanto tudo deve ser medido nível sigma.
e analisado.
Gestão Quantitativa do Projeto (QPM)
SP 1.2 Estabelecer Medidas de Desempenho de Processo A área de processo (PA) “Gestão Quantitativa do Projeto
Atua no estabelecimento e manutenção das definições das (QPM)” (Tabela 8) está englobada no nível 4 de maturidade e
medidas que serão incluídas nas análises de desempenho de possui duas metas específicas (SG): Gerenciar o Projeto Quan-
processo da organização. No Seis Sigma há um conjunto de titativamente, onde o projeto é gerenciado quantitativamente
atividades que satisfazem esta meta específica, através da a partir do uso dos objetivos de qualidade e de desempenho
seleção das medidas apropriadas para fornecer visibilidade de processo; e a SG Gerenciar Estatisticamente o Desempenho
da qualidade e desempenho de processo da organização; o de Subprocessos, na qual o desempenho de subprocessos
desenvolvimento do plano de coleta dos dados e da validação selecionados no processo definido do projeto é gerenciado
do sistema de medição que permite verificar se as medidas estatisticamente.
estabelecidas estão sendo úteis. A primeira meta contempla as seguintes práticas específicas
(SP):
SP 1.3 Estabelecer Objetivos de Qualidade e de Desempe-
nho de Processo SP 1.1 Estabelecer os Objetivos do Projeto
Consiste em estabelecer e manter objetivos quantitativos de Consiste em estabelecer e manter os objetivos de qualidade
qualidade e de desempenho de processo para a organização. e de desempenho de processo do projeto. O Seis Sigma atende
No Seis Sigma, as atividades descritas na Tabela 7 se comple- a esta prática através do termo de abertura do projeto que é
mentam para atingir a definição de tais objetivos. gerado na atividade “Desenvolver a declaração do problema,
objetivos e benefícios” na fase de Definição.
SP 1.4 Estabelecer Baselines de Desempenho de Processo
O Seis Sigma atende a esta prática a partir da coleta e análise SP 1.2 Compor o Processo Definido
das medidas para estabelecer a distribuição e o intervalo de Consiste em selecionar os subprocessos que compõem o
resultados que caracterizam o desempenho esperado para processo definido do projeto com bases históricas de estabili-
os processos, gerando os índices de capacidade através dos dade e de dados de capacidade. Não há atividade equivalente
cálculos estatísticos. no Seis Sigma.

24 Engenharia de Software Magazine - Seis Sigma e CMMI


M etodologias Ágeis

QPM Gestão Quantitativa do Projeto (QPM)


SG 1 Gerenciar o Projeto Quantitativamente
Práticas Específicas - CMMI Passos do Seis Sigma

SP 1.1 Estabelecer os Objetivos do Projeto DEFINE Desenvolver a declaração do problema, objetivos e benefícios

SP 1.2 Compor o Processo Definido ---- ----

SP 1.3 Selecionar os Subprocessos que serão Gerenciados Estatisticamente ---- ----

MEASURE Determinar capacidade do processo e Baseline Sigma

Identificar valor/não-valor de etapas adicionadas no processo


ANALYZE
SP 1.4 Gerenciar o Desempenho do Projeto Identificar fontes de variação
Determinar a(s) causa(s) raiz(es)
Desenvolver potenciais soluções
IMPROVE
Definir tolerâncias operacionais do sistema em potencial

SG 2 Gerenciar Estatisticamente o Desempenho de Subprocessos


Práticas Específicas - CMMI Seis Sigma
Definir defeitos, oportunidades, unidades e métricas
SP 2.1 Selecionar Medidas e Técnicas Analíticas MEASURE Desenvolver plano de coleta de dados
Validar o sistema de medição
MEASURE Coleta de dados
SP 2.2 Aplicar Métodos Estatísticos para Compreender a Variação Identificar fontes de variação
ANALYZE
Determinar a(s) causa(s) raiz(es)

MEASURE
SP 2.3 Monitorar o Desempenho dos Subprocessos Selecionados Determinar capacidade do processo e Baseline Sigma
ANALYZE Identificar fontes de variação
SP 2.4 Registrar Dados de Gerenciamento Estatístico --- ---

Tabela 8. Mapeamento da área de processo QPM e DMAIC

SP 1.3 Selecionar os Subprocessos que serão Gerenciados selecionados. Três passos do Seis Sigma podem ser utilizados:
Estatisticamente “Definir defeitos, oportunidades, unidades e métricas” que
Consiste em selecionar os subprocessos e identificar o proces- fornece as definições das medidas a serem usadas no geren-
so e os atributos de produto a serem medidos e controlados. ciamento estatístico; “Desenvolver plano de coleta de dados”
As práticas específicas SP 1.2 e SP 1.3 não possuem etapas que documenta as definições operacionais das medidas, suas
correspondentes, pois, conforme mencionado anteriormente, coleções de pontos e como a integridade das medidas será
o Seis Sigma executa a gerência quantitativa em todos os pro- determinada; e “Validar o sistema de medição” que permite
cessos incluindo, assim, todos os respectivos subprocessos. a atualização das medidas e técnicas de análise estatística
quando necessário.
SP 1.4 Gerenciar o Desempenho do Projeto
É realizado o monitoramento do projeto para determinar se SP 2.2 Aplicar Métodos Estatísticos para Compreender a
os objetivos de qualidade e de desempenho de processo do Variação
projeto serão satisfeitos e identificar ações corretivas quando Consiste em estabelecer e manter um entendimento da va-
apropriado. No Seis Sigma, é executado um conjunto de 6 riação dos subprocessos selecionados usando as medidas e as
passos de monitoramento de desempenho do processo, citados técnicas analíticas selecionadas.
na Tabela 8. O entendimento da variação é conseguido, em parte,
A segunda meta desta PA contempla as seguintes práticas coletando e analisando as medidas de processo e de produ-
específicas: to de forma que as causas especiais de variação possam ser
identificadas e endereçadas para atingir desempenhos previ-
SP 2.1 Selecionar Medidas e Técnicas Analíticas síveis. Desta forma, utilizam-se os passos Seis Sigma “Coletar
Consiste em selecionar as medidas e as técnicas analíticas a dados”, “Identificar fontes de variação” e “Determinar a(s)
serem usadas no gerenciamento estatístico dos subprocessos causa(s) raiz(es)”.

Edição 21 - Engenharia de Software Magazine 25


SP 2.3 Monitorar o Desempenho dos Subprocessos metas específicas (SG): Selecionar Melhorias, onde são selecio-
Selecionados nadas as melhorias de processo e de tecnologia que contribuem
Monitorar o desempenho dos subprocessos selecionados para para atingir os objetivos de qualidade e de desempenho de
determinar a capacidade dos mesmos de satisfazer aos seus ob- processo; e a SG Implementar Melhorias, na qual melhorias
jetivos de qualidade e de desempenho de processo, e identificar mensuráveis para os processos e tecnologias da organização
ações corretivas quando necessário. No Seis Sigma, os passos são continuamente e sistematicamente implementadas.
“Determinar capacidade do processo e Baseline Sigma” e “Iden- A primeira meta contempla as seguintes práticas especí-
tificar fontes de variação” permitem obter os limites naturais de ficas (SP):
desempenho de processo comparados com seus objetivos estabe-
lecidos e a capacidade de processo de cada subprocesso. SP 1.1 Coletar e Analisar Propostas de Melhoria
Consiste em coletar e analisar propostas de melhoria de proces-
SP 2.4 Registrar Dados de Gerenciamento Estatístico so e de tecnologia. No Seis Sigma, através do desenvolvimento
Trata-se de realizar o registro dos dados de gerenciamento esta- da declaração do problema, objetivos e benefícios, são definidos
tístico e de qualidade no repositório de medidas da organização. os projetos de melhoria. Na fase de melhoria, são desenvolvidas
O Seis Sigma não possui um passo definido para esta prática, pois as potenciais soluções para os projetos estabelecidos.
considera a coleta e o armazenamento como um único passo.
SP 1.2 Identificar e Analisar Inovações
Inovação Organizacional (OID) Esta prática identifica e analisa melhorias inovadoras que po-
A área de processo (PA) “Inovação Organizacional (OID)” deriam aumentar a qualidade e o desempenho de processo de
(Tabela 9) está inserida no nível de maturidade 5 e possui duas uma organização. No Seis Sigma, através do desenvolvimento

OID Inovação e Desenvolvimento Organizacional (OID)

SG 1 Selecionar melhorias
Práticas Específicas - CMMI Passos do Seis Sigma

DEFINE Desenvolver a declaração problema, objetivos e benefícios


SP 1.1 Coletar e Analisar Propostas de Melhoria
IMPROVE Desenvolver potenciais soluções

SP 1.2 Identificar e Analisar Inovações IMPROVE Desenvolver potenciais soluções

Realizar projetos experimentais


SP 1.3 Melhorias Piloto IMPROVE
Desenvolver potenciais soluções

SP 1.4 Selecionar Melhorias para Implantação IMPROVE Validar melhorias em potencial de estudos-piloto

SG 2 Implementar Melhorias
Práticas Específicas - CMMI Passos do Seis Sigma
Definir defeitos, oportunidade, unidade e métricas
SP 2.1 Planejar a Implantação MEASURE Mapa detalhado do processo e áreas adequadas
Desenvolver plano de coleta de dados
Realizar projetos experimentais
Desenvolver potenciais soluções
IMPROVE
SP 2.2 Gerenciar a Implantação Definir tolerâncias operacionais do sistema em potencial

CONTROL Definir e validar acompanhamento e controle do sistema

Validar melhorias em potencial de estudos-piloto


IMPROVE
Corrigir/reavaliar o potencial da solução
SP 2.3 Medir os Efeitos de Melhorias Determinar capacidade do processo
CONTROL
Verificar benefícios, redução/economia de custos, crescimento do lucro

Tabela 9. Mapeamento da área de processo OID e DMAIC

26 Engenharia de Software Magazine - Seis Sigma e CMMI


M etodologias Ágeis

de potenciais soluções, são analisadas as todas as propostas SP 2.3 Medir os Efeitos de Melhorias
de melhoria, incluindo as inovadoras. Estabelece a medição dos efeitos das melhorias de proces-
so e tecnologia implantadas. Após medir custos, esforço,
SP 1.3 Melhorias Piloto cronogramas reais, valor das melhorias, progresso da
Implantação de melhorias de processo e tecnologia através de qualidade e desempenho, acontece o armazenamento das
um piloto para selecionar aquelas a serem implementadas. Pi- medidas no repositório da organização. Os passos do Seis
lotos são realizados para avaliar mudanças novas importantes, Sigma que podem ser utilizados na fase de melhoria são:
sendo implantadas de forma abrangente, quando apropriado. O validar melhorias em potencial de estudos-piloto, corrigir/
Seis Sigma realiza esta implantação piloto através dos projetos reavaliar o potencial da solução. E na fase de controle:
experimentais na fase de melhoria, criando soluções para os determinar capacidade do processo, verificar benefícios,
pilotos que apresentam os melhores resultados. redução/economia de custos, crescimento do lucro.

SP 1.4 Selecionar Melhorias para Implantação Análise de Causa e Solução de Problemas (CAR)
Nesta prática, ocorre a seleção de melhorias de processo e de A área de processo (PA) “Análise de Causa e Solução de
tecnologia para implantação na organização. O levantamento Problemas (CAR)” (Tabela 10) está incluída no nível 5 de
é baseado nos critérios quantificáveis derivados dos objetivos maturidade e possui duas metas específicas (SG): Deter-
de qualidade e de desempenho de processo da organização. minar Causas de Defeitos, onde as causas de defeitos e de
No Seis Sigma, está relacionada com a validação de melhorias outros problemas são sistematicamente determinadas; e a
em potencial de estudos-piloto, da fase de melhoria. SG Tratar as Causas dos Defeitos, na qual as causas raiz
A segunda meta desta PA contempla as seguintes práticas dos defeitos e de outros problemas são tratadas de forma
específicas: sistemática para prevenir suas ocorrências futuras.
A primeira meta contempla as seguintes práticas es-
SP 2.1 Planejar a Implantação pecíficas (SP):
Estabelece e mantém os planos de implantação das melho-
rias de processo e de tecnologia selecionadas. No Seis Sigma, SP 1.1 Selecionar Dados de Defeitos para Análise
alguns passos podem ser utilizados: o “Definir defeitos, Seleciona os defeitos e outros problemas para análise. Na
oportunidade, unidade e métricas” estabelece medidas e fase Medir do Seis Sigma, realiza-se a definição de defei-
objetivos para determinar o valor de cada melhoria de pro- tos, oportunidades, unidades e métricas que reúne dados
cesso e de tecnologia com relação aos objetivos de qualidade de defeitos ou de problemas relevantes; há o desenvolvi-
e de desempenho de processo; obter o “Mapa detalhado do mento do plano de coleta de dados para fazer relatórios e
processo e áreas adequadas” auxilia no entendimento do medições de problemas relevantes; e por último a coleta
processo e na identificação de estratégias para endereçar de dados para determinar e selecionar defeitos.
potenciais barreiras na implantação de cada melhoria de
processo e de tecnologia; e “Desenvolver plano de coleta de SP 1.2 Analisar Causas
dados” para agregar o uso de dados quantitativos na orien- Realiza a análise de causas de defeitos selecionados e
tação da implantação. de outros problemas e propõe ações para tratá-los. O Seis
Sigma utiliza o passo “Determinar a(s) causa(s) raiz(es)”
SP 2.2 Gerenciar a Implantação para conduzir as análises nas reuniões e o passo “Identi-
Realiza o gerenciamento da implantação das melhorias de pro- ficar fontes de variação” para analisar os defeitos e outros
cesso e de tecnologia selecionadas. Nesta prática, o planejamento problemas para determinar soluções. Ambos os passos
pode ser quantificado em relação aos objetivos de negócio da são da fase de Análise.
organização. Duas fases do Seis Sigma podem ser utilizadas: A segunda meta desta PA contempla as seguintes prá-
• A fase de Medição, através dos passos: “Realizar projetos ticas específicas:
experimentais”, para implantação das melhorias de forma
controlada e disciplinada; “Desenvolver potenciais soluções”, SP 2.1 Implementar Propostas de Ação
para identificar ações corretivas, caso a habilidade dos pro- Implementa as propostas de ação selecionadas que fo-
cessos definidos em atingir os objetivos de qualidade e de ram elaboradas na análise de causa. As propostas descre-
desempenho de processo seja afetada negativamente pela vem as tarefas necessárias para remover as causas raízes
melhoria de processo; “Definir tolerâncias operacionais do dos defeitos ou dos problemas analisados e evitar suas
sistema em potencial” que pode ser utilizada para determinar recorrências. Durante a implementação as informações
a habilidade dos processos; e tarefas podem fazer parte do passo de desenvolver o
• A fase de Controle, que define e valida o acompanhamento e plano de transferência (handoff para o proprietário do
controle do sistema para documentar e revisar os resultados de processo), da fase controlar no Seis Sigma, contribuindo
implantação, identificando lições aprendidas, novas propostas para que os experimentos sejam conduzidos de forma
e melhorias de processo. transparente.

Edição 21 - Engenharia de Software Magazine 27


CAR Análise e Resolução de Causas (CAR)

SG 1 Determinar Causas de Defeitos


Práticas Específicas - CMMI Passos do Seis Sigma
Definir defeitos, oportunidade, unidade e métricas
SP 1.1 Selecionar Dados de Defeitos para Análise MEASURE Desenvolver plano de coleta de dados
Coleta de dados
Determinar a(s) causa(s) raiz(es)
SP 1.2 Analisar Causas ANALYZE
Identificar fontes de variação
SG 2 Tratar as Causas dos Defeitos
Práticas Específicas - CMMI Passos do Seis Sigma

SP 2.1 Implementar Propostas de Ação CONTROL


Desenvolver plano de transferência, Handoff para o proprietário do processo
Avaliar modos de falha de soluções em potencial
Validar melhorias em potencial de estudos-piloto
SP 2.2 Avaliar os Efeitos das Mudanças IMPROVE
Verificar redução/economia de custos, crescimento do lucro

SP 2.3 Registrar Dados CONTROL Fechar o projeto, finalizar documentação


Tabela 10. Mapeamento da área de processo CAR e DMAIC

SP 2.2 Avaliar os Efeitos das Mudanças O Atlântico desenvolve projetos de tecnologia da informação
Avalia os efeitos das mudanças no desempenho do processo na linha de software, hardware e sistemas, para clientes de
após a sua implementação modificada no projeto. O efeito deve diversos segmentos de mercado, gerando soluções em Compu-
ser verificado para reunir evidências de que essa mudança tação Móvel, Integração de Sistemas, TV Digital, Aplicações Fi-
está corrigindo o problema e melhorando o desempenho. Três nanceiras, Web, Sistemas para Redes, Automação, Engenharia de
passos da fase de melhoria do Seis Sigma podem ser utiliza- Telecom, Hardware e Sistemas Embarcados. Estas soluções são
dos: “Avaliar modos de falha de soluções em potencial” que desenvolvidas em J2EE, J2ME e. NET (ATLANTICO, 2009b).
determina a influência das mudanças no desempenho, “Va-
lidar melhorias em potencial de estudos-piloto” que valida a Qualidade como Ferramenta Estratégica
eficiência da melhoria e, por fim, “Verificar redução/economia Desde o início de suas operações, o Atlântico coloca em práti-
de custos, crescimento do lucro”. ca a ideia de que o investimento em um amplo sistema de qua-
lidade é a forma mais eficiente de se gerar bons resultados.
SP 2.3 Registrar Dados Em 2005, a empresa conquistou a certificação ISO 9001:2000.
Faz o registro dos dados de análise de causa e resolução para Em fevereiro de 2006 o Atlântico foi avaliado como CMMI
uso no projeto e na organização, que pode ser usado para fazer Nível 3, sendo a primeira organização Norte/Nordeste com
mudanças de processo apropriadas e alcançar resultados simi- esse nível de maturidade. Em 2009, a qualidade atingiu seu
lares. No Seis Sigma, o passo de controle que fecha o projeto e auge com a avaliação CMMI nível 5, que apoiados em filoso-
finaliza a documentação é responsável por fazer os registros fias de trabalho como Six Sigma, RUP, PMBoK, Agile e MSF
de todo material. (ATLANTICO, 2009c).
A Figura 20 apresenta um breve histórico das certificações
Estudo de Caso obtidas pela empresa, acompanhado das filosofias de quali-
Neste tópico é apresentado um exemplo de utilização do dades utilizadas.
Seis Sigma para o alcance do nível 5 de maturidade do CMMI,
realizado pelo Instituto Atlântico.

A Empresa
Fundado em 2001 pelo CPqD, (Centro de Pesquisa de Desen-
volvimento em Telecomunicações do Brasil), o Atlântico atua
em P&D/Inovação, Projetos de Desenvolvimento e Consulto-
ria, atendendo principalmente à Indústria, Governo e Setor
Financeiro. Suas unidades em Fortaleza-CE, Sobral-CE e São
Figura 20. Histórico de Certificações e Filosofias de Qualidade (Fonte:
Paulo-SP agregam mais de 290 profissionais. Adaptação (ATLÂNTICO, 2009c))

28 Engenharia de Software Magazine - Seis Sigma e CMMI


M etodologias Ágeis

Desta forma, o Atlântico obteve ótimos resultados, possi-


bilitando maior índice de entregas dentro do custo e prazo,
com alto padrão de qualidade e aumento na satisfação dos
seus clientes.

Estratégia CMMI x Seis Sigma


Atualmente, o Instituto Atlântico é a sexta organização no
Brasil reconhecida com o CMMI-5. Para o alcance deste ob-
Figura 21. Produtividade (Fonte: (ATLÂNTICO, 2009a))
jetivo, o instituto foi auxiliado pela empresa de consultoria
internacional com foco exclusivo em qualidade de processos,
ISD (Integrated System Diagnostics Brasil S/C Ltda).
A estratégia utilizada para o alcance do Nível 5 com base no Seis
Sigma, foi implementada em três fases (ATLANTICO, 2009a):

Fase 1 – Planejamento e Definição da Estratégia


• Formação de yellow belts e green belts (consultoria de
black belts)
• Reestruturação dos processos de “melhoria contínua” para
incorporar a nova filosofia 6σ (DMAIC) Figura 22. Densidade de Defeitos (Fonte: (ATLÂNTICO, 2009a))
• Reestruturação dos indicadores de acordo com as estratégias
(BSC e M&A)
• Seleção de projetos de melhoria DMAIC e líderes (DAR)

Fase 2 – Execução da Estratégia de Melhoria (DMAIC)


• D – Definição dos Projetos e Casos de Negócios
• M – Medição do Estado Atual
• A – Análise e Teste das Causas
• I – Propostas de Melhoria
• C – Estabelecimento de Controles Organizacionais

• Acompanhamento dos projetos DMAIC Figura 23. Atendimento ao Prazo (Fonte: (ATLÂNTICO, 2009a))
• Tra nsição das mel horias e ga n hos obt idos para a
“produção” “É o grande diferencial: a organização vai sempre executar os seus pro-
cessos de forma melhor, mais otimizada, mais eficiente e eficaz. O controle
Fase 3 – Avaliação da Estratégia estatístico é um pré-requisito para fazer essa melhoria dos processos. A
• Acompanhamento das melhorias e ganhos obtidos partir desse controle se sabe qual o desempenho e se executam as ações
• Avaliação independente dos resultados dos projetos DMAIC para melhorar – tudo baseado em controle estatístico”.

Resultados Conforme Cláudio Violato, atual presidente do Instituto


André Pinho, analista da ISD que acompanhou as avaliações Atlântico e vice-presidente de Tecnologia do CPqD, o Atlân-
ao longo da preparação para o CMMI5, destaca a redução de tico se tornou muito mais capaz de planejar, de organizar, de
retrabalho, redução de problemas, a melhoria da produtividade estruturar e de garantir o resultado de acordo com o planejado
e afirma que a certificação se traduz em ganhos para a empresa (ATLANTICO, 2009d):
(ATLANTICO, 2009d):
“O CMMI contribui para melhorar o resultado financeiro em dois
“Quando a empresa começa a medir, controlar e a usar fer- sentidos”, disse ele. “Primeiro porque temos mais condições de trazer
ramentas estatísticas, é possível melhorar o desempenho, que mais projetos para fazer. E segundo porque a gente faz o projeto com
se traduz em resultados - inclusive financeiros”. mais controle: a chance de perda é muito menor. Então o resultado
financeiro começa a melhorar também”.
Os gráficos a seguir permitem uma visualização resumida dos
benefícios em termos de produtividade (Figura 21), densidade Conclusão
de defeitos (Figura 22) e atendimento ao prazo (Figura 23). Diante do atual cenário de mercado altamente competitivo, é
Gabriela Teles, que coordenou a equipe do Atlântico nos dois mais importante do que nunca para as organizações o investi-
anos de preparação para chegar ao CMMI5 faz suas considerações mento na melhoria de processos para atender às suas missões
sobre os benefícios para a empresa (ATLANTICO, 2009d): (satisfação dos clientes, lucratividade, qualidade, entre outras).

Edição 21 - Engenharia de Software Magazine 29


Muitas empresas percebem sabiamente que não é preciso fazê-lo O valor potencial que é adicionado trata-se da obtenção acelerada
a partir do zero, sendo possível otimizar os processos existentes, de metas de desempenho, otimização da adoção do CMMI (nos
utilizando iniciativas de melhoria e práticas. No entanto, pode ha- níveis mais altos), desenvolvimento das habilidades mais importan-
ver uma “sobrecarga” de iniciativas. Desta forma, os responsáveis tes de medição e análise para permitir uma melhor quantificação
por aplicar os esforços de melhoria de processos organizacionais dos resultados, e toda a mudança de cultura correspondente que
devem projetar a sua estratégia e táticas de implementação para acompanha essas melhorias.
que as múltiplas iniciativas escolhidas possam interagir.
Dê seu feedback sobre esta edição! Feedback
Determinar o que é apropriado requer uma compreensão eu

s

das iniciativas selecionadas e suas ligações. Este artigo A Engenharia de Software Magazine tem que ser feita ao seu gosto.

sobre e
abordou os aspectos comuns existentes entre o Seis Sigma Para isso, precisamos saber o que você, leitor, acha da revista!
e o CMMI de modo que a sinergia entre ambos possa ser

s
ta
Dê seu voto sobre este artigo, através do link: edição

percebida. www.devmedia.com.br/esmag/feedback

Referências Bibliográficas

ABRANTES,José.Programa 8S:da alta administração à linha de produção:o que fazer para aumentar o lucro?: FNQ – FUNDAÇÃO NACIONAL DA QUALIDADE. Critérios de Excelência 2009 - Avaliação e Diagnóstico
a base da filosofia Seis Sigma.Rio de Janeiro: Interciência, 2001. da Gestão Organizacional. Disponível em: http://www.fnq.org.br/Portals/_FNQ/Documents/web_
CriteriosExcelencia2009_mais_recente.pdf.Acessado em: 22/09/2009.
ASQ 2009a – American Society for Quality.Organization-Wide Approaches.Disponível em: http://www.asq.
org/learn-about-quality/six-sigma/overview/belts-executives-champions.html.Acessado em: 01/11/2009. GRUPO WERKEMA - Six Sigma Consultores, Werkema Editora e Ousar Comunicação Estratégica. Dúvidas
frequentes sobre o Seis Sigma. Disponível em: http://www.werkemaconsultores.com/inside.php?ident=8.
ASQ 2009b – American Society for Quality.Six Sigma Black Belt Certification – CSSBB.Disponível em: http:// Acessado em: 05/11/2009.
www.asq.org/certification/six-sigma/index.html.Acessado em: 09/11/2009.
ISIXSIGMA 2009a – Six Sigma Quality Resources for Achieving Six Sigma Results. The History of Six Sigma.
ASQ 2009c – American Society for Quality.Six Sigma Green Belt Certification – CSSBB.Disponível em:http:// Disponível em: http://www.isixsigma.com/library/content/ c020815a.asp .Acessado em: 05/11/2009.
www.asq.org/certification/six-sigma-green-belt/index.html.Acessado em: 08/11/2009.
ISIXSIGMA 2009b – Six Sigma Quality Resources for Achieving Six Sigma Results. Six Sigma DMAIC Roadmap.
ATLANTICO 2009a – Instituto Atlântico. Utilização do Six Sigma para o alcance do nível 5 de maturidade do Disponível em: http://www.isixsigma.com/library/ content/c020617a.asp.Acessado em: 11/12/2009.
CMMI. Disponível em: http://www.atlantico.com.br/ sites/default/files/biblioteca/utilizacao-do-six-sigma-
para-o-alcance-do-nivel-5-de-maturidade-do-cmmi.pdf.Acessado em: 09/12/2009. MOTOROLA – Website da Motorola Brasil. Linha do Tempo. Disponível em: http://www.motorola.com/
content.jsp?globalObjectId=485-914#top.Acessado em: 05/10/2009.
ATLANTICO 2009b – Website do Instituto Atlântico. Quem Somos. Disponível em: http://www.
institutoatlantico.com.br/quem-somos.Acessado em: 09/12/2009. PANDE, P. S.; NEUMAN, R. P.; CAVANAGH, R. R. Estratégia seis sigma: como a GE, a Motorola e outras grandes
empresas estão aguçando seu desempenho.Rio de Janeiro: Qualitymark, 2001.
ATLANTICO 2009c – Website do Instituto Atlântico. Quem Somos - Qualidade. Disponível em: http://www.
institutoatlantico.com.br/quem-somos/qualidade.Acessado em: 09/12/2009. PDP Net – Ambiente de Compartilhamento de Conhecimentos em Desenvolvimento de Produtos. Roteiro
DMAIC. Disponível em: http://www.pdp.org.br/ModeloLivroWeb/modelo/met_ferram/seissigma/
ATLANTICO 2009d – Website do Instituto Atlântico. Notícias – Instituto Atlântico conquista CMMI Nível 5. fm6sigma_rot1.htm.Acessado em: 12/11/2009.
Disponível em: (http://www.institutoatlantico.com.br/ noticias/instituto-atl%C3%A2ntico-conquista-
cmmi-n%C3%ADvel-5) Acessado em: 09/12/2009. PROFITABILITY Engineers. Six Sigma Green Belt. Disponível em: http://www.profitability.pt/conteudos.
aspx?cat=30&catMae=26.Acessado em: 06/11/2009.
BARTIÉ, Alexandre. Garantia da Qualidade de Software: Adquirindo maturidade organizacional. Rio de
Janeiro: Elsevier, 2002. ROCHA, Hélio. Simples Soluções Desenvolvimento Organizacional Ltda. Programa 8S – Promovendo
a Qualidade de Vida. Disponível em: http://www.simplessolucoes.com.br/blog/wp-content/
CARVALHO, Marly Monteiro de, PALADINI, Edson Pacheco.Gestão da Qualidade:Teoria e Casos.Rio de Janeiro: uploads/2009/04/programa-8s-rev02.pdf.Acessado em 05/10/2009.
Elsevier, 2005.
SEI. Performance Results of CMMI - Based Process Improvement (TECHNICAL REPORT CMU/SEI-2006-TR-
CITS - CENTRO INTERNACIONAL DE TECNOLOGIA DE SOFTWARE. CMMI (CAPABILITY MATURITY MODEL 004, ESC-TR-2006-004). Software Engineering Institute, Carnegie Mellon University, 2006. Disponível em:
INTEGRATION).Disponível em: http://www.cits.br/cmmi.do.Acessado em 24/09/2009. http://www.sei.cmu.edu/publications/documents/06.reports/06tr004.html.Acessado em 23/09/2009.

CMMI Product Development Team. CMMI for Development, Version 1.2 (CMU/SEI-2006-TR-008, ESC-TR- SEI. Relationships Between CMMI and Six Sigma (TECHNICAL NOTE CMU/SEI-2005-TN-005). Software
2006-008).Software Engineering Institute, Carnegie Mellon University, 2006. Engineering Institute, Carnegie Mellon University, 2005. Disponível em: http://www.sei.cmu.edu/
reports/05tn005.pdf.Acessado em 02/12/2009.
EFQM – European Foundation for Quality Management.The EFQM Excellence Model. Disponível em: http://
ww1.efqm.org/en/Home/aboutEFQM/Ourmodels/TheEFQMExcellenceModel/tabid/170/Default.aspx. SMIDT & PARTNERS. The phase model for problem solving is named DMAIC. Disponível em: http://smidt-
Acessado em: 24/09/2009. partners.dk/six-sigma_uk/dmaic.html.Acessado em: 12/11/2009.

FERNANDES, Aguinaldo Aragon.  Implantando a governança de TI:  da estratégia à gestão dos processos e SSPJ - SECRETARIA DA SEGURANÇA PÚBLICA DO ESTADO DE GOIÁS. Ferramentas da Qualidade. Disponível
serviços. 2.ed. Rio de Janeiro: Brasport, 2008. em: http://www.sspj.go.gov.br/policia-comunitaria/aulas-do-curso/gestao-qualidade/material-de-apoio.
doc.Acessado em: 21/09/2009.
FINANCE,Yahoo. GE Interactive Charts. Disponível em: http://finance.yahoo.com/echarts?s=GE#chart2:sym
bol=ge;range=19650104,20040101;indicator=volume+mfi;charttype=line;crosshair=on;ohlcvalues=0 TENNANT, Geoff.SIX SIGMA: SPC and TQM in Manufacturing and Services.Gower Publishing Ltd, 2001.
;logscale=on;source=undefined.Acessado em: 11/11/2009.

30 Engenharia de Software Magazine - Seis Sigma e CMMI


M etodologias Ágeis

AMIGO
...só pra lembrar,
Existem coisas sua assinatura pode
estar acabando!
que não
conseguimos
ficar sem!
Renove Já!

www.devmedia.com.br/renovacao
Para mais informações:
www.devmedia.com.br/central

Edição 21 - Engenharia de Software Magazine 31


Abordagens Tradicionais de Desenvolvimento
Esta seção traz artigos que apresentam como e quando utilizar as diferentes abordagens
tradicionais de apoio ao desenvolvimento de projetos de software

Colaboração em Processos de Aquisição de Software

De que se trata o artigo?


Utilizando o Modelo de Colaboração 3C e o Guia de
Aquisição do MPS.Br, este artigo discorre sobre os
aspectos colaborativos em processos de aquisição

O
rganizações que tenham neces- de software. Ele identifica suas principais ques-
sidades de adquirir software tões e também algumas ferramentas para apoio
e serviços relacionados se de- ao trabalho colaborativo no contexto descrito.
param frequentemente com problemas
inerentes ao trabalho colaborativo, que Para que serve?
se caracteriza pelo trabalho através da O objetivo deste artigo é apresentar os problemas
João Condack interação entre diversos indivíduos. Os específicos relacionado à colaboração em proces-
condack@primeup.com.br desafios e problemas de interação não sos de aquisição de software e indicar algumas das
Mestre em Informática e Engenheiro de possuem uma solução simples, como um possíveis soluções para estes.
Computação pela PUC-Rio. Coordenador de
produto único disponível no mercado,
Instituição Implementadora MPS.Br. Rea-
lizou consultoria empresas como Furnas, e não podem ser tratados somente por Em que situação o tema é útil?
Smart Solutions e Banco Itaú. Também é meio de ferramentas. Os desafios podem O tema é útil para organizações que adqui-
instrutor de cursos na área de processos de envolver desde a integração de pessoas rem softwares produzidos por terceiros e que
software pela PrimeUp e pela CCE/PUC-Rio com perfis profissionais diferentes até desejam melhorar seu processo de aquisição,
atendendo organizações como Caixa Econô-
as dificuldades de identificação das com o fim de torná-lo eficiente e eficaz.
mica Federal, Firjan, Petrobrás entre outras.
necessidades de aquisição, dado que
Rafael Vieira cada stakeholder tem sua própria visão
rafael.vieira@primeup.com.br
e abordagem. Para ilustrar a situação • O gerenciamento do contrato, o qual
Bacharel em Sistemas de Informação pela
PUC-Rio. Foi analista de sistemas em pro- considere o seguinte cenário: poderia ser verificado, ou mesmo rene-
jetos junto organizações tais como: IBGE, • Equipes de departamentos jurídico e gociado, a cada nova versão do sistema
M4U e MP-RJ. Instrutor do Programa de técnico discutindo questões legais sobre com o cliente.
Residência em Desenvolvimento de Sof- contratos de software;
tware do LES/PUC-Rio. Também atuou no
• Analistas de requisitos discutindo e O objeto da aquisição definido pelo
projeto e desenvolvimento de framework
para aplicações colaborativas visando obtendo aprovação de requisitos, junto Guia de Aquisição do MPS.BR é “o pro-
apoio aquisição de software. aos usuários; duto de software propriamente dito, bem

32 Engenharia de Software Magazine - Colaboração em Processos de Aquisição de Software


processo

como serviços tipicamente relacionados ao desenvolvimento, Nestas fases, as atividades apresentadas na Tabela 1 são
implantação, suporte à operação e manutenção do software.” O executadas.
processo de aquisição trata das atividades relacionadas à con-
Guia de Aquisição – Atividades Tarefas
tratação deste objeto, com o fim de criar e manter uma relação
Estabelecer a necessidade
entre cliente e fornecedor em que expectativas de incorporação
Definir os requisitos
e entrega de sistemas sejam atendidas. Esse processo pode ser
Preparação da aquisição Revisar requisitos
descrito através de quatro fases:
Desenvolver uma estratégia de aquisição
1. preparação da aquisição
Definir os critérios de seleção de fornecedores
2. seleção do fornecedor
Avaliar a capacidade dos fornecedores
3. monitoração do fornecedor
Seleção do fornecedor Selecionar o fornecedor
4. aceitação pelo cliente
Preparar e negociar um contrato
Estabelecer e manter comunicações
O problema
Trocar informação sobre o progresso técnico
Para atender novas demandas organizacionais por tecnologia
Inspecionar o desenvolvimento com o fornecedor
de informação, pode ser necessário: Monitoração do fornecedor
Monitorar a aquisição
• Desenvolver novos sistemas no lugar dos que já existem;
Obter acordo quanto às alterações
• Desenvolver sistemas que reutilizem os que já existem ou
Acompanhar problemas
realizar serviços para sua manutenção;
Definir critérios de aceitação
• Contratar outra empresa que realize as atividades mencio-
Avaliar o produto entregue
nadas acima; Aceitação pelo cliente
Manter conformidade com o contrato
• Adquirir sistemas gratuitos que atendam às necessidades.
Aceitar o S&SC
Tabela 1. Fases e tarefas do Guia de Aquisição do MPS.BR
Caso a decisão tomada seja por contratar o desenvolvimento,
será necessário, em linhas gerais: definir as necessidades que o Neste processo, diversos papéis são desempenhados,
sistema atenderá; selecionar o fornecedor; criar um ou mais con- entre os quais os mais evidentes são o do cliente e o do
tratos, formalmente ou informalmente definido, dependendo fornecedor. Representando o cliente, outros papéis po-
do nível de cerimônia combinado com o contratante; estabelecer dem ser identificados, como, por exemplo, analistas de
meios de comunicação com o fornecedor e acompanhar o cum- requisitos, pessoal técnico, usuários ou responsáveis pelo
primento do contrato; e, por fim, aceitar ou não o sistema. projeto. Representando o fornecedor, também podem ser
Esse processo poderia se repetir diversas vezes. Por conta identificados gerentes de projetos, analistas de requisitos,
disso, surgem questões indagando se a forma de trabalho au- arquitetos ou representantes comerciais.
xiliou na integração e na comunicação entre os interessados no É importante destacar que, diferentemente de processos
projeto, ou se o conhecimento adquirido, que poderia ser útil convencionais de desenvolvimento de software, há um
para novas aquisições, foi registrado adequadamente. foco muito maior no cliente e no gerenciamento de suas
interações com o fornecedor. Segundo o trabalho de Fuks,
O Guia de Aquisição do MPS.BR e a Colaboração “um grupo também tem mais capacidade de gerar alterna-
O Guia de Aquisição do MPS.BR é um modelo de referên- tivas, levantar as vantagens e desvantagens de cada uma,
cia para processos de aquisição de software. Ele define que selecionar as viáveis e tomar decisões”. Ou seja, por um
esses processos são constituídos de atividades, as quais são lado essa diversidade de papéis pode apresentar desafios,
executadas em fases específicas e possuem produtos como mas também possui um potencial positivo para a melhoria
pré-condições ou pós-condições. Essas fases são: da análise e geração de soluções mais adequadas ao que
1. Preparação da aquisição: trata da definição de necessidades, é necessário.
requisitos de software, metas e critérios de aceitação do software a Dessa forma, a natureza colaborativa desse processo se
ser contratado, bem como a definição do plano da aquisição; aqui torna evidente, bem como toma contornos diferentes de
se busca entender as necessidades do sistema a ser adquirido; um processo de desenvolvimento. Sabendo disso, faz-se
2. Seleção do fornecedor: trata da preparação e negociação de necessário entender quais são as carências e oportunidades
contratos com fornecedores e avaliação e seleção destes; inerentes ao trabalho colaborativo, com o fim de maximi-
3. Monitoração do fornecedor: visa manter canais de comu- zar o efeito positivo das interações entre diversos agentes.
nicação com o fornecedor e acompanhar a aquisição propria- Fuks, em seu trabalho, propõe o modelo 3C, que classifica
mente dita, ou seja, se as entregas estão dentro dos critérios os sistemas colaborativos segundo três necessidades a
de aceitação definidos anteriormente; que estes devem atender: comunicação, coordenação e
4. Aceitação pelo cliente: realiza a aceitação final do produto cooperação. Ou seja, necessidades de compartilhamen-
desenvolvido, com base nos critérios definidos na preparação to de informações, delegação e sincronismo de tarefas
da aquisição; momento em que o sistema é integrado totalmen- e operação conjunta e benéfica, resumidamente. Mais
te à organização contratante. detalhadamente:

Edição 21 - Engenharia de Software Magazine 33


• Comunicação: “Durante a comunicação, as pessoas almejam • Brainstorming: ferramentas que apóiem a geração de idéias
construir um entendimento comum e compartilhar idéias, podem ser úteis nas fases iniciais, como apoio ao planejamento.
discutir, negociar e tomar decisões. Os participantes de uma Foram levantadas as seguintes ferramentas que ajudam na
equipe de trabalho devem se comunicar para conseguir rea- geração ou organização de idéias:
lizar tarefas interdependentes, não completamente descritas - Mind map: forma intuitiva de registro e organização de
ou que necessitem de negociação”; conhecimento, onde conceitos se relacionam com conceitos
• Coordenação: “Conversação para ação gera compromissos adjacentes a eles, formando uma árvore;
Winograd and Flores, (1987) e Winograd (1988). Para garantir - Gráfico de Ishikawa: possibilita a visualização das relações
o cumprimento destes compromissos e a realização do traba- de causa e efeito entre os conceitos. É útil para a análise de pro-
lho colaborativo através da soma dos trabalhos individuais, blemas e das necessidades de alto nível que levam à aquisição
é necessária a coordenação das atividades. Esta coordenação do software ou serviço correlato.
organiza o grupo para evitar que esforços de comunicação e • FAQs (Frequently Asked Questions): possibilita o registro
cooperação sejam perdidos e que as tarefas sejam realizadas de dúvidas e de soluções simples que possam ser reutilizadas,
na ordem correta, no tempo correto e cumprindo as restrições em vários projetos de aquisição. Problemas mais complexos
e objetivos [Raposo et al., 2001].”; poderiam ser registrados em uma ferramenta de workflow;
• Cooperação: “Cooperação é a operação conjunta dos membros • Fórum: para apoio à discussão, manutenção das discussões
do grupo no espaço compartilhado. Em um espaço virtual de e suas conclusões, bem como seu registro;
informação, os indivíduos cooperam produzindo, manipulan- • Gerenciador de documentos: manutenção de documentos
do e organizando informações, bem como construindo e refi- diversos, como páginas wiki, mensagens em fóruns e docu-
nando artefatos digitais, como documentos, planilhas, gráficos, mentos e templates de, por exemplo, contratos de software,
etc. O ambiente pode fornecer ferramentas de gerenciamento RFP (request for proposal), entre outros;
destes artefatos, como por exemplo, registro e recuperação de • Grupos de trabalho: ferramentas que permitem gerenciar
versões, controle e permissões de acesso, etc.” grupos de trabalho, auxiliam no controle de acesso ao conteúdo
e ao gerenciamento de recursos;
Ferramentas de Apoio ao Trabalho Colaborativo • Quadro branco: possibilita fazer esboços rápidos, para apoio à
Ferramentas colaborativas que apóiem tarefas do processo de comunicação falada e à construção colaborativa de esboços. Pode
aquisição de software devem considerar os elementos expostos ser usada em conjunto com videoconferência, para apoio às reuni-
anteriormente. Muitas delas estão disponíveis para uso na Web ou ões virtuais, no caso de equipes geograficamente distribuídas. A
para customização ou integração e se encaixam nas características dificuldade do uso da ferramenta se dá pela necessidade de habi-
mencionadas, sendo até mesmo passíveis de integração, visando lidades para desenho, quando esta não oferece apoio à construção
o suporte completo a fluxos de interação entre os stakeholders. Na de telas e montagem de cenários de uso (storyboarding);
Tabela 2, algumas delas são apresentadas dentro da classificação • RSS (Really Simple Syndication): tecnologia que faz uso de
do modelo 3C. arquivos XML (RSS feeds) gerados por sistemas Web para
informar programas leitores (RSS readers) das alterações nas
Comunicação Coordenação Cooperação
páginas, notificando os usuários de atualizações de conteúdo.
Facilita o acompanhamento de alterações de conteúdos de
E-mail Agenda Gerenciador de documentos
interesse do usuário, que pode escolher ou não acompanhar
a evolução das páginas Web.
Lista de discussão Relatório de atividades Quadro branco
• Videoconferência: para apoio à discussão, bem como seu
registro, em tempo real. Útil para apoio a reuniões;
Fórum Acompanhamento de participação Ferramenta de busca
• Wiki: ferramenta para a construção de conteúdo coletivo, em
que qualquer usuário pode inserir ou editar o conteúdo. É útil,
Mural Questionários Glossário no contexto de aquisição, para a manutenção de informações
Brainstorming Tarefas Links comuns a diversos projetos de aquisição. Poderia ser usado
Chat Grupos de trabalho Jornal cooperativo também para a publicação do processo de aquisição;
Messenger Gerenciamento de recursos Classificador • Workflow, para acompanhamento do fluxo de tarefas e de
resolução de problemas.
Blog Workflow Wiki
Videoconferência Gerenciador de contatos Cenários de uso em que seriam empregadas tais ferramentas
podem ser ilustrados da seguinte forma:
Revisão em pares
• Uma equipe integrando o departamento jurídico e técnico
FAQs discutem através de um fórum, questões legais sobre contratos
Anotações de software, e, em seguida, documentando o conhecimento
RSS produzido em um wiki ou em um repositório de documentos
Tabela 2. Ferramentas de colaboração central, em uma tarefa de preparação do contrato;

34 Engenharia de Software Magazine - Colaboração em Processos de Aquisição de Software


processo

• Analistas de requisitos, entre outros envolvidos, discutindo antecedentes do projeto de aquisição). Ao final, um documento
sobre os requisitos com o apoio de protótipos em um quadro deve ser gerado e anexado.
branco, os quais poderiam passar por um fluxo de aprovação
(integração com um mecanismo de workflow), com possível Tarefa: Definir os requisitos
documentação do conhecimento de negócio obtido, no wiki; Ferramenta: Workflow
• O acompanhamento do cumprimento financeiro, fiscal e físi- • Apoio: Criação de uma solicitação “Definir os requisitos”
co do contrato é verificado a cada nova release, tendo um fluxo para acompanhamento da tarefa. Registros de evolução gera-
de aprovação definido na ferramenta de workflow integrada dos automaticamente a partir de atualizações em colaborações
à plataforma colaborativa. relacionadas a esta tarefa
• Apoio: Criação de uma solicitação “Pesquisa de Mercado”
A correlação entre processos de aquisição e para obter informações que substanciem os requisitos. Veri-
ferramentas colaborativas ficar possíveis fornecedores, outras empresas, e informações
Nesta seção vamos exemplificar mais detalhadamente como da própria organização.
o processo de aquisição pode ser associado às ferramentas cola-
borativas. O relacionamento se dá através do mapeamento entre Ferramenta: Blog
as tarefas do Guia de Aquisição do MPS.BR e as referidas ferra- • Apoio: Divulgar chamada de participantes para definição de
mentas. Este mapeamento, além de informar as partes associadas, estrutura dos requisitos;
também define como tal relacionamento ocorre, definindo como • Apoio: Divulgar chamada de participantes para definição
será o apoio da ferramenta específica sobre determinada tarefa. dos requisitos;
Para fins de síntese, consideraremos apenas as tarefas da • Apoio: Divulgar execução de pesquisa de mercado;
fase de Preparação da Aquisição, considerada estratégica para • Apoio: Divulgar chamada de participantes para definição
o processo como um todo. Resumiremos também o conjunto das restrições do projeto.
de ferramentas colaborativas às mais comumente encontradas.
Sendo assim temos: Ferramenta: Fórum
• Apoio: Discutir: Qual a estrutura de requisitos necessária?
Tarefa: Estabelecer a necessidade Buscar consenso sobre quais os tipos/categorias de requisitos
Ferramenta: Workflow esperados, presença ou não de Priorização, Restrições, Graus
• Apoio: Criação de uma solicitação “Estabelecer a necessida- de Aceitação, Restrições Legais etc...
de” para acompanhamento da tarefa. Registros de evolução • Apoio: Discutir: Quais são os requisitos desta aquisição? Definir
gerados automaticamente a partir de atualizações em colabo- quais requisitos atendem as necessidades desta aquisição. Forte-
rações relacionadas a esta tarefa. mente recomendado que sejam descritos em estrutura definida
tendo em mente como eles deverão futuramente ser aceitos.
Ferramenta: Blog • Apoio: Discussão sobre técnicas de requisitos documentadas
• Apoio: Divulgar chamada de participantes para os Fóruns e no wiki.
Enquetes desta tarefa.
Ferramenta: Enquetes
Ferramenta: Fórum • Apoio: As informações colhidas são suficientes para definir os
• Apoio: Discutir: Qual é o objetivo da aquisição? Quais são requisitos? Sim, A maior parte, A metade, A menor parte, Não
nossas necessidades e quais serão atendidas para o alcance do • Apoio: Os requisitos estão estruturados apropriadamente?
objetivo? Buscar consenso sobre as necessidades estratégicas Sim, A maior parte, A metade, Alguns apenas, Não
envolvidas na aquisição e qual o efetivo escopo das necessi- • Apoio: Os requisitos contemplam....das necessidades.: a)a
dades a serem contempladas pela aquisição. totalidade; b)parte definida; c)parte desconhecida;
• Apoio: Precisamos rever as necessidades e alterá-las?
Ferramenta: Enquetes Sim, Não
• Apoio: As necessidades estão levantadas apropriadamente? • Apoio: Sabemos como medir os requisitos para aceitá-los?
Sim, Não, Apenas parte relevante delas. Sim, A maior parte, A metade, Alguns apenas, Não
• Apoio: A aquisição atenderá.....das necessidades.: a)a totali- • Apoio: O projeto de aquisição deve: a) Seguir em frente c)
dade; b)parte definida; c)parte desconhecida; Aprofundar esta atividade c) Ser cancelado
• Apoio: O projeto de aquisição deve: a) Seguir em frente c) • Apoio: As técnicas de requisitos utilizadas foram adequadas?
Aprofundar esta atividade c) Ser cancelado Sim, Para a maior parte dos requisitos, Para a menor parte dos
requisitos, Não
Ferramenta: Wiki
• Apoio: Construção colaborativa da “análise da necessidade da Ferramenta: Wiki
aquisição”, pode ter como anexo documentos sobre a estratégia • Apoio: Construção colaborativa da “Especificação de requisi-
organizacional relacionada às necessidades (motivadores/ tos”, pode ter como anexo pesquisas de mercado, informações

Edição 21 - Engenharia de Software Magazine 35


de fornecedores, práticas de outras organizações. Deve estar Ferramenta: Blog
clara a estrutura dos requisitos. Relacionar com as necessi- • Apoio: Divulgar chamada para o desenvolvimento da estra-
dades da aquisição e os critérios de aceitação. Ao final, um tégia de aquisição.
documento deve ser gerado e anexado.
• Apoio: Identificar e relacionar a legislação, jurisprudência e Ferramenta: Fórum
normas pertinentes. • Apoio: Discussão sobre os termos contratuais, financeiros
• Apoio: Catalogar lições aprendidas na tarefa que podem ser e técnicos; Apoio: Discussão sobre os critérios de aceitação
úteis em outros momentos da aquisição. do produto, frente aos requisitos. Estruturar discussões por
• Apoio: Documentação e publicação das técnicas associadas requisitos ou grupo de requisitos relacionados;
às atividades de requisitos. • Apoio: Discussão para definição da forma de acompanha-
mento: pessoas, lista de produtos gerados, controle do projeto
Tarefa: Revisar requisitos de aquisição, suficiência dos testes realizados, normas e mo-
Ferramenta: Workflow delos a seguir e riscos identificados. Distribuição de tarefas
• Apoio: Criação de uma solicitação “Revisar os requisitos”. entre as equipes.
Registros de evolução gerados automaticamente a partir de
atualizações em colaborações relacionadas a esta tarefa. Ferramenta: Enquetes
• Apoio: Os requisitos estão associados a critérios de aceitação
Ferramenta: Blog que os avaliem?
• Apoio: Divulgar chamada para a revisão de requisitos. • Apoio: Os requisitos e as necessidades para definição do
Definirá critérios de revisão, por exemplo: para verificar plano de aquisição estão associados a termos de contrato que
ambiguidade, estabelecer uma matriz para preenchimento os formalizem?
das comparações dos requisitos entre si; estabelecer que cada
requisito deverá ter uma avaliação de custo/benefício; etc Ferramenta: Wiki
• Apoio: Construção colaborativa do “Plano de aquisição”, do
Ferramenta: Fórum “Plano de testes de aceitação”, da “Requisição de propostas”
• Apoio: Discutir: Quais requisitos são críticos ou que devem e da “Minuta do contrato”
ser priorizados? Buscar consenso quanto ao que é funda-
mental ao software após uma análise individual. Tarefa: Definir os critérios de seleção de fornecedores
• Apoio: Discutir: Como solucionar as incompatibilidades Ferramenta: Workflow
entre os requisitos? Buscar soluções quanto a requisitos • Apoio: Criação de uma solicitação “Definir critérios de sele-
inconsistentes, se apresentarem alguma ameaça para o ção” para acompanhamento da tarefa. Registros de evolução
projeto. gerados automaticamente a partir de atualizações em colabo-
• Apoio: Discutir: Qual é o custo/benefício de cada requisito? rações relacionadas a esta tarefa
Estes estão compatíveis com o projeto?
Ferramenta: Blog
Ferramenta: Enquetes • Apoio: Divulgar chamada para a definição dos critérios de
• Apoio: A lista de requisitos proposta está completa? Sim, aceitação.
A maior parte, A metade, A menor parte, Não
• Apoio: A lista de requisitos proposta está priorizada e com Ferramenta: Fórum
custo/benefício definido? Sim, A maior parte, A metade, A • Apoio: Discussão sobre os critérios de seleção dos fornece-
menor parte, Não dores. Poderá contemplar os seguintes fatores: localização ge-
ográfica do fornecedor; registro de desempenho em trabalhos
Ferramenta: Wiki similares; equipe e infra-estrutura disponíveis para o desenvol-
• Apoio: Registro e armazenamento da revisão da “Especi- vimento do produto desejado; tempo de mercado; experiência
ficação de requisitos”. no domínio do problema; nível de qualidade de seus processos
• Apoio: Documentação e publicação de técnicas de revisão utilizados; e certificações exigidas.
de requisitos.
Ferramenta: Enquetes
Tarefa: Desenvolver uma estratégia de aquisição • Apoio: A lista de critérios proposta está completa incluindo a
Ferramenta: Workflow forma de análise e priorização? Sim, A maior parte, A metade,
• Apoio: Definir e implantar o fluxo de contratação A menor parte, Não
• Apoio: Criação de uma solicitação “Adequar modelo
de contrato” visando detalhar a abordagem a respeito de Ferramenta: Wiki
prazos, custo, escopo, multa, direito de distribuição uso e • Apoio: Construção colaborativa dos “Critérios de seleção e
propriedade. análise de fornecedores”

36 Engenharia de Software Magazine - Colaboração em Processos de Aquisição de Software


processo

Alinhando soluções o progresso técnico em relação ao estipulado em contrato. Para


Para atender as questões, interações e integrações levantadas o acompanhamento de problemas, sistemas já disponíveis no
até então, uma solução deve levar em conta requisitos que mercado poderiam ser integrados onde fluxos de tarefas são
tenham como objetivos finais a promoção da integração das adequados para rastrear os problemas identificados. Da mesma
equipes e pessoas envolvidas nos projetos de aquisição, bem forma, o sistema coletaria dados para a produção de relatórios e
como a promoção do reuso do conhecimento adquirido nos acompanhamento do progresso técnico pelo cliente.
projetos antigos em projetos novos de aquisição. Dentre estes É importante observar que essa plataforma central, pela qual
requisitos citamos: toda a equipe de projeto interagiria, precisa ser integrada a
• Integração de equipes e pessoas ferramentas de apoio à elicitação de requisitos, de construção
- Apoio à seqüência de tarefas de aquisição; e de acompanhamento de solicitações, para o registro dos
- Suporte e acompanhamento de discussões; requisitos contratados e a geração automática dos relatórios
- Avaliação de resultados, busca de consenso e alinhamento de acompanhamento frente a esses requisitos.
de percepções em discussões; Essas são possíveis linhas de solução para os desafios colabo-
- Integração das diversas equipes em um mesmo ambiente rativos apresentados ao longo do processo de aquisição de sof-
de trabalho. tware. Muitas outras integrações entre ferramentas e soluções
• Reuso de conhecimento podem ser propostas. Entretanto, o importante a ser observado
- Documentação do conhecimento e lições aprendidas, obtidos é que, seja qual for a estratégia de solução, as tecnologias em-
em cada projeto de aquisição; pregadas devem levar em conta os diversos atores existentes
- Manutenção de base de documentos, com mecanismo de no processo, apoiando-os nas suas interações. De forma geral,
busca integrado; esse apoio seria direcionado ao acompanhamento do projeto
por parte do cliente e ao entendimento das necessidades do
Vale ressaltar que esses requisitos tratam de diversos proble- cliente pelo pessoal técnico, permitindo assim a realização
mas inerentes a projetos de software, e que na sua ausência efetiva da aquisição contratada entre as partes.
geram prejuízos ou mesmo cancelamentos. Eles abordam, por
exemplo, questões relacionadas a falha no entendimento das Referências Bibliográficas
necessidades, rotatividade da equipe, requisitos incompletos
ASSOCIAÇÃO PARA PROMOÇÃO DA EXCELÊNCIA DO SOFTWARE BRASILEIRO – SOFTEX. MPS.BR -
e falta de participação do cliente.
Guia de Aquisição, versão 1.2, junho 2007. Disponível em: <www.softex.br>
Outra característica fundamental relacionada a implementa-
ção deste tipo de solução é a integração de diversas aplicações ALVES, Ângela M; GUERRA, Ana. Aquisição de Produtos e Serviços de Software. Rio de Janeiro:
sobre uma arquitetura comum que permita a gestão, publica- Elsevier, 2004. 213p.
ção e acompanhamento de fluxos de trabalhos e documentos. GUTWIN, C. & GREENBERG, S. The Mechanics of Collaboration: Developing Low Cost Usability
Neste ponto, a flexibilidade para reuso e extensão são requi- Evaluation Methods for Shared Workspaces. IEEE 9th International Workshop on Enabling
sitos essenciais. Technologies: Infrastructure for Collaborative Enterprises (WET-ICE’00). Junho 2000.
Requisitos e protótipos poderiam ser anotados ao longo das
conversas com usuários e, ao final, salvos em um servidor FUKS, Hugo; RAPOSO, Alberto Barbosa; GEROSA, Marco Aurélio. Do Modelo de Colaboração 3C à
central da plataforma colaborativa, ao qual o processo (fluxo) Engenharia de Groupware. In: Simpósio Brasileiro de Sistemas Multimídia e Web – Webmídia
de desenvolvimento é integrado. Outro exemplo poderia ser a 2003, Trilha especial de Trabalho Cooperativo Assistido por Computador, 03 a 06 de Novembro,
disponibilização de um repositório central de documentos, em Salvador-BA
que toda a documentação do cliente passível de análise seria FUKS, H.; RAPOSO, A.B.; GEROSA, M.A. (2002), Engenharia de Groupware: Desenvolvimento de
armazenada, podendo ser recuperada por um mecanismo de Aplicações Colaborativas, XXI Jornada de Atualização em Informática, Anais do XXII Congresso
busca textual. Tudo isso poderia ser relacionado a (rastreado da Sociedade Brasileira de Computação, V2, Cap. 3, ISBN 85-88442-24-8, pp. 89-128. Disponível
em) requisitos previamente registrados no servidor central, em http://www.les.inf.puc-rio.br/groupware.
para fácil recuperação e apoio às tarefas de especificação de
requisitos, posteriormente. Feedback
Dê seu feedback sobre esta edição! eu
Já na fase de monitoração e aceitação do fornecedor, tarefas
s

de acompanhamento do projeto ganham importância maior. A A Engenharia de Software Magazine tem que ser feita ao seu gosto.
sobre e

cada nova versão disponível para homologação, o registro das Para isso, precisamos saber o que você, leitor, acha da revista!
s

ta
edição
funcionalidades entregues e testes realizados podem servir para Dê seu voto sobre este artigo, através do link:
a geração de relatórios de acompanhamento no servidor central.
www.devmedia.com.br/esmag/feedback
Esses relatórios, disponíveis para o cliente, o permite acompanhar

Edição 21 - Engenharia de Software Magazine 37


Abordagens Tradicionais de Desenvolvimento
Esta seção traz artigos que apresentam como e quando utilizar as diferentes abordagens
tradicionais de apoio ao desenvolvimento de projetos de software

Organização Fábrica de Experiência


Obtendo vantagens competitivas nas empresas desenvolvedoras de software

De que se trata o artigo?


Fernando Hadad Zaidan Leandro Libério da Silva Neste artigo compreenderemos o modelo de pro-
fhzaidan@gmail.com leandroliberio@gmail.com
Atua no ramo de TI há mais de 25 anos. Douto- É mestrando em Educação Tecnológica pelo cesso de desenvolvimento de software denominado
rando na Ciência da Informação - UFMG. Mestre Centro Federal de Educação Tecnológica - CEFET- organização fábrica de experiência. A criação deste
em Administração pela Universidade FUMEC MG. MBA em Gestão Comercial pela Fundação modelo se deu no laboratório de Engenharia de Sof-
Bacharel em Ciência da Computação pela Uni- Getúlio Vargas - FGV. Especialista em Banco de tware da Universidade de Maryland, EUA. A caracte-
versidade FUMEC. Gestor e desenvolvedor de Dados pelo Centro Universitário de Belo Horizon-
rística principal é a presença de uma equipe destina-
Sistemas Web pelo UNI-BH. Analista de Sistemas te - UNI-BH (2002). Possui graduação em Tecno-
e Programador de Computadores pela UFMG. In- logia em Informática pelo Centro Universitário da à finalidade de externalizar o conhecimento dos
clui cargos de diretor de empresas de   desenvol- Newton Paiva (2001). Atua também como pro- desenvolvedores.
vimento de software, administrador de TI, ana- fessor e coordenador de cursos de especialização
lista/desenvolvedor de sistemas   e arquiteto de em Tecnologia da Informação do Núcleo de Pós- Para que serve?
dados. Consultor de TI e organizacional. Professor Graduação do Sistema Universitário Pitágoras.
e Coordenador da Pós-graduação da Faculdade Também leciona no UNI-BH.
Visa à obtenção de vantagens competitivas e
Pitágoras. Professor de graduação da Faculdade melhores resultados no desenvolvimento de
Ined. Palestrante. Autor de artigos e livro. software – como exemplo na estimativa de custos,

C
ompreendemos a gestão do co- qualidade e prazos – por meio da contribuição de
nhecimento como um processo experiências de projetos de software anteriores e da
George Leal Jamil contínuo onde uma organização gestão da informação e do conhecimento.
gljamil@gmail.com
orienta suas várias ações com base no co-
Possui graduação em Engenharia Elétrica pela
Universidade Federal de Minas Gerais (UFMG) nhecimento empresarial. Como tarefas Em que situação o tema é útil?
(1982), Mestrado em Ciência da Computação típicas temos a geração, valorização, re- Este modelo permite que as organizações de desen-
pela UFMG (1999) e doutorado em Ciência da gistro, compartilhamento e aplicação do volvimento retenham conhecimento dos projetos do
Informação pela UFMG (2005). Atualmente é conhecimento para planos e processos passado para melhorar as habilidades no desenvolvi-
professor adjunto da Fundação Mineira de Edu-
variados dentro da empresa. Os resulta- mento futuro, não permitindo que o conhecimento se
cação e Cultura - FUMEC/BH . Tem experiência
na área de Ciência da Computação e Gestão dos positivos da gestão do conhecimento perca ou se dissipe facilmente.
Estratégica de Empresas, com ênfase em En- são inegáveis, uma vez que torna este
genharia de Software, atuando principalmente precioso acervo – o conhecimento – num Considerar o processo de desenvolvi-
nos seguintes temas: ciência da computação, elemento decisivo para a formulação de mento de software com o apoio da gestão
engenharia de software, sistemas de informa-
vantagem competitiva pela empresa em do conhecimento, ou sob sua ótica, é
ção, informática, processo de software, gestão
estratégica e de marketing. seu cenário competitivo. extremamente oportuno. O processo

38 Engenharia de Software Magazine - Organização Fábrica de Experiência


engenharia de soft ware

de desenvolvimento de software é, segundo estudado na de uma nova realidade. As organizações devem almejar a apli-
engenharia de software, um conjunto coordenado de tarefas cabilidade do conhecimento dos funcionários no intuito de gerar
organizacionais destinado a disponibilizar software de todas novos conhecimentos. Os trabalhadores do conhecimento podem
as formas para que uma empresa o utilize segundo seus planos descobrir, criar, compilar, distribuir ou aplicar o conhecimento.
estratégicos. Atividade de intensiva comunicação e que estru- Os processos organizacionais, dentre eles o processo de desen-
tura ideias e procedimentos muitas vezes não formalmente volvimento de sistemas de informação, estão em constante
documentados, o processo de desenvolvimento de software melhoria, tornando-se uma busca constante por parte das or-
oferece uma perspectiva muito interessante se for analisado ganizações. O processo de desenvolvimento de software pode
sob as lentes da gestão do conhecimento. Neste contexto, o ser compreendido como um método de trabalho estruturado,
trabalho das “fábricas de experiência” oferece possibilidades em etapas gerenciáveis individual e coletivamente, que tem
importantes para a associação que evidenciamos. como objetivo produzir, de forma coordenada, software para
A Organização Fábrica de Experiência (OFE) é um modelo uma aplicação em geral.
desenvolvido pelo laboratório de Engenharia de Software da O modelo proposto por Victor Basili e seus colaboradores da
Universidade de Maryland. É composta de duas organizações Universidade de Maryland – USA, denominado Organização
que trabalham perfeitamente integradas. Neste modelo, existe Fábrica de Experiência, apresenta uma equipe destinada à fi-
uma equipe específica destinada à finalidade de externalizar nalidade de externalizar o conhecimento. Os principais ativos das
(ou seja, difundir ou publicar) o conhecimento gerado dos empresas de desenvolvimento de software não são as constru-
próprios desenvolvedores. O desenvolvimento de software ções, materiais ou equipamentos caros – é o capital intelectual. O
pode obter melhores resultados – como exemplo na estimati- maior problema com o capital intelectual é que ele “tem pernas”
va de custos, qualidade e prazos – por meio da contribuição e caminha para casa todos os dias, dificultando as organizações
de experiências de projetos anteriores. Com cronogramas na permanência dos mesmos. A seguir, estudamos o processo
pressionados, elevadas expectativas quanto à qualidade e de desenvolvimento de software, sua interação com a gestão do
produtividade e desafios técnicos constantes, muitos projetos conhecimento e a oportunidade das Organizações de Fábricas
de software não oferecem possibilidades de explicitar (ou seja, de Software neste poderoso contexto.
estruturar formalmente, a partir do informal) o conhecimento.
Porém, neste modelo, esta importante atividade fica por conta Processo de desenvolvimento de software
da equipe chamada fábrica de experiência. Esta equipe será Ao se abordarem o conceito de processo de software, verifica-
encarregada de analisar e sintetizar todos os tipos de experi- se que este é configurado como um conjunto de atividades,
ência, incluindo as lições aprendidas, dados de projetos e rela- tais como a análise de requisitos, planejamento de produção,
tórios que explicitam estas experiências mediante a criação de projeto, desenvolvimento dos códigos, testes, manutenção,
repositórios. Tal atividade, se considerada diante do processo aquisições ou contratações e demais providências que levem
de gestão do conhecimento, se constitui em potencial ganho à produção de um software. O processo é proposto como uma
para o produtor de software ao realizar as funções de geração, rotina que necessita de documentação que detalhe aspectos
formalização, retenção, compartilhamento e valorização. e artefatos como: especificação formal e precisa do produto
a ser desenvolvido; os passos ou fases que serão executados,
Contextualização incluindo sua ordem, gestão de risco e precedência; preparo e
As organizações de fábrica de software são empreendimentos atribuições dos agentes que atuarão na produção; os insumos
que têm expressiva demanda por informações para a execução que serão utilizados e os resultados que se espera alcançar.
de seus processos. O uso adequado da gestão do conhecimento Como casos típicos de especificações para processo de sof-
e da informação pode ser revertido em vantagens competitivas tware, citamos os modelos Personal Software Process (PSP) e
para este tipo de organização. Team Software Process (TSP), ambos de autoria do Software
Compreende-se a engenharia de software como uma disci- Engineering Institute (www.sei.cmu.edu).
plina que visa o desenvolvimento de software de computador,
integrando processo, métodos e ferramentas. Existem modelos
de processo para que cada produtor implemente a melhor Nota do DevMan
solução em termos de um processo de produção real, eficaz e
efetivo, porém todos definem um conjunto de atividades, uma Externalizar o conhecimento: Nonaka e Takeuchi explicam no seu livro “criação
coleção de tarefas que são conduzidas para realizar cada ati- de conhecimento na empresa: como as empresas japonesas geram a dinâmica da
vidade, produtos de trabalho produzidos como conseqüência inovação”, que a criação do conhecimento organizacional é uma interação contínua e
das tarefas a serem exigidos para o aceite ou complementação dinâmica entre o conhecimento tácito e o conhecimento explícito.Tal interação é mol-
da tarefa, bem como um conjunto de atividades padrões que dada pelas mudanças entre diferentes modos de conversão, que são a socialização, a
se espalham por todo o processo. externalização, a internalização e a combinação. Dentre os quatro modelos de conver-
Neste contexto, o trabalhador do conhecimento, notadamente são do conhecimento, a externalização é a chave para a criação do conhecimento, pois
presente nas empresas de desenvolvimento de software, valoriza elabora conceitos novos e explícitos a partir do conhecimento tácito.
o conhecimentos e sua aplicação pelas organizações como fator

Edição 21 - Engenharia de Software Magazine 39


Há uma imensa diversidade de modelos para processos de aprimoramento na oferta de produtos e serviços que sejam
software, não se considerando a existência de um processo diferenciados aos olhos dos consumidores. Destaca-se aqui
ideal para todos os produtores. Numa concepção atual da En- também a diferenciação, e consequente vantagem, nas formas
genharia de Software, disciplina que prioriza em seu estudo de oferta, como bons serviços de comércio eletrônico.
a criação, implantação e manutenção do processo de desen- Analisando o contexto do processo de desenvolvimento de
volvimento de software, aplicam-se tais modelos para que o software, da gestão do conhecimento e a construção da vanta-
Engenheiro, conhecendo as demandas do produtor, adapte gem competitiva, pode-se afirmar que, no desenvolvimento de
estas técnicas para criar o modelo ideal a ser ali utilizado, de software, inúmeros documentos são elaborados. Dessa forma,
acordo com as especificidades de cada produtor. o conhecimento produzido deve ser retido e disponibilizado
Diante de tal fato, pode-se afirmar que as organizações desen- para o time de desenvolvimento, possibilitando o reuso em
volveram abordagens diferentes para o processo de software. projetos futuros. Para tanto, o conhecimento individual neces-
O desenvolvimento de software sofre mudanças rápidas. Este sita ser explicitamente capturado, oferecendo a oportunidade
tipo de negócio se utiliza do conhecimento intensivo e envolve para o aprendizado de outros.
muitas pessoas trabalhando em diferentes fases ou atividades. A busca por posições estratégicas que combinem ou superem
São diversos os conhecimentos encontrados nas empresas as existentes nas organizações é um grande desafio que as
desenvolvedoras, porém, existem problemas para identificar empresas enfrentam, e norteará a direção futura delas, tanto
o conteúdo, localização e o uso deste conhecimento. O uso para o sucesso, quanto para o fracasso.
apurado deste conhecimento é uma motivação básica para A empresa é um conjunto de recursos cuja utilização é orga-
conduzir a gestão do conhecimento nas empresas desenvol- nizada por um quadro de referência administrativo, tornando
vedoras, merecendo uma análise profunda. os produtos finais da organização representantes das possibi-
No desenvolvimento de software, cada pessoa envolvida lidades pelas quais se pode utilizar seu conjunto de recursos
toma decisões técnicas ou administrativas, muitas delas para desenvolver suas potencialidades básicas.
pontuais ou eventuais, diante de situações inéditas. Membros Definimos recursos como todos os ativos, processos organi-
do time de desenvolvimento tomam decisões baseadas no zacionais, atributos, informação, conhecimento, etc., controla-
conhecimento pessoal, experiências ou conhecimento obtido dos pelas organizações, que as tornam capazes de conceber e
usando contatos informais. Isso é possível em empresas me- implementar estratégias que melhorem sua eficiência e eficácia.
nores, com um potencial caótico em empresas maiores, con- As organizações não podem ser consideradas idênticas, bem
duzindo a conflitos e imprecisões nos trabalhos de produção como os recursos reais são heterogêneos (originais) e imóveis
do software. Porém, em empresas que lidam com um grande (não são adquiríveis). É aqui que o software, como afirmamos
número de informações, este processo torna-se ineficiente. antes, pode se constituir num diferenciador potencial, produ-
Grandes organizações não podem confiar na participação zindo vantagem competitiva.
informal do conhecimento pessoal dos funcionários, bem
como em situações temporárias em que estes funcionários Tipos de conhecimento e a aplicação para produção de
eventualmente atuem, refletindo-se tais situações em im- software
provisos, informalidades que não podem ser adotadas como Dentre os conhecimentos típicos que são encontrados
comportamentos organizacionais padronizados. Tal situação num ambiente de desenvolvimento de software, podemos
é frequentemente referenciada na literatura da Engenharia exemplificar:
de Software ao afirmar que processos não estruturados de- • Os métodos de cálculos de estimativas de prazos e custos
pendem de atuações “salvadoras” de gerentes e especialistas financeiros;
(bons programadores, analistas que dominem o contexto da • Especificações técnicas de modelagem de programas, lógicas
aplicação, gerentes que conseguem improvisar com sucesso), e relacionamentos entre módulos;
eventos que não trazem em si garantia nenhuma que poderão • Métodos de planejamento de atividades, de delegação de
ser repetidos em novos projetos. controle e tarefas durante a produção de software, como os
O conhecimento individual, sobre técnicas, processo, métodos, de testes;
infraestrutura, bases e gerenciamento, principalmente, precisa ser • Formulários e artefatos variados, como definições de layout
compartilhado. Desta forma, os processos de compartilhamento para repositórios de requisitos;
do conhecimento precisam ser perfeitamente definidos.

Vantagem Competitiva Nota do DevMan


Entende-se a vantagem competitiva como uma diferença
positiva que um determinado competidor apresenta, em um Processos organizacionais: procurando estruturar-se em processos, as or-
segmento, sobre seus concorrentes, percebido pelos clientes ganizações terão maior eficiência na obtenção de produtos e serviços e estarão
daquele segmento. O software oferece inúmeras situações de mais preparadas para mudanças, com melhor integração de seus esforços e maior
potencial construção da vantagem competitiva, indo desde capacidade de aprendizado.
a melhora ou customização do atendimento, passando pelo

40 Engenharia de Software Magazine - Organização Fábrica de Experiência


engenharia de soft ware

• Melhores práticas de processos e projetos, a serem aplicadas


sucessivamente na formulação de novos produtos.

Algumas das áreas do conhecimento e das necessidades


relativas às organizações são:
• Adquirir conhecimento sobre novas tecnologias: novas
tecnologias podem ser bastante eficientes para o desenvol-
vimento de software, mas tornam-se pesadelos para os ge-
rentes de projeto. É difícil para os desenvolvedores ficarem
aptos com as novas tecnologias e, para os gerentes, entende-
rem seus impactos e estimar os novos custos. Tecnologias
não muito familiares fazem uso intensivo do “aprender
fazendo”, que pode trazer retardo nos resultados;
• Conhecimento de acesso do domínio: o desenvolvimento
de software necessita de acesso ao conhecimento não apenas
do seu domínio e em novas tecnologias, mas também sobre o
domínio para o qual o software está sendo desenvolvido;
• Compartilhamento do conhecimento das práticas e políti-
Figura 1. Arquitetura da solução – Victor Basili – adaptada pelos autores
cas locais: os conhecimentos são passados, entre desenvolve-
dores experientes e os com pouca experiência, em encontros Com cronogramas, expectativas quanto à qualidade e pro-
informais; com isso, nem todos têm acesso. Esta prática deve dutividade e desafios técnicos, muitos projetos não podem
ser estimulada, mas a captura e compartilhamento formal dedicar recursos suficientes para explicitar o conhecimento.
do conhecimento asseguram que todos os funcionários Porém, isto fica por conta da equipe chamada fábrica de
terão acesso a ele. experiência. Esta equipe está encarregada de analisar e
sintetizar todos os tipos de experiência, incluindo as lições
As organizações devem analisar os projetos do passa- aprendidas, dados de projetos e relatórios que explicitam
do para melhorar as habilidades no desenvolvimento. estas experiências mediante a criação de repositórios.
Isto requer conhecimentos extensivos baseados nas mais A OFE agrega valor ao conhecimento, mediante a criação
diferentes experiências no desenvolvimento, bem como de modelos baseados em documentos ou em indivíduos.
insights. Padrões, melhores práticas, modelos e recomen- Externalização e internalização são integradas, de modo
dações são exemplos de resultados destas atividades do que a equipe do projeto trabalhe em harmonia com a OFE.
conhecimento. Implantar o conceito de OFE requer mudanças culturais
nas organizações, devido à criação de equipes e processos
A organização Fábrica de Experiência (OFE) distintos de trabalho. O que é mais essencial na OFE não é
O modelo desenvolvido denominado organização fábrica a experiência, mas os novos conhecimentos gerados a partir
de experiência, conforme mostrado na (Figura 1), possui da experiência. As OFE precisam empacotar a experiência,
duas organizações perfeitamente integradas. Uma equipe por meio da análise, síntese e avaliação da experiência
específica é destinada à finalidade de externalizar o conhe- bruta, e construir modelos que representam a abstração
cimento dos próprios desenvolvedores. Este processo tem dessas experiências.
como objetivo obter melhores resultados no desenvolvimen- A aprendizagem organizacional é o know-how incorpo-
to de software – custos, qualidade e prazos – por meio da rado, resultante da capacidade de absorção, bem como da
alavancagem de experiências de projetos anteriores. receptividade da empresa a uma nova tecnologia. Cada
organização tem sua capacidade e habilidade de aprender a
partir de outras organizações. A capacidade em absorver o
Nota do DevMan conhecimento vem da habilidade em reconhecer os valores
novos, externos, e assimilar e aplicar em fins comerciais.
Estratégia: Não existe uma definição única e universalmente aceita para estraté- Quanto mais a organização conhece sua tecnologia, mais
gia. Inicialmente deu-se ênfase especial ao uso militar do termo estratégia, originada fácil torna-se o aprendizado.
das mais antigas literaturas do mundo. Strategos referia-se ao papel de um general
no comando de um exército, passando posteriormente a ser a arte de habilidades A Gestão do Conhecimento na Engenharia de
psicológicas e comportamentais com as quais exercia esse seu papel. Uma estratégia Software
bem formulada ajuda a ordenar e alocar os recursos de uma organização para uma As organizações podem aplicar a gestão do conhecimento
postura singular e viável. Diversos autores relacionam o conceito de estratégia em para fornecer soluções nos seus negócios. Para evitar erros
uma série de pontos de vista, como plano, padrão, posição e perspectiva. e retrabalho, para diminuir tempo e custos de desenvolvi-
mento e aumentar a qualidade, as empresas desenvolvedoras

Edição 21 - Engenharia de Software Magazine 41


necessitam aplicar, nos futuros projetos, o conhecimento determinaram seus objetivos e estratégias antes de imple-
obtido em projetos anteriores. Infelizmente, a realidade mentar sistemas de gestão do conhecimento, não tendo
é que o time de desenvolvimento não se beneficia das ex- uma boa preparação do método ou processo da gestão do
periências anteriores e repete os mesmos erros cometidos, conhecimento. É necessário despender um tempo antes de
embora alguns desenvolvedores saibam como evitá-los. O os benefícios da gestão do conhecimento aparecerem.
ganho individual e da organização poderia ser maior se o Algumas culturas organizacionais incentivam o indivi-
conhecimento fosse compartilhado. dualismo e limitam o trabalho cooperativo. A falta de uma
As atividades da gestão do conhecimento que suportam o cultura do conhecimento tem sido citada como um obstáculo
desenvolvimento de software são: para o sucesso da gestão do conhecimento. Se a organização
• Gestão de documentos: muitos documentos, processos não incentiva a cultura de compartilhamento, o funcionário
e atividades são envolvidos na engenharia de software. se sente dono do seu conhecimento. Os funcionários não
Estes documentos são freqüentemente criados, revisados e se sentem à vontade com as suas experiências negativas e
utilizados. Existem diversas ferramentas para a gestão de lições aprendidas por falhas, temendo que as informações
documentos; fornecidas possam ser usadas contra eles.
• Gestão de competência: ou gestão de habilidades; quem
sabe o quê – uso do conhecimento não documentado; Conclusão
• Reuso de software: programadores não se cansam de imple- As organizações não devem apenas encorajar os funcio-
mentar a mesma solução; o reuso é para evitar o retrabalho; nários, mas recompensá-los por compartilhar seus conheci-
incentivo ao repositório de reuso. Somente será desenvolvido mentos, procurar por conhecimentos e usá-los. A vantagem
algo novo caso não se encontre nada para reusar; da experiência ou do conhecimento explícito é que pode ser
• Aprender com experiências necessita de um suporte à me- armazenado, organizado e disseminado para terceiros, sem
mória do produto e do projeto. As práticas da engenharia de o envolvimento de quem o originou. Para alcançar vanta-
software que ajudam a construir memórias são: controle de gem máxima do compartilhamento, as empresas deveriam
versão, gestão de modificações, documentação de padrões encorajar os funcionários a documentar e armazenar seus
e rastreabilidade de requisitos. Em todas estas práticas, a conhecimentos em um repositório. As comunidades são
retenção do conhecimento é altamente indicada. bons exemplos de compartilhamento de conhecimento. Elas
se formam de modo relativamente fácil.
Implementando a gestão do conhecimento na As organizações se esforçam para aprender e aumentar suas
Engenharia de Software expertises mediante as entradas vindas de fora da organização.
Para implementar a gestão do conhecimento na engenharia Projetos em empresas de desenvolvimento de software cujo ob-
de software, muitos desafios e obstáculos estão presentes. jetivo é construir uma base de conhecimento incluem um centro
Três questões são particularmente importantes: para estas bases, assim como o acúmulo de modelos empíricos
• Questão tecnológica: A tecnologia de software su- para serem utilizados na validação de novos projetos.
porta a gestão do conhecimento? É possível integrar A maioria do conhecimento das empresas de software não
todas as ferramentas para alcançar o nível planejado de é explícito. O tempo é curto para tornar o conhecimento
compartilhamento? explícito, e existem poucas ferramentas para transformar o
• Questão organizacional: É um erro focar somente na conhecimento tácito em explícito. Porém, os artefatos do de-
tecnologia e esquecer a metodologia. É um risco cair na senvolvimento de software se encontram em formato eletrôni-
cilada tecnológica sem um planejamento adequado para a co, possibilitando o uso de ferramentas de TI para a retenção,
implementação da gestão do conhecimento; e facilitando o compartilhamento e a disseminação.
• Assuntos individuais: Funcionários frequentemente não
têm tempo de entrar ou procurar por conhecimento, ou não
Links
desejam disponibilizar seus conhecimentos. E não querem
reusar conhecimentos dos outros. Artigo “A Reference Architecture for the Component Factory”
http://www.lib.umd.edu/drum/bitstream/1903/7521/1/A%20Reference%20Architecture.pdf
Uma análise das características da gestão do conheci- Artigo “Knowledge Management in Software Engineering”
mento revela que muitas organizações que falharam não http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=1003450

Nota do DevMan Dê seu feedback sobre esta edição! eu


Feedback
s

A Engenharia de Software Magazine tem que ser feita ao seu gosto.


sobre e

Insights: Uma visão que se manifesta de repente, como a compreensão de como Para isso, precisamos saber o que você, leitor, acha da revista!
s

ta
resolver um problema difícil. O termo foi cunhado pelo psicólogo alemão e teórico Dê seu voto sobre este artigo, através do link:
edição

linguista Karl Bühler.


www.devmedia.com.br/esmag/feedback

42 Engenharia de Software Magazine - Organização Fábrica de Experiência


Abordagens Tradicionais de Desenvolvimento
Esta seção traz artigos que apresentam como e quando utilizar as diferentes abordagens
tradicionais de apoio ao desenvolvimento de projetos de software

Customização e Integração de Ferramentas Open-Source


Uso de ferramentas integradas para melhoria de processo e aumento de produtividade

Andrea Pinto Felipe Furtado De que se trata o artigo?


andrea.pinto@cesar.org.br felipe.furtado@cesar.org.br Este artigo relata a experiência de uma Organização
É graduada em Ciência da Computação É graduado em Engenharia Mecânica pela CMMI (Capability Maturity Model Integration), nível
pela UFPE e mestra em Ciências da Com- UFPE, especialista em Tecnologias da Infor-
3, na customização e integração de ferramentas open-
putação pela UFPE na área de Engenharia mação pelo Centro de Informática da UFPE e
de Requisitos. Com 9 anos de experiência mestre em Ciência da Computação na área de source para melhoria de processo e aumento da produ-
na área de desenvolvimento de software, produtividade de software também pela UFPE. tividade das equipes de desenvolvimento de software.
atualmente é Engenheira de Qualidade de Com 13 anos na área de desenvolvimento de
software do C.E.S.A.R. Possui experiência software, atualmente é coordenador da garan- Para que serve?
na definição e implantação de processos de tia da qualidade de software e do SEPG (Sof-
A utilização de ferramentas desta natureza é útil para
garantia da qualidade aderentes ao CMMI tware Engineering Process Group), liderando
e em avaliação SCAMPI, tendo participado também a melhoria dos processos das áreas de as Organizações que possuem um ambiente de me-
da avaliação Classe A CMMI 3 do C.E.S.A.R. gestão de projetos no C.E.S.A.R. lhoria dos processos de software e tem a necessidade
Ministra aulas de Garantia da Qualidade de de adotar ferramentas de baixo custo e de forma in-
Software na faculdade Unibratec e orienta Ryan Albuquerque
ryan@cesar.org.br
tegrada. Tais ferramentas darão suporte ao processo
alunos em monografias para essa área.Tem
É graduado em Ciência da Computação pela UFC institucional com uma maior agilidade pelas equipes
interesse principalmente nas áreas de ga-
rantia de qualidade, modelos de qualidade, e mestre em Ciências da Computação pela UFPE de desenvolvimento de software.
requisitos e metodologias ágeis. na área de Inteligência Artificial. Com 10 anos
de experiência na área de desenvolvimento de Em que situação o tema é útil?
Gustavo Carvalho software, 7 deles como Engenheiro de Configu-
gustavo.carvalho@cesar.org.br Em ambientes que necessitam integrar ferramentas de
ração de Software. Atualmente é Engenheiro de
É graduado em Ciência da Computação Sistemas do C.E.S.A.R. Possui experiência na defi- apoio ao processo organizacional de forma produtiva e
pelo UNIPE e especialista em Engenharia de nição e implantação de processos de Gerência de consistente. Especificamente em processos relaciona-
Software pela FBV/Qualiti. Com 8 anos de Configuração aderentes ao CMMI e em avaliação dos com gerenciamento de mudanças, gerenciamento
experiência na área de desenvolvimento de SCAMPI, tendo participado da avaliação Classe A de testes, gerenciamento de requisitos e revisão de
software, atualmente é Engenheiro de Confi- CMMI 2 e 3 do C.E.S.A.R.
artefatos (código ou documentos).

A
guração do C.E.S.A.R, além de ministrar aulas
de Programação Orientada a Objetos, Estrutu- s organizações de desenvolvi-
ra de Dados e Teoria Geral dos Sistemas na Fa- mento de software têm buscado
culdade Joaquim Nabuco. Possui experiência diversas formas para melhoria ganhos significativos de produtividade
em desenvolvimento de software, elicitação
de seus processos com o objetivo de au- requer iniciativas integradas em diver-
de requisitos e na definição e implantação
de processos de gerência de configuração mentar a produtividade das equipes de sas áreas, por exemplo, melhoria em
aderentes ao CMMI. desenvolvimento. Uma forma de obter ferramentas, metodologia, ambiente de

Edição 21 - Engenharia de Software Magazine 43


trabalho, gerenciamento, reuso, dentre outros fatores [Bohem Em seguida, foi realizada uma pesquisa e análise de ferra-
et AL, 1982]. mentas disponíveis no mercado levando em consideração as
Por outro lado, a inclusão de ferramentas em um projeto nem necessidades anteriormente identificadas em cada um dos
sempre está associada a ganho de produtividade. Isso irá depen- processos selecionados. Como resultado desta pesquisa, um
der, dentre outros fatores, do tamanho da equipe e da maturidade processo de tomada de decisão foi realizado para identificar
do processo de desenvolvimento [Bruckhaus et AL, 1996]. quais ferramentas seriam adquiridas e adaptadas à realidade
Neste contexto, a Organização aqui apresentada estabele- da organização. Os principais requisitos estavam relacionados
ceu dois principais objetivos em seu programa de melhoria com o baixo custo necessário para aquisição e com a possi-
contínua: bilidade de customização e integração das ferramentas para
• Seleção de ferramentas free e open source que propiciem au- que elas, de fato, se adaptassem ao processo organizacional.
mento da produtividade das equipes de desenvolvimento de Portanto, foi dada preferência na seleção de ferramentas open
software de forma controlada, gerenciada e com baixo custo; source e as escolhidas foram: Mantis e Salomé.
• Customização das ferramentas selecionadas considerando o Originalmente, o Mantis foi concebido como uma ferramenta
processo definido na organização com o objetivo de aumentar para bug tracking. Porém, pela sua flexibilidade e facilidade
a maturidade do processo de desenvolvimento de software, de customização, também foi utilizada para gerenciamento de
obter ganhos na produtividade das equipes e na qualidade mudanças, gerenciamento de requisitos e revisão de artefatos.
dos produtos gerados. A Salomé, por sua vez, foi concebida como uma ferramenta de
gerenciamento de testes e foi customizada para atender ao pro-
A Organização Estudada cesso de gerenciamento de testes da organização estudada.
O C.E.S.A.R – Centro de Estudos e Sistemas Avançados do A seguir, será brevemente descrito cada uma das ferramentas
Recife – é um instituto privado de inovação que cria produtos, utilizadas.
processos, serviços e empresas usando Tecnologia da Infor-
mação e Comunicação (TIC), atuando há mais de 10 anos em Mantis Bug Tracker – Gerenciamento de Mudanças
âmbito nacional e internacional. O Mantis é uma ferramenta de gerenciamento de bugs
O C.E.S.A.R faz parte do Porto Digital, ambiente de em- baseado na web. É um dos mais populares sistemas de bug
preendedorismo, inovação e negócios de TIC do estado de tracker do mundo, sendo open-source, sob os termos da GNU
Pernambuco que reúne mais de 100 empresas no pólo do General Public License (GPL), estando livre para ser usado e
Bairro do Recife. modificado.
Desde sua inauguração, a instituição recebeu reconhecimen- O Mantis é desenvolvido em PHP, com suporte a banco de da-
tos na área de TIC, entre eles: o Prêmio Info200 de Melhor dos, incluindo o MySQL, MS SQL, PostgreSQL e DB2, podendo
empresa de serviços de software, o prêmio FINEP de mais rodar em qualquer sistema operacional que seja suportado pelo
inovadora instituição de pesquisa do Brasil, a escolha da ins- PHP. Ele foi projetado para ser facilmente modificável, perso-
tituição como exemplo de criação de negócios pelo World Eco- nalizável e atualizável. Esse foi um dos motivos que pesou na
nomic Fórum e uma menção honrosa no Stockholm Challenge. escolha da ferramenta de gerenciamento de mudanças.
Além do prêmio que a Revista Época Negócios concedeu ao As customizações no Mantis começaram a surgir a partir
C.E.S.A.R com o título de um dos Modelos de Negócios mais da necessidade de padronização na abertura das CR´s (Change
Inovadores do Brasil, em 2009. Requests) ou Requisições de Mudança. O formulário das CR’s
Em junho/2003, o C.E.S.A.R alcançou o nível 2 de maturi- possui vários campos, mas em alguns deles não era clara a for-
dade do modelo SW-CMM [Paulk et AL 1999] na vertical de ma de preenchimento. Em especial os campos descritivos (e.g.
telecomunicações, e em Novembro/2007 atingiu o nível 3 de descrição da requisição de mudança e passos para reprodução)
maturidade do modelo CMMI-DEV, versão 1.2 [SEI 2006]. poderiam ser escritos com texto livre, fazendo assim com que
Atualmente, utiliza metodologias ágeis em conjunto com o a falta de informações importantes ou falhas de interpretação
modelo de maturidade. acontecessem com certa freqüência.
Para minimizar esse tipo de situação, foi criado um modelo
Processo de Seleção das Ferramentas em XML que descrevia de forma mais estruturada as informa-
A estratégia de seleção das ferramentas iniciou com um levan- ções importantes de cada campo. Foi dada uma opção para o
tamento dos requisitos necessários levando em consideração relator da CR incluir o modelo no campo a ser editado e o mes-
as necessidades do processo e projetos da organização. Nesta mo poderia preencher as informações nos campos delimitados
primeira etapa, o grupo envolvido analisou os processos que pelas tags XML. A utilização desse modelo ajudou também na
estavam diretamente relacionados com a equipe de engenharia formatação das informações e no processo de automação de
de software e que demandavam um esforço significativo em checagens em auditorias, pois as informações estavam mais
passos que poderiam ser automatizados e/ou integrados. Como estruturadas, e não mais em texto livre.
resultado desta análise, quatro processos foram selecionados: No processo interno, as CR´s poderiam ser de diversos ti-
Gerenciamento de Requisitos, Gerenciamento de Mudanças, pos: Defeitos de Código, Defeitos de Documento, Mudanças,
Gerenciamento de Testes e Revisão de Artefatos. Tarefas, Requisições de Baseline e Requisições de Release, e,

44 Engenharia de Software Magazine - Customização e Integração de Ferramentas Open-Source


processo

para cada tipo, os campos obrigatórios relativos ao processo repositório dos projetos. Para que os membros da equipe se-
eram diferentes, o que acarretava em um enorme tempo con- guissem o processo definido de revisão formal utilizando pla-
sumido para o Engenheiro de Configuração verificar cada CR. nilhas fazia-se necessário realizar um conjunto de atividades
Neste sentido, o código fonte do Mantis foi alterado para que meramente operacionais como: recuperar o último template
a visualização e obrigatoriedade de alguns campos fossem da planilha no site do processo organizacional, renomear o
dependentes do valor de um campo novo chamado “Tipo”, arquivo de acordo com as regras de gerência de configuração
que listava os tipos de requisições possíveis no processo da para o projeto, preencher a planilha com os dados da revisão
organização. Além disso, a máquina de estados padrão tam- e incluir a planilha no repositório. Havia também uma grande
bém foi reformulada para se adaptar a esse novo contexto, dificuldade de se auditar o processo de revisão, visto que se
como ilustrado na Figura 1. fazia necessário abrir cada planilha para checagem das infor-
mações. Tudo isso tornava a execução do processo de revisão
custoso para a equipe, para o projeto e para a empresa devido
ao esforço envolvido. O processo era ainda propício a erros
em cada um dos passos descritos, visto que todos eles eram
realizados manualmente.
Inicialmente, para resolver o problema de forma mais rápida,
pensou-se numa solução para coleta de informações das pró-
prias planilhas automaticamente. Uma aplicação consultava
determinadas células das planilhas, gerava uma página web
consolidando as informações e realizava a maioria das checa-
gens de consistências. Mas, essa solução tinha a desvantagem
de se basear num modelo fixo de planilha. Toda vez que o
modelo mudava, a aplicação teria que ser adaptada.
Devido a essas dificuldades, o SEPG (Software Engineering
Process Group) propôs o uso de uma ferramenta web que
automatizasse todas essas atividades, agilizando a criação,
o preenchimento e o acesso aos dados entre os participantes
do processo de revisão formal. Foram feitas pesquisas, mas
nenhuma solução gratuita foi encontrada para suprir as ne-
cessidades da organização e, por isso, resolveu-se construir
Figura 1. Máquina de Estados do Mantis uma ferramenta.
Em uma análise prévia dos requisitos básicos e imediatos
A integração dos sistemas de controle de versão (CVS e para a ferramenta, foi identificado que o Mantis, ferramenta
Subversion) com o Mantis tem sido de enorme utilização para gerenciamento de mudanças já largamente utilizado na
por parte dos projetos. Através dela, todos os comentários organização, supriria a maioria deles: suporte de projetos,
dos commits realizados via CVS/Subversion são registrados controle de acesso de usuários, máquina de estados e campos
automaticamente na respectiva CR que está sendo resolvida. customizáveis. Assim, decidiu-se utilizar o Mantis como base
Com a integração, consegue-se garantir um rastreamento bi-
direcional entre CR’s e artefatos:
• Identificação a partir do Mantis de todos os artefatos (seus Nota do DevMan
branches, revisões e responsáveis) alterados para resolver cada
requisição de mudança; CMMI (Capability Maturity Model Integration): é um framework que des-
• Identificação a partir dos comentários dos commits de todas creve princípios e práticas relacionadas ao processo de desenvolvimento de produ-
as CR’s que ocasionaram as mudanças. tos e serviços tecnológicos. O modelo visa ajudar organizações envolvidas com o
desenvolvimento de software a melhorar a capacidade de seus processos por meio
Ainda foram implementadas integrações do Mantis com os de um caminho evolucionário, com resultados mais previsíveis e com possibilidade
outros sistemas descritos neste documento: Rev.I.S.E e ITReq. A de melhoria contínua. [SEI, 2006].
partir da tela de visualização de cada CR é possível acessar suas
respectivas revisões e requisitos impactados pela mudança. CR (Change Request): Solicitações de Mudança em um artefato.

Rev.I.S.E – Revision Infrastructure for Software CVS (Concurrent Version System) e SVN (SubVersion): são sistemas de con-
Engineering trole de versão que permitem que se trabalhe com diversas versões de arquivos
A ferramenta Rev.I.S.E foi idealizada, principalmente, para organizados em um diretório e localizados local ou remotamente, mantendo-se
substituir as planilhas de revisão contendo as informações suas versões antigas e os logs de quem e quando manipulou os arquivos.
das revisões formais realizadas e que eram armazenadas no

Edição 21 - Engenharia de Software Magazine 45


para todo o desenvolvimento, batizando a nova ferramenta • Verificação de métricas de tempo planejado versus o
de Rev.I.S.E. realizado.
Durante o desenvolvimento houve a preocupação de disponi-
bilizar um ambiente amigável e fácil de usar para inclusão das Papel Responsabilidades
não-conformidades e os dados das revisões. Assim, decidiu-se Autor Criar e/ou atualizar o artefato a ser revisado;
usar algum framework com componentes Ajax/DHTML para Planejar a revisão;
que os dados fossem postados facilmente com edições inline Definir os papéis e responsabilidades da equipe de revisão;
de tabelas. Neste intuito, escolheu-se o framework Ext.JS. Agendar a reunião de revisão;
A máquina de estados do Rev.I.S.E também foi reformulada Realizar o retrabalho após a revisão, garantindo que todos os pontos
de acordo com a Figura 2. levantados tenham sido corretamente analisados e resolvidos.
Moderador Determinar quando a revisão estará completa e indicar, caso necessário,
uma nova revisão;
Analisar se o retrabalho foi realizado conforme descrito no Rev.I.S.E;
Realizar o fechamento da revisão.
Redator Cadastrar os findings na ferramenta.
Revisor Revisar os artefatos.
Leitor Apresentar o artefato aos participantes ao longo da reunião. Obs: o papel do
Leitor só existe para técnicas que realizam reunião de revisão.
Tabela 1. Papéis e Responsabilidades

ITReq - Infrastructure to Track Requirements


A ferramenta para Desenvolvimento e Gerenciamento de
Requisitos (ITReq) trata-se de uma customização da ferramen-
ta de Gerência de Mudanças, o Mantis. O layout de algumas
funcionalidades é idêntico à ferramenta original, como o me-
canismo de busca e a visão inicial dos requisitos, organizada
pelo estado no qual o requisito se encontra.
O requisito é criado no ITReq da mesma forma que uma CR
é registrada no Mantis. Para isto, os campos relacionados a
um requisito tiveram seus nomes reeditados para se adequar
aos termos normalmente utilizados no gerenciamento de
requisitos. A máquina de estados também foi adaptada de
acordo com a Figura 3.
Cada requisito cadastrado no ITReq é identificado uni-
camente e tratado de forma independente dos demais
requisitos, com suas prioridades e estados. Além do identi-
Figura 2. Máquina de estados do Rev.I.S.E ficador único, cada requisito possui Nome, Descrição, Tipo
(requisito funcional, requisito não funcional, caso de uso
Dependendo do papel na revisão do usuário autenticado no ou restrição) e Prioridade. O campo Descrição é livre, sendo
sistema, e do estado da revisão, alguns campos são habilitados possível ser utilizado para descrever um requisito funcional
ou desabilitados, conforme as responsabilidades descritas na
Tabela 1.
Algumas automações foram feitas na ferramenta para que Nota do DevMan
os esforços com as checagens em auditorias pudessem ser
diminuídos, entre elas: Ext.JS: é um framework javascript com uma extensão rica em funcionalidades e
• Checagem das transições de estados específicas por papel; componentes de interface gráfica com o usuário.
• Verificação da consistência dos papéis por tipo de revisão;
• Verificação e validação de campos obrigatórios; Findings: São os erros, problemas, lapsos, oportunidades de melhoria ou pontos
• Envio automático do convite por e-mail aos envolvidos na de investigação identificados durante o processo de revisão de artefatos.
revisão;
• Integração com a ferramenta de controle de mudanças GNU GPL (General Public License): é a designação da licença para software
(Mantis); livre idealizada por Richard Stallman no final da década de 1980, no âmbito do pro-
• Seleção automática do checklist de auditorias definido no jeto GNU da Free Software Foundation (FSF). A GPL é a licença com maior utilização
processo da organização; por parte de projetos de software livre.
• Acompanhamento do estado da revisão por e-mail;

46 Engenharia de Software Magazine - Customização e Integração de Ferramentas Open-Source


processo

de forma textual, ou um caso de uso com pré-condição,


atores, passos e pós-condições. Nota do DevMan
PHP (PHP: Hypertext Preprocessor): é uma linguagem de programação in-
terpretada, livre e muito utilizada para gerar conteúdo dinâmico na Web.

SEPG (Software Engineering Process Group): grupo estabelecido e desig-


nado como responsável pela definição, manutenção e melhoria do processo de
engenharia de software [SEI 2006].

executado. Para cada ciclo, o usuário seleciona as suítes de


testes (conjunto de casos de testes) que serão executados e
reporta o resultado da execução (Figura 5).

Figura 3. Máquina de Estados do ITReq

A máquina de estados do ITReq (Figura 3) está diretamente Figura 4. Ferramenta ITReq: armazenamento das versões, histórico de
versões e os requisitos relacionados
relacionada ao processo de revisão e aprovação definido na
organização. O tratamento individual de requisitos através da
máquina de estados trouxe também um ganho não planejado
para os projetos: maior agilidade no processo de revisão de
requisitos, visto que os requisitos podem ser revisados indi-
vidualmente, o que não poderia ser feito facilmente com o uso
de documentos.
Outra funcionalidade essencial é o controle das alterações
de documentos com o uso de um histórico de revisões e com
o armazenamento, tornando possível a comparação com
outras versões de documentos (Figura 4).
A ferramenta gera o documento de requisitos em formato
HTML seguindo o template definido no processo organiza-
cional com seções para descrição do projeto, aprovadores,
glossário, histórico de revisões, referências e requisitos
agrupados em seções definidas pelo usuário.

Salomé – Gerenciamento de Testes


Diferentemente das ferramentas descritas até agora, Sa-
lomé TMF (Test Management Framework) é uma ferramenta
independente, isto é, não foi construída a partir do Mantis.
É uma ferramenta open-source que foi melhorada e adaptada
ao processo de testes organizacional, bem como, integrada
à ferramenta ITReq anteriormente descrita.
Nela pode-se especificar os casos de testes para cada requi-
sito cadastrado no ITReq, bem como registrar os resultados
da execução dos casos de testes para cada ciclo de testes Figura 5. Ferramenta Salomé

Edição 21 - Engenharia de Software Magazine 47


Salomé-TMF é também compatível com JUnit, Abbot e Be- • Implementação e testes dos requisitos de cada uma das
anshell, sendo possível a definição de testes automáticos. ferramentas;
• Planejamento de quais projetos em execução na organização
Integração entre as Ferramentas iriam adotar e avaliar as ferramentas;
Todas as ferramentas descritas possuem alguma integração • Execução dos projetos piloto com o apoio do SEPG (Software
entre si. ITReq está integrada com Salomé, sendo possível Engineering Process Group) e Engenheiros de Qualidade e
acessar os casos de testes de cada requisito a partir dessa Configuração alocados ao projeto;
ferramenta, como mostra a Figura 6. • Coleta de resultados e de sugestão de melhorias nas ferra-
O Mantis possui integrações com o Rev.I.S.E, ITReq e Salo- mentas após finalização do período do piloto.
mé. A partir de uma CR de melhoria criada no Mantis, por
exemplo, pode-se acessar as revisões realizadas no projeto Após a execução do projeto piloto, o primeiro passo foi
para aquela melhoria (Figura 7) e vice-versa (Figura 8) e os o envolvimento do SEPG na seleção e priorização das me-
requisitos impactados por ela (Figura 9). lhorias que haviam sido propostas. Este grupo, formado
Desta forma, ao criar uma baseline no Mantis com suas por especialistas em cada uma das áreas impactadas pelas
respectivas CR’s, é possível visualizar todos os requisitos ferramentas, analisou e priorizou as melhorias solicitadas
impactados e os respectivos casos de testes, facilitando a para dar início à implementação das mudanças.
identificação dos casos de testes que devem ser executados O grupo também precisou realizar um planejamento do
devido à melhoria implementada no projeto. uso institucionalizado das ferramentas, isto é, como colocar
as ferramentas em uso em novos projetos. Essa ação incluía
Projeto Piloto e Institucionalização das também as alterações a serem realizadas no processo orga-
Ferramentas nizacional, como elaboração de guias e treinamentos para
Após a conclusão do processo de seleção das ferramentas, uso das ferramentas customizadas e integradas.
foi dado início ao planejamento do projeto piloto para a Além das mudanças no processo, o SEPG passou a atuar
customização e testes das ferramentas selecionadas. As como facilitador na utilização das ferramentas pelos de-
seguintes fases podem ser destacadas: mais projetos da organização.
• Planejamento e alocação dos recursos necessários para
implementação das melhorias e customizações com o su- Conclusões e Resultados Obtidos
porte organizacional; A produtividade dos projetos aumentou notavelmente
com as customizações e integrações de todas as ferramentas
supracitadas. É possível ter uma maior rastreabilidade entre
as mudanças, um melhor controle do processo, além de agi-
lidade na hora da criação e manutenção das requisições de
mudança, requisitos do produto e revisões de artefatos.
Para se ter uma idéia da grande aceitação dessas ferra-
mentas na organização, faz-se necessário destacar alguns
números:
• Mantis: em uso por mais de 40 projetos;
• ITReq: em uso por mais de 20 projetos;
• Rev.I.S.E: em uso por 19 projetos, onde já foram realizados
mais de 2 mil revisões em código e documentos;
• Salomé: em uso por quatro projetos.

Figura 6. Ferramenta ITReq integrada com a Salomé


Antes de utilizar as ferramentas, os membros das equi-
pes passam por um treinamento organizacional para que
consigam utilizar melhor os recursos oferecidos por elas,
aumentando ainda mais sua produtividade.
As ferramentas estão em constante melhoria. As soli-
citações de melhoria podem ser realizadas por qualquer
pessoa dentro da organização através do próprio Mantis,
onde há um projeto específico para cada ferramenta para
reportagem de sugestões de melhoria, bem como de defeitos
encontrados.
Em relação aos ganhos deste processo de tomada de deci-
são e do uso das ferramentas, pode-se destacar os seguintes
Figura 7. Integração do Mantis com o Rev.I.S.E aspectos:

48 Engenharia de Software Magazine - Customização e Integração de Ferramentas Open-Source


processo

Figura 8. Integração do Rev.I.S.E com o Mantis

Figura 9. Integração com o ITReq a partir do Mantis

• Quanto ao impacto, houve uma disseminação do uso de Referências


ferramentas open-source para melhoria de produtividade das Mantis (2009) “Ferramenta Mantis Bug Tracker”,http://www.mantisbt.org/
equipes de desenvolvimento;
• Quanto ao investimento, nota-se o baixo custo do projeto Salomé (2009) “Ferramenta para Gerenciamento de Testes”,https://wiki.ow2.org/salome-tmf/
que se restringiu ao esforço de alteração e manutenção nas
Boehm,B et AL (1982).“The TRW Software Productivity System”.International Conference on Software
ferramentas, visto que se tratam de ferramentas open-source; Engineering. IEEE Computer Society Press, Los Alamitos, CA. p. 148-156.
• Quanto à inovação, apesar do uso de ferramentas open-source
em projetos de desenvolvimento de software já ser algo conhe- Bruckhaus, T. et AL (1996).“The Impact of Tools on Software Productivity”. IEEE Software v. 13, nº 5.
cido pela comunidade, foi possível, a partir de uma ferramenta p. 29-38.
já institucionalizada na organização, realizar customizações SEI (2006). “CMMI for Development, version 1.2, staged representation”. http://www.sei.cmu.edu/
para atender outros processos relacionados, integrando-os e pub/documents/06.reports/pdf/06tr008.pdf, CMU/SEI-2006-TR-008
automatizando seus passos.
Paulk et al (1999) “The Capability Maturity Model: Guidelines for Improving the Software Process”,
Addison-Wesley.
Dê seu feedback sobre esta edição! Feedback
eu
s

A Engenharia de Software Magazine tem que ser feita ao seu gosto.


sobre e

Para isso, precisamos saber o que você, leitor, acha da revista!


s

ta
edição
Dê seu voto sobre este artigo, através do link:
www.devmedia.com.br/esmag/feedback

Edição 21 - Engenharia de Software Magazine 49


Abordagens Tradicionais de Desenvolvimento
Esta seção traz artigos que apresentam como e quando utilizar as diferentes abordagens
tradicionais de apoio ao desenvolvimento de projetos de software

Métricas de Software
Como utilizá-las no gerenciamento de projetos de software

De que se trata o artigo?


O artigo trata da utilização de métricas de software
no gerenciamento de projetos, sendo fortes aliadas
na estimativa, acompanhamento e apoio em toma-
Thamine Chaves de Abreu Marco Antônio Pereira Araújo da de decisões durante a construção de produtos de
thamine.abreu@gmail.com maraujo@acessa.com software, visando uma melhor qualidade de todo
Atualmente cursa especialização em De- Doutor e Mestre em Engenharia de Sistemas este processo.
senvolvimento de Aplicações para Web no e Computação pela COPPE/UFRJ, Especialista
Centro de Ensino Superior de Juiz de Fora em Métodos Estatísticos Computacionais e
(CES/JF), Bacharel em Sistemas de Infor- Bacharel em Matemática com Habilitação em
Para que serve?
mação pela Universidade Severino Sombra Informática pela UFJF, Professor dos cursos de Métricas de software servem para apresentar medi-
(USS), Desenvolvedor de Sistemas Web na Bacharelado em Sistemas de Informação do das, preferencialmente quantitativas, que reflitam
Granbery Consultoria Júnior em projeto Centro de Ensino Superior de Juiz de Fora e características específicas de processos e de produtos
para a Fundação COPPETEC, possui expe- da Faculdade Metodista Granbery, Analista de em construção, podendo ser utilizadas em diferentes
riência de 4 anos em desenvolvimento de Sistemas da Prefeitura de Juiz de Fora e Editor
dimensões, como esforço, tamanho, complexidade,
sistemas Java (web/desktop). da Engenharia de Software Magazine.
dentre outras.
Leonardo da Silva Mota
leonardo.smota@hotmail.com
Em que situação o tema é útil?

A
Atualmente cursa especialização em De-
senvolvimento de Aplicações para Web no
garantia da qualidade é uma A coleta adequada de métricas, com suas res-
Centro de Ensino Superior de Juiz de Fora das principais preocupações da pectivas análises, pode auxiliar o Engenheiro
(CES/JF), Bacharel em Sistemas de Infor- indústria de desenvolvimento de Software na tomada de decisões ao longo
mação pela Universidade Severino Sombra de software, pois atualmente a maior do desenvolvimento de um projeto, visando a
(USS), Desenvolvedor de Sistemas Web na parte das empresas atuantes no mercado melhoria da qualidade do processo e do produto
Granbery Consultoria Júnior em projeto
para a Fundação COPPETEC, programa-
utiliza esse tipo de aplicação para gerir em construção.
dor certificado Java (SCJP), atuou como seus negócios, produtos e relacionamen-
professor assistente no curso de Sistemas tos com clientes, necessitando maior
de Informação da USS e dos cursos de in- confiabilidade e qualidade. Existem dentre elas, uma das mais simples e
formática da Fundação de Apoio a Escola diversas medidas de garantia de qua- menos custosa, é a medição de software.
Técnica (FAETEC), possui experiência de
4 anos em desenvolvimento de sistemas
lidade fundamentais para o sucesso de Nesse sentido, a medição de software
Java (web/desktop). qualquer tipo de aplicação de software, auxilia a tomada de decisão, pois através

50 Engenharia de Software Magazine - Métricas de Software


Gerência de Projetos

de dados quantitativos, é capaz de informar que aspectos do GQM (Goal/Question/Metric), desenvolvido por Basili em 1988, é
produto atendem ou não ao padrão de qualidade especificado, uma abordagem para aplicação de métricas afim de aprimorar
além de permitir a avaliação dos benefícios de novos métodos o processo de desenvolvimento de software (e, consequente-
e ferramentas de engenharia de software, o entendimento e mente, os produtos de software gerados) enquanto mantém
aperfeiçoamento do processo de produção, a avaliação do os objetivos de negócio e objetivos técnicos da organização
retorno do investimento e tornar o gerenciamento de projetos nivelados. É uma abordagem top-down que estabelece uma
baseado em fatos e não “achismos”, por exemplo. medição sistemática para objetivos relacionados ao processo
Para medir software, são utilizadas diversas métricas que são de desenvolvimento, em que a equipe começa estabelecendo
como tipos de medições aplicadas a um sistema de software, os objetivos organizacionais, define metas de medição, insere
documentação ou processo relacionado. Através dessas métri- questões com o propósito de abordar os objetivos especifica-
cas é possível determinar o esforço ou tempo para realização dos e identifica as métricas que fornecem respostas para as
de uma tarefa ou o tamanho do produto, por exemplo. Além questões definidas.
disso, as métricas de software são facilmente calculadas, en- O GQM define um modelo de três níveis, ilustrado na Figura 1.
tendidas e testadas e independem do observador que as aplica,
sendo também uma boa fonte para estudos estatísticos acerca
do ciclo de vida do software.
Dentro desse contexto, este artigo tem por objetivo apresentar
algumas métricas de software e sua importância no processo
de desenvolvimento. Para isso, algumas métricas serão aplica-
das em pequenos exemplos, permitindo ao leitor compreender
e analisar seus benefícios imediatos.

Utilização de métricas
Existem dois tipos de métricas no contexto de desenvolvi- Figura 1. Níveis do modelo do GQM
mento de produtos de software: as métricas diretas, que são
realizadas em termos de atributos observáveis, como por O GQM pode ser aplicado em todo o ciclo de vida de produ-
exemplo, esforço, tamanho e custo, e as métricas indiretas ou tos, processos e artefatos de software e é bem alinhado com
derivadas, que podem ser obtidas através de outras métricas, o ambiente organizacional, sendo um meio adequado para
como por exemplo, complexidade, confiabilidade, e facilidade conseguir dados confiáveis e conhecimento sobre as práticas
de manutenção. Quanto ao contexto, podem ser aplicadas em de software da organização para conduzir a melhoria do
produtos ou em processos. Quando as métricas incidem dire- processo. Nesse contexto, é útil para auxiliar na compreensão
tamente no produto de software, são chamadas de métricas de e formar um baseline das práticas aplicadas no desenvolvi-
predição, quando em processos de software, são comumente mento de software, evoluir as atividades de medição, guiar e
chamadas de métricas de controle e sua aplicação normalmente monitorar processos de software e reduzir custos de desen-
é realizada em processos já maduros e controlados. volvimento, por exemplo. O GQM pode ser utilizado também
Para obter resultados significativos, as métricas devem ser como base de fundamentação para outras técnicas de medição
aplicadas em um ciclo constante, que envolve as etapas de de software.
planejamento, medição, análise de resultados, tomada de de- O GQM pode ser muito útil na definição de quais métricas
cisão e implementação das decisões. Desta maneira, pode-se são necessárias de serem coletadas e analisadas para responder
construir uma base histórica do artefato medido que permitirá questões sobre um determinado objetivo. Isso é importante
ao engenheiro de software analisar que processos, ferramentas para evitar que esforço seja gasto com coleta desnecessária de
e métodos melhor se aplicam àquele tipo de produto. Alguns métricas, que provavelmente nunca serão utilizadas.
cuidados também devem ser tomados no processo de medição,
como o momento e a escolha do conjunto de métricas mais Algumas métricas comumente utilizadas
relevantes a serem aplicadas, e a comparação entre produtos Softwares podem ser medidos (ou estimados) baseados em
através da aplicação de métricas (pois nenhum produto é igual diversos tipos de perspectivas, como tamanho e complexidade.
a outro). O escopo, os desenvolvedores e o ambiente são fatores Além disso, em função da etapa do desenvolvimento, diferen-
que podem influenciar o processo de desenvolvimento. Assim, tes métricas podem ser colhidas para um mesmo produto. Por
comparações devem ser cuidadosamente analisadas. exemplo, para a medição de tamanho na etapa de levantamento
As métricas podem e devem ser aplicadas durante as fases de requisitos, podemos utilizar como métrica o número de
de desenvolvimento do software, o que garante ainda mais requisitos especificados. Já na fase de projeto, o tamanho pode
seu impacto positivo no produto final. ser medido em função do número de classes e, na fase de codi-
Segundo alguns especialistas, para medir artefatos de softwa- ficação, a partir no número de linhas de código fonte.
re através de métricas significativas, as medições devem ser A seguir, serão apresentadas algumas das principais mé-
definidas de acordo com objetivos específicos. Nesse sentido, o tricas baseadas nos tipos de medição citados e, para melhor

Edição 21 - Engenharia de Software Magazine 51


compreensão, serão utilizados exemplos de códigos e aplicação SEI (Software Engineering Institute) definiu uma faixa de
das métricas. valores para a CC, que indicam o grau de complexidade de
um algoritmo, conforme mostra a Tabela 2.
Análise de Pontos de Função (APF): visa estimar o ta- Para exemplificar o cálculo da complexidade ciclomática,
manho do software baseado em Pontos de Função (PFs). será utilizado um algoritmo para cálculo de aprovação de
Seu objetivo é medir as funcionalidades do software, sem um aluno. Os possíveis caminhos no algoritmo são nume-
se preocupar com a tecnologia que será utilizada na im- rados, conforme mostra a Figura 2.
plementação e, pode ser aplicado já nos estágios iniciais
do desenvolvimento de software. A Tabela 1 apresenta as
fases para sua medição.
Número de linhas de código (LOC, KLOC): assim como a
APF, visa estabelecer o tamanho de um sistema, baseando-se
no número de linhas de código. Essa medição pode auxiliar
o engenheiro de software a determinar o tamanho de uma
aplicação já construída ou estimar o esforço a ser conside-
rado para a obtenção de um produto a ser desenvolvido.
Embora seja bastante objetiva, bastando analisar o código-
fonte de produtos concluídos para obtê-la, ela pode variar
de acordo com a linguagem de programação utilizada e,
portanto, as estimativas devem considerar dados de projetos Figura 2. Numeração de possíveis caminhos em um algoritmo
similares apenas na mesma linguagem.
Existem diversas formas de cálculo da CC, através de fór-
Complexidade Ciclomática (CC): proposta por McCabe mulas, ou pela contagem de caminhos possíveis. A Tabela 3
em 1976, fornece uma medida quantitativa da complexidade ilustra as possíveis formas de cálculo da complexidade
lógica de um programa. Através dessa métrica é possível ciclomática para este algoritmo.
definir o número de caminhos possíveis de um algoritmo Para programas grandes e complexos, calcular a com-
através do seu número de condições (if, for, while, do e plexidade ciclomática de cada função pode se tornar uma
switch) e assim, especificar o quanto um sistema é complexo tarefa exaustiva. Por este motivo, ferramentas automatizadas
e, por conseqüência, testável, pois apresenta um indício do podem ser utilizadas, como o plugin Metrics for Eclipse
número de casos de teste a serem realizados para cobrir as (ver seção Links), um plugin gratuito para a IDE Eclipse
possibilidades de um algoritmo. O ideal é que a complexi- que calcula a complexidade em sistemas desenvolvidos na
dade ciclomática seja baixa, pois desta forma, as funções linguagem Java. A Figura 3 ilustra o cálculo realizado pela
podem ser mais facilmente entendidas e modificadas. O ferramenta.

FASE DESCRIÇÃO
Determinar o tipo de contagem de pontos de função Existem três tipos de contagem que podem ser levadas em conta: contagem de PF de projeto de desenvolvimento, de aplicações instaladas e
de projetos de manutenção.
Determinar o escopo de contagem e a fronteira da aplicação A fronteira da aplicação é definida estabelecendo um limite lógico entre a aplicação que está sendo medida, o usuário e outras aplicações. O
escopo para a contagem define a parte do sistema (funcionalidades) a ser contada.
Determinar a contagem de pontos de função não ajustados Essa contagem leva em conta dois tipos de função: de dados e transacionais, bem como sua complexidade (simples, média ou complexa).
Contagem das funções de dados Contagem referente às funcionalidades relativas aos requisitos de dados internos e externos à aplicação.
Contagem das funções transacionais Contagem referente às funcionalidades de processamento de dados do sistema fornecidas para o usuário, como entradas e consultas externas.
Determinar o valor do fator de ajuste Baseado em diversas características gerais de sistemas, que avaliam a funcionalidade geral da aplicação que está sendo contada e seus níveis
de influência que podem ser determinados com base em uma escala de 0 a 5.
Calcular os pontos de função ajustados PFs ajustados são calculados, considerando o tipo de contagem definido no primeiro passo.

Tabela 1. Fases para a medição por pontos de função

Complexidade Situação
1-10 Programa simples, baixo risco.
11-20 Programa mais complexo, risco moderado.
21-50 Programa complexo, risco alto.
Maior que 50 Programa não testável, risco elevado.

Tabela 2. Faixas de Complexidade Ciclomática. Fonte: SEI – Software Engineering Institute (http:// www.sei.cmu.edu)

52 Engenharia de Software Magazine - Métricas de Software


Gerência de Projetos

Forma de cálculo Cálculo


para reutilização, visto que provavelmente possuem alto
Contagem através dos números de CC = E – N + 2 nível de abstração, (ii) pode indicar que a classe herda mui-
arcos e nós onde: tos serviços, o que pode aumentar consideravelmente sua
E= número de arcos complexidade.

N= número de nós 3. NOC (Number of children - Número de filhos): número


Contagem através do número de CC = P + 1 de subclasses posicionadas imediatamente abaixo da classe
nós predicados (que indicam uma onde: em questão. Um NOC alto indica que uma superclasse possui
decisão) P= número nós predicados (decisões) muitos filhos que necessitaram implementar características
Contagem visual Através do número de regiões fechadas do gráfico próprias, demonstrando baixo nível de abstração, visto que
construído, considerando também a região externa podem existir poucas características em comum entre as
Contagem dos caminhos possíveis CC = 5 classes filhas. A Figura 4 exibe uma hierarquia de classes,
1, 2, 10 que demonstra um NOC de valor três. Pode-se observar que
1, 3, 4, 10 quanto maior o número de métodos e atributos especializados,
1, 3, 5, 6, 10 menores são as chances de reutilização das classes filhas e
1, 3, 5, 7, 8, 10 mais complexas ficam as operações de polimorfismo. Em uma
1, 3, 5, 7, 9, 10 situação simples, como a do exemplo, o valor NOC não tem
Tabela 3. Formas para cálculo da Complexidade Ciclomática impacto negativo sobre o sistema, porém caso o cenário seja
um sistema complexo com muitas classes “filhas”, é importante
acompanhar os valores de NOC, com o propósito de tomar
medidas que evitem números altos.

Figura 3. Cálculo da complexidade ciclomática no plugin Metrics for Eclipse

Métricas de Chidamber & Kemerer (CK): foram propostas


por Chidamber & Kemerer em 1994, um conjunto de seis mé- Figura 4. Hierarquia de classes, que demonstra um NOC de valor 3
tricas que permitem a análise quantitativa dos artefatos de
software construídos utilizando o paradigma da orientação a 4.CBO (Coupling between object classes - Acoplamento
objetos. Essas métricas têm o objetivo de salientar as classes entre classes de objetos): é o nível de acoplamento entre as
que possivelmente contém maior número de defeitos, com o classes. Um CBO alto indica que a classe possui muitos rela-
propósito de direcionar os esforços de teste. cionamentos, o que dificulta sua reutilização e aumenta sua
complexidade, visto que a classe torna-se dependente de outras
1. WMC (Weighted methods per class - Métodos ponderados para efetuar suas operações. Essa métrica auxilia o engenheiro
por classe): cálculo do número de serviços por classe, que de software a avaliar o nível de reaproveitamento da aplicação
pode auxiliar o engenheiro de software indicando o esforço e o esforço despendido em testes.
necessário para o teste de complexidade da classe. Quando
classes apresentam um alto WMC, significa que tendem ser 5.LCOM (Lack of cohesion in methods - Falta de coesão em
específicas, ou seja, destinando-se a necessidades individuais, métodos): Número de acessos a um ou mais atributos em co-
o que restringe sua reutilização. mum pelos métodos da própria classe. Quanto maior o LCOM,
menos coesa é a classe. A coesão em métodos é a capacidade
2. DIT (Depth of the inheritance tree - Profundidade da dos métodos realizarem apenas a função a que são destinados
árvore de herança): número máximo de superclasses acima e, para isso devem acessar apenas atributos essenciais ao seu
da classe em questão. Um DIT alto pode indicar que (i) a classe funcionamento. Portanto, é importante que o LCOM seja baixo
em questão herdou muitas características comuns a outras a fim de aumentar a reutilização e diminuir a complexidade
classes, indicando que suas superclasses estão preparadas da classe.

Edição 21 - Engenharia de Software Magazine 53


6.RFC (Response for a class - Resposta de uma classe): Listagem 1. métodos gerCargo() e calculaSalario() redefinidos na classe Gerente
Indica a capacidade de resposta que a classe tem ao receber public String getCargo (){
mensagens de seus objetos (conjunto resposta). É o número de return
“Gerente”;
}
métodos que podem ser chamados em resposta a uma mensa- public double calculaSalario(){
double taxaTotal=(getSalario()*taxaDependentes)*numDependentes;
gem recebida por um objeto ou por algum método da classe. return
getSalario()-getDesconto() + taxaTotal;
}
Quanto maior o RFC, maior a possibilidade da classe atender
às suas funções. Em contrapartida, para obter um RFC alto, Listagem 2. método calculaSalario() redefinido na classe Diarista
é necessário projetar uma estrutura de classes adequada que
public double calculaSalario(){
possa tender a essa particularidade, o que acaba gerando maior return horasTrabalhadas * valorHora;

}
complexidade, tornando necessário maior esforço de teste.
Listagem 3. métodos getDepartamento(), getCargo() e calculaSalario()

Métricas de Lorenz & Kidd: Lorenz & Kidd, também em 1994, redefinidos na classe Vendedor

propuseram um conjunto de quatro métricas, comumente cha- public Departamento getDepartamento(){


return new Departamento(Departamento.VENDAS);

madas métricas LK, que se baseiam assim como as métricas }
public String getCargo(){
CK, no cálculo quantitativo de alguns aspectos fundamentais return “vendedor”;

da Orientação a Objetos, como os atributos, métodos, herança, }
public double calculaSalario(){
coesão e acoplamento. A diferença entre as métricas LK e as return (getSalario()- getDesconto())+(numeroVendas *

comissaoPorVenda);
métricas CK é em relação à metodologia empregada em seu }
cálculo.

1.CS (Class size - Tamanho da classe): é o número de métodos


e atributos da própria classe e herdados de suas superclasses.
Um número alto de CS indica que a classe pode ser muito espe-
cífica, atendendo necessidades privadas, o que pode dificultar
sua reutilização e aumentar sua complexidade.

2.NOO (Number of operations overriden by a subclass


- Número de operações redefinidas por uma subclasse):
número de sobrescritas de métodos em subclasses. Os
métodos herdados de uma superclasse podem ser sobres-
critos, ou seja, redefinidos em subclasses, com o propósito
de tornar sua funcionalidade mais específica. De certa Figura 5. Coleta da Métrica NOO pela ferramenta Metrics for Eclipse, aqui
chamada de Number of Overridden Methods
forma, essa redefinição de métodos pode ferir a abstração
implícita da superclasse e um número elevado de NOO dizer que a subclasse adicionou muitos métodos e atributos
pode indicar problemas estruturais, pois muitas subclas- em sua definição, o que indica um problema estrutural, já que
ses do sistema têm métodos redefinidos e possivelmente boa parte de seus atributos deveria ser definida em super-
estão hierarquicamente mal projetadas. Utilizando ainda classes. Além de aumentar a complexidade do sistema como
o exemplo da Figura 4, nas Listagens 1, 2 e 3 pode-se ob- um todo, um valor elevado de NOA reduz as possibilidades
servar trechos de código das três classes (Gerente, Diarista de reutilização.
e Vendedor), que redefinem o método calculaSalario(). As
classes Gerente e Vendedor também redefinem o método 4. SI (Specialization index - Índice de especialização): nú-
getCargo(), e ainda,a classe Vendedor redefine o método mero de métodos adicionados, eliminados ou redefinidos em
getDepartamento(). Apesar de não representar um risco uma classe. Na verdade, essa métrica complementa as métricas
estrutural para o projeto, no caso do exemplo, o número NOO e NOA e um valor alto indica também um problema de
de métodos redefinidos indica quais classes devem ter sua estruturação de classes, já que possivelmente foram realizadas
evolução acompanhada. Em um projeto de grande porte e alterações para atendimento de necessidades específicas. Clas-
crítico, pode ser complicado reestruturar uma hierarquia ses muito específicas dificilmente são reaproveitadas, ferindo
de classes no meio do projeto e o NOC indica que classes um dos princípios básicos da OO, a reutilização.
possivelmente devem ser reestruturadas o quanto antes. A
Figura 5 apresenta o resultado da coleta dessa métrica com A seguir, são apresentadas na Figura 6 as possíveis mé-
a ferramenta Metrics for Eclipse. tricas coletadas de um fragmento de sistema de controle de
Recursos Humanos, através da ferramenta Metrics for Eclipse,
3. NOA (Number of operations added by a subclass - Número para demonstrar como é simples e rápida a coleta de um
de operações adicionadas por subclasse): número de métodos conjunto significativo de métricas através de ferramentas
e atributos definidos em uma subclasse. Um NOA alto quer automatizadas.

54 Engenharia de Software Magazine - Métricas de Software


Gerência de Projetos

Figura 6. Métricas coletadas pela ferramenta Metrics for Eclipse

Alguns outros tipos de métricas algumas das métricas mais conhecidas e exemplificar o uso
Diversos outros tipos de métricas são largamente utilizados, de algumas delas através de exemplos simplificados, com o
como métricas de confiabilidade e esforço. propósito de acentuar a importância de sua utilização em um
Métricas de confiabilidade são normalmente baseadas em projeto. As métricas são capazes de indicar pontos em que
número de defeitos apresentados por uma aplicação, poden- são necessários maiores esforços de teste e acompanhamento.
do ser medidas por intervalo de tempo ou por versão de um Através de ferramentas automatizadas, é possível coletar um
produto em uso. Nessa categoria, ferramentas de apoio como grande número de métricas com menor esforço, o que viabi-
BugZilla, Mantis ou Trac são boas aliadas para o registro e liza a implantação de processos de medição em qualquer tipo
acompanhamento de defeitos. de sistema, desde os mais simples até os mais críticos, o que
Métricas de esforço são importantes no acompanhamento de contribui para a qualidade do produto final.
processos de software, sendo comumente utilizada a medição
de esforço por Homem/Hora, ou alguma derivada desta, como Feedback
Dê seu feedback sobre esta edição! eu
Homem/Mês, que refletem a quantidade de recursos humanos

s

alocados ao projeto por unidade de tempo. A Engenharia de Software Magazine tem que ser feita ao seu gosto.

sobre e
Para isso, precisamos saber o que você, leitor, acha da revista!

s
ta

Conclusão
edição
Dê seu voto sobre este artigo, através do link:
Métricas de software são medidas quantitativas acerca de www.devmedia.com.br/esmag/feedback
processos ou produtos de software. O artigo procurou mostrar

Edição 21 - Engenharia de Software Magazine 55


Validação, Verificação e Teste
Esta seção traz artigos que apresentam como e quando utilizar as diferentes abordagens
de VV&T no apoio ao desenvolvimento de projetos de software

Integração contínua com Hudson, Maven2,


TestNG e Subversion
De que se trata o artigo?
Victor Vidigal Ribeiro Montagem de um ambiente de integração con-
victorvidigal@gmail.com tínua utilizando um conjunto de ferramentas
É pós-graduando do Curso de Gerência de para este fim.
Projetos em Engenharia de Software pelo
Centro de Ensino Superior de Juiz de Fora
– CES/JF, Bacharel em Sistemas de Infor- Para que serve?
mação pela Faculdade Metodista Granbery O ambiente de integração contínua proposto
e Analista de Sistemas da Granbery Consul- mantém o código fonte do repositório sempre
toria Junior, atuando em projeto vinculado
testado, aumentando sua confiabilidade, além
à Fundação COPPETEC/UFRJ.
de diminuir a alocação de recursos humanos em
atividades de teste.
Fabrício Nogueira de Almeida
fnalmeida@gmail.com
É pós-graduando do Curso de Gerência de Em que situação o tema é útil?

D
Projetos em Engenharia de Software pelo evido à crescente demanda por Em ambientes em que é preciso manter um
Centro de Ensino Superior de Juiz de Fora softwares cada vez mais com- repositório com código fonte confiável e em sis-
– CES/JF, Bacharel em Sistemas de Infor- plexos e de maior qualidade, temas em que os testes atingiram uma comple-
mação pela Faculdade Metodista Gran-
bery e Analista de Sistemas da Uptodate
várias técnicas vêm sendo propostas xidade relevante e estão consumindo recursos
Consulting. para auxiliar na sua construção. Uma humanos em excesso ao serem executados.
dessas técnicas é o teste de unidade que
Marco Antônio Pereira Araújo tem como principal finalidade a busca
maraujo@acessa.com por defeitos na menor unidade de um É neste contexto que se pode tirar pro-
Doutor e Mestre em Engenharia de Sistemas sistema como um método ou função, veito da integração contínua, onde um
e Computação pela COPPE/UFRJ, Especialista
por exemplo. servidor faz periodicamente o checkout
em Métodos Estatísticos Computacionais e
Bacharel em Matemática com Habilitação em Porém, em um sistema com uma com- do código fonte do repositório e executa
Informática pela UFJF, Professor dos cursos de plexidade relevante, os testes de unidade automaticamente os testes já criados.
Bacharelado em Sistemas de Informação do podem consumir um tempo excessivo Com isto, ao subir um código para o
Centro de Ensino Superior de Juiz de Fora e da equipe cada vez que uma alteração repositório não é necessário que todos
da Faculdade Metodista Granbery, Analista
no sistema seja necessária e os testes os testes do sistema sejam executados.
de Sistemas da Prefeitura de Juiz de Fora e
Editor da Engenharia de Software Magazine. tenham que ser executados. Pode ser definida uma estratégia onde o

56 Engenharia de Software Magazine - Integração contínua com Hudson, Maven2, TestNG e Subversion
PROJETO

responsável por enviar o código para o repositório execute apenas Feito isto, as configurações necessárias no repositório estão
os testes diretamente relacionados com a alteração realizada, prontas.
diminuindo o tempo gasto com a execução dos testes.
Além disto, a execução periódica dos testes ajuda a manter a Configurando o Eclipse
confiabilidade do código fonte que está no repositório. Para facilitar a criação do ambiente, primeiro será instalado
Este artigo tem por finalidade demonstrar a configuração de um plug-in chamado Subclipse que permite a comunicação
um ambiente de integração contínua utilizando um servidor entre o Eclipse e o repositório. Para isto, abra o eclipse e acesse
de integração contínua chamado Hudson, em um repositório o menu Help / Install New Software. Uma janela será apresen-
controlado pelo Subversion, e um projeto criado no Eclipse tada onde o endereço http://subclipse.tigris.org/update_1.6.x
utilizando o Maven2 através do plug-in Maven2Eclipse e o deve ser digitado no campo Work with e, em seguida, deve-se
framework de testes TestNG. acessar a opção Add. Ao acessá-la, algumas opções irão apare-
cer no campo Name desta janela, onde devem ser marcadas as
Criando o repositório opções Core SVNKit Library, Optional JNA Library e Subclipse,
O primeiro passo para iniciar a construção do ambiente é como pode ser visto na Figura 2 e, logo em seguida, deve-se
baixar e instalar o Subversion. Será utilizado o VisualSVN que selecionar a opção Next até que a instalação seja concluída.
é um servidor do Subversion que disponibiliza uma interface
gráfica para configuração e que pode ser baixado no endereço
http://www.visualsvn.com/.
A instalação do VisualSVN é bastante simples, basta executar
o arquivo de instalação baixado e seguir os passos mantendo
sempre as configurações padrões sugeridas pelo instalador.
Depois de instalado e executado, o VisualSVN apresenta uma
tela semelhante à Figura 1.

Figura 2. Instalação do Subclipse


Figura 1. Configuração VisualSVN
Neste momento o plug-in Subclipse está instalado e deve-se
Neste momento é preciso configurar os usuários e grupos de agora instalar o plug-in Maven2Eclipse. Para isso, siga o mesmo
usuários que terão acesso ao repositório. Como exemplo, será criado procedimento, porém, utilizando o endereço http://m2eclipse.
apenas um usuário chamado “devmedia” que pode ser incluído sonatype.org/update/ e selecionando apenas a opção Maven
clicando com o botão direito sobre a opção Users, selecionando a Integration no campo Name.
opção New User e definindo um login e senha para este usuário. Com isto, o Eclipse já está com todos os plug-ins que preci-
Depois de criar o usuário, será criado um repositório chama- samos para começar a criar o projeto de exemplo e se integrar
do CalcularAprovacao. Para isso, clique com o botão direito com o Hudson.
sobre a opção Repositories e selecione a opção Create New
Repository. Uma caixa de texto será aberta onde deve ser di- Criando o projeto de teste
gitado CalcularAprovacao no nome do repositório. Para criar o projeto de exemplo utilizaremos o Maven2
Note que a URL do Subversion pode ser vista na tela inicial através do plug-in Maven2Eclipse, instalado anteriormente.
do VisualSVN no campo Server URL is. Posteriormente essa O Maven é um projeto da Apache que tem por finalidade o
URL será necessária para configurar o servidor de integração gerenciamento de projetos. Ele trabalha com o conceito de
e o Eclipse. convenção, ou seja, permite a compilação e a distribuição de

Edição 21 - Engenharia de Software Magazine 57


uma aplicação com um mínimo de configuração, desde que Maven / Add Dependency. Uma janela será apresentada onde
o projeto respeite a estrutura proposta, e ainda gerencia as se deve digitar TestNG no campo Enter groupId, artifactId or
dependências do projeto. sha1 prefix or pattern. Com isto, o Maven busca em seu repo-
Para iniciar a construção do projeto, acesse o menu File / New sitório online as dependências com o nome TestNG. Selecione
/ Other. Uma janela será apresentada onde a opção Maven / a opção org.testng testng e clique sobre o botão Ok. Feito isto,
Maven Project deve ser escolhida. Após isto, uma nova janela o Maven2Eclipse adiciona algumas linhas no arquivo de
é apresentada onde a opção Create a simple project deve ser configuração do Maven (chamado pom.xml) e irá baixar as
marcada e, logo em seguida, deve ser selecionada a opção Next. dependências necessárias para que o TestNG funcione.
Feito isso, outra janela, semelhante à Figura 3, é apresentada, Apesar do Maven2Eclipse facilitar bastante a configuração
onde devem ser digitados alguns dados do projeto: do Maven, uma configuração manual deve ser adicionada no
• Goup Id: é o identificador exclusivo do grupo ou organiza- arquivo pom.xml. A tag <build> e suas sub-tags devem ser
ção que criou o projeto. No projeto de exemplo será digitado adicionadas indicando que o código do projeto deve ser com-
br.com.calcularAprovacao neste campo. pilado para versão 1.6 do Java. Com isto, o arquivo pom.xml
• Artifact Id: indica um nome único para o projeto, deve ser deve ficar semelhante ao mostrado na Listagem 1.
digitado CalcularAprovacao neste campo. Depois disso, clique com o botão direito sobre o projeto e
• Version: é a versão do artefato gerado pelo projeto, deixare- selecione a opção New / Package e crie um pacote chamado
mos esta opção como padrão. br.com.calcularAprovacao dentro de src/main/Java para
• Packaging: é o tipo de artefato que será gerado pelo projeto, armazenar o código do exemplo. Outro pacote com o mesmo
por exemplo, JAR, WAR, EAR. Para o exemplo será gerado um nome também deve ser criado dentro de src/test/java para
artefato do tipo JAR. armazenar os casos de testes.
• Name: é o nome que será visualizado nos relatórios que Neste momento, a estrutura do projeto está criada e confi-
podem ser gerados pelo Maven. Neste campo será digitado gurada para trabalhar com o TestNG. Agora, é preciso criar
CalcularAprovacao. uma classe chamada Aluno que contém um método chamado
• Description: neste campo pode ser digitada uma breve des- calcularAprovacao(). Este método será testado pelos casos de
crição sobre o projeto. testes que serão criados posteriormente.

Listagem 1. Arquivo pom.xml

<project xmlns=”http://maven.apache.org/POM/4.0.0”
xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
xsi:schemaLocation=”http://maven.apache.org/POM/4.0.0 http://

maven.apache.org/maven-v4_0_0.xsd”>
<modelVersion>4.0.0</modelVersion>

<groupId>br.com</groupId>

<artifactId>CalcularAprovacao</artifactId>

<packaging>jar</packaging>

<version>0.0.1-SNAPSHOT</version>

<dependencies>

dependency>
<

<groupId>org.testng</groupId>


<artifactId>testng</artifactId>


<version>5.10</version>


<classifier>jdk15</classifier>

/dependency>
<
</dependencies>

<build>

<finalName>CalcularAprovacao</finalName>

plugins>
<

<plugin>


<artifactId>maven-compiler-plugin</artifactId>


<configuration>

Figura 3. Criação de um projeto Maven2
<source>1.6</source>


Após preencher os dados do projeto, clique sobre o botão <target>1.6</target>


Finish que o Maven irá criar o projeto utilizando sua estrutura </configuration>


padrão. </plugin>

Depois de criar o projeto, deve ser adicionada a dependência
/plugins>
<
do TestNG, que é o framework de testes que será utilizado. </build>

</project>
Clique com o botão direito sobre o projeto e selecione o menu

58 Engenharia de Software Magazine - Integração contínua com Hudson, Maven2, TestNG e Subversion
PROJETO

Crie a classe Aluno. Ela deve ser criada dentro de src/main/ new repository location deve ser selecionada e, logo em segui-
Java utilizando o código mostrado na Listagem 2. da, a opção Next deve ser escolhida. Feito isto, uma nova janela
é exibida onde a URL do Subversion (https://localhost:8443/
Listagem 2. Classe Aluno svn/CalcularAprovacao/) deve ser digitada. Após isso, clique
sobre a opção Finish.
package br.com.calcularAprovacao;
public class Aluno {
private String nome; Listagem 3. Classe de teste CalcularAprovacaoTest
private float nota1;
private float nota2; package br.com.testeAprovacao;
private float notaFinal; import org.testng.annotations.Test;
private int frequencia; import org.testng.*;
import br.com.calcularAprovacao.Aluno;
public String getNome(){
return nome;
@Test
} public class CalcularAprovacaoTest {
public void setNome(String nome){ public void testAlunoReprovadoFrequencia() {
this.nome = nome;
Aluno aluno = new Aluno();
} aluno.setNome(“João”);
public float getNota1() { aluno.setNota1(0);
return nota1; aluno.setNota2(0);
} aluno.setNotaFinal(0);
public void setNota1(float nota1) { aluno.setFrequencia(74);
this.nota1 = nota1; Assert.assertFalse(aluno.calcularAprovacao());
} }
public float getNota2() { public void testAlunoAprovadoNota() {
return nota2; Aluno aluno = new Aluno();
} aluno.setNome(“João”);
public void setNota2(float nota2) { aluno.setNota1(70);
this.nota2 = nota2; aluno.setNota2(70);
} aluno.setNotaFinal(0);
public float getNotaFinal() { aluno.setFrequencia(75);
return notaFinal; Assert.assertTrue(aluno.calcularAprovacao());
} }
public void setNotaFinal(float notaFinal) { public void testAlunoReprovadoNota() {
this.notaFinal = notaFinal; A
luno aluno = new Aluno();
} aluno.setNome(“João”);
public int getFrequencia() { aluno.setNota1(29);
return frequencia; aluno.setNota2(30);
} aluno.setNotaFinal(0);
public void setFrequencia(int frequencia) { aluno.setFrequencia(75);
this.frequencia = frequencia; Assert.assertFalse(aluno.calcularAprovacao());
} }
public boolean calcularAprovacao(){ public void testAlunoReprovadoFinal() {
float media; Aluno aluno = new Aluno();
aluno.setNome(“João”);
if (frequencia < 75) { aluno.setNota1(30);
return false; aluno.setNota2(30);
} else { aluno.setNotaFinal(69);
media = (nota1 + nota2) / 2; aluno.setFrequencia(75);
if (media < 30) { Assert.assertFalse(aluno.calcularAprovacao());
return false; }
} else { public void testAlunoAprovadoFinal() {
if (media >= 70) { A
luno aluno = new Aluno();
return true; aluno.setNome(“João”);
} else { aluno.setNota1(30);
if (((media + notaFinal) / 2) >= 50) { aluno.setNota2(30);
return true; aluno.setNotaFinal(70);
} else { aluno.setFrequencia(75);
return false; Assert.assertTrue(aluno.calcularAprovacao());
} }
} }
}
}
}
}

Depois de criar a classe Aluno, será criada a classe Calcu-


larAprovacaoTest que contém os casos de teste. Esta classe
deve ser criada dentro de src/test/Java, e deve conter o código
mostrado na Listagem 3.
Pode-se perceber que esta classe contém a anotação @Test que
faz com que o TestNG a reconheça como uma classe de teste.
Neste momento, o projeto está criado e deve ter uma estrutura
semelhante à apresentada na Figura 4.
Agora é preciso subir nosso projeto para o repositório. Para
isto, clique com o botão direito sobre o projeto e selecione a Figura 4. Estrutura do Projeto
opção Team / Share Project. Ao selecionar essa opção, uma
janela é exibida onde deve ser escolhido o tipo do repositório. Com o procedimento anterior, o Subclipse vinculou o projeto
Selecione a opção SVN, que é a sigla para Subversion, e clique ao repositório, mas ainda não subiu o código para este repo-
sobre Next. Uma nova janela é exibida onde a opção Create a sitório. Para subir o código clique novamente sobre o projeto

Edição 21 - Engenharia de Software Magazine 59


e selecione a opção Team / Commit. Ao selecionar esta opção Logo abaixo, marque também a opção Logged-in users can do
uma janela é exibida onde é possível escrever um comentário anything para permitir que os usuários criados posteriormente
sobre o código que está sendo enviado ao repositório. Digite tenham permissão para fazer qualquer coisa no Hudson.
“Primeiro commit para o subversion” e clique sobre o botão Um pouco mais abaixo na janela de configuração, como pode
Ok. Com isto, o código é enviado ao repositório. ser visto na Figura 6, é possível configurar o Maven e o JDK
que serão utilizados. Para incluir o Maven, clique sobre o botão
Configurando o Hudson Add Maven e digite Maven no campo Name e, em Version,
Depois de ter realizado os procedimentos anteriores, chegou selecione a opção 2.2.1.
a hora de configurar o Hudson, que é um servidor de integra- Para adicionar o JDK, clique sobre o botão Add JDK, digite
ção contínua. jdk6 no campo Name e, em JAVA_HOME, informe o diretório
O Hudson é disponibilizado como um arquivo WAR e tem onde o JDK está instalado.
um servidor web integrado a ele. Por conta disso, ele pode
ser executado utilizando o comando java –jar hudson.war ou
através de um servidor externo. No exemplo, será utilizado
o Tomcat.
Portanto, copie o arquivo hudson.war para a pasta webapps e
reinicie o Tomcat para que ele efetue o deploy do Hudson. Feito
isto, basta acessar o endereço http://localhost:8080/hudson
para entrar na interface de configuração.
Na página de configuração do Hudson, o menu Gerenciar
Hudson / Configure System deve ser acessado para iniciar a
configuração, como mostra a Figura 5.

Figura 6. Configuração do Maven e JDK

A próxima e última configuração é referente ao envio de e-


mails. Caso esteja configurado, o Hudson envia e-mails cada
vez que é executado, informando o resultado de sua execução.
Para configurar essa funcionalidade, na parte de Notificação
de E-mail, informe o endereço do servidor SMTP no campo
Servidor SMTP e o sufixo padrão para e-mail de usuário.
Sufixo padrão para e-mail de usuário indica ao Hudson que
Figura 5. Configurações do Hudson o endereço de e-mail de cada usuário é formado pelo nome do
usuário mais o sufixo padrão. Por exemplo, se o sufixo padrão
Há muitas maneiras diferentes de se configurar o Hudson e, for configurado como @gmail.com e um usuário chamado de-
por conta disso, serão mostradas as principais configurações vmedia for adicionado, o Hudson irá entender que o endereço
que são necessárias para seu funcionamento. de e-mail desse usuário é devmedia@gmail.com.
O primeiro campo, Mensagem do Sistema, é apenas a men- Deve-se preencher o Endereço de e-mail do Administrador
sagem inicial que será exibida ao acessar o Hudson. do sistema com o endereço de e-mail do administrador.
O campo Número de executores informa qual é a quantidade No campo URL do Hudson deve ser definido o endereço
de builds concorrentes que o Hudson pode fazer. Isso porque do Hudson, com http://localhost:8080/hudson.
um servidor do Hudson pode rodar vários projetos simulta- Como exemplo, será utilizado o SMTP do GMail que
neamente. Já no campo Período de Silêncio pode-se definir necessita de autenticação para funcionar. Para configurar
quanto tempo o Hudson irá aguardar até que comece o build esta autenticação clique sobre o botão Avançado, marque a
e, em SCM checkout retry count, a quantidade de vezes que o opção Use SMTP Authentication, digite o nome do usuário,
Hudson deve tentar fazer checkout caso aconteça algum erro a senha e, caso seja necessário, marque a opção Usar SSL.
nesse procedimento. A Figura 7 mostra como ficou a configuração dessa parte
A opção Habilitar segurança deve estar marcada para que do Hudson.
se possa definir como o Hudson irá controlar os usuários. Ao O envio de e-mail pode ser testado através do botão Con-
habilitar a segurança, o Hudson fornece opções de controle figuração de teste para enviar e-mail para o endereço do
de usuário. Selecione a opção Hudson’s own user database Administrador do Sistema. Acessando esse botão, um e-mail
para que os usuários sejam controlados pelo próprio Hudson. de teste é enviado.

60 Engenharia de Software Magazine - Integração contínua com Hudson, Maven2, TestNG e Subversion
PROJETO

a opção Construir periodicamente deve ser marcada, e o cam-


po Agenda configurado com o seguinte texto: 0 0 * * *. Desta
maneira, o Hudson irá rodar no minuto 0 da hora 0 de cada
dia do ano, pois este campo segue a mascara: minuto hora
dia_mês mês dia_semana.

Figura 8. Configuração do Subversion no Hudson


Figura 7. Configurações do servidor de SMTP
Após isto, em Construir, é preciso informar no campo POM
Pode-se perceber que do lado de cada campo há um , Raíz onde está o arquivo pom.xml do projeto gerado. Nesse
que caso acionado, exibe a descrição do campo que está a sua campo deve ser digitado CalcularAprovacao/pom.xml. No
esquerda. Este recurso é de grande auxílio na configuração campo Goals and options deve ser digitado test. Esse é um
do Hudson. parâmetro que faz com que o Hudson execute o Maven para
Após realizar as configurações anteriores, o botão Salvar deve rodar os testes criados.
ser acionado. Com isso, o Hudson exibe uma página onde o Uma última configuração que deve ser feita é marcar a
primeiro usuário deve ser criado. Para o exemplo, foi criado opção Notificação de E-mail para que um e-mail com os
um usuário chamado devmedia. relatórios de execução do Hudson seja enviado cada vez
que o Hudson for executado.
Criando tarefas no Hudson Para salvar as configurações, deve ser acionado o botão
Depois de configurar o Hudson, é preciso criar uma tarefa Salvar. Com isso, o Hudson exibe a página inicial da tarefa
informando a ele que deve baixar o projeto do repositório e que acabou de ser criada.
executar os testes criados. Com essas configurações, o Hudson irá baixar o projeto do
Ao clicar na opção Nova Tarefa, localizada na parte esquerda repositório e executar os testes criados às 0:00 horas de cada
do Hudson, uma janela é exibida onde se pode digitar o nome dia. É possível executar a tarefa criada a qualquer momento
da tarefa. A tarefa de teste será chamada de CalcularAprova- também através do menu Construir Agora.
cao. É preciso definir também o tipo de tarefa que, no caso do Na parte esquerda do Hudson, como pode ser visto na
exemplo, será escolhida a opção Construir um projeto Maven2. Figura 9, pode ser visualizado um histórico das construções
Após isto, clique sobre o botão Ok e uma nova janela é exibida que foram realizadas, e também de alguma eventual cons-
onde é possível configurar a tarefa construída. trução que esteja sendo executada.
Em Gerenciamento de Código Fonte, selecione a opção Sub-
version e digite a URL do Subversion em URL do Repositório.
O Hudson irá informar que não consegue acessar o repositório,
isto é porque ainda não foi definido um usuário e senha para
acessá-lo. Clique sobre o link enter credential para definir o
usuário do repositório.
No campo Diretório do módulo local deve ser digitado o
nome do projeto que foi criado no Eclipse e, portanto, deve-se
digitar CalcularAprovacao. Figura 9. Histórico de Construção
A opção Usar Atualização é bastante interessante. Caso seja
marcada, o Hudson não faz o checkout de todo o projeto no- Caso alguma construção não tenha sido realizada com
vamente. Ele faz o checkout apenas dos arquivos que foram sucesso, é possível ver o motivo do erro clicando sobre a
alterados no repositório. A Figura 8 mostra como esta parte construção e, em seguida, sobre o menu Console output.
da configuração do repositório deve estar. Ao acessar esta opção, o Hudson exibe a saída gerada pela
A próxima configuração diz respeito à periodicidade do Hu- construção. A Figura 10 mostra um exemplo de saída em
dson, ou seja, o Hudson pode ser configurado para rodar de que a construção falhou, sendo possível verificar o motivo
tempos em tempos. Para isso, em Disparadores de Construção, da falha.

Edição 21 - Engenharia de Software Magazine 61


ferramentas de acompanhamento de defeitos (Bugzilla, Man-
tis, Trac), suporte a outras linguagens (.net, ruby) e até mesmo
integração com o Twitter.

Conclusão
Figura 10. Saída de Console O artigo procurou mostrar como configurar um ambiente de
integração contínua utilizando diferentes ferramentas.
O Hudson também disponibiliza um relatório de tendência O ambiente foi construído utilizando o servidor de integração
onde é possível visualizar graficamente os resultados dos Hudson, o repositório Subversion, com o uso do VisualSVN
testes executados. A Figura 11 mostra o relatório gerado no para instalação do servidor, e o plug-in Subclipse para integra-
projeto de exemplo. ção com o Eclipse, o gerenciador de projetos Maven2, através
O gráfico apresenta o número da construção pelo seu tempo do plug-in Maven2Eclipse, e o framework de teste TestNG.
de execução. Enquanto as áreas vermelhas do gráfico represen- Um ambiente de integração contínua, como o apresentado
tam as construções que falharam, as cinzas são construções que neste artigo, possibilita a execução de testes de maneira auto-
foram abortadas. Já as amarelas são as construções que foram matizada o que pode torná-los mais eficientes e economizar
executadas com sucesso parcial e as construções executadas recursos humanos nessa tarefa. Além disso, com a execução
com sucesso total são representadas pela cor azul. periódica dos testes, é mais rápida a identificação de falhas
inseridas no código fonte pelos desenvolvedores. Devido a isto,
o código do repositório pode ser considerado mais confiável.
Outra vantagem desse ambiente é que se torna possível um
melhor acompanhamento da execução de testes através de
relatórios gerados pelo Hudson.

Links

Hudson
http://hudson-ci.org/

VisualSVN
http://www.visualsvn.com/

Subclipse
http://subclipse.tigris.org/

TestNG
http://testng.org

Figura 11. Gráfico de tendências


Dê seu feedback sobre esta edição! Feedback
eu
s
Apesar do ambiente proposto ter mostrado apenas a execução

A Engenharia de Software Magazine tem que ser feita ao seu gosto.

sobre e
de testes de unidade através do Hudson, é possível integrar
Para isso, precisamos saber o que você, leitor, acha da revista!
também ferramentas de checkstyle de código, detecção de bugs ta
edição
s
Dê seu voto sobre este artigo, através do link:
e cobertura de testes, por exemplo.
Além disso, o Hudson é extensível através de plug-ins www.devmedia.com.br/esmag/feedback
que podem fornecer funcionalidades como integração com

62 Engenharia de Software Magazine - Integração contínua com Hudson, Maven2, TestNG e Subversion
PROJETO

Edição 21 - Engenharia de Software Magazine 63


64 Engenharia de Software Magazine - Integração contínua com Hudson, Maven2, TestNG e Subversion

Você também pode gostar