Escolar Documentos
Profissional Documentos
Cultura Documentos
CARUARU (PE)
DEZEMBRO DE 2009.
B.SC. GERT UCHÔA MÜLLER NETO
CARUARU (PE)
DEZEMBRO DE 2009.
MÜLLER NETO, Gert Uchôa.
Métodos Tradicionais versus Ágeis: um estudo comparativo através do TrainingCad.
/ Gert Uchôa Müller Neto –
Caruaru: 2009.
57 f.; 30 cm.
Obrigado a todos!
RESUMO
Este trabalho visa apresentar o conceito de Métodos Ágeis, bem como suas características e
aplicações, em contraponto aos Métodos Tradicionais. Suas formas de trabalho, seus valores e
práticas serão apresentados de modo a identificar e justificar suas principais diferenças,
estabelecendo uma relação de comparação entre elas. Também serão detalhados alguns destes
métodos, especificando pontos-chave em sua metodologia e comparando suas características.
Tentou-se alcançar esse objetivo através de uma pesquisa exploratória do Método Tradicional
aplicado ao projeto TrainingCad da UPE Consultoria Jr. Definiu-se o Método Ágil Scrum
alinhado às práticas de da metodologia de desenvolvimento denominada Extreme
Programming, ou apenas XP, para aplicação de uma proposta em um estudo comparativo.
Nesse estudo comparativo foram aplicadas técnicas especificadas pelo Scrum e XP para tentar
aperfeiçoar o gerenciamento e desenvolvimento do projeto de software TrainingCad. Como
resultado preliminar do estudo, apresentou-se uma proposta de desenvolvimento desse projeto
utilizando Scrum alinhado ao XP, visando um desempenho satisfatório, um auxílio na
monitoração das tarefas do projeto e melhorando a organização das atividades.
i
ABSTRACT
This paper presents the concept of Agile Methods as well as their characteristics and
applications as opposed to Traditional Methods. Their forms of work, its values and practices
will be presented in order to identify and explain the differences among them, establishing a
relation of comparison between them. Will also detailed some of these methods by specifying
key points in its methodology and comparing their characteristics. We tried to achieve this
goal through an exploratory survey of Traditional Methods applied to the design of UPE
Consultancy Jr‟s TrainingCad. was defined Scrum Agile Method aligned to the practices of
the development methodology called Extreme Programming, or XP only, for application of a
proposal in a comparative study. In this comparative study were applied techniques defined
by Scrum and XP to try to improve the management and development of software project
TrainingCad. As a result of the study, presented a proposal to develop this project using
Scrum aligned to XP in order to perform satisfactorily, an aid in monitoring of project tasks
and improving the organization of activities.
ii
SUMÁRIO
Resumo i
Abstract ii
Lista de Figuras v
Lista de Tabelas vi
1 Introdução 8
1.1 Caracterização do Problema 9
1.2 Motivação 10
1.3 Objetivos 10
1.3.1 Objetivo Geral 10
1.3.2 Objetivos Específicos 11
1.4 Metodologia da Pesquisa 11
1.4.1 Classificação quanto à natureza 11
1.4.2 Classificação quanto à abordagem do problema 11
1.4.3 Classificação quanto aos objetivos 11
1.4.4 Classificação quanto aos procedimentos técnicos 12
1.5 Estrutura do Documento 12
2 Revisão da Literatura 13
2.1 Gerenciamento e Desenvolvimento de Projetos de Software 13
2.2 Métodos Tradicionais 14
2.2.1 O Guia PMBOK® 16
2.2.2 O RUP 17
2.3 Métodos Ágeis 19
2.3.1 APM 21
2.3.2 Scrum 22
2.3.3 Extreme Programming 24
iii
3.4 Proposta de Aplicação do Scrum 43
3.4.1 Proposta 43
4 Análise Comparativa 46
4.1 Conclusões 47
5 Considerações Finais 48
5.1 Contribuições 48
5.2 Dificuldades Encontradas 49
5.3 Trabalhos Futuros 49
Referências 51
iv
LISTA DE FIGURAS
v
LISTA DE TABELAS
vi
LISTA DE SÍMBOLOS E SIGLAS
XP - Extreme Programming
vii
CAPÍTULO 1
Introdução
Pesquisas nessa área realizadas por Carlos Bernardo Souza (2008) através da
Pontifícia Universidade Católica do Rio Grande do Sul, por volta de 2005, tomando por base
mais de 8300 projetos, atestam que apenas 16,2% dos projetos foram entregues dentro do
prazo estipulado respeitando os requisitos e os custos. Levando em consideração os projetos
que extrapolaram os limites temporais e financeiros, apenas 61% das funcionalidades
requisitadas pelos clientes foram entregues. Até mesmo os que seguiram à risca os prazos,
custos e funcionalidades são postos a suspeita de que não são de boa qualidade, pois os seus
integrantes foram submetidos a uma grande pressão, o que pode levar a um aumento
significativo dos erros no decorrer do projeto.
1
Tradução: Processo Unificado Rational.
8
Contudo, o mercado atual é muito dinâmico e exige dos requisitos de um projeto
de software o mesmo dinamismo. Logo, os modelos ou práticas de gestão e desenvolvimento
de projetos orientados a documentação (tradicionalistas), como exemplo pode-se citar o guia
PMBOK (Project Management Body of Knowledge2) (2004), limitam a flexibilidade de
adaptação desses mesmos requisitos. Então, algumas organizações acabam por não usar
processo algum, tentando fugir da lentidão e do alto custo, e prejudicam a qualidade de seu
produto final.
2
Tradução: Corpo de Conhecimentos de Gerenciamento de Projetos.
9
1.2 Motivação
1.3 Objetivos
Nesta seção serão apresentados os objetivos geral e específicos que este estudo
comparativo tentou alcançar.
10
1.3.2 Objetivos Específicos
Quanto à sua natureza, este trabalho se classifica como uma pesquisa aplicada, já
que pretende gerar conhecimentos dirigidos à solução de uma problemática (CERVO, 2007).
Do ponto de vista de abordagem do problema, pode ser vista como uma pesquisa
qualitativa, pois não há uma forma de mensuração exata das opiniões descritas na dissertação
(CERVO, 2007).
Quanto aos objetivos, este trabalho se encaixa como uma pesquisa exploratória,
pois se trata de um estudo comparativo através do TrainingCad e explora o método de
gerenciamento do projeto de software (CERVO, 2007).
11
1.4.4 Classificação quanto aos procedimentos técnicos
12
CAPÍTULO 2
Revisão da Literatura
A pesquisa realizada neste trabalho tem por objetivo intrínseco auxiliar de alguma
forma às atividades do ramo de gerenciamento e desenvolvimento de projetos. A disciplina de
Gerência de Projetos é aquela responsável pelo controle dos riscos de insucesso do projeto
durante o desenvolvimento do mesmo. Consiste na aplicação de conhecimentos e métodos de
elaboração de tarefas que se relacionam para atingir os objetivos definidos (TAVARES,
2008).
O mercado está cada vez mais dinâmico, o mundo por sua vez também está. As
relações empresariais e os negócios estão cada vez mais competitivos. Quem possui maior
acesso à informação possui vantagens sobre os concorrentes. Desde o advento da Internet na
última década, a velocidade dos acontecimentos no mundo têm se tornado muito rápida. A
informação cruza o globo instantaneamente. Uma notícia sobre uma empresa do outro lado do
planeta pode afetar a bolsa de valores no mundo inteiro em questões de segundos, conforme a
dissipação da informação pela Internet (VIEIRA, 2003).
3
O modelo de ciclo de vida em cascata consiste basicamente num modelo linear em que cada passo deve ser
completado antes que o próximo passo possa ser iniciado.
4
No modelo espiral para engenharia de requisitos mostra-se que as diferentes atividades são repetidas até uma
decisão ser tomada e o documento de especificação de requisitos ser aceito.
5
Desenvolvimento iterativo é uma estratégia de planejamento de retrabalho em que o tempo de revisão e
melhorias de partes do sistema é pré-definido.
15
2.2.1 O Guia PMBOK®
6
Tradução: Instituto de Gerenciamento de Projetos.
16
Figura 2 Mapeamento entre os grupos de processos e o ciclo PDCA
Fonte: Sacramento (2009).
2.2.2 O RUP
Do ponto de vista gerencial, o RUP fornece uma solução de como atribuir papéis,
tarefas e responsabilidades de uma forma disciplinada em um ambiente de desenvolvimento
de software, seja ele uma organização, seja ele uma grande equipe de desenvolvimento. Por si
só, o RUP é um produto de apoio à Gerência de Projetos, onde todo método é agregado a
variadas ferramentas de construção, desenvolvimento e gerenciamento.
17
sequência do desenvolvimento das atividades, após a atribuição de papéis, para que se possa
ser produzido um artefato. Por fim, a disciplina nada mais é que um conjunto de atividades
inter-relacionadas que fazem parte do mesmo contexto. Ou seja, as disciplinas proporcionam
uma melhor compreensão do projeto sob a visão tradicional, tornando o entendimento de cada
atividade mais fácil (KRUCHTEN, 2001 apud PINHEIRO, 2005).
O RUP faz uso de nove disciplinas, dentre as quais existe a divisão em processo e
suporte. As disciplinas agrupadas em processo são: modelagem de negócios, requisitos,
análise e projeto, implementação, teste e distribuição. Já as disciplinas agrupadas em suporte,
e mais importantes para o estudo de caso em questão, são: configuração e gerenciamento de
mudanças, projeto e ambiente (PINHEIRO, 2005).
18
Figura 3 Ciclo de Vida do RUP
Fonte: Rational (2009).
Mesmo possuindo o enfoque voltado para pessoas e não mais para algoritmos, se
preocupando mais com o desenvolvimento do software do que com sua documentação,
usando desenvolvimento iterativo e incremental e aumentando a comunicação as
metodologias ágeis se diferenciam por práticas e ênfases. Esses fatores em comum, de certo
modo, aumentam as possibilidades de atender os requisitos dos clientes, já que estes muitas
vezes passam por mudanças durante o projeto. O cliente possui o domínio do negócio, por
isso agora passa a ser considerado participante e membro da equipe e tem poder de decisão
sobre alterações que aparecerem durante o desenvolvimento do projeto (BOEHM, 2002).
O ciclo de vida básico de um método ágil pode ser observado na Figura 4. A partir
dela, verifica-se que o processo utiliza a construção de uma versão cumprindo todas as fases
de desenvolvimento para cada produto e, depois da entrega, passa pela fase de refatoração
objetivando melhorias no produto, sem mudar o comportamento do processo. Este ciclo se
repete para cada incremento de produto gerado, até o fim do processo de obtenção do produto
final.
20
Figura 4 Processo de Desenvolvimento Ágil
Fonte: Souza (2008).
2.3.1 APM
Este processo ágil tem suas iterações compostas por cinco fases, são elas
(COCKBURN, 2001):
7
Tradução: Gerenciamento Ágil de Projetos.
21
» Especulação: Há identificação dos requisitos iniciais do produto, são
elaboradas estimativas e estratégias de resolução dos riscos, estimativas de
custos e ocorre o desenvolvimento de um plano de projeto visando o lucro
do cliente;
» Exploração: Essa fase engloba a entrega dos produtos planejados sob a
forma de incrementos de funcionalidades divididas entre os ciclos do
projeto;
» Adaptação: Nessa fase os resultados são revisados, é feita uma análise da
situação atual do projeto, ocorre a avaliação da equipe e ações adaptativas
podem ser incluídas na próxima iteração;
» Encerramento: Ocorre a finalização das atividades do projeto e são
registradas as lições aprendidas para que possam ser utilizadas em outros
projetos.
2.3.2 Scrum
22
Segundo Ken Schwaber (2004), criador da metodologia, o Scrum, os papéis dos
membros do projeto são bem definidos e estão dispostos como a seguir:
Durante a execução de cada uma das Sprints, o time realiza reuniões diárias de
aproximadamente quinze minutos para acompanhar o andamento do projeto (Daily Scrum
Meeting). As variáveis técnicas do ambiente que foram especificadas anteriormente são
controladas nessa fase de desenvolvimento. Ao contrário das metodologias tradicionalistas, o
Scrum considera essas variáveis durante todo o processo, não apenas na inicialização do
projeto, aumentando com isso a flexibilidade em relação à adequação de mudanças. Ao final
de cada Sprint, é realizada uma reunião de revisão denominada Sprint Review Meeting, onde o
time mostra o resultado ao cliente e ao Scrum Master.
Por fim, o Scrum Master realiza uma reunião com sua equipe (Sprint
Retrospective Meeting) analisando a execução do progresso do projeto e a versão do produto
23
gerada. Essa reunião tem por objetivos melhorar o processo, a equipe e o produto para o
próximo Sprint. A Figura 5 ilustra de forma simples o ciclo de desenvolvimento do Scrum.
8
Linguagem de programação orientada a objetos fracamente tipada.
24
conceitos de wiki –, no final da década de 1980. No início dos anos 90 os dois refinaram suas
práticas em numerosos projetos, estendendo o desenvolvimento de software adaptável e
orientado a pessoas. O passo mais importante, da prática informal para uma metodologia
aconteceu na primavera de 1996. Kent foi convidado para revisar o andamento de um projeto
de folha de pagamento para a montadora de veículos. Este estava sendo desenvolvido em
Smalltalk por uma empresa contratada e estava em dificuldades. Devido à baixa qualidade da
base de código, Kent sugeriu que fosse jogado todo fora, iniciando a partir daí o projeto
Chrysler C3 que serviu como uma base de aplicação e treinamento para o XP (FOWLER,
2000).
2.3.3.1.1 Comunicação
2.3.3.1.3 Feedback
2.3.3.1.4 Coragem
Na verdade é preciso que a equipe não tenha medo de: parar quando se está
cansada; deixar as decisões do negócio para o cliente; apontar um problema no projeto; pedir
ajuda ao parceiro e aos clientes quando necessário; simplificar o código que já está
funcionando; dizer ao cliente que não será possível implementar um requisito no prazo
estimado; fazer alterações no processo de desenvolvimento, ou muitas vezes jogar o código
fora e recomeçar. Para tudo isto é preciso muita coragem (LONGMAN, 1998).
27
(40 horas por semana), pair programming (programação em par), small releases (versões
pequenas);
Manter o custo de manutenção baixo significa manter o design tão simples quanto
possível. Também significa não implementar funcionalidades (features) que podem ou não
serem utilizadas mais tarde. Em um projeto XP se constrói as funcionalidades tão simples
quanto possível, acreditando que elas poderão ser alteradas mais tarde com um pequeno custo
adicional (HAYES, 2001).
2.3.3.2.2 Testing
2.3.3.2.3 Refactoring
Qualquer pessoa da equipe pode alterar qualquer código, contanto que apoiado
por um parceiro, obedecendo aos padrões e assegurado por todo o trabalho de testes quando
28
eles terminarem. O benefício disto é que remove os gargalos e os problemas de distorção de
arquitetura que podem surgir (HAYES, 2001).
2.3.3.2.7 Metaphor
Os releases devem ser tão pequenos quanto possível, agregando bastante valor ao
negócio. Equipes de XP podem executar lançamentos em ciclos de algumas semanas, porque
estão trabalhando em passos pequenos, têm testes para efetuar uma regressão, e estão
integrando continuamente. Alguns projetos de XP executam lançamentos diariamente
(NERUR, 2005).
29
2.3.3.2.11 On-Site Customer
Figura 6 Práticas do XP
Fonte: Beck (2000).
30
CAPÍTULO 3
Estudo de Caso: TrainingCad
3.1 Contextualização
A UPE Consultoria Jr. é uma empresa júnior criada pelos cursos de Sistemas de
Informação e Administração com Ênfase em Marketing de Moda do campus Governador
Miguel Arraes de Alencar da Universidade de Pernambuco. Este campus se situa no agreste
pernambucano, mais especificamente na cidade de Caruaru.
31
Inicialmente, o Núcleo de Treinamento contava com oito pessoas. Durante a
organização de um evento, a coordenadora do núcleo, Cláudia César, percebeu a necessidade
de introdução de métodos de gerenciamento de inscrições dos clientes nos cursos promovidos
pelo próprio núcleo. Então, propôs a criação de software que não apenas gerenciasse, mas
também tornasse os processos do desenvolvimento dos cursos mais rápidos.
» Gerente de Projeto;
» Engenheiro de Software;
» Desenvolvedores (dois integrantes).
32
3.2 TrainingCad
A Figura 7 exibe a tela de início do TrainingCad. Esta tela foi construída baseada
em requisitos definidos pelos futuros usuários do aplicativo: os membros do Núcleo de
Treinamento.
33
Figura 7 Tela Principal do TrainingCad
Fonte: Trainingcad (2009).
34
Logo, foram definidos marcos durante a execução do projeto para a elaboração
dos documentos necessários. O marcos definidos foram os seguintes:
9
Um gráfico usado na gerência de projetos para planejar e acompanhar o progresso do projeto. O tempo é
indicado por colunas atravessadas no gráfico, com tarefas individuais representadas por flechas terminando em
pontos. O tamanho e posições das flechas mostram a data de início e a duração das tarefas. Você também pode
usar linhas sólidas ao invés de flechas terminando em pontos.
35
requisitos funcionais e não-funcionais definidos a partir da confecção do documento de
requisitos do projeto TrainingCad.
38
Sequência11 (Figura 10) e de Classes12 (Figura 11) para cada um dos requisitos funcionais do
projeto.
11
é um diagrama que representa a sequência de processos (mais especificamente, de mensagens passadas entre
objetos) num programa de computador.
12
é uma metodologia usada para descrever os tipos de objetos no sistema e os vários tipos de relacionamento
estático existente entre eles, bem como atributos e operações de uma classe e as restrições.
39
Figura 11 Diagrama de Classes do Requisito Funcional Efetuar Login do TrainingCad
Fonte: Trainingcad (2009).
O primeiro release gerou uma versão beta do projeto. Essa versão continha
apenas o esqueleto da aplicação e algumas das telas da versão definitiva. A Figura 12
apresenta a tela referente à funcionalidade de cadastro de alunos.
40
Figura 12 Tela de Cadastro de Alunos do TrainingCad
Fonte: Trainingcad (2009).
41
Figura 13 Tela de Consultas do TrainingCad
Fonte: Trainingcad (2009).
42
3.4 Proposta de Aplicação do Scrum
3.4.1 Proposta
Esta proposta se baseia nas premissas básicas de métodos ágeis mais fortemente
atreladas ao Scrum. Neste caso, a partir desta proposta torna-se possível prever algumas
mudanças, por meio da análise comparativa realizada, para uma possível reimplementação do
mesmo projeto ou de outros que possuam características similares.
13
Representação gráfica do trabalho a fazer em função do tempo. O trabalho pendente (ou atraso) é representado
freqüentemente no eixo vertical, enquanto o tempo é representado longo da horizontal.
43
codificação seria padronizada para que no revezamento o código escrito seja compreendido
por todos os membros da equipe do projeto.
E, por fim, ao final de cada um dos Sprints, seria realizada uma reunião para
demonstrar ao cliente o release respectivo (Sprint Review Meeting) e analisar a execução do
progresso do projeto (Sprint Retrospective Meeting) até o fim do número de iterações definido
no início do projeto, respeitando os prazos.
44
Figura 14 Fases do Ciclo de Desenvolvimento anterior à Proposta
Fonte: Autor, adaptado de Pressman (2002).
45
CAPÍTULO 4
Análise Comparativa
46
4.1 Conclusões
Tomando por base estas afirmações, o Scrum seria a melhor alternativa para
gerenciar o projeto TrainingCad, usando as práticas de desenvolvimento do XP, devido ao
menor custo, tempo e burocratização e à maior comunicação entre o cliente e os membros do
projeto.
47
CAPÍTULO 5
Considerações Finais
5.1 Contribuições
48
A importância de se ter aplicado a metodologia ágil Scrum foi, além de oferecer
um processo mais rápido de se utilizar para as pequenas empresas, também alterar a forma de
gerir projetos para uma gestão voltada para a resolução imediata de empecilhos que possam
estar afetando os objetivos do projeto.
49
» Utilizar ferramenta BPMS (Business Process Management Systems) para
simulação de processos.
50
REFERÊNCIAS
IMPROVE IT. Scrum: metodologia ágil para gestão e planejamento de projetos. Improve
It (2009). Disponível em <http://improveit.com.br/scrum>. Acessado em outubro de 2009.
52
Monografia de Trabalho de Graduação apresentada pelo B.Sc. Gert Uchôa Müller Neto do
Curso de Bacharelado em Sistemas de Informação da Faculdade de Ciência e Tecnologia de
Caruaru da Universidade de Pernambuco, sob o título “Métodos Tradicionais Versus Ágeis:
Um Estudo Comparativo Através do TrainingCad.”, orientada pelo Prof. M.Sc. Humberto
Rocha de Almeida Neto e aprovada pela Banca Examinadora formada pelos professores:
_______________________________________________
Prof. Edmundo Rodrigues da Silva Porto Neto
Departamento de Sistemas de Informação - FAVIP
_______________________________________________
Prof. Marjony Barros Camelo
Faculdade de Ciência e Tecnologia de Caruaru - UPE
_______________________________________________
Prof. Humberto Rocha de Almeida Neto
Faculdade de Ciência e Tecnologia de Caruaru - UPE
______________________________________________________
Prof. Cícero Garrozi
Vice-Coordenador do Curso de Bacharelado em Sistemas de Informação
Faculdade de Ciência e Tecnologia de Caruaru – Universidade de Pernambuco.
53