MINISTÉRIO DA DEFESA
EXÉRCITO BRASILEIRO
DEPARTAMENTO DE CIÊNCIA E TECNOLOGIA
INSTITUTO MILITAR DE ENGENHARIA
CURSO DE MESTRADO EM SISTEMAS E COMPUTAÇÃO
EDUARDO ALVES DE OLIVEIRA
UM PROCESSO DE ACOMPANHAMENTO DE PRODUTIVIDADE
PARA O DESENVOLVIMENTO DE SOFTWARE
Rio de Janeiro
2014
INSTITUTO MILITAR DE ENGENHARIA
EDUARDO ALVES DE OLIVEIRA
UM PROCESSO DE ACOMPANHAMENTO DE
PRODUTIVIDADE PARA O DESENVOLVIMENTO DE
SOFTWARE
Dissertação de Mestrado apresentada ao Curso de
Mestrado em Sistemas e Computação do Instituto Militar de Engenharia, como requisito parcial para obtenção
do título de Mestre em Sistemas e Computação.
Orientador: Prof. Ricardo Choren Noya - D.Sc.
Rio de Janeiro
2014
c2014
INSTITUTO MILITAR DE ENGENHARIA
Praça General Tibúrcio, 80-Praia Vermelha
Rio de Janeiro-RJ CEP 22290-270
Este exemplar é de propriedade do Instituto Militar de Engenharia, que poderá incluí-lo
em base de dados, armazenar em computador, microlmar ou adotar qualquer forma de
arquivamento.
É permitida a menção, reprodução parcial ou integral e a transmissão entre bibliotecas deste trabalho, sem modicação de seu texto, em qualquer meio que esteja ou venha
a ser xado, para pesquisa acadêmica, comentários e citações, desde que sem nalidade
comercial e que seja feita a referência bibliográca completa.
Os conceitos expressos neste trabalho são de responsabilidade do(s) autor(es) e do(s)
orientador(es).
005.1
O48p
Oliveira, Eduardo Alves de
Um processo de acompanhamento de produtividade
para o desenvolvimento de software / Eduardo Alves de
Oliveira, orientado por Ricardo Choren Noya - Rio de
Janeiro: Instituto Militar de Engenharia, 2014.
99p. : il
Dissertação (mestrado) - Instituto Militar de Engenharia, Rio de Janeiro, 2014.
1. Curso de Sistemas e Computação - teses e dissertações. 2. Processo de Desenvolvimento de Software. I.
Noya, Ricardo Choren. II. Título. III. Instituto Militar
de Engenharia.
2
INSTITUTO MILITAR DE ENGENHARIA
EDUARDO ALVES DE OLIVEIRA
UM PROCESSO DE ACOMPANHAMENTO DE
PRODUTIVIDADE PARA O DESENVOLVIMENTO DE
SOFTWARE
Dissertação de Mestrado apresentada ao Curso de Mestrado em Sistemas e Computação do Instituto Militar de Engenharia, como requisito parcial para obtenção do
título de Mestre em Sistemas e Computação.
Orientadores: Prof. Ricardo Choren Noya - D.Sc.
Orientadore:
Aprovada em 15 de julho de 2014 pela seguinte Banca Examinadora:
Prof. Ricardo Choren Noya - D.Sc. do IME - Presidente
Prof. Gustavo Robichez de Carvalho - D.Sc., da PUC-Rio
Prof. Ronaldo Ribeiro Goldschmidt - D.Sc., do IME
Rio de Janeiro
2014
3
Dedico este estudo a minha família, em especial a minha amada esposa Luciana e ao meu
lho Gustavo, minhas eternas paixões e felicidades.
4
AGRADECIMENTOS
Agradeço a todas as pessoas que contribuíram com o desenvolvimento desta dissertação de mestrado, tenha sido por meio de críticas, idéias, apoio, incentivo ou qualquer
outra forma de auxílio. Em especial, desejo agradecer ao meu professor orientador que
desde o início deste estudo acreditou em minhas idéias e no meu trabalho.
Por m, a todos os professores e funcionários do Departamento de Engenharia de
Sistemas (SE/8) do Instituto Militar de Engenharia.
Eduardo Alves de Oliveira
5
O único lugar onde o sucesso vem antes do trabalho
é no dicionário. - Albert Einstein
6
SUMÁRIO
LISTA DE ILUSTRAÇÕES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
LISTA DE TABELAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
LISTA DE ABREVIATURAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1
INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.1
Problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.2
Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.3
Contribuições Esperadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.4
Estrutura do Texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2
CONCEITOS BÁSICOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.1
Processo de Desenvolvimento de Software - PDS . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.2
Métricas de Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.3
Indicador de Produtividade no PDS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.3.1 Produtividade usando Linhas de Código (LOC) . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.3.2 Produtividade usando Pontos de Caso de Uso (PCU) . . . . . . . . . . . . . . . . . . . . 29
2.3.3 Produtividade usando Análise por Pontos de Função (APF) . . . . . . . . . . . . . . . 30
2.4
Regras de Associação e o Algoritmo APRIORI . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.4.1 Ferramenta de Mineração de Dados WEKA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3
MÉTODO PARA MONITORAMENTO DA PRODUTIVIDADE . 35
3.1
Fase do Monitoramento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.1.1 Denição da Produtividade de Acompanhamento de um PDS (PAP) . . . . . . . 36
3.1.2 Atividade 1 - Obter Informações da Iteração do Projeto. . . . . . . . . . . . . . . . . . . 38
3.1.3 Atividade 2 - Estimar o Tamanho e o Esforço da Iteração. . . . . . . . . . . . . . . . . 39
3.1.4 Atividade 3 - Calcular o Tamanho Final da Iteração e a PAP ou PFP. . . . . . . 41
3.2
Fase do Diagnóstico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.2.1 Atividade 4 - Aplicar o Checklist do PMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.3
Atividade 5 - Denir Relatório de Ações de Ajuste (RAA) . . . . . . . . . . . . . . . . 46
7
4
ESTUDO DE CASO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.1
Iteração 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.1.1 Atividade 1 - Obter Informações da Iteração do Projeto. . . . . . . . . . . . . . . . . . . 52
4.1.2 Atividade 2 - Estimar o Tamanho e o Esforço da Iteração. . . . . . . . . . . . . . . . . 54
4.1.3 Atividade 3 - Calcular o Tamanho Final da Iteração e a PAP ou PFP . . . . . . 54
4.1.4 Atividade 4 - Aplicar o Checklist do PMP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.1.5 Atividade 5 - Denir o RAA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.2
Iteração 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.2.1 Atividade 1 - Obter Informações da Iteração do Projeto. . . . . . . . . . . . . . . . . . . 59
4.2.2 Atividade 2 - Estimar o Tamanho e o Esforço da Iteração. . . . . . . . . . . . . . . . . 60
4.2.3 Atividade 3 - Calcular o Tamanho Final da Iteração e a PAP ou PFP. . . . . . . 60
4.2.4 Atividade 4 - Aplicar o Checklist do PMP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.2.5 Atividade 5 - Denir o RAA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.3
Iteração 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.3.1 Atividade 1 - Obter Informações da Iteração do Projeto. . . . . . . . . . . . . . . . . . . 64
4.3.2 Atividade 2 - Estimar o Tamanho e o Esforço da Iteração. . . . . . . . . . . . . . . . . 65
4.3.3 Atividade 3 - Calcular o Tamanho Final da Iteração e a PAP ou PFP. . . . . . . 66
4.3.4 Atividade 4 - Aplicar o Checklist do PMP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.3.5 Atividade 5 - Denir o RAA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.4
Discussão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.4.1 O PMP e o Gerenciamento de Contratos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
5
TRABALHOS RELACIONADOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
5.1
Análise do Valor Agregado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
5.2
Regressão Linear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
5.3
Comparativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
6
CONSIDERAÇÕES FINAIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
6.1
Conclusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
6.2
Contribuições . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
6.3
Trabalhos futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
6.3.1 Construção de uma Ferramento de Apoio ao PMP . . . . . . . . . . . . . . . . . . . . . . . 78
6.3.2 Denição ou Evolução de um Modelo Estatístico para a Base Histórica
de Projetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
8
7
REFERÊNCIAS BIBLIOGRÁFICAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
8
APÊNDICES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
8.1
Apêndice 1 - Atributos da Base Histórica de Projetos da Empresa Avaliada . 85
8.2
Apêndice 2 - Tipos de PDS da Empresa Avaliada . . . . . . . . . . . . . . . . . . . . . . . . 86
8.3
Apêndice 3 - Questionário de Avaliação dos Projetos da Base Histórica . . . . . 87
8.4
Apêndice 4 - Checklist do PMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
8.4.1 O Checklist do PMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
8.4.2 Denição e Submissão do Questionário . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
8.4.3 Fatores que Impactam a PAP e o Checklist do PMP . . . . . . . . . . . . . . . . . . . . . 95
8.5
Apêndice 5 - Modelo de RAA do PMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
9
LISTA DE ILUSTRAÇÕES
FIG.2.1
Modelo Simplicado de Produtividade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
FIG.2.2
Fórmula de Suporte do Algoritmo APRIORI . . . . . . . . . . . . . . . . . . . . . . . . 34
FIG.2.3
Métodos Implementados pelo WEKA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
FIG.3.1
Gráco SPEM (SPEM, 2008) do PMP (fase Monitoramento) . . . . . . . . . . 37
FIG.3.2
Exemplo da PDI preenchida na Atividade - Obter Informações da
Iteração do Projeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
FIG.3.3
Exemplo da PDI preenchida na Atividade - Estimar o Tamanho e
o Esforço da Iteração . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
FIG.3.4
Exemplo da PDI preenchida na Atividade - Calcular o Tamanho
Final da Iteração e a PAP ou PFP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
FIG.3.5
Gráco SPEM (SPEM, 2008) do PMP (fase Diagnóstico) . . . . . . . . . . . . . 46
FIG.4.1
Exemplo da PDI preenchida na Atividade de Monitoramento Obter Informações da Iteração do Projeto . . . . . . . . . . . . . . . . . . . . . . . . . 53
FIG.4.2
Exemplo da PDI preenchida na Atividade de Monitoramento - Estimar o Tamanho e o Esforço da Iteração . . . . . . . . . . . . . . . . . . . . . . . . . . 55
FIG.4.3
Exemplo da PDI preenchida na Atividade de Monitoramento - Calcular o Tamanho Final da Iteração e a PAP ou PFP . . . . . . . . . . . . . . . . 57
FIG.4.4
Exemplo da PDI preenchida na Atividade de Monitoramento Obter Informações da Iteração do Projeto . . . . . . . . . . . . . . . . . . . . . . . . . 60
FIG.4.5
Exemplo da PDI preenchida na Atividade de Monitoramento - Estimar o Tamanho e Esforço da Iteração . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
FIG.4.6
Exemplo da PDI preenchida na Atividade de Monitoramento - Calcular o Tamanho Final da Iteração e a PAP ou PFP . . . . . . . . . . . . . . . . 63
FIG.4.7
Exemplo da PDI preenchida na Atividade de Monitoramento Obter Informações da Iteração do Projeto . . . . . . . . . . . . . . . . . . . . . . . . . 65
FIG.4.8
Exemplo da PDI preenchida na Atividade de Monitoramento - Estimar o Tamanho e Esforço da Iteração . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
FIG.4.9
Exemplo da PDI preenchida na Atividade de Monitoramento - Calcular o Tamanho Final da Iteração e a PAP ou PFP . . . . . . . . . . . . . . . . 68
FIG.5.1
Exemplo de Gráco do Valor Agregado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
10
FIG.5.2
Exemplo de Regressão Linear - Diagrama de Dispersão . . . . . . . . . . . . . . . 75
FIG.8.1
Tela de Parâmetros do algoritmo APRIORI do WEKA . . . . . . . . . . . . . . . 96
11
LISTA DE TABELAS
TAB.5.1
Comparação entre os trabalhos relacionados . . . . . . . . . . . . . . . . . . . . . . . . 76
12
LISTA DE ABREVIATURAS
ABREVIATURAS
ANS
-
Acordo de Nível de Serviço
APF
-
Análise de Pontos por Função
ARFF
-
Attribute-Relation File Format
CBO
-
Coupling Between Object Classes
CC
-
Complexidade Ciclomática
COCOMO
-
Common Software Measurement International Consortium
CPM
-
Counting Practices Manual
CS
-
Class Size
DI
-
Depth of the Inheritance Tree
EVA
-
Técnica do Valor Agregado
FFP
-
Full Function Point
HH
-
Homem Hora
IFPUG
-
International Function Point User Group
ISO
-
International Organization for Standardization
LCOM
-
Lack of Cohesion in Methods
LOC
-
Lines of Code
NESMA
-
Netherlands Software Metrics Association
NOA
-
Number of Operations Added by a Subclass
NOC
-
Number of Children
NOO
-
Number of Operations Overriden by a Subclass
PAP
-
Produtividade de Acompanhamento de Projeto
PCU
-
Pontos de Caso de Uso
PDI
-
Planilha com os Dados da Iteração
PDS
-
Processo de Desenvolvimento de Software
PEI
-
Produtividade Estimada Inicial
PF
-
Ponto de Função
PFP
-
Produtividade Final do Projeto
PHP
-
Acrônimo Recursivo para Hypertext Preprocessor
PMI
-
Project Management Institute
13
PMP
-
Processo de Monitoramento de Produtividade
RAA
-
Relatório de Ações de Ajuste
RAP
-
Relatório de Acompanhamento do Projeto
RFC
-
Response for a Class
SI
-
Specialization index
SPEM
-
Software & Systems Process Engineering Meta-Model Speci-
UKSMA
-
cation
United Kingdom Software Metrics Association
WEKA
-
Waikato Enviroment for Knowledge Analysis
WMC
-
Weighted Methods per Class
14
RESUMO
Este estudo demonstra de forma quantitativa e qualitativa os impactos positivos e
negativos na produtividade dos projetos de software. O objetivo é ajudar o gerente de
projeto no monitoramento da produtividade do desenvolvimento do software (OLIVEIRA,
2013). O processo de monitoramento de produtividade (PMP) de um PDS deve ser
utilizado em paralelo com o processo de desenvolvimento de software (PDS) para controlar
a produtividade do projeto. O estudo de impactos na produtividade auxilia e direciona as
decisões que o gerente de projeto deve tomar no planejamento e acompanhamento de seus
projetos. Para chegarmos as conclusões deste estudo foi analisada uma base histórica de
projetos de um empresa de desenvolvimento de software que possui uma grande variedade
de tipos diferentes de sistemas, tecnologias, linguagens e processos de desenvolvimento.
Para complementar a base histórica, um questionário foi respondido por uma amostragem
qualitativa de projetos desta base histórica. Grande parte das questões são relacionadas a
questões qualitativas dos impactos na produtividade dos projetos. Os potenciais impactos
na produtividade dos projetos foram obtidos de pesquisa bibliográca.
15
ABSTRACT
This study shows the quantitative and qualitative impacts that positively and negatively the productivity of software projects. The objective is to assist the project manager
in the use of the monitoring software productivity (OLIVEIRA, 2013). This productivity
monitoring process (PMP) of must be performed in parallel to the software development
process (SDP) controlling project productivity. The study of the impacts assists and
directs decision making of a project manager in the planning and monitoring of their
projects. To reach the conclusions of this study analyzes were performed on a database
project for a software development corporate with a wide range of systems, technologies,
languages and development processes. For complete the historical basis, a questionnaire
was answered by a qualitative sample of projects of this historical basis. The most questionnaire questions are qualitative issues that impact the productivity of a project. These
potential impacts were obtained from bibliographical studies.
16
1 INTRODUÇÃO
Empresas de desenvolvimento de software estão cada vez mais competitivas. Para
conhecer o quanto uma empresa é competitiva é necessário medir a sua produtividade
e qualidade no seu processo de desenvolvimento de software (PDS) (JOSEPH, 2011).
Saber a produtividade de um PDS, permite que a empresa melhore a sua previsibilidade
em alguns parâmetros de projeto como esforço, prazo e custo.
O PDS de uma organização determina as áreas chaves que um projeto de software
deve atender para ter uma efetiva utilização da engenharia de software. O PDS garante
o controle gerencial do projeto através de métodos, gera produtos de trabalho, estabelece
marcos de controle, garante a qualidade e a gestão de mudanças (PRESSMAN, 2011).
O resultado nal de um projeto é ter um produto que atende ao escopo denido pelo(s)
usuário(s) especicador(es).
O escopo de um projeto de software é composto por dados e controles que precisam
ser processados (PRESSMAN, 2011). A qualidade de um projeto entregue está diretamente ligada com a entrega ou não do escopo denido pelo usuário especicador através
das funcionalidades. Este escopo deve atender desempenho, normas de desenvolvimento
explicitamente declaradas e caracterísiticas implícitas de qualquer aplicação de software
(PRESSMAN, 2011).
A denição do escopo inicial deve ser feita na fase de planejamento inicial do projeto
(PRESSMAN, 2011). Nesta fase, tanto o prazo quanto o custo precisam ser estimados
utilizando o escopo inicial denido. A viabilidade de um projeto passa pela análise desses
dois parâmetros. Antes do início de um projeto, os usuários e gestores querem saber o
prazo e custo estimados com a maior acurácia possível (AGRESTI, 2010). Assim, podem
determinar se a continuidade do projeto é viável ou não. Para se chegar ao cálculo de
prazo e custo é necessário medir o tamanho do projeto. Para isso é utilizada uma métrica
de software.
1.1 PROBLEMA
Embora seja importante medir a Produtividade Final do Projeto (PFP), esta medida
dicilmente serve como parâmetro de acompanhamento de projetos, pois somente ao nal
17
de cada projeto tem-se o prazo e custo reais. Assim, quando a produtividade real for
medida, o projeto já se encerrou. Se ocorreu atraso na entrega e/ou aumento de custos,
estes não foram avaliados durante o ciclo de projeto (OLIVEIRA, 2013).
Vários motivos podem acarretar desvios nos parâmetros estimados de um projeto. Um
dos mais comuns é a variação do escopo do projeto (JONES, 1998). Ou seja, é preciso
continuamente avaliar se houve aumento de escopo nos requisitos do usuário. A taxa de
crescimento de escopo de requisitos chega a 2% ao mês do momento da especicação até
a codicação (JONES, 2007). Também devem ser avaliadas as alterações de requisitos já
especicados e aprovados pelo usuário, pois acarretam aumento de esforço decorrente do
retrabalho.
Assim, ter apenas as estimativas iniciais não ajuda a realizar as ações de ajuste no
processo de desenvolvimento. Essas ações tentam recolocar o projeto dentro da Produtividade Estimada Inicialmente (PEI). Ao longo do projeto a produtividade deve ser medida,
assim o gestor do projeto poderá tomar ações de correção e ajuste no PDS com objetivo
de corrigir eventuais desvios.
Já existem outras técnicas de monitoriamento de produtividade de um PDS, como por
exemplo, a do Valor Agregado (PMI, 2008) e outras que se preocupam com as estimativas
iniciais dos projetos como, por exemplo, a de Regressão Linear (MACDONELL, 1996).
Não é objetivo deste trabalho aprofundar-se nestas técnicas, pois as mesmas não atendem
por completo o escopo do estudo.
Porém, nenhuma dessas técnicas analisa a variação da produtividade, durante o ciclo
de desenvolvimento de projeto, através das funcionalidades que fazem parte do escopo do
projeto.
O gerente de projeto não consegue fazer uma correlação entre as causas da mudança
da produtividade e as funcionalidades que estão ocasionando esta mudança. Da mesma
forma, o PDS não é avaliado pelas funcionalidades atendidas pelo projeto, mas sim por
outros parâmetros que não permitem uma fácil identicação de qual(is) fase(s) do PDS
está(ão) apresentando mudança(s) em sua(s) produtividade(s) planejada(s) inicialmente.
A falta dessa análise acarreta perda de controle: do escopo funcional do projeto, das
funções que estão impactando a produtividade do PDS, e por consequência, que funções
do escopo estão impactando o custo e o prazo do projeto.
18
1.2 OBJETIVO
O objetivo deste trabalho é denir um processo de monitoramento da produtividade
(PMP) de um PDS a m de permitir que o gestor de um projeto acompanhe a produtividade de um PDS através das funcionalidades do escopo do projeto e de uma métrica
de tamanho funcional. O propósito é saber se o prazo e o custo mantêm-se dentro da
estimativa inicial, ao longo do ciclo de desenvolvimento do projeto, reestimando estes
parâmetros a cada acompanhamento do projeto.
A produtividade do PDS precisa ser medida em cada marco de acompanhamento para
que o gestor do projeto saiba se o PDS está adequado ou se precisa de ajustes para
atender a PEI. Dessa forma, a produtividade de acompanhamento medida pode impactar
diretamente no PDS utilizado.
Este trabalho usa uma métrica funcional chamada de Análise de Pontos por Função
(APF) por diversos motivos:
• O acompanhamento através das funcionalidades facilita a gestão do aumento de
escopo e retrabalho no projeto;
• Normaliza todos os projetos facilitando a comparação entre eles independente de
quais funcionalidades estão presentes no escopo;
• Permite a criação de uma base histórica que é uma referência importante para um
gestor de projeto que precisa prever a produtividade inicial de novos projetos;
• O tamanho funcional de toda funcionalidade pode ser particionado por fase do
PDS, possibilitando controlar a produtividade de um PDS por fase (por exemplo:
requisitos, construção, testes);
• Permite-se ter uma rastreabilidade entre as funcões medidas e as funcionalidades do
projeto de forma direta, ajudando o gestor do projeto na avaliação de impacto no
caso de alteração de algum requisito do projeto ou aplicação;
• A comunicação entre gestor do projeto e usuário especicador ca facilitada, pois
toda a medição funcional é rastreável para um requisito funcional especicado pelo
usuário.
19
1.3 CONTRIBUIÇÕES ESPERADAS
As contribuições esperadas deste trabalho são:
• Monitorar a produtividade de um PDS ao longo do ciclo de vida de um projeto.
Dar ao gerente de projeto um meio de acompanhar a produtividade do PDS possibilitando ajustá-lo antes de seu término, evitando atrasos e aumento de custo do
projeto;
• Detectar fatores que impactam a produtividade de um PDS. Mostrar ao gerente
de projeto os fatores que estão provocando aumento ou perda de produtividade do
PDS em relação a produtividade planejada inicialmente no projeto;
• Auxiliar o gerente de projeto, quando for necessário, sugerindo mudanças no PDS.
Apresentar possíveis mudanças no PDS para ajuste de sua produtividade.
1.4 ESTRUTURA DO TEXTO
Este trabalho está estruturado da seguinte forma: a seção 2 apresenta os conceitos básicos
utilizados para a denição do PMP; a seção 3 apresenta a metodologia de acompanhamento, inicia-se demonstrando a fase de monitoramento e naliza descrevendo a fase de
diagnóstico; a seção 4 apresenta um estudo de caso utilizando a metodologia proposta; a
seção 5 apresenta trabalhos relacionados e a seção 6 conclusões, contribuições e trabalhos
futuros.
20
2 CONCEITOS BÁSICOS
Nesta capítulo são apresentados conceitos básicos que precisam ser aprendidos para o
uso correto do processo proposto.
2.1 PROCESSO DE DESENVOLVIMENTO DE SOFTWARE - PDS
O processo de desenvolvimento de software foi criado para tornar o desenvolvimento de
um software em algo conável e com a qualidade esperada pelo usuário que especicou as
funcionalidades que deve possuir (LARMAN, 2004).
Também pode ser denido como um conjunto de atividades, métodos, práticas e mudanças que tem como objetivo a construção de um produto entregável ao usuário que
solicitou o produto (PAULA, 2001).
Na construção ou manutenção de um software é importante termos um processo que
nos indique a sequencia do que precisa ser feito para a construção e entrega do produto. Esse processo é um conjunto de passos que estão em uma determinada ordem para
execução. Os passos seguidos envolvem atividades, limitações e recursos que produzem
resultados (PRESSMAN, 2011; PFLEEGER, 2001).
Um processo de desenvolvimento de software dentro de uma empresa, quando maduro,
trás estabilidade, controle e organização para o desenvolvimento de software. Este processo deve possuir documentos bem detalhados que devem dizer a quem os utiliza quando
algo será realizado, quem irá fazer, os insumos e o produto entregue ao nal do ciclo.
A seguir são enumeradas mais características que um processo no desenvolvimento de
projetos de software deve possui (AMBLER, 1999):
a) Adequação ao desenvolvimento de software;
b) Fácilidade no entendimento de como o software será produzido, por todos os envolvidos na construção ou manutenção do projeto;
c) Busca do reuso de componentes para minimizar esforços;
d) Melhora no gerenciamento da complexidade do software;
21
e) Absorção de outras tecnologia de forma rápida e sem grandes ajustes no próprio
processo.
Usar o processo de desenvolvimento em um projeto de software exige que o mesmo
seja monitorado ao longo do PDS. Para isto existe a fase de monitoramento do projeto,
que já está previsto como boa prática de gerenciamento de projetos, conforme denido
no PMBok (Project Management Body of Knowledge ) (PMI, 2008). Porém não existe
uma forma única de se acompanhar o projeto. Existem algumas técnicas que fazem este
acompanhamento, como por exemplo do Valor Agregado (PMI, 2008).
É importante saber que o processo de desenvolvimento a ser adotado depende do
software que está sendo construído. Os passos a serem executados devem ser os que
melhor acomodam as necessidades do projeto e as características da equipe. Para avaliar
o processo é necessario medir o quanto ele está sendo produtivo. Se a sua produtividade
não está adequada, o gerente de projeto deve ajustá-lo para atender os objetivos acordados
entre a equipe do projeto e o usuário especicador.
Portanto, analisar e avaliar a produtividade do processo de desenvolvimento de software adotado por uma empresa é essencial para estabelecer se este está sendo executado
de forma adequado.
Este estudo é dedicado em denir uma metodologia de acompanhamento da produtividade de um processo de desenvolvimento de software baseado em uma métrica funcional.
O autor percebe que os métodos tradicionais apresentão diculdades em monitorar
a produtividade do processo do ciclo de desenvolvimento, desde o momento de sua estimativa, passando pela motivação dos impactos que ocasionaram mudanças nesta e o
gerenciamento de uma base histórica de produtividade nais de projetos realizados com
sucesso ou não.
Ao vericar a produtividade de um PDS, durante o seu ciclo de desenvolvimento, o
gerente de projeto sabe se o projeto está apresentando riscos de atrasar ou aumentar os
seus custo de desenvolvimento. Neste estudo, para realizar essa vericação o gerente de
projeto precisa medir o projeto utilizando uma métrica de software.
2.2 MÉTRICAS DE SOFTWARE
Uma métrica é a medição de um atributo (propriedades ou características) de uma determinada entidade (produto, processo ou recursos). Exemplos:
22
a) Tamanho do produto de software (ex: número de linhas de código);
b) Número de pessoas necessárias para implementar um caso de uso;
c) Número de defeitos encontrados por fase de desenvolvimento;
d) Esforço para a realização de uma tarefa;
e) Tempo para a realização de uma tarefa;
f) Custo para a realização de uma tarefa;
g) Grau de satisfação do cliente (ex: adequação do produto ao propósito, conformidade
do produto com a especicação).
Vários motivos fazem a medição de software ser importante. A seguir são listados
alguns deles:
a) Entender e aperfeiçoar o processo de desenvolvimento;
b) Melhorar a gerência de projetos e o relacionamento com clientes;
c) Reduzir frustrações e pressões de cronograma;
d) Gerenciar contratos de software;
e) Indicar a qualidade de um produto de software;
f) Avaliar a produtividade do processo;
g) Avaliar os benefícios (em termos de produtividade e qualidade) de novos métodos e
ferramentas de engenharia de software;
h) Avaliar retorno de investimento;
i) Identicar as melhores práticas de desenvolvimento de software;
j) Embasar solicitações de novas ferramentas e treinamento;
k) Avaliar o impacto da variação de um ou mais atributos do produto ou do processo
na qualidade e/ou produtividade;
l) Formar uma baseline para estimativas;
23
m) Melhorar a exatidão das estimativas;
n) Oferecer dados qualitativos e quantitativos ao gerenciamento de desenvolvimento de
software, de forma a realizar melhorias em todo o processo de desenvolvimento de
software.
São consideradas propriedades desejáveis de uma métrica de software:
a) Facilmente calculada, entendida e testada;
b) Passível de estudos estatísticos;
c) Expressa em alguma unidade;
d) Obtida o mais cedo possível no ciclo de vida do software;
e) Passível de automação;
f) Repetível e independente do observador;
g) Sugere uma estratégia de melhoria.
As métricas de software são divididas em categorias, são elas:
a) Métricas diretas (fundamentais ou básicas): medida realizada em termos de atributos observados. Por exemplo: custo, esforço, no. linhas de código, capacidade de
memória, no. páginas, no. diagramas, etc;
b) Métricas indiretas (derivadas): medidas obtidas a partir de outras métricas. Por
exemplo: complexidade, eciência, conabilidade, facilidade de manutenção;
c) Métricas orientadas a tamanho: são medidas diretas do tamanho dos artefatos de
software associados ao processo por meio do qual o software é desenvolvido. Por
exemplo: esforço, custo, no. KLOC, no. páginas de documentação, no. erros;
d) Métricas orientadas por função: consiste em um método para medição de software
do ponto de vista do usuário, determinando de forma consistente o tamanho e a
complexidade de um software. Por exemplo: APF, COSMIC, Mark II;
e) Métricas de produtividade: concentram-se na saída do processo de engenharia de
software. Por exemplo: no. de casos de uso/iteração;
24
f) Métricas de qualidade: oferecem uma indicação de quanto o software se ajusta às
exigências implícitas e explícitas do cliente. Por exemplo: erros/fase;
g) Métricas técnicas: concentram-se nas características do software e não no processo
por meio do qual o software foi desenvolvido. Por exemplo: complexidade lógica e
grau de manutenibilidade.
Uma métrica deve ser válida (quantica o que queremos medir), conável (produz
os mesmos resultados dadas as mesmas condições) e prática (barata, fácil de computar
e de interpretar). Para medição de software existem dois contextos: o de Produto (por
exemplo qualidade) e o de Processo (por exemplo produtividade). O processo apresentado
neste estudo foca na medição do processo e não do produto gerado pelo processo.
As métricas de software são meios fundamentais para avaliar a modularidade do software e detectar falhas de projeto (CHIDAMBER, 1994) (FENTON, 1996). Elas exploram
propriedades do módulo quanticáveis, tais como acoplamento de classe, coesão e tamanho
da interface (LANZA, 2006). Geralmente as métricas tradicionais são aplicadas de forma
isolada e sem um processo de validação de sua aplicação em vários ambientes com diferentes características e tecnologias. Por esse motivo vêm sendo consideradas insatisfatórias
(MILLS, 1998).
São exemplos de métricas de software tradicionais (SEIBT, 2011):
a) Linhas de código fonte (LOC). Utiliza a quantidade de linhas de código de uma
aplicação para medir o seu tamanho;
b) Complexidade ciclomática (CC). Fornece uma medição quantitativa da complexidade lógica de uma aplicação;
c) Número de lhos (NOC). Mede o número de subclasses de uma classe;
d) Métodos ponderados por classe (WMC). Calcula o número de serviços por classe;
e) Profundidade da árvore de herança (DIT). Mede o número máximo de superclasses
acima de uma determinada classe;
f) Acoplamento entre classes de objetos (CBO). Mede o nível de acoplamento entre
classes;
25
g) Falta de coesão em métodos (LCOM). Mede o número de acessos a um ou mais
atributos em comum pelos métodos da própria classe;
h) Resposta de uma classe (RFC). Indica a capacidade de resposta que a classe tem ao
receber mensagens de seus objetos;
i) Tamanho da classe (CS). É o número de métodos e atributos de uma classe herdados
de suas superclasses;
j) Número de operações redenidas por uma subclasse (NOO). É o número de sobrescritas de método em subclasses;
k) Número de operações adicionadas por subclasse (NOA). Mede o número de métodos
e atributos denidos em uma subclasse;
l) Índice de especialização (SI). Número de métodos adicionados, eliminados ou redenidos em uma classe.
Já as métricas funcionais vêm se apresentando mais efetivas, pois preocupam-se em
medir o tamanho do projeto que está se desenvolvendo sem estar atrelada a uma tecnologia
especíca e nem de como o produto está sendo desenvolvido.
Diferentemente das métricas tradicionais, as métricas funcionais estão preocupadas
com a medição de software em termos de funcionalidade que ela oferece e não na tecnologia
e forma com este está sendo desenvolvido. As métricas funcionais são usadas, por exemplo,
para medir o tamanho funcional da aplicação ou projeto através do dimensionamento das
funcionalidades deste projeto ou software (IFPUG, 2010).
A métrica funcional padroniza a forma de se estimar o tamanho funcional de qualquer
projeto (IFPUG, 2010). Além disso, usando medição funcional os gerentes de projetos
podem monitorar a produtividade dos seus projetos, baseado nos requisitos do usuário,
ao longo de todo o seu ciclo de desenvolvimento e não somente ao seu nal.
São exemplos de métricas de software funcionais:
a) APF: Técnica de medição funcional mais difundida no mundo. Mede o tamanho dos
requisitos funcionais de um projeto ou aplicação, sob o ponto de vista do usuário
especicador do requisito. O tamanho funcional é medido considerando os requisitos de dados e de transação solicitados pelo usuário requisitor. Cada requisito
identicado como função de dados ou transação recebe um grau de complexidade
26
(baixa, média ou alto), e de acordo com o seu tipo de função receberá uma valor em
pontos de função. Este valor pode varia de 5 a 15 pontos de função para as funções
de dados e de 3 a 7 para as funções transacionais (IPFUG, 2010);
b) NESMA: O grupo de usuário de APF da Holanda mantém um métrica própria de
medição funcional de tamanho baseada na APF. A diferença em relação a APF é
que essa determina que toda função de dados, identicada no requisito, deve ter
complexidade baixa e toda função transacional deve ter complexidade média;
c) COSMIC-FFP: O método Full Function Point (FFP) foi criado para medir o tamanho
funcional de aplicações de tempo real. A seguir foi criado o Common Software Mea-
surement International Consortium (COSMIC) com o objetivo de desenvolver um
novo método de medição de tamanho funcional baseado nas melhores características dos métodos existentes e que incorporasse novas idéias. É uma técnica muito
semelhante a APF, porém diferente da APF, possui um tratamento mais especíco
para complexidade algorítmica da aplicação ou projeto medido;
d) Mark II (Mk2 FPA): É um método de medição funcional de tamanho de software de
domínio público mantido pela associação de métricas do Reino Unido - UKSMA. É
um método de aplicação pouco utilizado no mundo, basicamente restrito ao Reino
Unido. Essa técnica visa melhorar a escala de tamanho funcional, contando mais
apuradamente a complexidade de processamento interno de Sistemas de Informações
Gerenciais. Uma das diferenças principais entre APF e Mk 2 é que a primeira técnica
conta Arquivos Lógicos uma vez para cada parte de software sendo mensurada,
enquanto que a Mk 2 conta tipos de entidade toda vez que elas são referenciadas
em cada transação lógica. (UKSMA, 1998)
No indicador de produtividade de um projeto, a métrica funcional mede o produto
que está sendo entregue, enquanto o esforço mede o custo que a equipe do projeto teve
para entregar o produto produzido.
2.3 INDICADOR DE PRODUTIVIDADE NO PDS
O indicador de produtividade no PDS deve ser utilizado para avaliar o ciclo de desenvolvimento do software, independente de qual tipo de projeto ou metodologia está sendo
utilizada.
27
É considerado uma medição de complexidade do projeto que pode sofrer alteração motivada por mais de 100 fatores ja conhecidos (JONES, 1998). A produtividade representa
o quanto se gasta de esforço para a produção de uma unidade de produto, através dos
recursos do projeto (KARNER, 1993). A unidade de produto em software pode ser representada por linhas de código, componentes, artefatos ou pontos de função. Os recursos
utilizam esforço (tempo) que se transformam em custo para o projeto.
Na gura 2.1 é demonstrado um diagrama simplicado do modelo de produtividade
(CARD, 2006). Ele mostra como os recursos são consumidos por um processo ou subprocesso em particular para a geração de um produto de software. Logo pode ser usada
como unidade de medida para a medição da produtividade.
FIG. 2.1: Modelo Simplicado de Produtividade
Este modelo de produtividade não permite um controle da produtividade ao longo
do ciclo de desenvolvimento do projeto. Ao nal do ciclo tem-se o produto gerado, com
o escopo entregue e o esforço dos recursos. É possível medir a produtividade nal do
processo, porém não é possível saber durante o mesmo qual a produtividade que está
sendo alcançada. É como se toda a complexidade de um processo só precisasse ser avaliado
no nal do seu ciclo.
2.3.1 PRODUTIVIDADE USANDO LINHAS DE CÓDIGO (LOC)
Linhas de código é uma medida física do tamanho do software, pois objetiva medir a
quantidade de código-fonte produzida (AGUIAR, 2003). O grande benefício da técnica é
que ela pode ser automatizada, não sendo necessário uma contagem manual. A produtividade estimada em LOCs pretende estimar a quantidade de linhas de código produzidas
por uma determinada quantidade de esforço.
A técnica de Linha de Código, apesar de ser de fácil medição, apresenta limitações.
Além de ser dependente de linguagem de programação, ela está ligada diretamente a uma
fase do ciclo de desenvolvimento de um projeto, a construção. Isso torna a medição do pro28
jeto muito tardia, dicultando a estimativa mais precisa de parâmetros do projeto, como
esforço, prazo e custo em fases mais iniciais do projeto. É mais fácil analisar, juntamente
com o usuário, as suas requisições (requisitos) do que as linhas de código produzidas por
elas (ALBRECHT, 1983). Outro problema é a inexistência de uma padronização de contagem, pois não há uma denição de certos aspectos do código fonte, como por exemplo,
os comentários e declarações de dados. Ela é uma técnica vaga, ambígua e inadequada
para medir tamanho de projetos (SCHOFIELD, 2005).
Por muito tempo ela foi a métrica mais utilizada, porém aos poucos veio sendo substituída por outras métricas. As novas métricas procuram medir o tamanho das funcionalidades de um software/projeto e não o seu tamanho físico.
2.3.2 PRODUTIVIDADE USANDO PONTOS DE CASO DE USO (PCU)
Pontos de Caso de Uso é um modelo de contagem inspirado na Análise por Pontos de
Função (KARNER, 1993) e baseia-se nos caso de uso e na orientação objeto. A ponderação
de um projeto é feita avaliando-se os atores, casos de uso, além de fatores técnicos e
ambientais (SOUSA, 2011). Estando os casos de uso do projeto denidos, é possível
estimar o tamanho do projeto, de forma simples e ajustada.
A produtividade medida em PCUs considera a quantidade de tempo, que pode ser
em horas, dias, meses para a produção de 1 PCU. Para se chegar ao esforço estimado de
um projeto utilizando o tamanho em PCUs, basta multiplicar o tamanho estimado em
PCUs pela produtividade estimada do projeto. Esta produtividade estimada, deve estar
baseada em projetos que foram medidos em PCUs.
A métrica PCU apresenta problemas com sua padronização (AGUIAR, 2003). O
principal deles se refere ao fato de que o artefato caso de uso não possui um padrão de
preenchimento. Os passos dos casos de uso são descritos de forma subjetiva e não existe
uma padronização predominante (VIEIRA, 2007). O formato de preenchimento pode ser
diferente entre empresas, equipes e até mesmo na mesma equipe é possível encontrar dois
analista preenchendo casos de uso com formato diferentes um do outro. Desta forma, a
técnica, em parte, depende de aspectos que estão diretamente ligados ao formato do caso
de uso. Sem a padronização do artefato de contagem, não se pode garantir uma contagem
padronizada.
Uma segunda limitação da técnica de PCU diz respeito ao fato de não existir o tamanho
estimado no inicio de um projeto (AGUIAR, 2003). Sem uma estimativa sobre o tamanho,
29
não se pode derivar o esforço, prazo e custo estimados do projeto. A análise de viabilidade
de um projeto não poderá ser feita utilizando essa métrica. Por esses motivos, apesar de
ser um técnica bem difundida, a PCU não pode ser considerada completamente adequada
para servir de medida de produtividade de uma empresa.
2.3.3 PRODUTIVIDADE USANDO ANÁLISE POR PONTOS DE FUNÇÃO (APF)
A técnica de Análise por Pontos de Função (APF) é a mais utilizada no mercado para
medir o tamanho funcional dos projetos de desenvolvimento e melhoria de software. Ela foi
inicialmente denida por especialistas no assunto de métricas na IBM, sem uma referência
explícita a uma fundamentação teórica (ABRAN, 1996). A unidade de medida é o Ponto
de Função (PF). Hoje a técnica é uma padrão internacional ISO 20926:2010 e apresenta-se
descrita em um manual de contagem CPM (Counting Practices Manual ), atualmente em
sua versão 4.3.1, publicado e mantido pelo IFPUG (International Function Point Users
Group ).
A APF baseia-se na contagem de funções que armazenam os dados da aplicação, que
está sendo contada, e nas funções transacionais que manipulam esses dados. O manual
limita-se a descrever uma técnica de medição do tamanho funcional de projetos e sistemas
(IFPUG, 2010). A técnica não dene, dentre outras coisas, como devemos tratar indicador
de produtividade e nem custos (precicação). O método de contagem em pontos de função,
utilizado neste estudo, é descrito a seguir:
1) Encontrando os Processos Elementares: o gerente de projeto deve encontrar os processos elementares nos uxo dos casos de uso. Um processo elementar é a menor unidade
de atividade signicativa para o usuário especicador (IFPUG, 2010). Basicamente para
cada processo elementar encontrado existe uma função transacional associada a ela. Depois de encontrar as funções transacionais o gerente de projeto deve identicar os dados
que são manipulados por estas funções.
2) Encontrando as Funções de Dados: durante a análise das funções transacionais
é possível identicar as funções de dados que são manipuladas por estas funções. A
presença de um modelo de dados lógico é importante para identicar de forma mais precisa
os dados, porém este modelo nem sempre está presente na documentação dos projetos.
Assim como cada função transacional, cada função de dados possui uma complexidade
que corresponderá a um valor em PF. Porém cada função de dados pode ser utilizada por
mais de uma função transacional (mantida e/ou lida) e em diferentes casos de uso. Para
30
solucionar este problema, o gerente de projeto pode decidir por estas duas possibilidades:
2.1) selecionar um caso de uso dono da função: um caso de uso dono é o caso de uso
mais importante (sob o ponto de vista do usuário especicador) ou aquele que mais usa
a função de dado. Para este estudo, a função de dado vai contribuir para o tamanho
do caso de uso dono. 2.2) dividir a contribuição da função de dado: cada caso de uso
que manipular o dado deve receber uma parte da contribuição da função de dado que
manipula. O percentual de divisão deve ser determinado pelo gerente de projeto.
3) Encontrando o tamanho estimado em PF do caso de uso: o somatório da contribuição das funções transacionais e de dados de um caso de uso resulta no tamanho
estimado do caso de uso em PF.
A técnica de APF possui, dentre outros, os seguintes benefícios e vantagens (PARO,
1995):
a) Conta o tamanho funcional de um pacote adquirido;
b) Normaliza a comparação de software, pois consegue através do tamanho funcional
parametrizar os sistemas com uma medida padrão e objetiva;
c) Através de seu cálculo, tem-se uma estimativa de esforço, prazo e custo de um
projeto de manutenção ou desenvolvimento de software;
d) Permite analisar produtividade dos processos e a qualidade dos produtos produzidos;
e) Por ser um padrão, permite que seja utilizada para comparar indicadores de diferentes empresas;
f) Possibilita a criação de baseline para estimativas;
g) Pode ser utilizada em qualquer momento do ciclo de desenvolvimento de um projeto,
ao contrário do LOC e do PCU.
Adicionalmente pode se estabelecer correlações do tamanho do projeto com o esforço
de desenvolvimento ou manutenção do projeto. Havendo essa correlação, a técnica de
APF pode ser utilizada como uma técnica de estimativa dos projetos de software (CONNOLLEY, 1990).
A produtividade medida em PF considera a quantidade de tempo, que pode ser em
horas, dias, meses para a produção de 1 PF. Para se chegar ao esforço estimado de um
31
projeto utilizando o tamanho em PF, basta multiplicar o tamanho estimado em PFs pela
produtividade estimada do projeto. Esta produtividade estimada, deve estar baseada em
projetos que foram medidos em PFs.
Este trabalho utiliza PF como medida básica no cálculo do indicador de produtividade,
as demais métricas descritas não são utilizadas. PF é uma medida paramétrica que busca o
tamanho funcional dos produtos de software produzidos (IFPUG, 2010). Parametrizando
o tamanho é possível medir projetos de naturezas, equipes, empresas diferentes em uma
unidade de medida de tamanho comum a todos os projetos.
A fórmula para se encontrar a produtividade do projeto utiliza duas medidas: a
primeira é o total de esforço, em homem hora (HH), de todos os recursos que trabalham
no projeto medido. A segunda é o tamanho funcional do escopo do projeto trabalhado
em PF. A seguir é descrita da fórmula da produtividade.
Produtividade = Esforço/Tamanho (HH/PF)
Os parâmetros custo e prazo de um projeto usam a produtividade como medida de cálculo. Sabendo a produtividade estimada e esperada, é possível se chegar às estimativas
de prazo e custo do projeto. Para saber a produtividade estimada, a empresa precisa ter
uma base histórica de registro de produtividades de projetos passados. Existem tabelas
de produtividades de desenvolvimento de software publicadas por órgão e empresas especializadas em benchmarking de projetos, por exemplo o ISBSG (ISBSG, 2012). Porém
este números devem ser utilizados com cuidado, pois a memória de cálculo dessas produtividades é baseada no histórico de projetos de outras empresas. Esses números podem
divergir bastante da realidade de quem busca uma produtividade média estimada para
utilizar em seu projeto de software.
2.4 REGRAS DE ASSOCIAÇÃO E O ALGORITMO APRIORI
Representam padrões onde a ocorrência de eventos em conjunto é alta. Podemos dizer que
é a probabilidade de que um conjunto de itens apareça em uma transação, dado que outro
conjunto esteja presente. Um exemplo de tal tipo de regra seria 75% dos consumidores
que compram o produto A e B também compram o produto C (ARBEX, 2013).
O objetivo de minerar regras de associação é encontrar todos os conjuntos de itens
que frequentemente ocorrem de forma conjunta na base de dados e formar regras a partir
32
destes conjuntos.
As regras de associação são consideradas um método não supervisionado, e obtém o
segundo lugar em percentual de utilização em aplicações, so cando atrás de classicação
(ARBEX, 2013).
As regras de associação são representadas da seguinte forma: X ⇒ Y (lê-se X implica
em Y) , onde X é o antecessor e Y o consequente e X e Y são dois itemsets (conjunto de
itens frequentes) distintos na base de dados.
Cada regra da forma X ⇒ Y possui duas medidas que determinam sua validade no
conjunto de dados e também limitam a quantidade de regras extraídas. São eles o suporte
e a conança. Estes possibilitam o descarte das regras julgadas de pouco interesse, já que
são menos frequentes e conáveis.
A função do suporte é determinar a frequência que ocorre um itemset dentre todas as
transações da base de dados, é a porcentagem de transações onde este itemset aparece.
Um itemset será considerado frequente se o seu suporte for maior ou igual a um suporte
mínimo estabelecido previamente.
O algoritmo APRIORI é considerado um clássico na extração de regras de associação.
Ele foi proposto pela equipe de pesquisa QUEST da IBM que deu origem ao Software
Intelligent Miner. Este algoritmo faz recursivas buscas no banco de dados à procura dos
conjuntos frequentes (conjuntos que satisfazem um suporte mínimo estabelecido).
Alem disto, possui diversas propriedades que otimizam o seu desempenho, como por
exemplo, a propriedade de antimonotonicidade da relação, que diz que para um itemset
ser frequente, todos os seus subconjuntos também devem ser, além de utilizar recursos da
memória principal e estrutura hash.
As três fases que compõem o APRIORI são: geração dos conjuntos candidatos; poda
dos conjuntos candidatos e contagem do suporte (nesta fase é necessário visitar o banco
de dados).
A este algoritmo é aplicada a propriedade de antimonotonia da relação ou propriedade
APRIORI que é descrita a seguir:
Se X está contido em Y e X não é frequente, logo Y também não é frequente.
Isto implica uma diminuição do tempo de execução, pois se X não é frequente, então
não será necessário calcular o suporte de Y, e não será necessária a análise de todas as
combinações entre atributos. Na gura 2.2 é mostrada a fórmula de suporte do algoritmo.
33
>
FIG. 2.2: Fórmula de Suporte do Algoritmo APRIORI
2.4.1 FERRAMENTA DE MINERAÇÃO DE DADOS WEKA
A suite WEKA (Waikato Enviroment for Knowledge Analysis ) é formada por um conjunto
de implementações de algoritmos de diversas técnicas de Mineração de Dados (WEKA,
2013) muito utilizada no meio acadêmico.
Foi desenvolvida em linguagem Java na Universidade de Waikato, Nova Zelândia.
Atualmente é disponível sobre a licensa GPL (DAMASCENO, 2005). Ela está disponível
para download na URL http://www.cs.waikato.ac.nz/ml/weka.
O WEKA possui um formato para a organização dos dados, seu nome é ARFF. O
arquivo deve conter uma série de informações, dentre elas: domínio do atributo, valores
que os atributos podem representar e atributo classe.
O arquivo ARFF é dividido em duas partes, a primeira contém uma lista de todos os
atributos, onde se deve denir o tipo do atributo e/ou os valores que ele pode representar.
Os valores devem estar entre chaves ({}) separados por vírgulas. A segunda é composta
pelas instâncias presentes nos dados, os atributos de cada instância devem ser separados
por vírgula, e aqueles que não contêm valor, o valor deve ser representados pelo caractere
"?". A gura 2.3 mostra alguns métodos implementados pelo WEKA:
>
FIG. 2.3: Métodos Implementados pelo WEKA
34
3 MÉTODO PARA MONITORAMENTO DA PRODUTIVIDADE
Ações gerenciais de ajuste do projeto precisam ser feitas o quanto antes. Assim o
gerente de projeto está mitigando riscos decorrentes do desvio da PEI. Com o método
proposto ele será capaz de saber qual fase do seu PDS está tendo problemas de produtividade dentro do ciclo de desenvolvimento, pois a PAP é medida por iteração. A PAP
deve ser medida em marcos do projeto por iterações ou em outros momentos do projeto,
que o gerente de projeto considerar importante.
A PAP é diferente da PEI e da PFP de um projeto, por ser medida ao longo do
ciclo de desenvolvimento do projeto. A cada término de iteração, módulo ou sprint, a
produtividade do projeto até o momento é medida e comparada com a PEI, onde se
dene o prazo e custo do projeto estimados. Este trabalho divide o projeto em iterações,
mas poderia ser divido em módulos ou sprints. Isto depende de como o PDS divide o
projeto de software que está sendo desenvolvido. Cada iteração corresponde a um subciclo
do PDS. Basicamente toda iteração deve passar por todas as fases do PDS. Caso haja
mudanças no PDS de uma iteração, estas devem ser justicadas pelo gerente de projeto.
Uma justicativa inaceitável é a de redução de esforço para mascarar uma melhora de
produtividade da iteração.
O método proposto está dividido em duas fases: a do Monitoramento e a do Diagnóstico. O método de monitoramento da produtividade é dividido em duas fases. A fase
de Monitoramento é obrigatória e de Diagnóstico não. O gerente de projeto só executa a
fase de Diagnóstico caso a PAP esteja diferente da PEI.
O Monitoramento é a fase que permite que o gerente de projeto acompanhe a PAP do
seu PDS, permitindo que verique se a PAP está diferente da PEI. Na fase de Diagnóstico
o gerente de projeto identica os fatores que zeram a PAP desviar da PEI, através do uso
de um checklist de fatores que impactam a produtividade de um PDS denido no método
proposto por este estudo. Para a fase de Monitoramento existem as seguintes atividades:
Obter Informações da Iteração do Projeto; Estimar o Tamanho e o Esforço da Iteração
e Calcular o Tamanho Final da Iteração e a PAP ou PFP. Para a fase de Diagnóstico
existem as seguintes atividades: Aplicar o Checklist do PMP e Denir Relatório de Ações
de Ajuste (RAA).
35
Além das atividades o PMP possui um papel, insumos de entrada, resultados e uma
ferramenta que armazena dados. O PMP possui um papel chamado Gerente de Projeto,
responsável pela execução do PMP, e uma Ferramenta que é uma Planilha com os Dados da Iteração. São insumos de entrada (input): Informações da Iteração do Projeto,
Esforço Real da Iteração, Relatório de Acompanhamento do Projeto (RAP) e o checklist
respondido. São resultados do PMP (output): PAP, PFP, checklist respondido e o RAA.
Este estudo adota o agrupamento funcional por caso de uso. O caso de uso é um
documento utilizado para descrever os requisitos na visão do usuário especicador do
projeto. Outras formas de agrupamento podem ser utilizadas no PMP, como, por exemplo,
documentos com as histórias utilizadas em metodologias ágeis.
Para exemplicar o PMP, é apresentado ao longo de sua descrição um projeto que foi
utilizado na amostragem da base histórica da empresa avaliada.
O projeto é uma manutenção com o tamanho funcional estimado em 70 PFs. O
PDS que foi utilizado para o seu desenvolvimento foi do tipo completo (ver Anexo 2),
a linguagem predominante foi Java. O esforço estimado para o seu desenvolvimento foi
de 980 horas. A PEI denida pelo gerente de projeto foi de 14 H/PF. A quantidade de
recursos foi de 4 analistas e o prazo para a entrega cou acordado para 2 meses. Este
projeto foi dividido em 2 iterações, sendo que a primeira teve 4 casos de uso e a segunda
teve apenas 2 casos de uso. Este projeto apresentou durante o seu desenvolvimento perda
de produtividade no seu PDS.
3.1 FASE DO MONITORAMENTO
O gerente de projeto deve analisar se a PAP da iteração está diferente da PEI. O monitoramento é a fase responsável pela medição das iterações entregues e a avaliação de que
o PDS precisa ou não de ajustes para não haver desvio no custo e prazo ao término do
projeto. A gura 3.1 mostra o gráco SPEM (SPEM, 2008) da fase de Monitoramento
do PMP.
3.1.1 DEFINIÇÃO DA PRODUTIVIDADE DE ACOMPANHAMENTO DE UM PDS
(PAP)
O objetivo dessa seção é avaliar se a PAP da iteração está diferente da PEI. Caso esteja,
o gerente de projeto deverá avaliar os motivos dessa mudança.
36
FIG. 3.1: Gráco SPEM (SPEM, 2008) do PMP (fase Monitoramento)
O PMP mede a PAP realizada em uma iteração para saber qual caso de uso teve
a PAP diferente da PEI do projeto. Mas para avaliar uma iteração, o PMP calcula a
PAP da iteração. O cálculo da PAP da iteração é realizado somando-se o esforço para o
desenvolvimento da iteração dividido pelo tamanho dos casos de uso da iteração em PF.
Se a PAP da iteração não desviou da PEI ou cou acima desta, signica que o projeto
cumprirá o prazo estimado e o custo estimado não será acrescido por consequência do
prazo. Se a PAP da iteração estiver abaixo da PEI, o projeto atrasará e haverá aumento
de custo.
Cada fase de uma iteração é responsável por uma parte do esforço estimado da iteração.
O gerente de projeto deve estabelecer como deve ser distribuído o esforço despendido em
cada fase do PDS na iteração. Normalmente o PDS possui uma divisão de esforço por
fase padrão, porém o gerente de projeto pode alterar esta distribuição para adequar a
realidade da iteração do seu projeto. Esta divisão de esforço entre as fases deve se basear
em dados históricos de projetos passados ou por experiência própria do gerente de projeto.
O importante é que esta distribuição seja realista.
Sendo necessário, o gerente de projeto deve, a cada iteração, tomar as ações necessárias
para ajustes no PDS. Estas ações vão ajustar as atividades dentro do processo do projeto
analisado.
37
3.1.2 ATIVIDADE 1 - OBTER INFORMAÇÕES DA ITERAÇÃO DO PROJETO.
O objetivo dessa atividade é coletar as informações do projeto que serão utilizadas em
outras atividades do PMP.
Nesta atividade, o gerente de projeto deve obter como insumos de entrada as seguintes
informações: os casos de uso da iteração (ou outro documento equivalente adotado pelo
PDS do projeto), qual é a iteração do projeto, as fases do PDS da iteração, o percentual
de distribuição de esforço por fase do PDS e a PEI.
O armazenamento dessas informações em uma Planilha com os Dados da Iteração
(PDI) é o resultado dessa atividade, pois estes dados serão necessários em atividades
futuras do PMP. Estes dados são: o número da iteração do projeto, o nome dos casos
de uso da iteração, as fases do PDS da iteração e o percentual de distribuição de esforço
por fase do PDS do projeto. A gura 3.2 apresenta um exemplo de PDI preenchido que
atende esta atividade do PMP.
O projeto exemplo foi dividido em 2 iterações, sendo que a primeira teve 4 casos de
uso e uma PEI de 14 H/PF. Para usar o PMP, o gerente de projeto deve dividir sua
iteração em fases do PDS. Assim é possível fazer uma análise da PAP por fase.
No PDS completo da organização está prevista as fases de Requisitos, Análise e Projeto, Construção, Testes, Homologação e Implantação. Para cada fase está denido um
percentual de esforço (tamanho em PF) do ciclo. A seguir é apresentada a lista de fase
por percentual de esforço (tamanho) do PDS completo da organização avaliada.
a) Requisitos = 25%
b) Análise e Projeto = 10%
c) Construção = 40%
d) Testes = 10%
e) Homologação = 10%
f) Implantação = 5%
38
FIG. 3.2: Exemplo da PDI preenchida na Atividade - Obter Informações da Iteração do
Projeto
3.1.3 ATIVIDADE 2 - ESTIMAR O TAMANHO E O ESFORÇO DA ITERAÇÃO.
O objetivo que o gerente de projeto deve alcançar nessa atividade é a estimativa do
tamanho e esforço da iteração.
O insumo de entrada desta atividade será o conjunto de casos de uso da iteração
medida. A organização que adotar o PMP poderá utilizar outro tipo de artefato para
registro dos requisitos do projeto. O gerente de projeto deve obter a relação dos nomes
dos casos de uso na PDI.
O gerente de projeto, exercendo o seu papel nesta atividade do PMP, deve contar em
PF estas funcionalidades por caso de uso no início da iteração. Apesar de existirem outras
alternativas, PF é o método de dimensionamento funcional proposto por este estudo. A
escolha pela APF foi motivada por ela ser a técnica de dimensionamento funcional de
software mais difundida no mundo e pelo conhecimento que o autor tem sobre a técnica.
A organização que adotar o PMP poderá usar outra técnica de dimensionamento funcional.
Ao nal do cálculo, o gerente de projeto deve armazenar na PDI o tamanho de cada
caso de uso, o somatório do tamanho de todos os casos de uso da iteração. Para encontrar
a estimativa de esforço em horas de uma iteração, o gerente de projeto deve multiplicar
39
a PEI pelo tamanho estimado de todos os casos de uso da iteração. O valor da PEI é
obtido na PDI.
Como resultado dessa atividade, o gerente de projeto deve armazenar as seguintes
informações na PDI: o valor em PF estimado de cada caso de uso da iteração, o somatório
do tamanho estimado dos casos de uso da iteração, o esforço estimado por caso de uso e
o esforço estimado da iteração.
Voltando ao projeto exemplo o gerente de projeto calcula os PFs estimados das funcionalidades por caso de uso da iteração. A primeira iteração teve 4 casos de uso. A seguir
é listada a quantidade de PFs por caso de uso. Essa medição foi feita após o detalhamento
dos casos de uso no PDS e não ao nal da iteração.
a) Caso de Uso 1 = 20 PFs
b) Caso de Uso 2 = 7 PFs
c) Caso de Uso 3 = 14 PFs
d) Caso de Uso 4 = 3 PFs
Logo a primeira iteração teve 44 PFs estimados.
Para encontrar a estimativa de esforço em horas da primeira iteração, o gerente de
projeto deve multiplicar a PEI pelo tamanho de todos os casos de uso da iteração estimados.
Para este projeto o tamanho estimado da primeira iteração é de 44 PFs e a PEI é de
14 H/PF. Logo o esforço estimado da iteração é de 616 horas. O gerente de projeto deve
armazenar na PDI o esforço estimado por caso de uso e o total de esforço estimado da
iteração. A gura 3.3 apresenta um exemplo de PDI preenchido que atende esta atividade
do PMP.
Essas horas de esforço são as previstas para a alocação de esforço de toda a equipe do
projeto durante a iteração. O gerente de projeto precisa monitorar a apropriação (horas)
e o escopo da iteração (tamanho) durante a iteração. Se há super ou subalocação de
horas existem problemas com o esforço, se há mudança de escopo ou retrabalho durante
a iteração existe um aumento ou redução do tamanho da iteração. Esse fatores podem
impactar a PAP da iteração.
40
FIG. 3.3: Exemplo da PDI preenchida na Atividade - Estimar o Tamanho e o Esforço da
Iteração
3.1.4 ATIVIDADE 3 - CALCULAR O TAMANHO FINAL DA ITERAÇÃO E A PAP
OU PFP.
Diferente da atividade anterior, aqui o gerente de projeto objetiva o cálculo do tamanho
nal da iteração em PF que será a PAP ou PFP da iteração.
No nal de cada iteração, o gerente de projeto deve calcular o total de horas de esforço
real (nal) gastos para o desenvolvimento da iteração. Ele obtém esse dado somando
todas as horas apropriadas pelos membros da equipe do projeto em todas as atividades
do projeto. Além do esforço gasto, o gerente de projeto deve medir o tamanho nal em PF
da iteração. Ele obtém este dado realizando a contagem nal em PF do produto entregue
pela iteração. Com estas duas medidas é possível calcular a PAP ou PFP da iteração,
apenas dividindo o esforço real pelo tamanho nal da iteração.
O gerente de projeto, nesta atividade, recebe como insumo de entrada um RAP do
projeto que está sendo acompanhado e o PDI, onde obtém a PEI, o nome dos casos de
uso e os dados do projeto obtido na Atividade 1. A análise do RAP é função do gerente
de projeto de acordo com a experiência que ele possui no projeto medido e em outros
41
projetos anteriores.
O RAP servirá de insumo de entrada para o checklist do PMP na fase de Diagnóstico.
Se a PAP calculada for diferente da PEI e o conteúdo da RAP for relevante o gerente
de projeto passará para a fase de diagnóstico do PMP. A próxima fase começa fazendo a
análise dos fatores que impactaram a PAP da iteração através do checklist do PMP.
Se houve desvio da PAP em relação a PEI o gerente de projeto pode tomar ações de
correção para evitar que este problema se propague pelas iterações seguintes. Se o gerente
de projeto não zer isto corre risco de atrasar e/ou aumentar o custo do projeto, além de
inuenciar a qualidade do produto entregue.
Para se detectar onde ocorreu o desvio da PAP o gerente de projeto deve apurar o
esforço da equipe por fase e fazer cálculo da PAP por fase do PDS. A divisão do tamanho
da iteração deve obedecer a tabela de divisão de percentual por fase denida pelo PDS
ou pelo gerente de projeto. Na PDI está armazenado o valor percentual por fase do PDS
adotado no projeto medido.
Caso seja a última iteração de um projeto, o gerente de projeto precisa calcular a PFP
e fazer a vericação em relação a PEI. Se esta não for a última iteração e o projeto já
teve outras iterações antes desta, o gerente de projeto deve calcular o PAP do projeto
até a presente iteração. O esforço será o somatório de todas as apropriações de todas as
iterações até a presente iteração. O tamanho em PF será o somatório do tamanho em
PF de todos os casos de uso até a presente iteração. Dessa forma, ele poderá comparar a
PEI com a PAP acumulada até o momento no projeto. Se a PAP tem o valor diferente
da PEI, o gerente de projeto deve seguir para o passo seguinte de diagnóstico do PMP
independente em qual momento o projeto se encontra.
Aplicado ao projeto exemplo, no nal da primeira iteração o gerente de projeto calcula
o total de HH de esforço real (nal) gastos para o desenvolvimento da iteração. Além do
esforço gasto o gerente de projeto deve medir o tamanho nal em PF da primeira iteração.
Com estas duas medidas é possível calcular a PAP da iteração.
A seguir é feita a apuração do esforço da equipe do projeto por fase da primeira
iteração.
a) Requisitos = 217,5 Horas
b) Análise e Projeto = 70 Horas
c) Construção = 280 Horas
42
d) Testes = 181,5 Horas
e) Homologação = 70 Horas
f) Implantação = 35 Horas
O gerente de projeto mediu a esforço apropriado pela equipe do projeto e foram apropriadas 854 horas e o tamanho da primeira iteração cou em 50 PFs. O tamanho nal
foi obtido através da recontagem dos casos de uso ao nal da iteração. Se os casos de uso
da iteração mudaram em relação a início da iteração o gerente de projeto deve atualizar
o PDI com a nova relação de casos de uso. O aumento do tamanho desta iteração foi
provocado pelo retrabalho de dois casos de uso (uma Entrada Externa simples de 3 PFs
que faz parte do Caso de Uso 1 que teve seu tamanho aumentado de 20 PF para 23 PF)
e todo o Caso de Uso 4 (que teve seu tamanho duplicado, passou de 3 PFs para 6 PFs).
O tamanho inicial estimada para a primeira iteração foi de 44 PFs e passou para 50 PFs
ao nal da mesma.
Sabendo o tamanho nal da primeira iteração (50 PFs) e o esforço apropriado pela
equipe do projeto na primeira iteraçao (854 horas), basta o gerente de projeto dividir o
esforço pelo tamanho para encontrar a PAP da primeira iteração. Fazendo a divisão a
PAP dá aproximadamente 17 H/PF.
O gerente de projeto obtém a PEI do PDI e detecta desvio da PAP da primeira
iteração em relação a PEI do projeto, o gerente de projeto deve tomar ações de correção
para evitar que este problema se propague pelas iterações seguintes. Se o gerente de
projeto não zer isto corre risco de atrasar e/ou aumentar o custo do projeto, além de
inuenciar a qualidade do produto entregue.
Para saber em qual fase do PMP houve desvio da produtividade é preciso medir a
PAP por fase. A seguir é feito o cálculo dos PFs por fase da primeira iteração do projeto.
a) Requisitos (25%) = 12,5 PFs
b) Análise e Projeto (10%) = 5 PFs
c) Construção (40%) = 20 PFs
d) Testes (10%) = 5 PFs
e) Homologação (10%) = 5 PFs
43
f) Implantação (5%) = 2,5 PFs
Sabendo o tamanho e o esforço por fase da iteração, basta agora o gerente de projeto
calcular a produtividade da iteração por fase do PDS. A seguir é calculada a produtividade
do PDS por fase da primeira iteração.
a) Requisitos = 17,4 H/PF
b) Análise e Projeto = 14 H/PF
c) Construção = 14 H/PF
d) Testes = 36,3 H/PF
e) Homologação = 14 H/PF
f) Implantação = 14 H/PF
Pode ser visto que as fases que desviaram da produtividade inicial do planejamento
foram as de requisitos e de testes. Para chegar a essa conclusão o gerente de projeto
comparou a PAP da fase com a PEI do projeto.
A análise dos motivos do desvio da PAP será feita na fase de Diagnóstico do PMP da
iteração e os dados da iteração devem ser armazenado na PDI. A gura 3.4 apresenta um
exemplo de PDI preenchido que atende esta atividade do PMP.
FIG. 3.4: Exemplo da PDI preenchida na Atividade - Calcular o Tamanho Final da
Iteração e a PAP ou PFP
44
3.2 FASE DO DIAGNÓSTICO
O gerente de projeto deve analisar os impactos positivos e negativos na PAP do seu
projeto. Só assim ele poderá tomar ações de ajuste no PDS para realinhar a produtividade
do projeto. A análise dos impactos no PDS é feita na fase de diagnóstico do PMP. O
principal documento utilizado nesta fase é o checklist. O checklist é estruturado em duas
seções, a primeira com questões que devem ser respondidas para o projeto que está com
a PAP pior que a PEI, e a segunda seção para projetos com a PAP melhor que a PEI.
O checklist deve incluir questões que permitam avaliação de cada fase do PDS. Uma
organização que for usar o PMP deve denir seu próprio conjunto de questões adaptada ao
seu PDS. A seguir é apresentada uma lista de fatores de impacto que podem ser usados no
checklist (SUDHAKAR, 2012) (WALT, 1995): complexidade do projeto; tipo de projeto
(ex. tempo real, distribuído); suporte a inovação; infraestrutura de desenvolvimento;
ambiente de trabalho; integração com outras aplicações; experiência da equipe (análise,
projeto e programação); motivação da equipe, comunicação e coesão; comunicação com
o cliente; maturidade do PDS; reuso (projeto e codicação); frequência na mudança de
requisitos; requisitos não funcionais complexos; linguagem de programação complexa; uso
de vericação (teste e remoção de defeitos); retrabalho (gerenciamento de mudanças);
padrões de qualidade; evolução (aspectos de manutenção, refactoring, etc.); mudanças
na equipe, dentre outras. A gura 3.5 mostra o gráco SPEM (SPEM, 2008) da fase de
Diagnóstico do PMP.
3.2.1 ATIVIDADE 4 - APLICAR O CHECKLIST DO PMP
O objetivo dessa atividade é fazer a avaliação de quais fatores acarretaram alteração no
PAP da iteração do projeto. Essa avaliação é feita através de um checklist.
Esta atividade do PMP deve ser executada, se o gerente de projeto detectar que a PAP
desviou em relação a PEI de forma signicativa e o RAP apresentou aspectos signicativos
durante o acompanhamento do projeto. A decisão de algo ser signicativo é critério que
deve ser denido pelo gerente de projeto baseado na sua experiência e na sua visão geral
do projeto. O desvio pode ser para a melhora ou piora da PAP. O artefato principal
desta atividade é o checklist de avaliação de impactos na PAP. No Anexo 4 deste estudo
encontra-se uma descrição de como o autor deniu o checklist utilizado no PMP.
45
FIG. 3.5: Gráco SPEM (SPEM, 2008) do PMP (fase Diagnóstico)
3.3 ATIVIDADE 5 - DEFINIR RELATÓRIO DE AÇÕES DE AJUSTE (RAA)
O objetivo desta atividade é ter como resultado um relatório que sugere, ao próprio
gerente de projeto, mudanças no PDS do projeto medido. Se as mudanças sugeridas
serão realizadas não é foco da pesquisa, pois cabe decisão do gerente de projeto aplicá-las
ou não.
Após a aplicação do checklist, o gerente de projeto deve denir as ações de ajuste do
PDS. Se ele não executar esta atividade é porque a PAP não sofreu impactos signicativos
em relação a produtividade denida no planejamento inicial ou no momento não cabe
tomar ações em relação ao PDS. A decisão para a criação do RAA é do gerente de projeto,
baseado no RAP, no checklist respondido e no seu conhecimento no projeto medido.
Como insumo de entrada ele terá o RAP e o checklist respondido. Como resultado
dessa atividade ele dene o RAA do PMP para ser aplicado ao PDS.
O gerente de projeto deve realizar a análise do checklist respondido. A seguir o autor
faz uma descrição detalhada de como deve ser feita análise de cada pergunta do checklist.
Parte 1 do checklist (piora da PAP em relação a PEI)
Perguntas:
1) A equipe mudou?
Resposta Sim: o gerente de projeto deve considerar que a mudança de equipe traz
46
impacto na piora da produtividade por conta da perda de conhecimento no projeto. Porém
nem sempre isso ocorre para grandes projetos, pois é comum que outros membros da
equipe que permaneceram no projeto acabem compensando a perda de conhecimento dos
que saíram.
Resposta Não: quando a equipe se mantem estável é comum que melhore a produtividade do projeto ao longo do tempo. Logo, no caso de não haver mudança na equipe o
gerente de projeto a princípio não consideraria esse um possível impacto para a perda da
produtividade do projeto.
2) A iteração sofreu acompanhamento?
Resposta Sim: quando um PDS é acompanhado pelo gerente de projeto e este acompanhamento é bem executado tende a melhorar a produtividade do projeto, pois monitora os
riscos que podem ocorrer no projeto, possibilitando a mitigação destes, ou caso já tenham
ocorrido, o tratamento de forma antecipada.
Resposta Não: PDS sem acompanhamento é preocupante, pois pode estar com riscos
ocorrendo que não estão sendo detectados. Estes riscos podem ser fonte de perda de
produtividade do projeto.
3) Os usuários responsáveis pelos requisitos do projeto mudaram?
Resposta Sim: é comum que novos usuários especicadores mudem os requisitos especicados para atender sua visão particular do negócio. Essa mudança gera retrabalho
e por consequência aumento de esforço e perda de produtividade.
Resposta Não: mesmo assim o gerente de projeto precisa atentar para a mudança ou
aumento de escopo pelos usuários especicadores. Mesmo que eles se mantenham estáveis
é provável que mudem a especicação de requisitos ao longo do projeto, por diversos
motivos como por exemplo mudança de regras de negócio, esquecimento, desconhecimento,
um melhor entendimento do objetivo do projeto ao longo do tempo. Neste caso cabe uma
análise mais cuidadosa da pergunta a seguir.
4) Houve retrabalho?
Resposta Sim: todo retrabalho vem com aumento de esforço. Mesmo que este retrabalho acrescente PFs (tamanho funcional) ao projeto é provável que ele piore a produtividade do projeto.
Resposta Não: neste caso o gerente de projeto não deve considerá-lo impacto para a
perda da produtividade, pois não houve aumento de esforço provocado pelo retrabalho.
5) Foi usado ferramenta para suportar o PDS?
47
Resposta Sim: o uso de ferramentas de apoio é importante para uma boa execução de
um PDS. Além da existência de um ferramental, o gerente de projeto precisa avaliar se o
ferramental é adequado ao PDS que está sendo usado no projeto. Se o ferramental não
está adequado a melhor resposta seria um não.
Resposta Não: provavelmente este PDS está tendo perda de produtividade por falta
de ferramentas. Pois muitas atividades que poderiam ser automatizadas estão sendo feitas
manualmente pela equipe do projeto, acarretando perda de performance e aumento de
risco de erros. Com isso gerando retrabalho provocado pela própria equipe do projeto.
6) Foi utilizada ferramenta para os testes?
Resposta Sim: a análise que o gerente de projeto tem que fazer aqui é a mesma da
pergunta anterior. Porém o uso de ferramental para testes é muito mais importante que
para outras disciplinas do PDS. O não uso de ferramental de testes provoca mais impactos
na qualidade e no aumento de esforço do projeto. O teste é responsável pela validação
e vericação do requisito do usuário, se não bem realizada deixará que inconformidades
cheguem ao produto nal acarretando retrabalho em fases tardias do projeto, o que aumenta o esforço do projeto e por consequência redução da produtividade.
Resposta Não: mesma análise da pergunta anterior, com o agravante de ser na disciplina de testes.
Parte 2 do checklist (melhora da PAP em relação a PEI)
7) Houve reuso de requisitos?
Resposta Sim: o reuso de requisito melhora bastante a produtividade. É uma boa
prática criar padrões de casos de uso para atender determinados domínios de requisitos,
como por exemplos cadastros básicos (cria, alterar, consultar, apagar algo). Isso reduz o
esforço e diminui o risco de erro, evitando retrabalho.
Resposta Não: não quer dizer que será um problema para a produtividade do projeto,
mas deve deixar o gerente de projeto mais atendo quando a qualidade dos casos de uso.
Por conta disso, ele precisa colocar no seu projeto testes nos requisitos para evitar que
erros sejam propagados e descobertos tardiamento. Quando mais tarde for descoberto o
erro mais esforço e perda de produtividade.
8) Não foi encontrado erro nos requisitos especicados?
Resposta Sim: neste caso não haverá aumento de esforço e por consequência não
piorará a produtividade do projeto.
Resposta Não: foram encontrados erros nos requistos. Dependendo da natureza do
48
erro a perda de produtividade será maior ou menor no projeto. Se o erro foi provocado
pelo usuário especicador provavelmente haverá uma acréscimo de tamanho no projeto por
conta do retrabalho, compensando o aumento de esforço para a reconstrução do requisitos.
Por outro lado, se o erro foi por culpa da própria equipe do projeto, haverá aumento de
esforço com perda de produtividade.
9) Não houve subalocação de horas no projeto?
Resposta Sim: o gerente de projeto pode considerar que o esforço apropriado pela
equipe do projeto está adequado e não causou impacto na produtividade. Neste caso o
gerente de projeto deve analisar que este item é neutro no impacto da produtividade.
Resposta Não: este é um típico problema nos projetos que tem baixa performance no
seu PDS. Os membros da equipe do projeto não apropriam as horas corretamente para
não demonstrar a falta de produtividade no processo. Dessa forma estão mascarando a
verdadeira produtividade do projeto. Cabe aqui o gerente de projeto monitorar mais de
perto a apropriação (apropriação diária) ou até mesmo fazer uma análise comparativa
do esforço que os membros do projeto tiveram em outros projetos, realizando as mesmas
atividades.
10) Não houve integração com outras aplicações?
Resposta Sim: quanto menor a quantidade de integrações melhor será a produtividade
do projeto. Toda integração, principalmente aquelas que ainda não estão bem estruturadas, acarretam perda de produtividade de um projeto, por conta do aumento de esforço
gerado pelo retrabalho e testes.
Resposta Não: é uma grande preocupação que o gerente de projeto precisa ter. Cada
integração é um grande risco de retrabalho, pois outras aplicações podem estar mudando
suas interfaces e por consequência gerando retrabalho no projeto.
11) Foi utilizada prototipação?
Resposta Sim: a prototipação é uma forma bem eciente do usuário especicador
observar se o seu requisito especicado está de acordo com a sua expectativa. Além disso,
permite que o analista de requisitos conheça a necessidade do usuário e consiga descrever
melhor os casos de uso, reduzindo o retrabalho e melhorando a produtividade.
Resposta Não: não quer dizer que a ausência de protótipos vai reduzir a produtividade, mas não usar protótipos aumenta o risco de retrabalho por conta de mudança de
especicação pelo usuário especicador ou até mesmo por erro de especicação dos casos
de uso.
49
12) Foi utilizada métrica para o acompanhamento da iteração?
Resposta Sim: a métrica é importante para o projeto, pois permite o controle do
escopo do mesmo. O gerente de projeto sabendo o tamanho do projeto planeja melhor a
sua execução, melhora o acompanhamento, além de permitir avaliar a produtividade do
mesmo comparando com outros projetos já realizados.
Resposta Não: não se pode gerenciar o que não se pode medir. Em grande parte dos
projetos de desenvolvimento de software isso é uma verdade. O gerente de projeto que
não acompanha seu projeto através de uma métrica corre o risco de perder o controle do
escopo, não controlar o retrabalho e não conseguir medir a PAP.
13) Os usuários especicadores dos requisitos conhecem bem os requisitos?
Resposta Sim: provavelmente não haverá retrabalho provocado pela mudança dos
requisitos por parte do usuário especicador. Essa característica não elimina o risco de
retrabalho pela mudança do requisitos, apenas reduz a probabilidade dela ocorrer.
Resposta Não: o gerente de projeto precisa car bem atento se essa característica
existir em seu(s) usuário(s) especicador(es), pois é um grande risco de retrabalho e por
consequência perda de produtividade. Nem sempre o usuário especicador quer assumir
que alterou a especicação, pois simplesmente ele declara que os analistas de requisitos já
deveriam saber do que ele estava falando, e os mesmos deveriam o ter questionado melhor
durante o levantamento de requisitos.
14) Não houve teste não-funcional a partir da especicação dos requisitos?
Resposta Sim: a empresa utilizada neste estudo, essa característica fez a produtividade
melhorar quando não houve testes não-funcional a partir da especicação dos requisitos do
usuário especicador. A explicação para isso deve ser pela redução de esforço apropriado
que exitiria para a execução dessa atividade. Não foi relatado, nos projetos pesquisados
na base histórica, aumento de esforço por conta do retrabalho na ausência desta atividade.
Resposta Não: no caso contrário há aumento de esforço para a realização desta atividade. Principalmente se não foi utilizado ferramenta para os testes não-funcionais.
15) Não foram usados componentes de outras aplicações?
Resposta Sim: o não uso de componentes melhora a produtividade dos projetos avaliados, pois não há perda de esforço para adaptação dos mesmos e testes para vericar seu
funcionamento.
Resposta Não: neste caso a análise é a inversa da resposta do sim.
Com a análise do checklist respondido em conjunto com a análise do RAP o gerente de
50
projeto elabora o resultado dessa atividade no RAA. No Anexo 5 é apresentado o modelo
de RAA proposto pelo PMP.
Se for a iteração nal do projeto, os resultados presentes no RAA devem alimentar a
base histórica dos projetos da empresa, inclusive com as lições aprendidas. Esta atividade
está presente no PDS do projeto e não faz parte do escopo do PMP.
Na primeira iteração do projeto exemplo o diagnóstio identicou problemas em relação
ao retrabalho e o não uso de ferramental para realização dos testes. Este diagnóstico foi
obtido da análise do checklist respondido e do RAP do projeto. O RAP transcreve
mudanças de escopo nos requisitos do projeto, provocados pelo cliente. Além disso relata
a diculdade da equipe de testes na realização das suas atividades, pois estas estão sendo
realizadas manualmente, sem uso de ferramenta automatizada.
Com relação ao retrabalho o gerente de projeto deve atuar junto a equipe de requisitos
e do cliente para melhorar o levantamento de requisitos, reduzindo a mudança dos mesmos
ao longo da iteração. Já com relação aos testes, o não uso de ferramental foi o motivo
que causou o maior aumento de esforço em relação ao previsto.
Com estas ações denidas, o gerente de projeto deve iniciar a segunda iteração e
focando nestes ajustes no PDS do projeto.
51
4 ESTUDO DE CASO
Este capítulo apresenta um exemplo da aplicação do PMP. O objetivo é aplicar em
um dos projetos utilizados na amostragem da base histórica, que o processo proposto é
valido e pode ser aplicado de forma paralela ao PDS de uma organização.
O projeto teve como resultado um ganho de produtividade ao longo do seu ciclo de
vida de desenvolvimento.
Dessa forma ca evidenciada a aplicação do processo em relação a produtividade de
um projeto de software. Quando se perde produtividade aumenta-se o risco de atrasos e
aumentos de custo, e quando se melhora a produtividade pode ser que o produto gerado
possa estar perdendo qualidade, por conta do não cumprimento integral das fases do PDS.
O estudo de caso é de um projeto de manutenção com o tamanho funcional estimado
em 122 PFs. O projeto possui 10 casos de uso, sendo que 6 foram na primeira iteração, 2
na segunda e 2 na terceira iterações. O PDS que foi utilizado para o seu desenvolvimento
foi o completo (ver Anexo 2), a linguagem predominante foi PHP. O esforço estimado
para o seu desenvolvimento foi de 1159 horas. A PEI denida pelo gerente de projeto foi
de 9,5 H/PF. A quantidade de recursos foi de 3 analistas e o prazo para a entrega cou
acordado para 4 meses. Este projeto foi dividido em 3 iterações e apresentou durante o
seu desenvolvimento ganho de produtividade no seu PDS.
4.1 ITERAÇÃO 1
Na primeira iteração foram desenvolvidos 6 casos de uso. A seguir são descritas todas as
atividades das fases de monitoramento e diagnóstico do PMP para a primeira iteração do
projeto deste estudo de caso.
4.1.1 ATIVIDADE 1 - OBTER INFORMAÇÕES DA ITERAÇÃO DO PROJETO.
Para usar o PMP o gerente de projeto deve dividir sua iteração em fases do PDS. Assim
é possível fazer uma análise da PAP por fase.
A seguir é apresentada a lista de fases por percentual de esforço (tamanho) do PDS
completo da organização avaliada. Neste estudo de caso o gerente de projeto alterou
52
a tabela por conhecer o seu cliente. A alteração que ele fez foi aumentar o percentual
da fase de requisitos para 35% e diminuir o percentual da fase de construção para 30%
em relação a tabela denida pelo PDS. No PDS a fase de requisitos tem 25% e a de
construção tem 40%. O gerente de projeto também redeniu os percentuais das fases de
testes e homologação. Essa redenição de percentuais pode ser para o projeto como um
todo ou por iteração.
a) Requisitos = 35%
b) Análise e Projeto = 10%
c) Construção = 30%
d) Testes = 10%
e) Homologação = 10%
f) Implantação = 5%
O dados obtidos são armazenados na PDI. A gura 4.1 apresenta um exemplo de PDI
preenchido que atende esta atividade do PMP.
FIG. 4.1: Exemplo da PDI preenchida na Atividade de Monitoramento - Obter Informações da Iteração do Projeto
53
4.1.2 ATIVIDADE 2 - ESTIMAR O TAMANHO E O ESFORÇO DA ITERAÇÃO.
O gerente de projeto deve contar os PFs estimados das funcionalidades por caso de uso
da iteração. Neste projeto do estudo de caso, a primeira iteração teve 6 casos de uso.
A seguir é listada a quantidade de PFs por caso de uso. Essa medição foi feita após o
detalhamento dos caso de uso e não ao nal da iteração.
a) Caso de Uso 1 = 25 PFs
b) Caso de Uso 2 = 10 PFs
c) Caso de Uso 3 = 14 PFs
d) Caso de Uso 4 = 3 PFs
e) Caso de Uso 5 = 19 PFs
f) Caso de Uso 6 = 3 PFs
A primeira iteração teve 74 PFs estimados.
Para encontrar a estimativa de esforço em horas da primeira iteração, o gerente de
projeto deve multiplicar a PEI pelo tamanho de todos os casos de uso da iteração estimados.
Para este projeto o tamanho estimado da primeira iteração é de 74 PFs e a PEI é de
9,5 H/PF. Logo o esforço estimado da iteração é de 703 horas.
Estas horas são as previstas para a alocação de esforço de toda a equipe do projeto
durante a iteração. O gerente de projeto precisa monitorar a apropriação (horas) e o
escopo da iteração (tamanho) durante a iteração. Se há super ou subalocação de horas
exitem problemas com o esforço, se há mudança de escopo ou retrabalho durante a iteração
existe um aumento ou redução do tamanho da iteração. Esse fatores podem impactar a
PAP da iteração. A gura 4.2 apresenta um exemplo de PDI preenchido que atende esta
atividade do PMP.
4.1.3 ATIVIDADE 3 - CALCULAR O TAMANHO FINAL DA ITERAÇÃO E A PAP
OU PFP
Ao nal da primeira iteração o gerente de projeto deve calcular o total de HH de esforço
real (nal) gastos para o desenvolvimento da iteração. Além do esforço gasto o gerente de
54
FIG. 4.2: Exemplo da PDI preenchida na Atividade de Monitoramento - Estimar o
Tamanho e o Esforço da Iteração
projeto deve medir o tamanho nal em PF da primeira iteração. Com estas duas medidas
é possível calcular a PAP da iteração.
A seguir é feita a apuração do esforço da equipe do projeto por fase da primeira
iteração.
a) Requisitos = 235 Horas
b) Análise e Projeto = 55,92 Horas
c) Construção = 181,1 Horas
d) Testes = 66,75 Horas
e) Homologação = 67,5 Horas
f) Implantação = 33,73 Horas
55
O gerente de projeto mediu a esforço apropriado pela equipe do projeto e foram apropriadas 640 horas. O tamanho da primeira iteração cou em 71 PFs. O tamanho da
iteração diminuiu, pois houve uma redução de escopo pelo cancelamento do caso de uso
6.
Sabendo o tamanho nal da primeira iteração (71 PFs) e o esforço apropriado pela
equipe do projeto na primeira iteraçao (640 horas), basta o gerente de projeto dividir o
esforço pelo tamanho para encontrar a PAP da primeira iteração. Fazendo a divisão a
PAP ca em aproximadamente 9 H/PF.
Houve desvio da PAP da primeira iteração em relação a PEI do projeto, o gerente de
projeto deve tomar ações de correção para evitar que este problema se propague pelas
iterações seguintes. Se o gerente de projeto não zer isto corre risco de atrasar e/ou
aumentar o custo do projeto, além de inuenciar a qualidade do produto entregue.
Neste projeto o risco, até o momento, está na perda da qualidade por conta da melhora
da PAP em relação a PEI do projeto.
Para saber em qual fase do PMP houve desvio da produtividade é preciso medir a
PAP por fase. A seguir é feito o cálculo dos PFs por fase da primeira iteração do projeto.
a) Requisitos (35%) = 24,85 PFs
b) Análise e Projeto (10%) = 7,1 PFs
c) Construção (30%) = 21,3 PFs
d) Testes (10%) = 7,1 PFs
e) Homologação (10%) = 7,1 PFs
f) Implantação (5%) = 3,55 PFs
Sabendo o tamanho e o esforço por fase da iteração, basta agora o gerente de projeto
calcular a produtividade da iteração por fase do PDS. A seguir é calculado a produtividade
do PDS por fase da primeira iteração.
a) Requisitos = 9,5 H/PF
b) Análise e Projeto = 7,9 H/PF
c) Construção = 8,5 H/PF
56
d) Testes = 9,4 H/PF
e) Homologação = 9,5 H/PF
f) Implantação = 9,5 H/PF
Pode ser visto que as fases que desviaram da PEI foram a de análise e projeto, construção e a de testes. A gura 4.3 apresenta um exemplo de PDI preenchido que atende
esta atividade do PMP.
FIG. 4.3: Exemplo da PDI preenchida na Atividade de Monitoramento - Calcular o
Tamanho Final da Iteração e a PAP ou PFP
Na próxima fase do PMP tem a aplicação do checklist para o diagnóstico das causas
do desvio da PAP.
4.1.4 ATIVIDADE 4 - APLICAR O CHECKLIST DO PMP.
Esta seção detalha os passos denidos pelo PMP para atender a fase de diagnóstico do
PDS do projeto. Esta fase não é obrigatória no PMP, pois nem toda iteração do projeto
terá desvios na sua PAP. Mas para este projeto é obrigatório, pois a PAP da primeira
iteração foi diferente da PEI do projeto. Lendo o RAP do projeto o gerente de projeto
não encontraria nenhum fator que impactaria a PAP da iteração.
No Anexo 4 está descrito o checklist do PMP. Abaixo segue a parte 2 do checklist da
primeira iteração respondido, pois houve melhora na produtividade na iteração.
57
a) Houve reuso de requisitos? Sim
b) Não foi encontrado erro nos requisitos especicados? Sim
c) Não houve subalocação de horas no projeto? Sim
d) Não houve integração com outras aplicações? Sim
e) Foi utilizada prototipação? Sim
f) Foi utilizada métrica para o acompanhamento da iteração? Sim
g) Os usuários especicadores dos requisitos conhecem bem os requisitos? Sim
h) Não houve teste não-funcional a partir da especicação dos requisitos? Sim
i) Não foram usados componentes de outras aplicações? Sim
Diagnóstico: A melhora na produtividade não é por conta do não cumprimento de
algum item do checklist. Aqui o motivo da melhora da produtividade é que a PEI superestimou o esforço do projeto. O gerente de projeto tem uma folga de prazo e custo.
Porém ainda precisa car alerta para as próximas iterações para não perder essa folga ou
até mesmo a produtividade piorar ao ponto de ocasionar atrasos e aumentos de custo do
projeto.
4.1.5 ATIVIDADE 5 - DEFINIR O RAA.
A seguir descrevo o RAA da Iteração 1 preenchido, de acordo com o modelo de RAA
previsto no Anexo 5.
Seção 1: Informações Gerais
Data do Relatório: 10/03/2014
Nome do Gerente do Projeto: Eduardo Alves de Oliveira
Identicação do Projeto: Estudo de Caso
Número da Iteração: 1
A PAP acumulada (ou PFP) em relação a PEI: (X) melhorou ( ) piorou
Seção 2: Itens Impactados do Checklist do PMP (para cada item deve haver a sua
descrição e diagnóstico do impacto)
Não houve.
58
Seção 3: Ações a serem tomadas para a próxima Iteração do PDS ou Lições Aprendidas
O gerente de projeto precisa manter o acompanhamento efetivo do projeto, para manter
a PAP menor ou igual a PEI sem perda de qualidade no produto entregue.
Após a denição do RAA é encerrado o PMP da primeira iteração do projeto do estudo
de caso. Agora será feita a avaliação da iteração 2 do estudo de caso.
4.2 ITERAÇÃO 2
Na segunda iteração foram desenvolvidos 2 casos de uso. A seguir são descritas todas as
atividades das fases de monitoramento e diagnóstico do PMP para a segunda iteração do
projeto deste estudo de caso.
4.2.1 ATIVIDADE 1 - OBTER INFORMAÇÕES DA ITERAÇÃO DO PROJETO.
Para usar o PMP o gerente de projeto deve dividir sua iteração em fases do PDS. Assim
é possível fazer uma análise da PAP por fase.
Para a segunda iteração o gerente de projeto manteve a mesma distribuição de esforço que foi denida na primeira iteração. O gerente de projeto poderia ter mudado
esta distribuição, levando-se em conta mudanças que tenham ocorrido no projeto que
justicassem a mudança na distribuição do percentual pelas fases do PDS.
a) Requisitos = 35%
b) Análise e Projeto = 10%
c) Construção = 30%
d) Testes = 10%
e) Homologação = 10%
f) Implantação = 5%
O dados obtidos são armazenados na PDI. A gura 4.4 apresenta um exemplo de PDI
preenchido que atende esta atividade do PMP.
59
FIG. 4.4: Exemplo da PDI preenchida na Atividade de Monitoramento - Obter Informações da Iteração do Projeto
4.2.2 ATIVIDADE 2 - ESTIMAR O TAMANHO E O ESFORÇO DA ITERAÇÃO.
O gerente de projeto deve contar os PFs estimados das funcionalidades por caso de uso
da iteração. Neste projeto, a segunda iteração teve 2 casos de uso. A seguir é listada a
quantidade de PFs por caso de uso. Essa medição foi feita após o detalhamento dos casos
de uso e não ao nal da iteração.
a) Caso de Uso 7 = 20 PFs
b) Caso de Uso 8 = 10 PFs
A segunda iteração teve 30 PFs estimados e a PEI é de 9,5 H/PF. Logo o esforço
estimado da iteração será de 285 horas. A gura 4.5 apresenta um exemplo de PDI
preenchido que atende esta atividade do PMP.
4.2.3 ATIVIDADE 3 - CALCULAR O TAMANHO FINAL DA ITERAÇÃO E A PAP
OU PFP.
A seguir é feito a apuração do esforço acumulado (iteração 1 e 2) da equipe do projeto
por fase.
a) Requisitos = 323,45 Horas
b) Análise e Projeto = 94,94 Horas
60
FIG. 4.5: Exemplo da PDI preenchida na Atividade de Monitoramento - Estimar o
Tamanho e Esforço da Iteração
c) Construção = 275,73 Horas
d) Testes = 95,95 Horas
e) Homologação = 92,92 Horas
f) Implantação = 42,1 Horas
Nas duas iterações o projeto teve 925 horas de apropriação com o tamanho nal de 101
PFs. Os casos de uso da iteração 2 não sofreram mudança de tamanho nal em relação ao
tamanho estimado. A PAP da segunda iteração cou em aproximadamente 9,16 H/PF.
Para saber em qual fase do PMP houve desvio da produtividade é preciso medir a
PAP por fase. A seguir é feito o cálculo dos PFs por fase do projeto.
a) Requisitos (35%) = 35,35 PFs
b) Análise e Projeto (10%) = 10,1 PFs
c) Construção (30%) = 30,3 PFs
d) Testes (10%) = 10,1 PFs
61
e) Homologação (10%) = 10,1 PFs
f) Implantação (5%) = 5,05 PFs
Sabendo o tamanho e o esforço por fase do projeto, basta agora o gerente de projeto
calcular a produtividade do projeto por fase do PDS. A seguir é calculado a produtividade
do PDS por fase.
a) Requisitos = 9,15 H/PF
b) Análise e Projeto = 9,4 H/PF
c) Construção = 9,1 H/PF
d) Testes = 9,5 H/PF
e) Homologação = 9,2 H/PF
f) Implantação = 8,34 H/PF
Nenhuma das fases teve sua produtividade pior que a PEI do projeto. Porém tirando
a fase de testes todas as outras tiveram melhora na produtividade em relação a estimada
no PEI. Neste caso o gerente de projeto deve diagnosticar os motivos dessa melhora na
produtividade no projeto. A análise dos motivos do desvio da PAP será feita na fase de
Diagnóstico do PMP da iteração e os dados da iteração devem ser armazenado na PDI.
A gura 4.6 apresenta um exemplo de PDI preenchido que atende esta atividade do
PMP.
Na próxima fase do PMP tem a aplicação do checklist para o diagnóstico das causas
do desvio da PAP.
4.2.4 ATIVIDADE 4 - APLICAR O CHECKLIST DO PMP.
Esta seção detalha os passos denidos pelo PMP para atender a fase de diagnóstico do
PDS do projeto. Esta fase não é obrigatória no PMP, pois nem todo ciclo de projeto terá
desvios na sua PAP. Mas para este projeto é obrigatório pois a PAP foi diferente da PEI
do projeto. No RAP do projeto o gerente de projeto relatou problemas com a apropriação
de horas da equipe na implantação do projeto.
No Anexo 4 está descrito o checklist do PMP. Abaixo segue a parte 2 do checklist da
segunda iteração respondido, pois houve melhora na produtividade na iteração.
62
FIG. 4.6: Exemplo da PDI preenchida na Atividade de Monitoramento - Calcular o
Tamanho Final da Iteração e a PAP ou PFP
a) Houve reuso de requisitos? Sim
b) Não foi encontrado erro nos requisitos especicados? Sim
c) Não houve subalocação de horas no projeto? Não
d) Não houve integração com outras aplicações? Sim
e) Foi utilizada prototipação? Sim
f) Foi utilizada métrica para o acompanhamento da iteração? Sim
g) Os usuários especicadores dos requisitos conhecem bem os requisitos? Sim
h) Não houve teste não-funcional a partir da especicação dos requisitos? Sim
i) Não foram usados componentes de outras aplicações? Sim
Diagnóstico: Houve melhora na produtividade mas foi detectado subalocação de horas apropriadas na fase de Implantação. O gerente de projeto deve criar uma ação de
monitoramento da apropriação de horas do projeto.
63
4.2.5 ATIVIDADE 5 - DEFINIR O RAA.
A seguir é descrito o RAA da Iteração 2 preenchido, de acordo com o modelo de RAA
previsto no Anexo 5.
Seção 1: Informações Gerais
Data do Relatório: 15/04/2014
Nome do Gerente do Projeto: Eduardo Alves de Oliveira
Identicação do Projeto: Estudo de Caso
Número da Iteração: 2
A PAP acumulada (ou PFP) em relação a PEI: (X) melhorou ( ) piorou
Seção 2: Itens Impactados do Checklist do PMP (para cada item deve haver a sua descrição e diagnóstico do impacto)
2.1.1) Descrição: Não houve subalocação de horas no projeto? Não
2.1.2) Diagnóstico: Foi detectado subalocação de horas apropriadas na fase de Implantação.
Seção 3: Ações a serem tomadas para a próxima Iteração do PDS ou Lições Aprendidas
O gerente de projeto deve ajustar o PDS de alguma forma para que possa evitar essa
subalocação, pois ela acaba distorcendo o valor da PAP do PDS do projeto.
Após a denição do RAA é encerrado o PMP da segunda iteração do projeto do estudo
de caso. Agora será feita a avaliação da iteração 3 do estudo de caso.
4.3 ITERAÇÃO 3
Na terceira e última iteração do projeto do estudo de caso foram desenvolvidos 2 casos de
uso. A seguir são descritas todas as atividades das fases de monitoramento e diagnóstico
do PMP para a terceira iteração do projeto deste estudo de caso.
4.3.1 ATIVIDADE 1 - OBTER INFORMAÇÕES DA ITERAÇÃO DO PROJETO.
Para usar o PMP o gerente de projeto deve dividir sua iteração em fases do PDS. Assim
é possível fazer uma análise da PAP por fase.
Para a terceira iteração o gerente de projeto manteve a mesma distribuição de esforço
que foi denida na primeira e segunda iterações. O gerente de projeto poderia ter mudado
esta distribuição, levando-se em conta mudanças que tenham ocorrido no projeto que
justicassem a mudança na distribuição do percentual pelas fases do PDS.
64
a) Requisitos = 35%
b) Análise e Projeto = 10%
c) Construção = 30%
d) Testes = 10%
e) Homologação = 10%
f) Implantação = 5%
O dados obtidos são armazenados na PDI. A gura 4.7 apresenta um exemplo de PDI
preenchido que atende esta atividade do PMP.
FIG. 4.7: Exemplo da PDI preenchida na Atividade de Monitoramento - Obter Informações da Iteração do Projeto
4.3.2 ATIVIDADE 2 - ESTIMAR O TAMANHO E O ESFORÇO DA ITERAÇÃO.
O gerente de projeto deve contar os PFs estimados das funcionalidades por caso de uso
da iteração. Neste projeto, a terceira iteração teve 2 casos de uso. A seguir é listada a
quantidade de PFs por caso de uso. Essa medição foi feita após o detalhamento dos caso
de uso e não ao nal da iteração.
a) Caso de Uso 9 = 7 PFs
b) Caso de Uso 10 = 4 PFs
65
A terceira iteração teve 11 PFs estimados.
O tamanho estimado da terceira iteração é de 11 PFs e a produtivida denida no
planejamento inicial do projeto foi de 9,5 H/PF. Logo o esforço estimado da iteração será
de 104,5 horas. A gura 4.8 apresenta um exemplo de PDI preenchido que atende esta
atividade do PMP.
FIG. 4.8: Exemplo da PDI preenchida na Atividade de Monitoramento - Estimar o
Tamanho e Esforço da Iteração
4.3.3 ATIVIDADE 3 - CALCULAR O TAMANHO FINAL DA ITERAÇÃO E A PAP
OU PFP.
Como esta é a última iteração do projeto o gerente de projeto precisa vericar se a PFP
está diferente da PEI do projeto.
A seguir é feito a apuração do esforço acumulado (iteração 1, 2 e 3) da equipe do
projeto por fase.
a) Requisitos = 360,96 Horas
b) Análise e Projeto = 103,85 Horas
c) Construção = 310,54 Horas
66
d) Testes = 102,85 Horas
e) Homologação = 102,85 Horas
f) Implantação = 48,42 Horas
Nas três iterações o projeto teve 1029,5 horas de apropriação com o tamanho nal
de 112 PFs. Os casos de uso da iteração 3 não sofreram mudança de tamanho nal em
relação ao tamanho estimado. A PFP cou em aproximadamente 9,2 H/PF.
Para saber em qual fase do PMP houve desvio da produtividade é preciso medir a
PAP por fase. A seguir é feito o cálculo dos PFs por fase do projeto.
a) Requisitos (35%) = 39,2 PFs
b) Análise e Projeto (10%) = 11,2 PFs
c) Construção (30%) = 33,6 PFs
d) Testes (10%) = 11,2 PFs
e) Homologação (10%) = 11,2 PFs
f) Implantação (5%) = 5,2 PFs
Sabendo o tamanho e o esforço por fase do projeto, basta agora o gerente de projeto
calcular a produtividade do projeto por fase do PDS. A seguir é calculado a produtividade
do PDS por fase.
a) Requisitos = 9,2 H/PF
b) Análise e Projeto = 9,3 H/PF
c) Construção = 9,2 H/PF
d) Testes = 9,2 H/PF
e) Homologação = 9,2 H/PF
f) Implantação = 9,3 H/PF
67
Todas as fases tem sua produtividade melhor que a PEI do projeto. Sendo assim o
gerente de projeto deve diagnosticar os motivos dessa melhora já no término do projeto.
A análise dos motivos do desvio da PFP será feita na fase de Diagnóstico do PMP da
iteração e os dados da iteração devem ser armazenado na PDI.
A gura 4.9 apresenta um exemplo de PDI preenchido que atende esta atividade do
PMP.
FIG. 4.9: Exemplo da PDI preenchida na Atividade de Monitoramento - Calcular o
Tamanho Final da Iteração e a PAP ou PFP
Na próxima fase do PMP tem a aplicação do checklist para o diagnóstico das causas
do desvio da PPF.
4.3.4 ATIVIDADE 4 - APLICAR O CHECKLIST DO PMP.
Esta seção detalha os passos denidos pelo PMP para atender a fase de diagnóstico do
PDS do projeto. Esta fase não é obrigatória no PMP, pois nem todo ciclo de projeto terá
desvios na sua PAP. Mas para este projeto é obrigatório pois a PFP foi diferente da PEI
do projeto.
No Anexo 4 está descrito o checklist do PMP. Abaixo segue a parte 2 do checklist da
segunda iteração respondido, pois houve melhora na PFP em relação a PEI do projeto.
a) Houve reuso de requisitos? Sim
68
b) Não foi encontrado erro nos requisitos especicados? Sim
c) Não houve subalocação de horas no projeto? Sim
d) Não houve integração com outras aplicações? Sim
e) Foi utilizada prototipação? Sim
f) Foi utilizada métrica para o acompanhamento da iteração? Sim
g) Os usuários especicadores dos requisitos conhecem bem os requisitos? Sim
h) Não houve teste não-funcional a partir da especicação dos requisitos? Sim
i) Não foram usados componentes de outras aplicações? Sim
Diagnóstico: A melhora na PFP não é por conta do não cumprimento de algum item
do checklist. Aqui o motivo da melhora da produtividade é que a PEI foi superestimada.
Por conta disso o projeto foi entregue com prazo e custos menores que o planejado.
4.3.5 ATIVIDADE 5 - DEFINIR O RAA.
A seguir descrevo o RAA da Iteração 3 preenchido, de acordo com o modelo de RAA
previsto no Anexo 5.
Seção 1: Informações Gerais
Data do Relatório: 13/05/2014
Nome do Gerente do Projeto: Eduardo Alves de Oliveira
Identicação do Projeto: Estudo de Caso
Número da Iteração: 3
A PAP acumulada (ou PFP) em relação a PEI: (X) melhorou ( ) piorou
Seção 2: Itens Impactados do Checklist do PMP (para cada item deve haver a sua
descrição e diagnóstico do impacto)
Não houve.
Seção 3: Ações a serem tomadas para a próxima Iteração do PDS ou Lições Aprendidas
O gerente de projeto deve avaliar junto aos responsáveis pela base histórica de projetos
da empresa se cabe uma mudança ou não na produtividade estimada para este tipo de
PDS com a linguagem PHP.
69
4.4 DISCUSSÃO
O processo de acompanhamento proposto permite ao gerente de projeto realizar uma
acompanhamento da produtividade de seu projeto, ao longo do ciclo de vida de seu
desenvolvimento. O grande benefício desse processo em relação a outros métodos de
acompanhamento de produtividade é que este é baseado no requisito funcional do projeto
e permite que o gerente de projeto faça o monitoramento e diagnóstico de impactos que
estão aumentando ou reduzindo a produtividade do projeto em relação à produtividade
estimada no início do projeto.
Utilizar o requisito funcional permite que o projeto seja medido usando uma métrica
funcional de tamanho. A métrica funcional proposta por este estudo é a APF, porém a
empresa que utilizar o PMP poderá utilizar outra métrica funcional, ou seja o PMP é
ajustável em relação à métrica de dimensionamento funcional.
O monitoramento dos impactos é feito através de um checklist que avalia os fatores
que podem estar reduzindo ou aumentando a produtividade do projeto que está sendo
acompanhado. Também o checklist pode ser ajustado de acordo com a base histórica da
empresa que estiver utilizando o PMP. Isso é possível graças ao uso de uma ferramenta de
mineração de dados WEKA e o algoritmo APRIORI, que gera as regras de relação entre
as variáveis antecedentes e a consequente produtividade.
A aplicação do PMP não é possível em projetos que tenham apenas uma iteração, ou
seja, apenas uma entrega denida. Isso ocorre porque o objetivo principal do processo
proposto é monitorar a produtividade do projeto ao longo do ciclo de vida do mesmo. Se
ele tem apenas uma iteração, esse monitoramento não pode ocorrer.
Outra diculdade que a empresa que for adotar o PMP vai encontrar é com relação
a ela possuir uma base histórica de projetos. Caso ela não possua essa base histórica
ela terá diculdades para criar o seu próprio checklist. Isso pode ser contornado através
da aplicação de um questionário que obterá os atributos de projeto que serão candidatos
a antecedentes da variável consequente produtividade nas regras de associação extraídas
pelo algoritmo APRIORI.
4.4.1 O PMP E O GERENCIAMENTO DE CONTRATOS
O PMP, além de atender ao acompanhamento da produtividade de um PDS, pode ser
utilizado para: acompanhar o desembolso de um determinado contrato de desenvolvimento
70
remunerado por esforço baseado em métrica funcional; e ser indicador de controle dos
acordos de níveis de serviço (ANSs) do contrato, que impõem parâmetros de qualidade e
prazo no produto entregue.
Conforme já descrito neste estudo, o PMP monitora a PAP acumulada do projeto a
cada término de uma iteração, em relação a PEI calculada no planejamento inicial do
mesmo. Ocorrendo desvio da PAP em relação a PEI é um indicativo que poderemos
ter problemas de custo, prazo ou na qualidade do produto entregue ao nal do ciclo de
desenvolvimento do projeto.
O acompanhamento do custo pelo PMP ajuda ao gestor do contrato a saber se o
custo estimado, para a execução do projeto, está saindo do previsto ou não durante a
execução do contrato. Inclusive pode alertá-lo de forma antecipada se o contrato irá ter
nanceiro suciente para atender o escopo contratado. O monitoramento das ANSs pelo
PMP permite avaliar se o prazo e a qualidade no nal de cada iteração está atendendo aos
critérios denidos em contrato, podendo ser aplicado penalidades (multas) ao contratante
pelo não cumprimento do(s) ANS(s) .
Sendo assim o PMP pode: acompanhar o desembolso nanceiro de um contrato
baseado nas funcionalidade contratadas pelo usuário e entregues pelo projeto de software por iteração. O ponto de vista é baseado nas funcionalidades contratadas pelo
usuário (escopo) e não simplesmente no custo do projeto; e monitorar os ANSs de prazo
de entrega e qualidade do produto produzido pelo projeto.
Se a PAP de uma iteração está pior que a PEI já é um sinal de que provavelmente o
custo do projeto será maior que o previsto inicialmente e provavelmente o projeto sofrerá
atraso em sua entrega, violando uma ou mais ANSs. Ajustes no PDS precisam ser feitos,
antes do término do projeto, para recolocar o custo e prazo do projeto dentro do previsto.
Pois caso contrário, o projeto não terá recursos nanceiros sucientes para atender todo
o escopo contratado pelo usuário, e no caso do prazo o projeto não será entregue no prazo
esperado. Se isso acontecer o projeto precisará de um aporte nanceiro, muitas vezes
impossível de ser realizado, e no caso de perda de prazo pode inviabilizar a sua entrega e
acarretar penalidade à contratada por conta do ANS. Outra solução seria reduzir o escopo
funcional do projeto previsto inicialmente, o que não atenderia plenamente as necessidades
do usuário que solicitou o projeto.
Esse acompanhamento pode ser incluído na atividade de Calcular o Tamanho Final
da Iteração e a PAP ou PFP na fase de Monitoramento do PMP. É nesta atividade que o
71
gerente de projeto sabe se a PAP até o momento ou o PFP está melhor ou pior que a PEI.
O PFP seria calculado na última iteração do projeto e se for diferente da PEI, precisa ser
apurado as diferenças nos parâmetros de custo, prazo e qualidade previsto inicialmente
no projeto, acarretando aumento ou não de custo, prazo no projeto e a cobrança ou não
de penalidades por conta do não cumprimento de alguma ANS de prazo ou qualidade.
Caso a PAP esteja melhor, o gerente de projeto a princípio pode considerar que não
terá desvio de custo em relação ao previsto pelo projeto. Porém ele precisa passar pela
fase de Diagnóstico do PMP para saber os motivos para a melhora da PAP, para saber
se não haverá até o nal do projeto perda de qualidade no produto entregue, acarretando
possível aumento de custo e surgimento de penalidades pelo não cumprimento de uma ou
mais ANSs, principalmente as ligadas ao controle da qualidade do produto entregue.
Se a PAP esta pior que a PEI, o projeto poderá ter aumento de custo se precisar
entregar todo o escopo denido no início do projeto. Caso não seja tomada alguma
providência de ajuste no PDS, que melhore a PAP, o aumento de custo vai ocorrer por
conta do aumento de esforço pela perda de produtividade em relação a PEI.
72
5 TRABALHOS RELACIONADOS
Neste capítulo apresento um método que objetiva o monitoramento da produtividade
dos projetos de software e outro que se preocupa com a estimativa da produtividade dos
projetos. A seção 5.1 apresenta a Análise de Valor Agregado (PMI, 2008); a seção 5.2 apresenta o modelo de Regressão Linear (MACDONELL, 1996), (GRAY, 1997), (ASCARI,
2012).
5.1 ANÁLISE DO VALOR AGREGADO
A técnica do valor agregado foca na relação entre os custos reais e o produto entregue,
através da realização efetiva de um trabalho (ver gura 5.1) (PMI, 2008).
FIG. 5.1: Exemplo de Gráco do Valor Agregado
É um método de mensuração e reporte de desempenho de projeto, que pode ser usado
para a gestão do custo e prazo. Sua base de avaliação está na comparação do que o projeto
já obteve de resultado em relação ao que realmente foi gasto, e o que foi planejado para se
gastar. O nome de valor agregado é dado ao valor orçado para um determinado trabalho,
em um determinado período de tempo, no ciclo de vida de um projeto (VARGAS, 2005).
Podem ser consideradas vantagens deste método:
a) Dar uma resposta de desempenho com relação ao trabalho executado, ou seja, avaliase quanto se gastou com relação ao que se deveria ter gasto para realizar o trabalho
73
que foi realizado. Enquanto a abordagem tradicional simplesmente compara o que
foi gasto com o quanto se planejou gastar até determinado momento do projeto,
sem a preocupação de avaliar o trabalho realizado com esse custo;
b) Segundo (SPARROW, 2000) propicia um valor adicional ao projeto por oferecer
uma visibilidade precoce dos seus resultados nais, ou seja, pode-se determinar a
tendência de custos e prazos nais do projeto em uma fase do projeto onde ainda
exista possibilidade de implementação de ações corretivas;
Podem ser consideradas desvantagens deste método:
a) Segundo (CHRISTENSEN, 1998) a aplicação deste método requer uma mudança
cultural na empresa que o utilizar. Por isso demanda tempo e esforço para ser
efetivamente implantado. As políticas e o conhecimento de sua aplicação devem ser
entendidos pelas equipes de projeto, para assim garantir um uso correto da técnica;
b) Requer grande quantidade de esforço em sua manutenção, necessitando de uma
equipe qualicada para compreender e proporcionar informações conáveis (WIDEMAN, 1999);
c) Diversos gerentes de projeto não a consideram uma boa relação custo-benefício
(WIDEMAN, 1999);
d) Não controla as variáveis de custo e prazo através dos requisitos do projeto. Isso
diculta uma análise da produtividade do projeto com foco nos requisitos solicitados
(OLIVEIRA, 2013);
e) Não faz uma avaliação dos impactos que acarretaram um ganho ou perda de produtividade do projeto, ou seja, não facilita a denição de ações de correção do gerente
de projeto no PDS do projeto (OLIVEIRA, 2013).
5.2 REGRESSÃO LINEAR
Os modelos de Regressão Linear são modelos matemáticos que criam uma relação entre
uma variável Y com outra variável X. Quando existem apenas duas variáveis relacionadas,
esta é chamada regressão simples. Quando a relação envolve mais de duas variáveis é uma
74
FIG. 5.2: Exemplo de Regressão Linear - Diagrama de Dispersão
regressão multivado (MACDONELL, 1996). A representação dessa relação ocorre através
de pontos em um gráco cartesiano chamado de diagrama de dispersão (ver gura 5.2).
É um modelo utilizado para denir uma equação que relaciona uma variável independente a uma outra variável dependente desta. Pode ser usada para prever valores futuros
da variável dependente baseados na equação denida pelo modelo. No caso deste estudo
seria a previsão de produtividade de um novo projeto baseado em uma equação denida
através do estudo da base histórica da empresa.
Podem ser consideradas vantagens deste modelo:
a) Permite estabelecer a relação funcional entre uma variável dependente e uma variável
independente. Assim consegue representar o fenômeno em estudo através de uma
equação, permitindo uma simulação a tendência de uma variável em relação a outra;
b) É baseada em conceitos de estatística experimental, ou seja, possuem comprovação
matemática.
Podem ser consideradas desvantagens deste modelo:
a) O estabelecimento da relação funcional de uma variável dependente e outra independente não responde se a variável independente inuencia signicamente a variação
da variável dependente. Sendo assim, esse modelo não permite avaliar a correlação
entres variáveis independentes do projeto que podem estar impactando a variável
dependente (LIMA, 2014);
75
b) O foco desse modelo é denir a produtividade estimada inicial de um projeto,
baseado na produtividade de projetos já realizados (base histórica) e não na produtividade do projeto ao longo do seu ciclo de vida de desenvolvimento.
5.3 COMPARATIVO
O processo de monitoramento de produtividade proposto neste trabalho permite que o
gerente de projeto monitore e faça o diagnóstico de impactos na produtividade do projeto
ao longo do seu ciclo de vida focado nos requisitos solicitados.
Por estar baseado nos requisitos é possível medir o projeto usando uma métrica de
tamanho funcional. A medição funcional permite que um projeto seja comparado com
projetos anteriores, que já foram medidos funcionalmente, independente dos requisitos
que foram atendidos. Assim o processo de medição torna parametrizado o tamanho dos
projetos, permitindo a comparação entre eles e a denição de produtividade histórica.
O uso do algoritmo APRIORI no processo proposto permite que se encontre as relações
entre as variáveis que impactam a produtividade através do uso de uma base histórica de
projetos e a aplicação de um questionário para a denição de mais variáveis não disponíveis
nesta base. Essas relações servem para avaliar o impacto na produtividade durante o ciclo
de vida do projeto, que é objetivo desse estudo.
Na análise comparativa conclui-se que a regressão linear calcula apenas a produtividade
inicial de um novo projeto, logo não atende o objetivo desse estudo. Já a técnica do valor
agregado (EVA) preocupa-se com a produtividade de acompanhanto do projeto, porém
não é focado nos requisitos do projeto. Nos dois casos não há uma denição de um
processo de avaliação do impacto na produtividade de um PDS.
TAB. 5.1: Comparação entre os trabalhos relacionados
Conceito
EVA Regressão Linear Metodologia Proposta
Foco nos Requisitos do Projeto NÃO
Avalia a PEI do Projeto
SIM
Acompanha a PAP do Projeto SIM
Possui Checklist de Avaliação NÃO
Usa APRIORI
NÃO
NÃO
SIM
NÃO
NÃO
NÃO
76
SIM
SIM
SIM
SIM
SIM
6 CONSIDERAÇÕES FINAIS
6.1 CONCLUSÃO
Em grandes projetos de desenvolvimento é comum haver a divisão em projetos menores,
que, em muitos casos, continuam sendo grandes projetos. Adotando o PMP, é possível
que estes projetos possam beneciar-se, não somente de análises de suas produtividades,
mas também das análises das PAPs dos outros projetos em paralelo.
A empresa que adotar o PMP poderá alimentar uma base histórica com as informações
geradas por ele, que seria de grande importância para o monitoramento da produtividade
de projetos posteriores. O benefício desse método está na descrição da utilização de um
indicador para medição e análise de possíveis desvios da PEI chamado PAP.
A grande vantagem de se medir a PAP, ao longo do ciclo de desenvolvimento, é permitir
que o gerente de projeto tenha mais insumos para tomada de decisão durante o ciclo de
vida do projeto.
A cada término de iteração é possível que o gerente de projeto tome ações de ajuste
no PDS do projeto de acordo com o diagnóstico realizado através do checklist e do RAP
do projeto que está sendo monitorado.
O gerente de projeto deve ter atenção em relação a PAP quando estiver acima da
PEI, pois esta melhoria de produtividade pode estar ligada ao não cumprimento integral
do que deve ser seguido pelo PDS, o que pode acarretar perda de qualidade no produto
entregue.
6.2 CONTRIBUIÇÕES
A grande contribuição deste estudo é a denição de um processo que permite acompanhar
a produtividade de um projeto de software utilizando as funcionalidades do projeto. Ter
um checklist que avalia os motivos que zeram a PAP desviar da PEI é outro diferencial
em relação a outros trabalhos relacionados.
O PMP pode ser adaptado pela empresa que adotá-lo. A empresa pode utilizar a
métrica funcional que ela desejar, assim como criar o seu próprio checklist utilizando sua
base histórica de projetos, e se necessário, um questionário para obtenção de informações
77
relevantes para a obtenção dos atributos de projeto que impactam na produtividade dos
projetos da empresa. A ferramenta data mining utilizada também poderá ser outra.
6.3 TRABALHOS FUTUROS
Como trabalhos futuros o autor sugere.
6.3.1 CONSTRUÇÃO DE UMA FERRAMENTO DE APOIO AO PMP
A automatização do processo faria que todas as informações utilizadas e geradas pelo PMP
cassem armazenadas em um banco de dados invês do uso de uma planilha eletrônica.
A ferramenta possibilitaria a construção de um workow para a execução do PMP
e a centralização dos dados em uma base histórica com um estrutura que permitisse a
geração facilitada de consultas gerenciais.
6.3.2 DEFINIÇÃO OU EVOLUÇÃO DE UM MODELO ESTATÍSTICO PARA A BASE
HISTÓRICA DE PROJETOS
Existem modelos estatísticos que possibilitam a simulação qualitativa de atributos em
projetos de software. Seria uma solução para os casos onde o histórico de projetos não
é signicativo na empresa. A simulação de Monte Carlo (WHITHESIDE, 2008) é um
exemplo de modelo estatístico que é utilizado quando não é possível obter dados históricos
utilizando técnicas de regressão tradicionais.
Denindo um modelo estatístico de simulação para o PMP possibilitaria a aplicação
em empresas com bases históricas pequenas ou inexistentes. Assim aumentaria a aplicação
do processo no mercado.
O conceito por trás deste modelo seria o uso de uma pequena amostragem de projetos
da empresa e daí a derivação de mais dados através destes. Assim o PMP teria um
suporte estatístico na apuração das relações entre as variáveis utilizando a ferramenta de
data mining.
78
7 REFERÊNCIAS BIBLIOGRÁFICAS
Function Point Analysis: An Empirical Study
AAaof Its Measurement Processes, IEEE Transaction on Software Engineering, V.
ABRAN, A.; ROBILLARD P. N.
AAA22, No . 12, December 1996.
AGRAWAL, R. et al. The Quest Data Mining System, in Proc, 2nd Int'l Conference
AAAon Knowledge Discovery in Databases and Data Mining, Portland, p.244-249, 1996.
AGRESTI, W.; EVANCO W. M.; THOMAS W. M. Models for Improving Software
AAaSystem Size Estimates during Development, J. Software Engineering AppliAAAcations, p.1-10, 2010.
Pontos de Função ou Pontos por Caso de Uso? Como Estimar
AAaProjetos Orientados a Objeto. Disponível em: <http://www.bfpug.com.br/ArAGUIAR, M.
AAaatigos/UCP/Aguiar-Pontos-de-Funcao-ou-Pontos-por-Caso-de-Uso.pdf>. Acessado
AAaaem: 01/05/2013.
Software Function, Source Lines of Code, and
AAaDevelopment Eort Prediction: A Software Science Validation, IEEE TranALBRECHT, A.; GAFFNEY J.
AAAsactions on Software Engineering, SE-9, 1983.
AMBLER, S. W. Completing
AAAbySoft Inc., 1999.
the Unied Process With Process Patterns, Am-
ARBEX, E. C.; SABOREDO A. P.; MIRANDA P., Implementação e Estudo de caso
AAado algoritmo Apriori para Mineração de Dados, Associação Dom Bosco,
AAAResende, 2013.
Aplicação de Lógica Fuzzy na Estimativa de Prazo de
AAaProjetos de Software, Revista Eletrônica de Sistemas de Informação, 2012.
ASCARI, R. E. O. S. et al.
BOEHM, B. Managing Software
AAAPress, p.111-113, 1999.
Productivity and Reuse, IEEE Computer Society
BORSOI, B. T. et al. Redes Neurais Aplicadas na Estimativa de Prazo de Projeto
AAade Software, Universidade Tecnológica Federal do Paraná (UTFPR), Pato Branco,
AAA2012.
BRUCKHAUS, N. T.; MADHAVJI, I. J.; HENSHAW J. The Impact of Tools
AAaSoftware Productivity, IEEE Computer Society Press, p.29-38, 1996.
79
on
CARD, D. N. The Challenge of Productivity
AAASoftware Quality Conference, 2006.
Measurement, Pacic Northwest
CHIDAMBER, S. R.; KEMERER, C. F. A Metrics Suite for
AAasign, Transactions on Software Engineering (TSE), 1994.
CONNOLLEY, M. An Empirical Study of Function
AAAMassachusetts Institute of Technology, USA, 1990.
CHRISTENSEN, D. S. The Cost and Benets of
AAaProcess, Acquisition Review Quarterly, 1998.
Object Oriented De-
Points Analysis Reliability,
the Earned value Management
DAMASCENO, M. Introdução a Mineração de Dados Utilizando o Weka, Instituto
AAAFederal de Educação, Ciência e Tecnologia do Rio Grande do Norte, 2005.
FENTON, N. E.; PFLEEGER, S. L. Software
AAaApproach, 2nd ed. Thomson, 1996.
Metrics: A Rigorous and Practical
FLEMING, Q. W.; KOPPELMAN, J. M. Earned Value Project Management, NewAAAton Square, 1999.
A Comparative of Techniques for Developing
AAaPredictive Models of Software Metrics, University of Otago, Dunedin, 1997.
GRAY, A. R.; MACDONELL S. G.
HAN, S. L. Quantied Comparison and Analysis of Dierent Productivity MeaAAasurements, Journal of Asian Architecture and Building Engineering, November
AAA2008.
INTERNATIONAL FUNCTION USERS GROUP (IFPUG). Counting Practices ManAAual (CPM), V. 4.3.1, publicado em 2010.
THE INTERNATIONAL SOFTWARE BENCHMARKING STANDARDS GROUP LIMAAAITED (ISBSG). Disponível em: <http://www.isbsg.org>. Acessado em: 20/10/2013.
JONES, C. Positive and Negative Factors that Inuence Software Productivity,
AAAV. 2.0. Software Productivity Research Inc., 1998.
Role of Function Point as a Reuse Metric in a Software AsAAaset Reuse Program, International Conference on Software Engineering Research
JOSEPH,J. T.
AAAand Practice (SERP),Las Vegas, 2011.
KARNER, G. Resource
AAAAB, 1993.
KERZNER, H.
Estimation for Objectory Projects, Objective Systems SF
Project Management: A Systems approach to planning, sched80
AAauling and controlling, New Jersey, 2009.
LANZA, M.; MARINESCU, R.
AAAlag, 2006.
Object-Oriented Metrics in Practice, Springer Ver-
LARMAN, C. Utilizando UML e Padrões:
uma introdução à análise e ao projeto
AAaorientado a objetos e ao Processo Unicado, Trad. Luiz Augusto Meirelles
AAASalgado e João Tortello. 2 ed. Porto Alegre: Bookman, 2004.
LIMA, P. C; LIMA, R. R. Estatística Experimental. Guia de Estudos, UniversiAAAdade Federal de Lavras. Disponível em: <http://www.dex.ua.br/images/stories>.
AAAAcessado em: 20/06/2014.
MACDONELL, S. G.; GRAY, A. R. Alternatives to Regression Models for EstiAAamation Software Projects, The Information Science Discussion Paper Series,
AAA1996.
MILLS, E. E. Software Metrics - SEI Curriculum Module SEI-CM-12-1.1, Seattle
AAaUniversity, Carnegie Mellon University, Software Engineering Institute, 1988.
Estudo e Propostas Iniciais para a Denição de um
AAaprocesso de desenvolvimento para software cientíco, Centro Federal de
MOURA, M. C.; PURRI, S.
AAAEducação Tecnológica de Minas Gerais, 2006.
OLIVEIRA, E. A.; NOYA, R. C. Using Productivity Measure and Function Points
AAato Improve the Software Development Process, The 2013 International ConAAAference on Software Engineering Research and Practice (SERP), Las Vegas, 2013.
PARO, C. Medidas de tamanho de desenvolvimento e de melhorias de software.
AAADisponível em: <http://www.bfpug.com.br>. Acessado em: 02/07/2013.
PAULA, W. P. Engenharia de Software
AAAEditora, Rio de Janeiro, 2001.
Fundamentos, Métodos e Padrões, LTC
PFLEEGER, S. L. Software Engineering: Theory
AAASaddle River, New Jersey: Prentice-Hall, 2001.
and Practice, 2o ed. Upper
PROJECT MANAGEMENT INSTITUTE (PMI), PMBok - Project Management
AAaBody of Knowledge- Guide and Standards, 4a Edition, 2008.
PRESSMAN, R.
Engenharia de Software, McGraw-Hill, 2011.
PRESSMAN, R.
AAA2005.
Software Engineering: A Practitioners Approach, McGraw-Hill,
81
RAHMESH, S. P. Factors inuencing productivity of software projects
AAAScenario, Research Scholar, Sathyabama University, India, [199-].
Indian
A Review of Productivity Factors and Strategies on
AAaSoftware Development, Software Engineering Advances (ICSEA), 2010
SAMPAIO, B.S.C. et al.
AAAFifth International Conference, p.196 204, 2010.
SCHOFIELD, J. The Statistically Unreliable
AAANational Laboratory, Albuquerque, 2005.
SEIBT, P.R.R. Ferramenta para Cálculo
AAa Objetos, Blumenau, Novembro 2011.
SHARP H. et al. Models
AAATechnologie, 2008.
Nature of Lines of Code, Sandia
de Métricas em Softwares Orientados
of motivation in software engineering, Inf. Software.
SOUSA, P.; ABREU, F. P. Uma
Abordagem de Estimativa de Software Baseada
AAaem Produtividade por Categoria de Caso de Uso. Anais do X Simpósio
AAABrasileiro de Qualidade de Software, Curitiba, Brasil, p.361-368, 2011.
EVM - Earned value Management Results in Early Visibility
AAaand Management Opportunities, Houston: 31st Annual Project Management
SPARROW, H.,
AAAInstitute Seminars Symposium, 2000.
SPEM - Software Systems Process EngiAAaneering Metamodel Specication, V. 2.0, 2008.
OBJECT MANAGEM GROUP (OMG),
SOFTWARE PRODUCTIVITY RESEARCH (SPR), Disponível em: <http://www.spr.
AAAcom/index.php>. Acessado em : 01/02/2013.
SUDHAKAR, G. P.; FAROOQ A.; Patnaik S. Measuring Productivity
AAaDevelopment Teams, Serbian Journal of Management, 2012.
of Software
Comparison of Articial
AAaNeural Network and Regression Models in Software Eort Estimation,
TRONTO, I. F. B., SILVA, J.D.S. and SANT'ANNA, N.
AAAIJCNN - International Joint Conference on Neural Networks, Florida, 2007.
UNITED KINGDOM SOFTWARE METRICS ASSOCIATION (UKSMA). MK II FuncAAtion Point Analysis Counting Practices Manual, V. 1.3.1, Setembro, 1998.
Análise de Valor Agregado: revolucionando o gerenciamento
AAade custos e prazos. 3a Ed. Rio de Janeiro: Brasport, 2005.
VARGAS, Ricardo.
VIEIRA, E. Uso do Conceito de Passos Obrigatórios para Aprimorar o Processo
AAde Contagem do Método Pontos de Caso de Uso, Universidade Federal de
82
AAASanta Catarina, Florianópolis, 2007.
WAIKATO ENVIRONMENT FOR KNOWLEDGE ANALYSIS (WEKA), Data Mining
AAaSoftware in Java, Machine Learning Group at the University of Waikato. Disponível
AAAem: <http://www.cs.waikato.ac.nz/ml/weka>. Acessado em: 01/09/2013.
WALT, S. Understanding Software Productivity, Software Engineering and KnowlAAAedge Engineering: Trends for the Next Decade, D. Hurley (ed.), V. 4, World Scientic
AAAPress, 1995.
WHITHESIDE II, J. D. A Practical Application of Monte Carlo Simulation
AAaForecasting, EST.04, AACE International Transactions, Toronto, 2008.
WIDEMAN, R. M. Cost
in
Control of Capital Projects and the Project Cost ManAAAagement Systems Requirements, 2a ed. Vancouver: AEW Services e BiTech,
AAA1999.
83
8 APÊNDICES
84
8.1 APÊNDICE 1 - ATRIBUTOS DA BASE HISTÓRICA DE PROJETOS DA EMPRESA AVALIADA
• Produtividade Estimada: produtividade utilizada no planejamento inicial;
• Produtividade Final: produtividade real do projeto, calculada ao seu nal;
• Tamanho Estimado: tamanho estimado em PFs dos requisitos do projeto;
• Tamanho Final: tamanho nal em PFs do produto entregue pelo projeto;
• Esforço Estimado: número estimado de horas de esforço para a entrega do projeto;
• Esforço Real: número real de horas apropriadas pela equipe do projeto;
• Data de Entrega Esperada: data esperada pelo cliente para o recebimento do pro-
jeto. Esta data é denida no planejamento inicial;
• Data Real de Entrega: data que o projeto foi entregue;
• Taxa de Defeitos: indicador gerado pela área de testes da organização, que indica a
quantidade erros encotrados no produto por PF;
• Tipo de Processo: tipo de PDS utilizado no projeto (ver próxima seção para mais
detalhes);
• Linguagem: linguagem de progamação predominante no projeto. Entre várias pos-
sibilidade destacam-se - Cobol, Natural, PHP, .NET, Java;
• Tipo de Demanda: tipo de demanda de projeto. Entre várias possibilidades destacam-
se - Novo Desenvolvimento, Manutenção Corretiva, Manutenção Evolutiva.
85
8.2 APÊNDICE 2 - TIPOS DE PDS DA EMPRESA AVALIADA
• Expresso: PDS simples para pequenas demandas de 8 a 16 horas de esforço estimado;
• Sumário: PDS com um subcojunto de atividades e artefatos do PDS da organização.
É utilizado para projetos com esforço estimado menores que 480 horas;
• Ágil: PDS baseado na metodologia de desenvolvimento ágil. Sua aplicação inde-
pende do esforço previsto pelo projeto. A decisão pelo seu uso é gerencial;
• Completo: PDS que inclui grande parte das atividades e artefatos do PDS da orga-
nização. Deve ser adotado para projetos com mais de 480 horas de esforço estimado.
86
8.3 APÊNDICE 3 - QUESTIONÁRIO DE AVALIAÇÃO DOS PROJETOS DA BASE
HISTÓRICA
Assunto 1 - Equipe
• Pergunta 1: Houve redução da equipe?
• Pergunta 2: Houve aumento da equipe?
• Pergunta 3: Houve troca de membros da equipe?
• Pergunta 4: Não houve troca de membros da equipe?
• Pergunta 5: Houve retrabalho provocado pela equipe?
• Pergunta 6: Não houve retrabalho provocado pela equipe?
• Pergunta 7: Os membros da equipe possuiam conhecimento do PDS?
• Pergunta 8: Os membros da equipe não possuiam o conhecimento do PDS?
• Pergunta 9: Os membros da equipe possuiam o conhecimento do negócio?
• Pergunta 10: Os membros da equipe não possuiam o conhecimento do negócio?
• Pergunta 11: Os membros da equipe possuiam conhecimento da tecnologia/arquitetura?
• Pergunta 12: Os membros da equipe não possuiam conhecimento da tecnologia/arquitetura?
• Pergunta 13: Houve membro(s) da equipe exercendo atividades fora do seu perl?
• Pergunta 14: Os membros da equipe exerceram atividades no seu perl?
• Pergunta 15: Houve problemas de comunicação entre os membros da equipe?
• Pergunta 16: Não houve problemas de comunicação entre os membros da equipe?
• Pergunta 17: Houve alocação de horas extras remuneradas?
• Pergunta 18: Houve alocação de horas extras sem remuneração (banco de horas)?
• Pergunta 19: Houve treinamento da equipe antes do projeto?
• Pergunta 20: Houve treinamento da equipe durante o projeto?
87
Assunto 2 - Requisitos
• Pergunta 20: Os requisitos foram complexos?
• Pergunta 21: Os requisitos foram simples?
• Pergunta 22: Os requisitos foram instáveis (mudança de escopo)?
• Pergunta 23: Os requisitos foram estáveis (sem mudança de escopo)?
• Pergunta 24: Os requisitos estavam incorretos?
• Pergunta 25: Os requisitos estavam bem documentados?
• Pergunta 26: Houve retrabalho provocado pela mudança de requisitos?
• Pergunta 27: Não houve retrabalho provocado pela mudança de requisitos?
• Pergunta 28: Houve reuso de requisitos?
Assunto 3 - Projeto
• Pergunta 29: Houve subalocação de horas trabalhadas?
• Pergunta 30: Houve superalocação de horas trabalhadas?
• Pergunta 31: Houve alocação correta das horas trabalhadas?
• Pergunta 32: Houve utilização de componentes do próprio projeto (reuso)?
• Pergunta 33: Houve utilização de componentes de outros projetos (reuso)?
• Pergunta 34: Houve utilização de protótipos?
• Pergunta 35: Houve integração com outras aplicações com a mesma tecnologia?
• Pergunta 36: Houve integração com outras aplicações com outra(s) tecnologia(s)?
• Pergunta 37: Houve retrabalho provocada por mudança de ambiente?
• Pergunta 38: Não houve retrabalho provocada por mudança de ambiente?
• Pergunta 39: Houve retrabalho provocado por mudança de tecnologia/arquitetura?
• Pergunta 40: Não houve retrabalho provocado por mudança de tecnologia/arquitetura?
88
Assunto 4 - Processo de Desenvolvimento de Software (PDS)
• Pergunta 41: Houve etapas do processo que foram puladas para cumprimento de
prazo?
• Pergunta 42: Todas as etapas do processo foram cumpridas?
• Pergunta 43: O PDS foi imaturo?
• Pergunta 44: O PDS foi maduro?
• Pergunta 45: O PDS foi burocrático?
• Pergunta 46: O PDS foi simplicado?
• Pergunta 47: O PDS não usou ferramental ou o ferramental foi deciente?
• Pergunta 48: O PDS possuia ferramentas?
• Pergunta 49: Não houve acompanhamento do projeto?
• Pergunta 50: O acompanhamento realizado foi sem utilizar métricas?
• Pergunta 51: O acompanhamento realizado foi utilizando métricas?
Assunto 5 - Usuário
• Pergunta 52: O usuário que especicou o requisito não tinha experiência no negócio?
• Pergunta 53: O usuário que especicou o requisito era experiente no negócio?
• Pergunta 54: O usuário que especicou o requisito não foi o mesmo que testou?
• Pergunta 55: O usuário que especicou o requisito foi o mesmo que testou?
• Pergunta 56: O usuário que especicou o requisitos não foi o mesmo que homologou?
• Pergunta 57: O usuário que especicou o requisitos foi o mesmo que homologou?
• Pergunta 58: Houve retrabalho provocado pelo usuário especicador?
• Pergunta 59: Não houve retrabalho provocado pelo usuário especicador?
Assunto 6 - Teste
89
• Pergunta 60: Os testes unitários foram realizados?
• Pergunta 61: Não foram realizados os testes unitários?
• Pergunta 62: Os testes funcionais foram realizados ao longo de todo ciclo de vida
do projeto (a partir da especicação de requisitos)?
• Pergunta 63: Os testes não funcionais foram realizados ao longo de todo ciclo de
vida do projeto (a partir da especicação de requisitos)?
• Pergunta 64: Os testes funcionais foram realizados somente ao nal do ciclo de vida
do projeto?
• Pergunta 65: Os testes não funcionais foram realizados somente ao nal do ciclo de
vida do projeto?
• Pergunta 66: Apenas parte das funcionalidades do projeto foram testadas?
• Pergunta 67: Todas as funcionalidades do projeto foram testadas?
• Pergunta 68: Os testes foram realizados por equipe especializada em testes (equipe
de testes)?
• Pergunta 69: Os testes foram feitos sem uso de ferramentas?
• Pergunta 70: Houve uso de ferramentas de automação de testes?
90
8.4 APÊNDICE 4 - CHECKLIST DO PMP
Parte 1 do Checklist (piora da PAP ou PFP em relação a PEI)
a) A equipe mudou?
b) A iteração sofreu acompanhamento?
c) Os usuários responsáveis pelos requisitos do projeto mudaram?
d) Houve retrabalho?
e) Foi usada ferramenta para suportar o PDS?
f) Foi utilizada ferramenta para os testes?
Parte 2 do Checklist (melhora da PAP ou PFP em relação a PEI)
a) Houve reuso de requisitos?
b) Não foi encontrado erro nos requisitos especicados?
c) Não houve subalocação de horas no projeto?
d) Não houve integração com outras aplicações?
e) Foi utilizada prototipação?
f) Foi utilizada métrica para o acompanhamento da iteração?
g) Os usuários especicadores dos requisitos conhecem bem os requisitos?
h) Não houve teste não-funcional a partir da especicação dos requisitos?
i) Não foram usados componentes de outras aplicações?
8.4.1 O CHECKLIST DO PMP
Todos os fatores presentes no checklist deste trabalho foram denidos através de referencial
bibliográco (SUDHAKAR, 2012) (WALT, 1995) e da submissão de um questionário
padrão para alguns projetos presentes em uma base de dados com informações de mais de
30.000 projetos de uma grande empresa de desenvolvimento de software público brasileira.
O questionário padrão utilizado neste estudo pode ser visto no Apêndice 3. A seleção da
91
amostragem dos projetos da base histórica foi baseada num combinação dos principais
tipos de PDS, porte e linguagem de programação da empresa avaliada. Os tipos de PDS
e linguagens de programação estão descritos no Apêndice 2 deste estudo, já o porte foi
avaliado pelo tamanho do projeto informado. Para projetos até 50 PFs são considerados
projetos de pequeno porte, de 51 PFs a 100 PFs são de médio porte e maiores de 100 PFs
de grande porte. Esta classicação de porte de projetos é utilizado pelo PDS padrão da
empresa avaliada.
O questionário não é um documento do PMP. A empresa que for adotar o PMP pode
usar o questionário como instrumento ou não de auxílio para a denição de seu próprio
checklist. Outras opções são: utilizar o checklist padrão denido por este estudo ou criar
outro checklist a partir apenas do estudo de sua base histórica de projetos.
Para este estudo as perguntas presentes no questionário serviram para preencher lacunas
na base histórica dos projetos e acrescentar questionamentos voltados a pontos mais subjetivos do PDS da empresa avaliada que não estão presentes na base histórica. As lacunas
que são complementadas pelo questionários são: 1) mudança de equipe (perguntas 1 a
4); 2) retrabalho (perguntas 5, 6, 26, 27, 37 a 40, 58 e 59); 3) treinamento da equipe
(perguntas de 7 a 12, 19 e 20); 4) perl da equipe (perguntas 13 e 14); 5) comunicação
da equipe (perguntas 15 e 16); 6) alocação de esforço da equipe (perguntas 17 e 18, 29 a
31); 7) complexidade dos requisitos (perguntas 20 e 21); 8) alteração dos requisitos (perguntas 22 e 23); 9) qualidade dos requisitos (perguntas 24 e 25); 10) reuso de requisitos
(pergunta 28); 11) componentização (perguntas 32 e 33); 12) prototipação (pergunta 34);
13) integração com outras aplicações (perguntas 35 e 36); 14) qualidade do PDS (perguntas 41 e 42); 15) maturidade do PDS (perguntas 43 a 51); 16) usuário especicador de
requisitos (perguntas 52 a 57); 17) testes funcionais (perguntas 60 a 62, 64); 18) testes
não funcionais (perguntas 63 e 65); 19) cobertura dos testes (perguntas 66 e 67) e 20)
qualidade do teste (perguntas 68 a 70).
8.4.2 DEFINIÇÃO E SUBMISSÃO DO QUESTIONÁRIO
No Apêndice 3 deste estudo é apresentado o modelo de questionário baseado em referencial
bibliográco em (SUDHAKAR, 2012) (WALT, 1995) e nos atributos encontrados na base
histórica dos projetos da empresa. Os atributos da base histórica da empresa também
estão no Apêndice 1. O questionário foi composto de 70 perguntas.
O questionário está dividido em seções que avaliam subgrupos que estão relacionados
92
diretamente com os possíveis impactos na PAP, são eles: equipe, requisitos, projeto, PDS,
usuário e teste. A denição destes subgrupos foi obtida através da pesquisa bibliográca
e experiência do autor do estudo em desenvolvimento de projetos.
Este questionário pode ser usado da mesma forma por uma outra empresa ou poderá ser
adaptado a sua realidade. O importante é que ele complemente informações já existentes
em sua base histórica, ou seja, atue conjuntamente com a base histórica de projetos como
fonte de geração das relações entre os fatores de impacto da PAP através de uma ferramenta de mineração de dados. Na ausência de uma base histórica o questionário precisará
ser mais abrangente para compensar a falta de informações históricas da empresa.
Foram selecionados da base histórica de projetos uma amostragem de 40 projetos representativos. O critério de seleção destes projetos foi: representatividade pelos tipos de PDS,
porte e linguagem de programação. Estes critérios estão descritos na subseção anterior
deste capítulo. Dos 40 questionários enviados 25 foram respondidos e 2 foram descartados
por respostas incoerentes.
O questionário deve possuir perguntas com intensão de capturar respostas incoerentes.
Isso permite que dados incorretos não afetem o resultado das associações encontradas pela
ferramenta de mineração de dados.
Para chegar ao checklist do PMP é preciso denir as regras de relação das variáveis
antecedentes e consequentes obtidas pela base histórica dos projetos da empresa e dos
questionários respondidos. Dessa forma é possível encontrar os fatores que impactam
em relação a melhora ou piora da PAP em relação a PEI de um PDS. Exemplicando,
a mudança de escopo pode ser uma variável antecedente para o impacto na variável
consequente produtividade (PAP) de um PDS. Para encontrar estas regras de relação foi
feito um estudo de mineração de dados usando o algoritmo APRIORI implementada na
ferramenta WEKA (WEKA, 2013).
As redundâncias introduzidas para ns de checagem de coerência no questionário foram
retiradas para não inuenciar os resultados do algoritmo. De todos os atributos da base
histórica dos projetos da empresa e questões presentes no questionário foram extraídas 41
variáveis que foram submetidas ao algoritmo APRIORI. As variáveis submetidas foram:
• Produtividade;
• Redução da equipe durante o projeto;
• Aumento da equipe durante o projeto;
93
• Troca de membros da equipe durante o projeto;
• Retrabalho provocado pela equipe do projeto;
• Alocação de horas extras remuneradas;
• Treinamento da equipe antes do projeto;
• Treinamento da equipe durante o projeto;
• Requisitos complexos;
• Requisitos simples;
• Requisitos instáveis;
• Requisitos incorretos;
• Requisitos bem documentados;
• Retrabalho provocado pela mudança de requisitos;
• Reuso de requisitos;
• Subalocação de horas trabalhadas;
• Superalocação de horas trabalhadas;
• Utilização de componentes do próprio projeto;
• Utilização de componentes de outros projetos;
• Uso de prototipação;
• Integração com outras aplicações com a mesma tecnologia;
• Integração com outras aplicações com outra(s) tecnologia(s);
• Não houve retrabalho provocado por mudança de ambiente;
• Não houve retrabalho provocado por mudança de tecnologia;
• Todas as etapas do PDS foram cumpridas;
• PDS maduro;
94
• PDS burocrático;
• Uso de ferramentas para apoio ao processo;
• Não houve acompanhamento do projeto;
• Usuário que especicou o requisito é experiente no negócio;
• Usuário que especicou o requisito foi o mesmo que testou o projeto;
• Usuário que especicou o requisito foi o mesmo que homologou o projeto;
• Retrabalho provocado pelo usuário especicador;
• Testes unitários não foram realizados;
• Testes funcionais realizados ao longo de todo o ciclo de vida do projeto;
• Testes não funcionais realizados ao longo de todo o ciclo de vida do projeto;
• Testes funcionais realizados somente ao nal do ciclo de vida do projeto;
• Testes não funcionais realizados somente ao nal do ciclo de vida do projeto;
• Todas as funcionalidades do projeto foram testadas;
• Testes realizados por equipe especializada em testes;
• Testes sem uso de ferramentas.
A próxima subseção descreve os fatores de maior impacto da PAP neste estudo. O importante para o PMP é que os projetos selecionados sejam signicativos dentro do universo da
base histórica e que os dados presentes nestes projetos estejam corretamente preenchidos.
8.4.3 FATORES QUE IMPACTAM A PAP E O CHECKLIST DO PMP
O checklist é dividido em duas partes: a primeira diz respeito a perguntas para o caso da
PAP ter sido pior que a PEI e a segunda quando a PAP foi melhor que a PEI do projeto.
Para chegar as perguntas do checklist foi feita uma análise de regras de associação das
variáveis, através do algoritmo APRIORI.
Este algoritmo faz buscas na base de dados submetida a avaliação à procura dos conjuntos frequentes (conjuntos que satisfazem um suporte mínimo estabelecido). Ao nal ele
95
dene as regras de associação existentes entre as variáveis antecedentes e consequentes
(AGRAWAL, 1996).
Para este estudo a variável consequente se restringe a produtividade, se esta aumentou
ou piorou durante o projeto. As variáveis antecedentes foram extraídas do questionário e
dos atributos da base histórica dos projetos, já descritos na subseção anterior. A gura
7.1 apresenta os parâmetros que foram utilizados para a geração das regras de associação
na ferramenta WEKA.
FIG. 8.1: Tela de Parâmetros do algoritmo APRIORI do WEKA
Com as regras de associação obtidas da ferramenta é possível denir os fatores que impactam a PAP para melhor ou para pior. Baseado nessas regras foi denido o checklist do
PMP. Nem todos os atributos da base histórica e questões do questionário surgiram como
fatores de impacto para o PAP do PMP, pois não apresentaram regras de associação geradas pelo algoritmo APRIORI ou apresentaram regras de associação com conabilidade
inferior a 1. A conabilidade de uma regra representa o quanto ela é signicativa dentro
da base de dados que foi submetida ao algoritomo APRIORI.
96
Como resultado das regras do algoritmo APRIORI os seguintes fatores foram considerados
determinantes para a piora da produtividade na empresa avaliada: mudança da equipe,
falta de acompanhamento do projeto, mudança do usuário especicar de requisitos do
projeto, retrabalho, o não uso de ferramental para o apoio ao PDS do projeto e o não uso
de ferramenta para os testes.
Já os fatores que melhoram a produtividade dos projetos avaliados da empresa são: reuso
de requisitos, ausência de erros na especicação dos requisitos da iteração, a não subalocação das horas de esforço por parte da equipe, baixa integração com outras aplicações,
uso de prototipação, uso de métrica para acompanhamento do projeto, os usuário especicadores de requisitos conhecem muito bem o domínio do negócio que estão especicando,
ausência de teste não funcional a partir da especicação dos requisitos, não uso de componentes de outras aplicações.
Com o resultado do checklist e o RAP o gerente de projeto já tem insumos sucientes
para determinar se deve ou não tomar ações de ajuste no PDS do projeto. A atividade
seguinte descreve como o gerente de projeto deve denir o RAA do PMP.
Abaixo segue o checklist (parte 1) respondido da primeira iteração do projeto exemplo
apresentado no Capítulo 3 deste estudo.
a) A equipe mudou? Não.
b) A iteração sofreu acompanhamento? Sim.
c) Os usuários responsáveis pelos requisitos do projeto mudaram? Não.
d) Houve retrabalho? Sim.
Diagnóstico: O aumento do tamanho foi provocado pelo retrabalho de dois casos de
uso (uma Entrada Externa simples de 3 PFs que faz parte do Caso de Uso 1) e todo
o Caso de Uso 4 (3 PFs). O tamanho inicial estimada para a primeira iteração foi
de 44 PFs e passou para 50 PFs ao nal da mesma.
e) Foi usada ferramenta para suportar o PDS? Sim.
f) Foi utilizada ferramenta para os testes? Não.
Diagnóstico: A ausência de uma ferramenta para os testes fez com que parte da
equipe responsável pelos testes apropriasse mais horas de esforço para realizar suas
atividades do que o previsto pelo PDS.
97
Ao responder este checklist o gerente de projeto pode denir ações que deve adotar para as
próximas iterações, evitando problemas com o custo e prazo do projeto. Se for a última
iteração do projeto o gerente de projeto pode denir as lições aprendidas para serem
aplicadas aos próximos projetos.
98
8.5 APÊNDICE 5 - MODELO DE RAA DO PMP
Seção 1: Informações Gerais
Data do Relatório:
Nome do Gerente do Projeto:
Identicação do Projeto:
Número da Iteração:
A PAP acumulada (ou PFP) em relação a PEI: ( ) melhorou ( ) piorou
Seção 2: Itens Impactados do Checklist do PMP (para cada item deve haver a sua descrição
e diagnóstico do impacto)
2.1.1) Descrição:
2.1.2) Diagnóstico:
2.2.1) Descrição:
2.2.2) Diagnóstico:
2.3.1) Descrição:
2.3.2) Diagnóstico:
Seção 3: Ações a serem tomadas para a próxima Iteração do PDS ou Lições Aprendidas
99
Download

Um processo de acompanhamento de produtividade para o