gerenciando projetos de software de forma ágil utilizando scrum

7
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.

Upload: raphael-albino

Post on 18-Dec-2014

1.853 views

Category:

Technology


2 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Gerenciando Projetos De Software De Forma áGil Utilizando Scrum

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.

Page 2: Gerenciando Projetos De Software De Forma áGil Utilizando Scrum

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.

Page 3: Gerenciando Projetos De Software De Forma áGil Utilizando Scrum

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).

Page 4: Gerenciando Projetos De Software De Forma áGil Utilizando Scrum

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.

Page 5: Gerenciando Projetos De Software De Forma áGil Utilizando Scrum

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.

Page 6: Gerenciando Projetos De Software De Forma áGil Utilizando Scrum

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

Page 7: Gerenciando Projetos De Software De Forma áGil Utilizando Scrum

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.