Академический Документы
Профессиональный Документы
Культура Документы
MTODOS GEIS DE
DESENVOLVIMENTO DE SOFTWARE:
UM CASO PRTICO DE APLICAO
DO SCRUM
Carlos Eduardo Costa de Carvalho (UFRJ)
caducn@gmail.com
Carolina Thome de Abrantes (UFRJ)
caroltabrantes@gmail.com
Renato Flrido Cameira (UFRJ)
cameira@pobox.com
1. Introduo
O atual padro de competitividade tem destacado organizaes que tenham conseguido,
atravs do lanamento de novos produtos e servios, acompanhar ciclos de inovao cada vez
mais acelerados no mercado. Segundo Senge (1990), a real vantagem competitiva das
organizaes sua habilidade em aprender mais rapidamente que a concorrncia, em gerar e
compartilhar conhecimento e melhorar de forma contnua sua atuao. Neste contexto, os
ciclos de inovao tecnolgica se destacam nas ltimas dcadas. O tempo entre o lanamento
de novos produtos e servios de tecnologia tem diminudo e as empresas que se deparam com
os desafios de aprendizado e lanamento de novidades no mercado.
Porm, as tentativas de melhoria em relao aos resultados e ao tempo de entrega de projetos
de software no tm gerado os resultados esperados. Uma pesquisa divulgada pelo The
Standish Group (2009) demonstra que apenas 32% dos projetos de software obtiveram
sucesso em 2009. Dos restantes, 44% foram entregues com problemas e 24% fracassaram. Em
outra pesquisa divulgada pelo mesmo instituto em 2006, constata-se que 45% das
funcionalidades entregues nunca foram utilizadas e apenas 7% so realmente utilizadas no
dia-a-dia.
Estes nmeros revelam um cenrio desfavorvel relacionado real entrega de valor
proporcionada por projetos de desenvolvimento de software. Este cenrio se torna ainda mais
crtico frente necessidade de constantes inovaes para o alcance de posies de destaque no
mercado, conforme colocado anteriormente. Assim, nos ltimos 20 anos, novos mtodos de
desenvolvimento de sistemas de informao surgiram com a proposta de fornecer maior
agilidade e flexibilidade para as empresas. Dentre estes mtodos, destaca-se o Scrum, mtodo
gil de desenvolvimento de software, criado na dcada de 1990 por Jeff Sutherland, com base
em conceitos tradicionais da engenharia de produo como a filosofia enxuta e a teoria das
restries explorados por Takeuchi & Nonaka (1986) no artigo The new new product
development game, no qual descrevem as vantagens da utilizao de times multidisciplinares
e autogerenciveis no desenvolvimento de produtos.
Este artigo tem o objetivo de apresentar um estudo de caso sobre a utilizao do mtodo gil
Scrum em uma empresa do setor de software nacional. Ser tratado o processo de anlise e
identificao de problemas da situao atual da empresa e como o mtodo em questo foi
utilizado como referencial terico para propor solues de melhoria, orientando uma mudana
organizacional.
2. Mtodo
Para a conduo deste trabalho foi seguido um mtodo que pode ser representado pela Figura
1. Esta pesquisa pode ser classificada como de natureza aplicada (GIL, 1999), isto , trata-se
de uma pesquisa que envolve conhecimentos que buscam resolver lacunas terico-prticas.
As tcnicas de quarta gerao, conhecidas pela sigla 4GT, trazem uma abordagem de
especificao de software utilizando funes significativas que aproximam a linguagem de
mquina linguagem natural.
Tecnologias modernas que utilizam a 4GT conseguem passar automaticamente das fases de
especificao para a implementao, incluindo testes automatizados que garantem a
conformidade com os requisitos levantados. As tcnicas de quarta gerao j se tornaram
importantes para o desenvolvimento de aplicaes de sistemas de informao (PRESSMAN,
2002).
4.2.6. Metodologias geis
Um dos problemas relacionados s metodologias mais tradicionais de desenvolvimento de
software est na identificao, registro e tratamento dos requisitos de negcio. No atual
ambiente de desenvolvimento de software, os requisitos esto sujeitos a freqentes
modificaes durante o ciclo de desenvolvimento do produto para atender as alteraes da
demanda (RISING; JANOFF, 2000).
Frente s dificuldades de adaptao dos mtodos tradicionais s necessidades de mudanas
dos processos de desenvolvimento de software, surgiram, durante a dcada de 1990, os
chamados mtodos geis. Estes mtodos foram influenciados pelos princpios da manufatura
enxuta implementados pelas companhias Honda e Toyota e pelas estratgias de gesto do
conhecimento de Takeuchi e Nonaka (2004) e Senge (1990). Tratam-se de metodologias de
desenvolvimento adaptativas e flexveis, e que so indicadas para cenrios onde a mudana de
requisitos constante e os resultados precisam ser entregues ao cliente em curtos espaos de
tempo. (CARVALHO; MELLO, 2009).
No lugar da aderncia e conformidade aos planos iniciais prefervel adaptar aos cenrios
atuais, levando em considerao o conhecimento adquirido durante o desenvolvimento (uma
vez que o desenvolvimento uma atividade de aprendizado baseado em tentativas e erros),
aproveitando oportunidades emergentes e focando na entrega de valor real para os clientes.
(FRANCO, 2006)
Estas metodologias, portanto, focam nos indivduos e na interao entre eles, no
funcionamento do software, na colaborao com o cliente e na resposta rpida s mudanas.
Isto alcanado atravs de ciclos iterativos de desenvolvimento de sistemas com objetivos de
curto prazo, tonando possvel a adaptao dos requisitos at o momento em que entram em
fase de desenvolvimento.
4.3. O Scrum
Segundo Carvalho e Mello (2009), dentre os diferentes mtodos geis, o que mais se destaca
o Scrum, uma abordagem enxuta de desenvolvimento de produtos. A primeira utilizao deste
termo surgiu em um estudo de Takeuchi & Nonaka (1986), no qual, os autores notaram que
pequenos projetos que tinham equipes pequenas e multifuncionais obtinham os melhores
resultados. Este estudo serviu como base para que, em 1993, Jeff Sutherland criasse o Scrum.
O objetivo do Scrum entregar a maior qualidade de software possvel dentro de uma srie de
pequenos intervalos de tempo fixo, chamados Sprints, que tipicamente duram menos de um
ms (SUTHERLAND et al., 2000). Ou seja, ao final de cada Sprint, espera-se que sejam
entregues funcionalidades que possam ser utilizadas pelo usurio, gerando valor para seu
negcio ou aumentando sua satisfao em relao ao produto entregue.
O mtodo tem incio com uma reunio denominada Sprint Planning. Na primeira parte desta
reunio, so eleitos os requisitos de sistema registrados no Product Backlog que sero
O Scrum possui trs papis fundamentais. O Scrum Master deve trabalhar para que o processo
Scrum acontea e para que no existam impedimentos para que os membros da equipe
realizem seu trabalho. Remover os obstculos apontados no Daily Scrum seu dever, de
modo que os desenvolvedores se concentrem apenas nas questes tcnicas (CARVALHO;
MELLO, 2009).
Outro papel importante no mtodo o do Product Owner. Este membro do time representa o
cliente interno ou externo. Ele deve definir quais so os requisitos e qual o grau de
importncia e prioridade de cada um deles (CARVALHO; MELLO, 2009).
Por fim, o ltimo papel destacado pelo Scrum o prprio Time, que deve ser multidisciplinar,
auto-gerencivel e todos devem estar em busca de um objetivo comum.
4.4. A Manufatura Enxuta (Lean Manufacturing)
Como citado, o Scrum tem suas razes nos princpios da manufatura enxuta japonesa. Filho e
Fernandes (2004) propem uma listagem com a sntese desses princpios, que so a base da
manufatura enxuta.
esforo gerencial deve ser na otimizao dos gargalos e na reduo das restries que
influenciam as etapas de agregao de valor.
Dentre as mximas da Teoria das Restries dito que uma hora perdida na operao do
posto gargalo uma hora perdida para o sistema todo. Desta afirmao retirada da prpria
obra A Meta (GOLDRATT; COX, 1990), tem-se que a operao do gargalo dita o
desempenho global da linha produtiva e do negcio.
5. O Caso
O caso apresentado baseado em um projeto de anlise da situao atual e proposies de
melhorias para a metodologia de desenvolvimento de sistemas de uma empresa do setor de
software, que resultou na implementao do Scrum em seu processo produtivo.
5.1. A Organizao e o Contexto do Projeto
Este trabalho foi realizado em uma empresa brasileira com atuao internacional
especializada em solues relacionadas Governana, Riscos e Compliance (GRC). A
empresa atua nas reas de desenvolvimento e comercializao de software para automatizao
de solues de GRC, consultoria e educao nesta rea. Seus clientes esto localizados no
Brasil, Amrica Latina, Estados Unidos e Europa.
Para manter seu sistema atualizado frente s inovaes do mercado de GRC e s necessidades
de customizao demandadas por seus clientes, a equipe tcnica da empresa lida
constantemente com uma srie de mudanas e atualizaes no sistema. O grande volume de
novos requisitos a serem desenvolvidos exige dinamismo equipe de desenvolvimento, que
deve ser capaz de gerenciar a alta demanda e garantir qualidade e pontualidade de entrega de
seu produto final.
O crescimento das vendas da empresa durante 2010 aumentou ainda mais a demanda por
atualizaes no software, o que gerou uma presso sobre a diretoria tcnica a respeito da
eficincia de sua equipe de desenvolvimento de sistema. Juntamente a este cenrio, a alta
gesto da empresa colocava em prtica aes para a otimizao de recursos. Assim, o diretor
tcnico, em parceria a um grupo externo, conduziu uma iniciativa para a avaliao da atual
metodologia utilizada para o desenvolvimento do software, identificao de pontos crticos e
proposio de melhorias.
5.2. A situao atual do processo de desenvolvimento de sistema da organizao
O estudo teve incio com o mapeamento da situao atual dos processos de desenvolvimento
de sistemas da empresa anteriormente implementao do Scrum. Em primeiro lugar, era
preciso entender como o processo de desenvolvimento estava organizado. Para tanto, foi
construdo um esquema que representava a situao atual do processo, desde a chegada de
novas demandas at a entrega do software.
g) Quais crticas podem ser colocadas quanto atividade, aos recursos necessrios e
comunicao com as equipes responsveis pelas demais atividades?
Como resultado das informaes obtidas atravs das entrevistas, foi possvel a caracterizao
mais detalhada da situao atual da empresa. Alguns pontos crticos foram postos em
evidncia, demonstrando algumas dificuldades encontradas pela equipe tcnica:
- Um ano antes deste estudo, houve uma reestruturao na metodologia de desenvolvimento
da empresa devido migrao do software para uma verso mais avanada. Novas
atividades foram criadas, dentre elas, a especificao dos requisitos.
Esta atividade, apesar de ser considerada crtica para a garantia da qualidade do produto
final, era realizada por uma equipe com pouca experincia na empresa e ainda no possua
papis e responsabilidades bem definidos.
- Conforme mencionado, a equipe de especificao era responsvel pela elaborao das
Especificaes dos Requisitos utilizadas como base por todas as demais etapas do processo
de desenvolvimento. Devido pouca experincia desta equipe, o aparente
subdimensionamento e a falta de processos que orientassem a execuo das atividades,
pode-se identificar o seguinte cenrio.
10
11
Foi decidido por uma estratgia de mudana na qual todos os profissionais das reas
envolvidas no Scrum migrariam de uma s vez para os times multidisciplinares. Este processo
demandou um trabalho intenso de conscientizao e disseminao da cultura gil por toda a
equipe tcnica. Para tanto, todos receberam um treinamento no mtodo Scrum. Aps a
realizao do treinamento, foram definidos os componentes dos times e houve a escolha dos
Scrum Masters (que seriam trocados a cada trs meses).
Para a adaptao dos profissionais nova metodologia, ao longo de janeiro de 2011 foram
realizados dois Sprints experimentais, apenas para a resoluo de bugs antigos do sistema.
Este perodo de adaptao foi utilizado para observar possveis pontos de melhoria no mtodo
implementado.
Por fim, para o controle da evoluo da nova metodologia, foram determinados alguns
indicadores de desempenho como Eficcia do Trabalho, ndice de Trabalho
Remanescente, Densidade de erros por linha de cdigo, Tempo Mdio de Resoluo de
Impedimentos e Avaliao da Satisfao do Product Owner.
O processo de implantao do Scrum ocorreu durante 40 dias e foi finalizado na segunda
semana de janeiro de 2011. Desde ento, o progresso do mtodo vem sendo acompanhado
atravs de indicadores de desempenho e, de acordo com as necessidades impostas pela rotina
e pelas particularidades da organizao, so feitos ajustes nos processos.
Com a formao de times multidisciplinares, os profissionais responsveis pela especificao
dos requisitos passaram a ter a oportunidade de adquirir experincia com outros profissionais
da equipe tcnica e o processo de comunicao constante ajuda a diminuir o retrabalho devido
a inconsistncias nos documentos gerados.
5.4. Concluses
Este estudo apontou a utilizao de um mtodo gil de desenvolvimento de sistemas, o
Scrum, como referencial para a transformao da estrutura de processos de uma empresa do
setor de software. Foram apresentados os conceitos que suportam a discusso e, em seguida, o
caso foi explicitado.
Aps a implantao da situao projetada, pode-se considerar que houve uma mudana
significativa na organizao, uma vez que esta iniciativa impactou o dimensionamento do
12
13
14