Gerenciando Projetos De Software De Forma áGil Utilizando Scrum
1. Gerenciando projetos de software de forma ágil utilizando SCRUM
Um estudo de caso
Raphael Donaire Albino
Thiago Starck Pereira
Objetivo
Este artigo tem como objetivo apresentar o SCRUM, uma metodologia ágil de
gerenciamento de projetos. O artigo consiste no estudo de caso sobre uma empresa do
interior de São Paulo que adotou a metodologia descrita acima mostrando que a
utilização de práticas de processos ágeis de gerenciamento de projetos pode trazer
resultados satisfatórios.
Introdução
Devido ao ritmo acelerado de mudanças, inovações tecnológicas, concorrência acirrada
e grande dinamismo nas organizações e no ambiente de negócios, organizações ao redor
do mundo vem buscando um diferencial nesse mercado cada vez mais competitivo.
Houve um grande aumento na adoção de programas de qualidade e melhoria em
software, já que a qualidade do produto final é influenciada pela qualidade do processo
empregado no desenvolvimento.
Buscando cada vez mais aumentar a qualidade de seu produto final, empresas passaram
a adotar modelos e propostas, como o gerenciamento de projetos.
O gerênciamento de projetos aborda o planejamento e a coordenação de um projeto do
começo ao fim, identificando as exigências do cliente e cumprindo cronograma, custos e
padrões de qualidade. A gerência de projetos tem como objetivo a realização de um
projeto com a execução das suas metas específicas, oferecendo a um indivíduo ou grupo
a responsabilidade e autoridade para conseguir atingir metas.
A partir dos anos 90 uma nova abordagem para o desenvolvimento de software passou a
despertar grande interesse nas empresas devido as mudanças que vem ocorrendo nos
ambientes de negócios.
2. Os métodos ágeis têm como idéia o desenvolvimento de software iterativo, evolutivo e
incremental, tornando o seu desenvolvimento mais dinâmico e flexível. O contato com
o cliente passa a ser mais constante trazendo os princípios a serem seguidos no projeto
pela equipe de desenvolvimento.
Métodos, práticas e técnicas para o desenvolvimento ágil de projetos prometem
aumentar a satisfação do cliente, produzir software com alta qualidade e acelerar prazos
de desenvolvimento dos projetos.
Dentre as diversas metodologias ágeis existentes, o SCRUM é uma das mais difundidas
por ter maior foco em gerenciamento. O SCRUM é um processo ágil e leve que pode
ser utilizado para gerenciar e controlar o desenvolvimento de software.
Baseado em práticas de gerenciamento já fundamentadas no Extreme Programming e no
RUP (Rational Unified Process), o SCRUM produz os benefícios do desenvolvimento
leve com a vantagem de ser uma implementação simples e objetiva, com papéis bem
definidos, de fácil adaptação e com uma curva de aprendizado relativamente baixa.
O artigo visa relatar um estudo de caso de uma empresa no interior do estado de São
Paulo que adotou o SCRUM como metodologia de gerenciamento de projeto de
software.
Revisão de Literatura
Por conta da dinamicidade e competitividade que toma conta do mundo dos negócios, a
disciplina de gerenciamento de projetos se tornou muito importante, pois, à medida que
os desafios crescem, práticas de gerenciamento de projetos se tornam aliadas para
responder aos desafios.
O termo projeto tem sido muito utilizado nas organizações, ainda que isso não garanta
que elas estejam conduzindo as atividades inerentes ao que denominam como projeto da
melhor maneira ou que alcancem os resultados esperados.
Mas em que consiste a gerência de projetos?
Gerenciamento de projeto é a aplicação de conhecimento, habilidades, ferramentas e
técnicas às atividades do projeto a fim de atingir os requisitos do mesmo. A gerência
eficaz de projetos é conseguida através do uso de processos, tais como: iniciar, planejar,
executar, controlar e encerrar (PMI, 2000). Existem teorias, técnicas e ferramentas para
gerenciar projetos, muitas oriundas do universo militar ou do mundo pós-guerra.
3. Uma associação mundialmente conhecida e sem fins lucrativos que desenvolve padrões
para a prática de Gerenciamento de Projetos é o PMI. Sua origem se deu no fim dos
anos 60 nos EUA e hoje conta com mais de 270.000 associados em todo mundo (PMI-
SP, 2008).
A principal publicação do PMI é um guia de práticas para gerenciamento de projetos
conhecido como PMBOK ou “A Guide to the Project Management Body of
Knowledge”.
O PMBOK tem servido como uma base sólida para o gerenciamento de qualquer tipo de
projeto, inclusive na área de tecnologia da informação, justamente por abordar
disciplinas como Gerenciamento de Integração do Projeto; Gerenciamento do Escopo
do Projeto; Gerenciamento de Tempo do Projeto; Gerenciamento de Custos do Projeto;
Gerenciamento da Qualidade do Projeto; Gerenciamento de Recursos Humanos do
Projeto; Gerenciamento das Comunicações do Projeto; Gerenciamento de Riscos do
Projeto; Gerenciamento de Aquisições do Projeto, que são importantes em qualquer tipo
de projeto.
Porém, como comparar projetos de software com projetos de engenharia civil?
Imagine se no meio de um projeto de construção de um edifício o cliente sente a
necessidade da mudança de uma parede de lugar, sendo que ela já foi levantada. É algo
inimaginável, mas no mundo do desenvolvimento de software mudanças devem e são
encaradas naturalmente.
E eis que surge uma abordagem para o desenvolvimento de software que tem
despertado muito interesse em grandes organizações de todo o mundo. Estamos
vivendo uma tendência para o desenvolvimento ágil de aplicações devido ao ritmo
acelerado de mudanças na tecnologia da informação, pressões por constantes inovações,
concorrência acirrada e grande dinamismo no mundo dos negócios (BOEHM, 2006).
Não se deve confundir agilidade com desorganização ou falta de profissionalismo. Na
verdade ser ágil, ao contrário do que parece, exige um alto grau de disciplina e
organização. O termo agilidade quer dizer a habilidade de criar e responder a mudanças,
buscando a obtenção de lucro em um ambiente de negócio turbulento (HIGHSMITH,
2004).
4. Em 2001, um grupo de autores e responsáveis por diferentes técnicas e metodologias
ágeis se reuniram para discutir e deixar mais claro o sentido da abordagem ágil nos
projetos de desenvolvimento de software.
O resultado desse encontro foi a concepção do Manifesto Ágil (Agile Manifesto, 2001),
que estabeleceu os valores nos quais uma metodologia ágil deve se basear. São eles:
indivíduos e interações sobre processos e ferramentas; software funcionando sobre
extensa documentação; colaboração dos clientes sobre negociação em contratos;
respostas às mudanças sobre seguir um plano. Sendo os itens em negrito os mais
importantes.
Nos últimos cinco anos uma metodologia para gerenciamento de projetos de software
chamada SCRUM tem sido muito bem aceita no mercado.
O SCRUM é um processo ágil para o desenvolvimento de software criado em 1996 por
Ken Schwaber e Jeff Sutherland e se destaca por focar o processo de gerenciamento de
projetos. Com o SCRUM, os projetos progridem a partir de uma série de iterações
mensais chamadas Sprints.
A metodologia se baseia em princípios como: equipes pequenas de no máximo sete
pessoas e iterações curtas.
O SCRUM utiliza um esqueleto iterativo e incremental que é sustentado por três papéis
principais (SCHWABER, 2004): Product Owner (Dono do Produto): representa os
interesses do cliente no projeto e, em alguns casos é o próprio cliente; Scrum Master
(Mestre Scrum): responsável pela execução de todas as regras do SCRUM; Team
(Time): responsável por desenvolver o projeto.
Segundo SCHWABER (2004), o SCRUM não é um processo previsível, ele não define
o que fazer em todas as circunstâncias. Ele é utilizado em projetos que mudam
freqüentemente, possuem requisitos altamente mutáveis e, é recomendado para projetos
de outras áreas que não o desenvolvimento de software e principalmente para projetos
de pesquisa e inovação.
O projeto SCRUM tem início quando uma visão do que deverá ser desenvolvido é
criada. Essa visão deve conter uma lista das características que o cliente espera que o
projeto contenha ao seu final, tendo como referência o seu problema atual.
5. Posteriormente, o Product Backlog é criado contendo a lista de todos os requisitos que
foram levantados. Os requisitos devem ser priorizados e divididos em entregáveis
(releases). O fluxo de desenvolvimento detalhado do SCRUM é mostrado na figura 1.
Como citado anteriormente, o trabalho no SCRUM é realizado em iterações chamadas
Sprints.
Schwaber (SCHWABER, 2004) explica que cada Sprint inicia-se com uma reunião de
planejamento chamada Sprint Planning Meeting, na qual o Product Owner e o Team
decidem em conjunto o que deverá ser desenvolvido (Selected Product Backlog)
naquele Sprint.
Em geral, a reunião é dividida em duas partes. Na primeira parte (Sprint Planning 1) o
Product Owner apresenta ao Team os principais requisitos que devem ser desenvolvidos
e fica ao encargo do Team decidir o que poderá ser desenvolvido, considerando sua
produtividade. Na segunda parte (Sprint Plannig 2), o Team planeja o seu trabalho,
criando o Sprint Backlog, que é a lista das tarefas necessárias para se desenvolver as
funcionalidades designadas para aquele Sprint.
É importante citar, que a lista das tarefas pode ser modificada pelo Team ao longo do
Sprint e as tarefas variam normalmente entre quatro e dezesseis horas para sua
conclusão.
Ao longo do Sprint, reuniões de quinze minutos são feitas diariamente para acompanhar
o progresso do trabalho e outras reuniões podem ser agendadas se necessário. Cada
membro do Team deve responder as seguintes questões nas reuniões diárias: O que eu
fiz no projeto desde a última reunião? O que irei fazer até a próxima reunião? Quais são
os impedimentos?
Ao final do Sprint uma reunião de revisão (Sprint Review Meeting) é realizada para que
o Team apresente o resultado alcançado na iteração para o Product Owner. Neste
instante, são validadas as funcionalidades e caso sejam necessárias, adaptações são
realizadas.
Após essa reunião, o Scrum Master realiza uma reunião de retrospectiva (Sprint
Retrospective Meeting) com o intuito de melhorar o processo e o produto para o
próximo Sprint.
6. Ao final do Sprint um produto com valor agregado deve ser entregue ao cliente e esse
processo se repete até que todo o Product Backlog seja atendido (CONTROL CHAOS,
2008).
Figura 1. Visão geral do processo do Scrum (adaptada de [Schwaber, 2004])
Método de Pesquisa
O estudo de caso é um tipo de pesquisa qualitativa e têm como objetivo retratar a
realidade de uma forma completa e transparente, revelando fatos que envolvem e
determinam os diversos momentos da realidade estudada.
Para a construção do estudo de caso que este artigo abrange, a princípio serão realizadas
investigações sobre o tema estudado para a construção de hipóteses e contextualização
das situações envolvidas no cenário atual da empresa.
O estudo de caso será caracterizado com uma pesquisa descritiva, realizada através de
entrevistas. Ele se baseará nos dados coletados nos questionários das entrevistas que
serão aplicados aos diferentes funcionários da empresa. Os dados coletados serão
utilizados para se chegar à compreensão da empresa como um todo.
Após a fase de coleta das informações será feita uma seleção, análise e interpretação dos
dados, considerando o objetivo da nossa investigação.
Logo em seguida relatórios finais serão elaborados de maneira concisa, especificando
como foram coletados os dados de forma detalhada e padronizada, para a comprovação
7. de sua validade, respeitando o rigor científico necessário, mas não perdendo a
simplicidade para uma boa compreensão.
Os resultados do estudo de caso surgirão de formas quantitativas e qualitativas. Através
dos resultados será possível conhecer a situação da empresa antes e depois da adoção da
metodologia SCRUM nos seus projetos de maneira válida e confiável.