View
216
Download
0
Category
Preview:
Citation preview
1
Universidade Estadual de Campinas Faculdade de Tecnologia
Adaptação do Scrum ao Modelo Incremental
Leonardo Bertholdo
Lidia Regina de Carvalho Freitas Barban
2
Leonardo Bertholdo
Lidia Regina de Carvalho Freitas Barban
Adaptação do Scrum ao Modelo Incremental
Monografia apresentada à Unicamp, junto à Faculdade
de Tecnologia, como pré-requisito para conclusão da
Disciplina FT027 – Tópicos em Computação (Gestão de
Projetos e Qualidade) sob orientação do Prof. Dr.
Marcos Augusto F. Borges.
LIMEIRA – SP
2010
3
Bertholdo, Leonardo; Barban, Lidia R. C. F.
Adaptação do Scrum ao Modelo Incremental, Limeira, 2010, 18 p. Monografia apresentada à Unicamp, junto à Faculdade de Tecnologia, como pré-requisito para conclusão da Disciplina FT027 – Tópicos em Computação (Gestão de Projetos e Qualidade).
4
Professor Dr. Marcos Augusto F. Borges -----------------------------------------------------------
5
SUMÁRIO
1 – INTRODUÇÃO ............................................................................................................... 1 1.1 – Contexto ....................................................................................................................... 1 1.2 – Justificativa .................................................................................................................. 1 1.3 – Objetivos ...................................................................................................................... 2 1.4 – Organização do Trabalho ............................................................................................ 2
2 – MODELO INCREMENTAL............................................................................................... 3
3 – SCRUM ............................................................................................................................... 5
4 – ESTUDO DE CASO ........................................................................................................... 9 4.1 – Ambiente do Estudo de Caso .......................................................................................... 9 4.2 – Métodos Utilizados ......................................................................................................... 9 4.3 – Descrição do Estudo de Caso ....................................................................................... 10 4.4 – Resultados e Constatações ............................................................................................ 10
5 – TRABALHOS RELACIONADOS ................................................................................... 12
6 – CONCLUSÃO .................................................................................................................. 13
REFERÊNCIAS BIBLIOGRÁFICAS .................................................................................... 14
6
LISTA DE FIGURAS
Figura 2.1: Modelo incremental ................................................................................................ 3 Figura 3.1: Visão do processo na metodologia Scrum ........................................................... 8 Figura 4.1: Modelo Incremental no produto Gerência da Planta ............................................ 9
7
RESUMO
Devido à crescente competitividade do mercado atual e aos prazos cada vez mais restritos impostos por seus clientes, as empresas de desenvolvimento de software vem buscando metodologias mais ágeis para gestão do desenvolvimento de software. Há alguns anos, para mitigar os efeitos dessa demanda, muitas empresas adotaram o modelo incremental, cujo principal conceito é o desenvolvimento e a entrega incrementais do software. Recentemente, surgiu uma nova abordagem, denominada Scrum, que procurou otimizar ainda mais a entrega do produto de software aos clientes. Pela experiência dos últimos anos, metodologias ágeis, como o Scrum, muitas vezes precisam ser adaptadas às reais necessidades da empresa. Como este tipo de adaptação foi ainda pouco estudado, o principal objetivo desta pesquisa é contribuir para os estudos de viabilidade relacionados à adaptação do Scrum a metodologias mais tradicionais como o modelo incremental. Para isso, é apresentado um estudo de caso, que mostra as principais dificuldades e benefícios decorrentes dessa adaptação. Palavras-chave: Modelo incremental, métodos ágeis, Scrum.
ABSTRACT
Due to the increasing competitiveness of the current market and the increasingly strict deadlines imposed by their customers, companies software development has been seeking methodologies more agile for management of software development. A few years ago, to mitigate the effects of this demand, many companies have adopted the incremental model, whose main concept is the incremental development and delivery of software. Recently, came a new approach, called Scrum, which sought to further optimize the delivery of the software product to customers. For the experience of recent years, agile methods, like Scrum, often need to be adapted to real companies needs. As this type of adaptation was still little studied, the main objective this survey is to contribute to feasibility studies related to adapting Scrum to more traditional methods such as the incremental model. For this, it is presented a case study that shows the main difficulties and benefits resulting from this adaptation. Keywords: Incremental model, agile methods, Scrum.
1
1 – INTRODUÇÃO
Nesse capítulo são apresentados o contexto em que se insere este trabalho acadêmico,
bem como os propósitos que levaram à sua realização. Também é mostrada uma breve
descrição da estrutura do trabalho desenvolvido.
1.1 – Contexto
Nos últimos anos, devido a mudanças no ambiente de negócios, as empresas de
desenvolvimento de software começaram a sofrer crescentes pressões para reduzir o time-to-
market. Isso se deveu principalmente à competitividade do mercado atual e aos prazos cada
vez menos flexíveis impostos pelos clientes. Visando atender às novas exigências, essas
empresas começaram a buscar modelos mais ágeis para gestão de projetos de
desenvolvimento de software.
Como alternativa, muitas empresas adotaram o modelo incremental, que combina
conceitos do modelo clássico, também conhecido como modelo em cascata, com a abordagem
evolucionária da prototipação e da iteração de processo. Conforme Sommerville (2007), No
modelo incremental, um sistema é dividido em incrementos que possuem conjuntos de
funcionalidades. O primeiro incremento é definido com as funcionalidades mais prioritárias, e
os incrementos subsequentes são definidos com as funcionalidades adicionais. Cada
incremento desenvolvido e validado é entregue ao cliente, que pode colocá-lo em operação e
assim começar a usufruir antecipadamente de parte do sistema solicitado.
Há poucos anos, surgiu uma nova abordagem para gestão de projetos de
desenvolvimento de software denominada Scrum. Trata-se de uma metodologia ágil que
utiliza conceitos semelhantes aos contemplados no modelo incremental, porém introduz uma
série de elementos que procuram otimizar ainda mais a entrega periódica de incrementos
funcionais do produto aos clientes. Entre as principais peculiaridades do Scrum estão: a
organização dos recursos em equipes pequenas e multidisciplinares, as iterações dos
incrementos (chamadas de sprints) normalmente mais curtas e o forte envolvimento do cliente
durante todo o processo de desenvolvimento.
1.2 – Justificativa
A implantação de metodologias formatadas, como o modelo incremental e o Scrum,
nem sempre são a melhor opção para uma empresa de desenvolvimento de software que
deseja otimizar suas entregas e a satisfação de seus clientes. Em alguns casos, nem todos os
2
conceitos utilizados em uma metodologia podem ser implementados no ambiente da empresa,
e outros conceitos considerados importantes para a empresa podem não ser contemplados pela
metodologia escolhida. Em situações como essa, o que normalmente ocorre é uma adaptação
da metodologia às necessidades da empresa. Esta adaptação muitas vezes acaba por criar uma
abordagem híbrida própria da empresa, que pode envolver inclusive conceitos de diversas
metodologias.
A adaptatividade é uma das características mais marcantes de metodologias ágeis
como o Scrum. No entanto, a adaptação dessas metodologias aos modelos tradicionais de
desenvolvimento de software é relativamente recente e, por este motivo, ainda pouco
pesquisada. Somando-se a este cenário a forte demanda por processos de desenvolvimento de
software mais ágeis, nota-se a importância da disseminação das recentes experiências de
combinação entre os modelos tradicionais e as novas metodologias ágeis.
1.3 – Objetivos
O principal objetivo deste trabalho é contribuir para a evolução dos conhecimentos
relacionados aos processos de adaptação de metodologias ágeis a modelos tradicionais de
desenvolvimento de software. Mais especificamente, tem como intuito obter informações
sobre a viabilidade da adaptação do Scrum ao modelo incremental.
Para isso, além de estudar as duas metodologias, foi utilizado como embasamento, um
caso real de adaptação da metodologia Scrum ao modelo incremental. Com isso, foi possível
elencar as principais dificuldades enfrentadas durante a transição do modelo formatado
(Incremental) para o modelo híbrido (Incremental/ Scrum), além dos benefícios decorrentes
dessa adaptação.
1.4 – Organização do Trabalho
Este trabalho contém uma introdução que é composta pelo contexto, a justificativa, o
objetivo e a organização do trabalho. No segundo capítulo, é apresentado o modelo
incremental de desenvolvimeno de software com suas principais características. O capítulo 3
descreve os conceitos mais importantes da metodologia para gestão de projetos de
desenvolvimento de software Scrum. O quarto capítulo expõe um estudo de caso, onde ocorre
a adaptação do Scrum ao modelo incremental vigente em uma empresa. O capítulo 5 cita
alguns trabalhos relacionados a esta pesquisa. Por fim, o último capítulo apresenta às
conclusões obtidas com este trabalho.
3
2 – MODELO INCREMENTAL
Podemos definir o modelo incremental como um processo de ciclo de vida iterativo
e incremental com características do ciclo de vida seqüencial (TRAMMELL, 1996). No
modelo em cascata as fases são seqüenciais: os requisitos são definidos, o projeto do sistema
é criado, implementado e testado, é feita a integração e teste de sistema para finalmente
entrar em produção.
“O modelo incremental combina elementos do modelo em cascata aplicado de maneira
iterativa” (PRESSMAN, 2006), ou seja, a cada incremento é fornecida uma parte do sistema
aos clientes. O cliente define quais são os serviços principais e a partir da identificação dos
serviços é feito o levantamento de requisitos e mapeado o primeiro incremento.
Os processos de especificação, projeto, implementação e testes são feitos a cada
incremento até o produto final ser entregue ao cliente gerando um sistema completo,
conforme mostra a Figura 2.1.
Figura 2.1: Modelo incremental
“Quando um modelo incremental é usado, o primeiro incremento é freqüentemente
chamado de núcleo do produto” (PRESSMAN, 2006) . O núcleo do produto serve de base
para os outros incrementos.
4
A cada incremento entregue ao cliente é desenvolvido um plano para o próximo
incremento. Este processo é feito a cada termino e início dos incrementos e tem por objetivo
alterar o núcleo do produto para atender o cliente (PRESSMAN, 2006).
A interação do usuário é primordial no desenvolvimento incremental principalmente
na definição dos principais serviços e no retorno (feedback) da utilização do sistema.
As principais características do modelo incremental segundo Sommerville (2007) são:
Os processos de especificação, projeto e implementação são concorrentes.
O sistema é desenvolvido em uma série de incrementos.
Ferramentas de apoio ao desenvolvimento interativo.
De acordo com Sommerville (2007), as vantagens do desenvolvimento incremental
são:
Entrega dos incrementos ao cliente, ou seja, partes do sistema em funcionamento.
Participação dos clientes ou usuários no processo de desenvolvimento incremental.
Alguns dos problemas do desenvolvimento incremental segundo Sommerville (2007)
são:
Problemas no gerenciamento de grandes sistemas
Problemas em montar um contrato para atender ambas as partes interessadas
5
3 – Métodologias Ágeis e SCRUM
Em 2001 um grupo de pesquisadores se reuniu com o intuito de criar melhores práticas
para o desenvolvimento de software. Do resultado da reunião criou-se “O Manifesto para
Desenvolvimento Ágil de Software” (MANIFESTO ÁGIL, 2001), modificando a importância
dos valores aplicados no desenvolvimento de software:
“Estamos descobrindo melhores modos de desenvolvimento de software fazendo-o e
ajudando outros a fazê-lo. Por meio deste trabalho passamos a valorizar:
Indivíduos e interações mais que processos e ferramentas
Software em funcionamento mais que documentação abrangente
Colaboração com o cliente mais que negociação de contratos
Responder a mudanças mais que seguir um plano”
O manifesto também apresentou 12 princípios:
Nossa maior prioridade é satisfazer o cliente através da entrega contínua e
adiantada de software com valor agregado.
Mudanças nos requisitos são bem-vindas, mesmo tardiamente no desenvolvimento.
Processos ágeis tiram vantagem das mudanças visando vantagem competitiva para
o cliente.
Entregar frequentemente software funcionando, de poucas semanas a poucos
meses, com preferência à menor escala de tempo.
Pessoas de negócio e desenvolvedores devem trabalhar diariamente em conjunto
por todo o projeto.
Construa projetos em torno de indivíduos motivados. Dê a eles o ambiente e o
suporte necessário e confie neles para fazer o trabalho.
O método mais eficiente e eficaz de transmitir informações para e entre uma equipe
de desenvolvimento é através de conversa face a face.
Software funcionando é a medida primária de progresso.
Os processos ágeis promovem desenvolvimento sustentável. Os patrocinadores,
desenvolvedores e usuários devem ser capazes de manter um ritmo constante
indefinidamente.
6
Contínua atenção à excelência técnica e bom design aumenta a agilidade.
Simplicidade é essencial e deve ser assumida em todos os aspectos do projeto.
As melhores arquiteturas, requisitos e designs emergem de equipes auto-
organizadas.
Em intervalos regulares, a equipe reflete sobre como se tornar mais eficaz e então
refina e ajusta seu comportamento de acordo com a necessidade.
Definir um processo como “ágil” significa permitir que a equipe possa adaptar e
aperfeiçoar tarefas, manter apenas os trabalhos essenciais implementados, simplificar os
trabalhos essenciais, fazer entregas incrementais do software funcionando ao cliente o mais
rápido possível (PRESSMAN, 2006).
Scrum é uma metodologia ágil de desenvolvimento de software, seu nome está
relacionado a uma atividade que ocorre durante o jogo de rugby onde o grupo de jogadores se
juntam ao redor da bola e trabalham juntos para mover a bola pelo campo (PRESSMAN,
2006).
Os princípios do Scrum são compatíveis com o manifesto ágil:
Pequenas equipes.
O processo precisa ser adaptado para garantir que o melhor produto seja produzido.
Produzir incrementos de software.
Trabalho de desenvolvimento dividido.
Teste e documentação são realizados durante todo o desenvolvimento.
Os princípios do Scrum norteiam o processo de desenvolvimento de software que tem
as seguintes atividades: levantamento de requisitos, análise, projeto, evolução e entrega.
[Pressman, 2006]
Os papéis no Scrum são: Product Owner, Scrum Master e Time.
Scrum Master: Responsável por garantir o entendimento do processo do Scrum,
responsável por motivar e treinar a equipe.
Product Owner: Responsável pela priorização de requisitos que devem ser
implementados, ou seja, responsável pelo gerenciamento do Product Backlog (lista
de funcionalidades que serão implementadas no projeto).
7
Time (Equipe): Responsável pela execução e implementação das funcionalidades.
Eventos com duração fixa empregados no Scrum:
Sprint Planning Release: Reunião de Planejamento da Release
Sprint Planning Meeting: Reunião de Planejamento da Sprint
Sprint
Daily Scrum: Reunião Diária
Sprint Review: Revisão da Sprint
Sprint Retrospective: Restrospectiva da Sprint
O principais artefatos do Scrum são:
O Sprint: É uma interação de duas a quatro semanas, todas as sprint tem como
resultado um incremento do produto que pode ser entregue.
O Product Backlog: Lista priorizada do que o produto precisa ou pode ter.
Backlog da Sprint: Lista de tarefas para produzir o Backlog do Product em um
incremento entregável.
Burndown: É uma medida, pode variar dentro do contexto. Podemos ter um
Burndown de Sprint para medir o quanto falta ds tarefas dentro do tempo do Sprint.
Relacionamento entre os papéis, artefatos e eventos descritos na Figura 3.1:
O Product Owner, juntamente com o Scrum Master são responsável por manter a
lista priorizada de requisitos que devem ser implementados do Product Backlog.
A cada Sprint, o time decide quais itens do Product Backlog serão implementados
Sprint Backlog em uma reunião especial denominada Sprint Planning Meeting.
O time é responsável por implementar a funcionalidade escolhida e demostrar ao
Product Owner do Sprint – Sprint Review.
No final do Sprint o time faz uma revisão do trabalho – Retrospectiva do Sprint.
Uma reunião diária de 15 minutos denominada Daily Scrum é realizada. Na Daily
Scrum, cada desenvolvedor deve responder a três perguntas:
O que eu fiz desde a última Daily Scrum?
8
O que eu vou fazer hoje?
Existe algum obstáculo que me impeça de fazer o trabalho?
Figura 3.1: Visão do processo na metodologia Scrum
9
Projeto GP-5.2
Versão 5.2
Patch 5.2.2
Patch 5.2.1
Versão 5.2 Versão 5.2
Patch 5.2.1
4 – ESTUDO DE CASO
O propósito deste estudo de caso é adquirir conhecimento e experiência nos processos
de adaptação de metodologias ágeis a modelos tradicionais de desenvolvimento de software
por meio de um caso real. Em particular, espera-se contribuir com novas informações sobre a
viabilidade da adaptação do Scrum ao modelo incremental tradicional.
4.1 – Ambiente do Estudo de Caso
O ambiente escolhido para esse estudo de caso foi o de uma empresa de grande porte
que atua, entre outros segmentos, no desenvolvimento de aplicações voltadas para a área de
telecomunicações.
Esta empresa desenvolve um produto de software denominado Gerência da Planta, o
qual tem como principais clientes grandes operadoras do setor de telecomunicações.
Basicamente, este produto tem como finalidade gerenciar todas as informações relacionadas à
infra-estrutura da rede de telefonia instalada em campo, bem como os serviços que esta infra-
estrutura provê aos assinantes da operadora.
Até pouco tempo, a empresa utilizava o modelo incremental “puro” nos projetos de
evolução e manutenção deste produto, conforme ilustra a Figura 4.1. No entanto, há alguns
meses, passou a introduzir alguns conceitos da metodologia ágil Scrum em seu processo de
desenvolvimento de software.
Figura 4.1: Modelo Incremental no produto Gerência da Planta
4.2 – Métodos Utilizados
Devido à introdução do Scrum ainda estar em um estágio experimental, não foram
encontradas fontes textuais que explanassem detalhadamente como está se dando a adoção
deste novo paradigma.
10
Por este motivo, para coletar os dados para a análise do estudo de caso foi utilizada a
técnica de entrevistas. Os entrevistados foram escolhidos de acordo com o conhecimento e a
vivência que tinham nos projetos de evolução e manutenção deste produto. São eles: dois
coordenadores de projeto e dois líderes de equipe (equivalente ao papel de Scrum Master).
4.3 – Descrição do Estudo de Caso
Conforme foi dito, os projetos relacionados ao produto Gerência da Planta utilizavam
o processo de desenvolvimento baseado no modelo incremental. Com base nas entrevistas
realizadas, foram observadas as seguintes mudanças com a introdução de conceitos da
metodologia Scrum:
Os recursos passaram a ser divididos em equipes, sendo que cada uma delas passou
a ser responsável por uma feature do projeto dentro de um sprint do projeto. Essas
equipes são pequenas (até 10 pessoas) e multidisciplinares, envolvendo pessoas das
áreas de requisitos, desenvolvimento, banco de dados e testes.
Cada equipe passou a contar com um líder de equipe (algo equivalente ao papel do
Scrum Master), que atua como uma facilitador removendo eventuais obstáculos.
Cada feature do conjunto de features do projeto (Product Backlog) passou a ser
desenvolvida em um sprint que normalmente dura até 4 semanas.
Passaram a ser realizadas as Daily Meetings, que na verdade ocorrem em dias
alternados.
O gráfico Burndown Chart, que mostra a quantidade de horas restantes para a
conclusão do sprint em função do tempo, passou a ser utilizado.
4.4 – Resultados e Constatações
Pode-se notar que apenas alguns conceitos do Scrum foram utilizados puramente;
alguns foram adaptados e outros não implementados. Mesmo com a implementação parcial
desta metodologia, já foi possível observar alguns impactos positivos decorrentes da quebra
do paradigma do modelo incremental “puro”. A análise dos resultados desta mudança ainda
está na fase de coleta de indicadores, porém já foi percebida uma considerável melhora na
interação entre os membros das diferentes áreas (requisitos, codificação, banco de dados e
testes) envolvidas nos projetos. De acordo com as análises iniciais, outro efeito positivo foi
uma pequena redução nos esforços.
11
Uma das constatações desse estudo de caso está relacionada à multidisciplinaridade da
equipes que é recomendada pelo Scrum. Em outras palavras, cada um dos integrantes da
equipe deveria teoricamente possuir conhecimento genérico das diferentes áreas, que
abrangem a especificação, a construção e a validação do software. O ponto negativo dessa
característica é que muitas vezes um especialista pode acabar se envolvendo com assuntos que
não são de seu domínio, o que faz com que seu potencial não seja totalmente aproveitado.
Outra consideração a ser feita com relação aos recursos humanos, é que o líder da
equipe (papel que equivale ao Scrum Master) normalmente é um especialista da área de
codificação, e o ideal seria que fosse alguém com conhecimento genérico de outras áreas
também, como requisitos e testes. Ainda relacionado à questão da liderança, foi constatado
que apesar de existir um papel semelhante ao do Scrum Master – e um dos conceitos do
Scrum ser o autogerenciamento das equipes –, no modelo adaptado deste estudo de caso ainda
persiste o papel do coordenador de projeto.
Nesse modelo, as equipes e os sprints são organizados por feature do projeto (o
conjunto dessas features equivale ao Product Backlog). Pelo Scrum, ao final de cada sprint,
deveria ser entregue ao cliente um software com valor de negócio agregado. No entanto,
como as funcionalidades do produto em questão são grandes e muito interdependentes torna-
se difícil organizar os sprints de modo que cada um deles consiga entregar um software com
real valor de negócio. Por exemplo: no sprint 1 será desenvolvida a funcionalidade A, porém
esta funcionalidade somente faz sentido se for integrada à funcionalidade B, a qual será
desenvolvida no sprint 2. Nesse exemplo, pode-se ver que não faz sentido entregar o software
no sprint 1, já que esta entrega não agregará nenhum valor ao seu negócio para o cliente.
Devido a esta forte interdependência entre as funcionalidades do produto, os resultados dos
sprints intermediários não são entregues ao cliente.
Também pode-se notar que, por motivos de disponibilidade, não há envolvimento do
cliente (papel que seria equivalente ao Product Owner) em tempo integral. Para simular este
papel, quando é necessário tratar alguma questão referente ao produto que está sendo
desenvolvido, existe uma pessoa da área de requisitos que faz a interface com o cliente.
Por fim, como os integrantes que compõem as equipes não trabalham próximos
fisicamente, também foi observado que a falta de um leiaute adequado pode dificultar
relativamente a comunicação interna da equipe.
12
5 – TRABALHOS RELACIONADOS
Fagundes (2008) faz uma comparação entre os processos propostos pelos métodos
ágeis Scrum, XP (Extreme Programming), FDD (Feature Driven Development) e ASD
(Adaptive Software Development), visando a auxiliar a equipe de desenvolvimento na escolha
do método que melhor se adapte a suas expectativas. Para fazer a comparação, foram
utilizadas as tradicionais atividades do modelo incremental. Para cada atividade é apresentada
uma descrição da tarefa correspondente em cada método analisado.
Marçal (2008) apresenta um mapeamento entre o CMMI e a metodologia ágil Scrum,
mostrando as diferenças entre eles e identificando como as organizações estão adotando
práticas complementares em seus projetos para tornar essas duas abordagens mais integráveis.
A pesquisa pode ser útil para organizações que seguem o modelo CMMI e estão planejando
melhorar a agilidade dos seus processos, ou para ajudar as organizações a definir um novo
modelo de gestão do projetos baseando-se em ambas as metodologias.
Szimanski (2009) expõe um estudo de caso onde ocorre a extensão da metodologia
ágil Scrum para as áreas de processo do MPS.BR nível G aplicada em uma pequena fábrica de
software. Segundo os autores, o estudo realizado pode contribuir de forma relevante para
organizações que desejam promover a melhoria da qualidade dos seus produtos, por meio da
introdução de práticas ágeis no seu processo de desenvolvimento de software mantendo a
compatibilidade com o MPS.BR.
13
6 – CONCLUSÃO
Esta pesquisa foi realizada com a finalidade de contribuir para a evolução dos
conhecimentos relacionados aos processos de adaptação de metodologias ágeis a formas
tradicionais de desenvolvimento de software, como o modelo incremental. De certa forma,
podemos considerar o modelo incremental como um precursor do Scrum, pois um dos
principais conceitos desta última metodologia – a entrega periódica de software com valor de
negócio – está alinhado com a essência do modelo incremental.
Com o estudo de caso foram levantadas algumas questões que merecem reflexão
como: a dificuldade notória em se implantar integralmente os conceitos de metodologias ágeis
em um ambiente que utiliza um modelo mais tradicional, as possíveis desvantagens da
multidisciplinaridade das equipes e a dificuldade em se implementar de forma confiável e
eficiente o autogerenciamento das equipes. Também foi possível notar alguns obstáculos
existentes para se realizar entregas com real valor de negócio e de forma incremental, em
situações onde as funcionalidades do produto são grandes e muito interdependentes.
Baseado no estudo realizado, pode-se concluir que a decisão de adotar metodologias
ágeis no processo de desenvolvimento de software depende de vários fatores como: a
complexidade do produto de software, a maturidade e o comprometimento das equipes, a
disponibilidade do cliente, a cultura da empresa, entre outros. Como não existem prescrições
prontas que considerem as inúmeras combinações destas variáveis, a adoção dessas
metodologias demandará sempre uma análise aprofundada em cada caso, para avaliar quando
e como deverá ser implantada ou adaptada a metodologia escolhida.
14
REFERÊNCIAS BIBLIOGRÁFICAS
FAGUNDES, P. B.; DETERS, J. I.; SANTOS, S. S. Comparação entre os processos dos métodos ágeis: XP, SCRUM, FDD e ASD em relação ao desenvolvimento iterativo incremental. E-Tech: Atualidades Tecnológicas para Competitividade Industrial. Florianópolis, v. 1, n. 1, p. 37-46, 1º. sem. 2008.
MANIFESTO ÁGIL. Apresenta texto sobre o manifesto ágil. Disponível em: <http://agilemanifesto.org/>. Acesso em: 15 jun. 2010.
MARÇAL, A. S. C. et al. Blending Scrum practices and CMMI project management process areas. Innovations in Systems and Software Engineering, Londres, v. 4, n. 1, p.17-29, abr. 2008.
PRESSMAN, R. S. Engenharia de Software. 6ª ed. Rio de Janeiro: McGraw-Hill, 2006. 40, 41, 60, 69, 70 p.
SOMMERVILLE, I. Engenharia de Software. 8ª ed. São Paulo: Pearson, 2007. 552 p.
SZIMANSKI, F.; ALBUQUERQUE, J.; FURTADO, F. Implementando maturidade e agilidade em uma fábrica de software através de Scrum e MPS.BR nível G. In: XI Encontro de Estudantes de Informática do Tocantins, 2009, Palmas. Anais do XI Encontro de Estudantes de Informática do Tocantins. Palmas: Centro Universitário Luterano de Palmas, 2009. p. 161-170.
TRAMMELL, C. J. et al. The incremental development process in Cleanroom software engineering. Decision Support Systems 17, 1996, 55-71 p.
Recommended