Artigo - Scrum Desenvolvimento de Software
Artigo - Scrum Desenvolvimento de Software
Artigo - Scrum Desenvolvimento de Software
MACHADO, Marcos
Pós-graduado em Tecnologia e Sistemas de Informação - Unisanta
MEDINA, Sérgio Gustavo
Mestre em Ciência da Computação – Instituto Tecnológico de Tokyo
Resumo
Vivemos um momento bastante interessante na área de
desenvolvimento de Software – Metodologias Ágeis. O objetivo
deste artigo é desmistificar esse paradigma e contribuir com o campo
de estudos, através da apresentação e reflexão dos principais
conceitos e propostas do tema.
Abstract
This is a very interesting time in the area of software development –
Agile Methodologies. This article aims to demystify this paradigm
and contribute to the field of studies through the presentation and
reflection of the key concepts and theme proposals.
Introdução
Página | 58
Em Tecnologia da Informação os gestores estão cada vez
mais sob pressão para obterem resultados que impulsionem uma
melhoria do produto final. Ambientes empresariais, independente da
queda da economia e cortes no orçamento, continuam a mudar a um
ritmo muito rápido e os profissionais de TI lutam para acompanhar o
ritmo dessas mudanças.
Estas mudanças levaram a um crescimento no
desenvolvimento de metodologias ágeis na gestão de projetos de
desenvolvimento de software, cujo objetivo é maximizar a
produtividade de um grupo de trabalho com a promessa de entrega
rápida, flexibilidade e qualidade.
Fazendo uma analogia ao modelo de gestão industrial
idealizado por Henry Ford, fundador da Ford Motor Company, era
um modelo de Produção em Massa que revolucionou a indústria
automobilística nas décadas de 1950 e 1960. Os veículos eram
montados sobre esteiras rolantes que se movimentavam enquanto o
operário ficava praticamente parado, realizando uma etapa da
produção, ou seja, não era necessária quase nenhuma qualificação
por parte desses operários.
Como se tratava de um modelo de produção em massa, Ford
percebeu que com a cor preta, a tinta secava mais rápida e
consequentemente os carros poderiam ser montados mais
rapidamente. Ficou famosa a frase de Ford, que dizia que poderiam
ser produzidos automóveis de qualquer cor, “desde que fossem
pretos”.
Entretanto, a rigidez deste modelo de gestão industrial foi à
causa de seu declínio. Na década de 70, após a crise do petróleo e a
entrada de competidores japoneses no mercado automobilístico, o
“Fordismo” e a “Produção em Massa” entraram em crise e
começaram a ser substituídos pelo modelo de produção baseado no
Sistema Toyota de Produção.
O sistema de produção da Toyota, conhecido como lean
manufacturing system ou Just in Time System, é uma das maiores
contribuições ao mundo empresarial. Os fundadores Toyoda Sakichi,
seu filho Toyoda Kiichiro e o principal executivo e engenheiro
Taiichi Ohno, criaram esse sistema com o objetivo de aumentar a
eficiência da produção pela eliminação contínua de desperdícios.
Esses conceitos foram apresentados ao mundo pela Toyota quando
introduziu as idéias “jidoka e just in time”. A primeira refere-se à
Página | 59
automação com toque humano; toda vez que ocorre um problema, o
equipamento para imediatamente, com o objetivo de prevenir a
produção de outros produtos com defeito; e a segunda o processo
produz somente aquilo que é requerido pelo próximo processo,
gerando assim um fluxo contínuo.
Pode-se perceber que a indústria automobilística foi um
segmento que se estagnou durante muito tempo, assim como a
indústria de desenvolvimento de software. Com idéias inovadoras a
Toyota estabeleceu um novo benchmark de produção efetiva de alta
qualidade, visando satisfazer seus clientes e apostando no
conhecimento dos seus funcionários.
O Scrum força uma mudança cultural na forma de pensar, na
forma de agir e tira todas as pessoas da zona de conforto e
dependendo da cultura da empresa, normalmente acaba sendo
rejeitado pelas pessoas envolvidas.
Dentro deste contexto, o propósito deste artigo é apresentar
esse framework de processo ágil utilizado para gerenciar e controlar
o desenvolvimento de um produto de software através de práticas
iterativas e incrementais.
O Paradigma da Mudança
Página | 60
Eis o grande paradigma da mudança. Defensores da
Metodologia Ágil consideram ser difícil obter apoio da gestão para a
execução do que parecem ser dramáticas mudanças no
desenvolvimento de aplicativos, isto porque, esses métodos causam
uma “falsa sensação” de descarte do papel do gestor no sentido de
garantir o sucesso.
Métodos, práticas e técnicas para o desenvolvimento ágil de
projetos prometem aumentar a satisfação do cliente (BOEHM, 2003)
para produzir alta qualidade de software e para acelerar os prazos de
desenvolvimento de projetos (ANDERSON, 2003).
Em 2001, um grupo de 17 autores e representantes das
Metodologias Ágeis tais como: Scrum, eXtreme Programming (XP),
Feature Driven Development (FDD), entre outros; discutiram um
padrão de desenvolvimento de projetos dentre as técnicas e
metodologias existentes e o resultado desse encontro foi a criação do
Manifesto para Desenvolvimento Ágil de Software (AGILE
MANIFESTO, 2001). Estabeleceram um framework comum para
processos ágeis valorizando os seguintes itens:
- Indivíduos e interações mais que processos e ferramentas;
- Software funcionando mais que documentação compreensiva;
- Colaboração do cliente mais que negociação do contrato; e
- Responder à mudança mais que seguir um plano.
Isto é, embora haja valor nos itens da direita, os mais valorizados são
os itens da esquerda.
Página | 61
Por esse motivo o Scrum defende a utilização somente de
documentação suficiente e necessária para ajudar no
desenvolvimento do projeto. Vale salientar que o grande objetivo do
projeto é o produto e não a documentação.
No Scrum, o Product Backlog é uma lista que contém as
prioridades das funcionalidades a serem implementadas no projeto.
Trata-se de uma lista que acompanha todas as necessidades do
cliente, ou seja, isso garante que sempre serão executadas as
funcionalidades de maior importância no momento anterior ao início
de cada ciclo de desenvolvimento com duração de 15 a 30 dias,
chamado de Sprint.
No ambiente de negócios globalizado o cliente necessita de
retorno rápido do capital investido. Ao contrário de outras
metodologias, Scrum prioriza explicitamente o retorno de
investimento (ROI). O Product Owner tem a função de maximizar e
priorizar as atualizações do Product Backlog, de forma que os itens
de maior valor para o cliente em cada momento sejam
implementados primeiro. Dessa forma, o incremento ao produto
realizado ao final de cada sprint gera retorno ao cliente por diversas
vezes ao longo do projeto.
O Manifesto Ágil defende que responder as mudanças é mais
importante do que seguir um plano. Por se tratar de um framework
ágil, Scrum encara as mudanças como parte natural do processo de
desenvolvimento. Com a atualização do Product Backlog, as novas
solicitações do cliente podem ser introduzidas no próximo sprint,
gerando vantagem competitiva para as empresas.
Página | 62
Em 1995, Ken Schwaber formalizou o Scrum para projetos de
desenvolvimento de software baseado no sistema lean da Toyota.
Segundo Fonseca (2009), Scrum são times trabalhando como
uma unidade altamente integrada com cada membro desempenhando
um papel bem definido e o time inteiro focando num único objetivo
– entrega do produto. Elimina práticas de controle desnecessárias,
inadequadas e burocráticas, se concentrando na essência do processo
de confecção de sistemas de informação.
O Scrum é bastante objetivo, possuindo metas claras, equipe
bem definida, flexibilidade, comprometimento, cooperação; e sua
curva de aprendizado é relativamente baixa. Apesar de o Scrum ser
uma metodologia da área de exatas, ela tem muito da área de
humanas e isso precisa ser levado em consideração o tempo todo.
Segundo seu autor 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 trabalhos complexos onde não é
possível prever os acontecimentos e oferece um framework e um
conjunto de práticas que torna tudo visível. Isso permite a equipe ter
uma visão exata dos fatos ao longo do projeto e se necessário,
realizar os devidos ajustes visando alcançar seus objetivos. Este é um
dos pontos fortes do Scrum: “Adaptabilidade e Flexibilidade”.
O Scrum não é “milagreiro” e muito menos irá oferecer uma
“receita pronta” para resolver todos os seus problemas. A única
certeza é que esses problemas serão identificados com mais
facilidade. Por se tratar de um framework servirá como um guia de
boas práticas para alcançar seu objetivo.
Product Owner
Página | 63
para o negócio, cabe a ele atualizar e priorizar continuamente o
Product Backlog (Planning) para assegurar que as funcionalidades
mais valiosas sejam produzidas primeiro. Pode mudar os requisitos e
prioridades a cada Sprint, bem como aceitar ou rejeitar o resultado de
cada Sprint.
Em algumas empresas esse papel é conhecido como “Gerente
do Produto”, assumindo parcelas das atividades habituais do Gerente
de Projetos tradicional. Esse papel é composto por um representante
do cliente dentro da equipe ou por uma pessoa capacitada a sanear
dúvidas sobre requisitos que surjam no dia-a-dia, pois ele faz parte
da equipe e deverá ter todo o comprometimento com o projeto. É ele
quem decide a data do release e o que deve conter nela.
Scrum Master
Scrum Team
Página | 64
desenvolvimento que trabalha de forma participativa. Não existe
necessariamente uma divisão funcional através de papéis
tradicionais, por exemplo: o programador programa, o testador testa,
o designer faz a programação gráfica, entre outros. Por se tratar de
uma equipe multifuncional, caso o designer saia do projeto às telas
novas não ficarão sem programação gráfica.
Um Scrum Team é composto geralmente por 5 a 9 membros
embora haja relatos de projetos Scrum com equipes maiores. O
Scrum Team é responsável por ficar focado nas tarefas atribuídas e
quando se deparam com itens que impedem o progresso pleno,
identificam qual é o impedimento e reportam ao Scrum Master.
Outra característica importante é que os times são auto-
gerenciáveis, sendo responsáveis por controlar as tarefas do
desenvolvimento do Sprint. Segundo Fonseca (2009), o time
desenvolve de forma iterativa, realizando projeto, codificação, testes
de unidade, aceitação e até documentação (JIT – Just in Time), para
cada Select Backlog (“requisito”) antes de passar para o próximo
Sprint. Desenvolve os itens de Select Backlog rigorosamente em
sistema de pilha (LSD – “pull”), do mais importante (maior ROI)
para o menos importante, reforçando diariamente a formação para
que cada um seja capaz de fazer qualquer item da pilha (multi-
aprendizado).
Realizam reuniões diárias – Daily Scrum conferindo os Select
Backlog realizados e atualizam o Agile Radiator e o Burndown
Chart garantindo assim, sincronia nas tarefas e comunicação plena
do time.
Stakeholders
Página | 65
todos os interessados em fornecer um feedback freqüente em todo o
Sprint.
Isto produz um produto que adere mais estreitamente com as
necessidades do cliente, ou seja, todos possuem um senso de
propriedade. A responsabilidade pela entrega do produto é de toda a
equipe, independente de papéis. Caso ocorra alguma falha durante o
Sprint, todos são responsáveis pelo seu fracasso.
Página | 66
Um Sprint termina com um Sprint Review Meeting, uma
reunião em que as funcionalidades implementadas são demonstradas
para os usuários.
Segundo Pressman (2006), Daily Meeting são ciclos de
reuniões diárias de 15 minutos em média, com características
particulares, elas são realizadas “em pé” (Standup Meeting) pela
manhã, onde cada membro da equipe do projeto deve responder a
três perguntas:
1.O que fez para o projeto desde a última reunião?
2.O que fará para o projeto até a próxima reunião?
3.Há algum obstáculo para conseguir seu objetivo? Precisa de
ajuda?
Página | 67
estado do projeto e o software atual é apresentado ao
cliente.
Página | 68
3) Sprint Backlog – é uma lista de tarefas (histórias mais relevantes)
com suas respectivas estimativas de duração do presente momento,
até o fim do Sprint. Derivado a partir do product backlog onde são
detalhados os itens do product backlog em tarefas. É definida pelo
time, e negociada com o Product Owner. É de extrema importância
que o time mantenha esta lista sempre atualizada;
Conclusão
Página | 69
contexto significam que os requisitos irão mudar ao longo do projeto
de desenvolvimento, queira ou não.
A única coisa que se tem certeza é que os requisitos irão
mudar; só não se sabe quando. Mas, a mudança (de escopo, nas
regras de negócio, nas leis governamentais sejam elas Municipais,
Estaduais, ou Federais) vai acontecer. A pergunta é: “O profissional
está preparado para quando isto vir a acontecer”?
Todo bom profissional deve estar preparado. O SCRUM foca
as pessoas que desenvolvem o software e não o processo em si, que
geralmente seguem requisitos rígidos definidos no início do projeto.
Isto é, difere das metodologias tradicionais (já amadurecidas) que
focam o processo (documentação) e fazem a hipótese de que os
requisitos não sofrerão alterações.
O desafio futuro das metodologias ágeis será encontrar meios
de minimizar as suas desvantagens sem transformá-las em
metodologias pesadas, como também aumentar o número de pessoas
que integram a equipe sem perder a confiabilidade e eficiência no
gerenciamento de mudanças.
Assim como outros processos e metodologias ágeis, o Scrum
possui vantagens e desvantagens. Mas vale a pena analisar com
cuidado, talvez uma saída seja a adoção de um modelo híbrido.
Bibliografia:
Página | 70
HIGHSMITH, J., Agile Project Management, Creating innovative
products, Addison Wesley, 2004.
KOSCIANSKI, A., Soares, Santos, M. Qualidade de Software, São
Paulo, Novatec Editora, 2006.
PRESSMAN, R., Engenharia de Software, São Paulo, Mc Graw-
Hill, 2006.
SCHWABER K., Agile Project Management With Scrum,
Microsoft Press, 2004.
_____________ , The Enterprise and Scrum, Microsoft Press,
2007.
TEAMSYSTEM, Scrum for team system, 2005. Disponível em
<http://www.scrumforteamsystem.com> Acesso em: 06 jul. 2009.
Página | 71