Escolar Documentos
Profissional Documentos
Cultura Documentos
RMULO ROCHA
Niteri
2013
RMULO ROCHA
Orientador:
Leandro Soares de Sousa,
Talita de Oliveira Ferreira,
Alexandre Domingues Gonalves ou
Cristiano Grij Pitangui
NITERI
2013
RMULO ROCHA
METOLOGIA GIL
SCRUM
Trabalho de Concluso de Curso submetido ao Curso de Tecnologia em Sistemas de Computao da Universidade
Federal Fluminense como requisito parcial para obteno do Tecnlogo em Sistemas de Computao.
_________________________________________
Prof. Leandro Soares de Sousa, Msc. Avaliador
UFF - Universidade Federal Fluminense
_________________________________________
Profa. Talita de Oliveira Ferreira, Msc. Avaliador
UFRJ Universidade Federal do Rio de Janeiro
_________________________________________
Prof. Alexandre Domingues Gonalves, Msc. Avaliador
UFF - Universidade Federal Fluminense
_________________________________________
Prof. Cristiano Grij Pitangui, Msc. Avaliador
UFRJ Universidade Federal do Rio de Janeiro
AGRADECIMENTOS
A minha orientadora Juliana Mendes pelo estmulo e ateno que me concedeu durante o
curso.
RESUMO
O SCRUM um framework gil que atua no gerenciamento de projetos. O amadurecimento do desenvolvimento de software tem levado o mercado a atuar com o foco
voltado para o resultado. s metodologias geis se prope a dar o resultado necessrio solicitada pelo mercado cada vez mais exigente e competitivo. De modo que
precisamos estudar, usar, divulgar e amadurecer os princpios geis visto que muito
pouco existe disponvel sobre o assunto. Assim, meu objetivo expor como surgiram s metodologias geis, seus benefcios e problemas, bem como a melhor forma
de implant-la usando experincias reais e tcnicas j aplicadas. O material usado
baseado nos mais conceituados autores do Scrum como o Ken Schwaber e Alex
Armstrong e na minha experincia na aplicao do Scrum. Portanto apresento os
princpios geis, o framework SCRUM e tcnicas j aplicadas para implantao desse framework gil.
Palavras-chaves: SCRUM, metodologia gil e implantao.
ABSTRACT
The Scrum is an agile framework that operates in the management of projects. The
maturation of software development is making the market acting with focus turned to
result. The agile methodology is proposed to give the market required result, each
time more increasingly demanding and competitive. Then, we need study, use, share
and mature the agile principles, because there is no enough material available about
this subject. So, my target is expose how agile methodology arose, its benefits and
problems, as well as the best way to implant it using real experiences and techniques
already applied. The material used is based on the most respected SCRUM authors
as Ken Schwaber and Alex Armstrong and in my own experience in applying
SCRUM. Therefore, I present the agile principles, the SCRUM framework and the
techniques already applied to implant SCRUM.
LISTA DE ILUSTRAES
LISTA DE TABELAS
CMMI
PMBOK
SCRUM
- Feature-Driven Development
IC
- Integrao Contnua.
XP
- Extreme programming.
PF
- Ponto de Funo.
SUMRIO
INTRODUO ................................................................................................... 15
MODELOS DE DESENVOLVIMENTO............................................................... 16
2.1
2.2
ITERATIVO E INCREMENTAL................................................................. 18
2.3
2.4
3.1.1
3.2
4
SCRUM .............................................................................................................. 24
4.1
4.1.1
4.1.2
4.1.3
4.2
4.2.1
Sprint .................................................................................................... 28
4.2.1.1
4.2.1.2
4.2.1.3
4.2.1.4
4.3
4.3.1
4.3.2
4.3.3
ADAPT ..................................................................................................... 35
5.2
Treinamento ............................................................................................. 36
5.3
5.4
5.4.1
5.4.1.1
5.4.2
5.4.3
5.5
5.5.1
5.5.2
5.5.3
5.6
5.6.1
Artefatos ............................................................................................... 45
5.6.1.1
5.6.1.2
5.6.1.3
5.6.2
5.6.2.1
5.6.2.2
5.6.2.3
5.6.2.4
5.6.3
6
Certificaes ...................................................................................................... 52
6.1
SCRUM.ORG ........................................................................................... 53
6.1.1
6.1.2
6.1.3
6.2
6.2.1
6.2.2
6.2.3
6.2.4
6.2.5
6.2.6
CONCLUSES PROVISRIAS................................................................................ 58
REFERNCIAS BIBLIOGRFICAS .......................................................................... 59
15
1 INTRODUO
o processo de desenvolvimento de
software proporcionando mais controle, detalhamento e mais qualidade no desenvolvimento de software. No entanto, ainda existe a possibilidade de evoluir e melhorar os processos e metodologias existentes, bem como a criao de novas abordagens para o desenvolvimento de software.
Assim, esse trabalho apresenta um estudo terico dos modelos de desenvolvimento de software mais conhecido, ou seja, o modelo cascata e o modelo iterativo e
incremental. Alm disso, apresentar um framework conhecido como SCRUM, que
tem como objetivo promover a unio e cooperao mtua dos envolvidos em um
projeto para executarem a planejamento do projeto corretamente e da maneira mais
gil possvel.
O captulo 1 a introduo do trabalho. No captulo 2 sero abordados os modelos de desenvolvimento mais utilizados e como o modelo iterativo e incremental
serve como base para as metodologias geis. O captulo 3 falar sobre a necessidade das metodologias geis e seus princpios. O capitulo 4 destacar o SCRUM
como metodologia gil explicando as regras, papis, eventos e artefatos. O captulo
5 explicar como implantar a metodologia. O captulo 6 destacar brevemente quais
so as certificaes existentes hoje em dia. E o captulo 6 ser a concluso do trabalho.
16
2 MODELOS DE DESENVOLVIMENTO
Um modelo um algo que serve para ser reproduzido, no caso do desenvolvimento de software, modelo um conjunto de processos e aes que so utilizados
no desenvolvimento de software. Os modelos de desenvolvimento de software so
importantes para orientar, controlar e organizar as atividades necessrias para desenvolver um software.
Entre os modelos de desenvolvimento de software conhecidos, o Modelo em
Cascata, e o Iterativo e Incremental se destacam por proporcionarem maior controle
das atividades do projeto. O Modelo em Cascata o mais tradicional por parecer
mais simples e organizado, alm de ser citado na maioria dos livros de engenharia
de software desde da dcada de 70 , porm o modelo Iterativo e Incremental veio
para substitu-lo porque esse modelo no linear, rgido e monoltico como o Modelo em Cascata. As metodologias geis so baseadas no modelo Iterativo e Incremental.
2.1
MODELO EM CASCATA
Com surgimento na dcada de 70, o Modelo em Cascata tornou-se o mais aceito e usado at o aparecimento do modelo Iterativo e Incremental. No Modelo em
Cascata as atividades so estruturadas de uma forma que cada fase tenha entradas,
ou seja, informaes como requisitos, regras de negcios, especificaes e necessidades provenientes do cliente e sadas que so novas informaes aperfeioadas
durante a fase atual que sero utilizadas na prxima fase do projeto ou simplesmente armazenadas ao final do projeto. A Ilustrao 1 mostra um exemplo do Modelo em
Cascata com fases distintas e onde cada fase produz informaes para a prxima
at o final do projeto.
17
No modelo em cascata existe um fluxo seqencial das atividades e a codificao s acontece depois de um estudo detalhado dos requisitos e da sua especificao.
Conforme Pressman (2001, p 30) o problema do Modelo em Cascata que ele
linear, ou seja, cada atividade somente ser executada quando a outra tiver sido
terminada e avaliada. Os projetos raramente seguem o fluxo seqencial. difcil para os clientes afirmarem explicitamente todos os requisitos e o cliente precisa ter pacincia para receber a verso do software funcionando porque o processo desde a
anlise at a construo de todo o software demorado. Um erro maior pode ser
detectado somente na homologao do sistema, causando um prejuzo muito grande.
Ainda em seu texto Preesman (2001 p 30) cita um problema comum encontrado nesse modelo, o blocking states, que ocorre quando membros de um time so
obrigado a esperar outros membros desse time terminarem suas tarefas dependentes para continuarem as suas. Esse tempo de espera pode exceder o tempo gasto
com o trabalho.
Embora o modelo em cascata tenha seus pontos fracos, continua sendo melhor utiliz-lo do que no ter um modelo de desenvolvimento de software.
18
2.2
ITERATIVO E INCREMENTAL
19
2.3
DESENVOLVIMENTO INCREMENTAL
2.4
DESENVOLVIMENTO ITERATIVO
Desenvolvimento iterativo envolve melhorar o sistema progressivamente aumentando os seus detalhes a cada iterao existe mais detalhamento que leva o
produto aos poucos ficar encorpado.
Existem muitas vantagens nessa abordagem, pois o cliente est mais prximo
do desenvolvimento verificando o que est sendo produzido em intervalos mais curtos do que os praticados no modelo em cascata, possibilitando correes mais rpidas caso exista desvio no planejamento. Tanto a equipe de desenvolvimento quanto
os usurios do sistema amadurecem os seus conceitos e idias sobre o negcio, arquitetura e requisitos do sistema durante o projeto. Utilizando esse modelo altera-
20
es podem ser acrescentadas mais facilmente. Porm nesta forma de trabalho
necessrio maior controle do escopo, prazo e custo do projeto.
21
3 METODOLOGIAS GEIS
Conforme Steffen (2012, p1), os profissionais da rea de TI esto cometendo erros ao planejar um projeto e ao executar o planejamento. De acordo com a
Tabela 1, em 2009 apenas 32% dos projetos entregues so considerados sucesso,
24% so puro fracasso (cancelados, ou engavetados - nunca colocados em produo ou utilizados pelo cliente), 44% so desafiados (sofreram atrasos, estouraram o
oramento, no atendem as necessidades, esto cheios de defeitos). Esses dados
estatsticos mostram que necessrio a busca de solues para os problemas encontrados nos modelos de desenvolvimento de software mais utilizados como o
Cascata e o Iterativo e Incremental.
1994
1996
1998
2000
2002
2004
2006
2009
Bem sucedido
16%
27%
26%
28%
34%
29%
35%
32%
Desafiado
53%
33%
46%
49%
51%
53%
46%
44%
Falho
31%
40%
28%
23%
15%
18%
19%
24%
Todo esse cenrio abriu caminho para o nascimento das metodologias que
so denominadas geis. Entretanto, antes das afirmaes realizadas por HIGHSMITH em (HIGHSMITH, 2004) especialistas em processos de desenvolvimento de
22
software se reuniram em 2001 com o objetivo de evoluir e amadurecer processos
em busca do que HIGHSMITH falou anos depois, o equilbrio entre flexibilidade e
estabilidade. Assim foi criada a Aliana gil e estabelecido o Manifesto gil.
Diante disso, este captulo descreve estas metodologias geis e como utilizlas no desenvolvimento de software.
3.1
MANIFESTO GIL
Com o objetivo de discutir maneiras de melhorar as prticas de desenvolvimento de software, 17 profissionais experientes na rea de software se reuniram nos
EUA, em 2001 e criaram o Manifesto gil, que um grupo de princpios que devem
reger o desenvolvimento de software. As prximas subsees apresentam os conceitos e princpios que so a base para as metodologias geis.
O manifesto gil composto por conceitos e princpios que guiam o desenvolvimento de software.
Segundo AGILEMANIFESTO.ORG (2001) os conceitos so:
23
Conforme AGILEMANIFESTO.ORG (2001) alguns princpios geis so:
Priorizar a entra de software em um curto perodo de tempo, como por exemplo poucas semanas a poucos meses.
3.2
Algumas metodologias geis foram criadas antes do manifesto gil e outras foram surgindo com conceitos e tcnicas baseadas nos princpios do manifesto gil.
As metodologias geis mais empregadas so: Extreme Programming (XP), SCRUM,
Lean Development, Feature-Driven Development (FDD), Kanban, RUP e OpenUp.
24
4 SCRUM
Esse captulo ir descrever o framework SCRUM, como os eventos necessrios para o seu funcionamento, as caractersticas do time do SCRUM e os artefatos
utilizados.
Um framework dentro do qual pessoas podem tratar e resolver
problemas complexos e adaptativos, enquanto produtiva e criativamente entregam produtos com o mais alto valor possvel. (S-
25
A adaptao necessria para concertar qualquer desvio que esteja acontecendo e tenha sido detectado pelo especialista que far a inspeo. Com os ajustes
realizados imediatamente aps serem detectados so minimizados os riscos de entregar de um produto que est fora dos padres acordados.
4.1
TIME DO SCRUM
De acordo com Sutherland e Schwaber (2011) o SCRUM utiliza os seguinte papis para compor a equipe: Product Owner, Scrum Master e a equipe de desenvolvimento. Essa equipe multifuncional e auto-organizvel, ou seja, so capacitados
para decidir como produzir o trabalho e resolver os problemas da melhor forma possvel sem interveno externa.
26
cio, dever existir uma nica pessoa fazendo o papel do PO e somente essa pessoa
poder interagir com a equipe de desenvolvimento e alterar o product backlog.
Segundo o conceito de Sutherland e Schwaber (2011) a equipe de desenvolvimento no pode ser menor que trs e maior que nove havendo em ambos os casos perda de produtividade ou devido a falta de habilidades necessrias ou devido a
grande necessidade de coordenao de um grande grupo.
A equipe de desenvolvimento deve ser multidisciplinar e no pode depender de
recursos externos para finalizar o trabalhado designado para o Sprint como tambm
no deve ter subreas dentro dessa equipe que cuidam apenas do teste ou do ne-
27
gcio. Essa equipe auto-gerenciveis, assim ela tem capacidade para dizer como
o trabalho ser feito para alcanar o seu objetivo.
4.2
EVENTOS DO SCRUM
Sprint.
Reunio de Planejamento.
Reunies dirias.
Reunio de Reviso.
Reunio de Retrospectiva.
28
4.2.1 Sprint
Um Sprint tem durao de um ms ou menos e no fim desse perodo um produto de valor dentro das especificaes anteriormente combinadas deve ser entregue. Esse produto entregue um incremento do produto final. O objetivo de manter
o tamanho de uma Sprint em um ms minimizar o risco de mudana e ajuda o processo emprico de aprendizagem. Aps o trmino do Sprint um novo deve comear
imediatamente.
Cada Sprint composto pelos seguintes eventos: reunio de planejamento, reunies dirias, reunies de reviso e retrospectiva. Durante o Sprint deve ser objetivo geral no mudar o escopo, no mudar a equipe, no diminuir a qualidade esperada.
A Sprint no deve ser cancelada a menos que o seu objetivo j no faa mais
parte da estratgia da corporao, embora isso dificilmente acontece devido a durao de no mximo um ms de cada Sprint.
29
mento pode determinar o que realmente ser completado ao final da Sprint. Assim
fica definido o objetivo da Sprint.
Na segunda parte da reunio a equipe de desenvolvimento divide os itens em
tarefas de oito horas de durao que podem ser feitas por recursos diferentes da
equipe. Essas tarefas sero realizadas e inspecionadas diariamente para controle da
Sprint e adaptao quando necessrio. Se aps a diviso dos itens se perceber que
o trabalho menor ou maior do que suportado durante a Sprint os itens do backlog
podem ser rearranjados. Nessa reunio importante o PO participar para clarificar
questes necessrias. Outras pessoas podem ser convidadas para fornecer ajudar
tcnica em domnios especficos.
A reunio diria deve ser feita no mesmo horrio todos os dias. Durante essa
reunio devem ser respondidas por cada membro da equipe as seguintes trs perguntas:
1) O que foi feito desde a ltima reunio?
2) O que ser feito agora?
3) Quais problemas foram encontrados?.
30
Durante essa reunio a equipe de desenvolvimento inspeciona o que foi feito e
avalia o progresso em direo do objetivo da Sprint. A equipe deve ser capaz em
explicar claramente o que est sendo feito. Embora o Scrum Master assegure que
se realizem as reunies dirias a responsabilidade da conduo dela da equipe.
Esse evento realizado ao final de cada Sprint. Essa reunio utilizada para
inspeo dos principais stackholders do projeto no produto entregue. Durante essa
reunio todos podem dar sua opinio e colaborar para o prximo incremento de
software. Essa reunio deve ter durao de quatro horas para uma Sprint de um
ms.
Essa reunio ocorre logo aps a reunio de reviso. Os participantes dessa reunio devem ser a equipe de desenvolvimento, o PO e o Scrum Master. uma ocasio para equipe de desenvolvimento, analisar o que deu certo e o que deu errado.
Aps essa anlise, deve ser feito um planejamento para que os problemas no ocorram novamente.
Melhorias devem ser identificadas e um plano de ao deve ser feito para a
prxima Sprint. O Scrum Master pode orientar a equipe nas melhores prticas do
SCRUM para que maximize seu desempenho na Sprint seguinte. Fica claro que esas reunio um momento para inspeo e adaptao.
31
4.3
ARTEFATOS DO SCRUM
O framework do SCRUM no tem muitos artefatos. Por esse motivo necessrio utilizar um processo bem conhecido como o RUP que foi desenvolvido pela
Rational Software e atualmente propriedade da IBM, para apoiar o desenvolvimento de sistema principalmente porque os clientes de fbricas de software exigem em
seus contratos especificaes detalhadas, evidncias de teste e qualidade, artefatos
de gerenciamento entre outros.
32
O Product Backlog uma lista dos itens do produto que sero implementados,
ou seja, a lista de requisitos desse produto. O PO o principal responsvel por essa
lista, bem como por sua priorizao.
Essa lista nunca est fechada totalmente, mas os itens so aqueles que so inicialmente conhecidos. O Product Backlog deve evoluir juntamente com o conhecimento sobre o que ser feito. Essa prtica no comum para projetos com escopo
fechado que tentam utilizar o SCRUM.
33
34
Fazer a implantao de uma nova metodologia envolve muito trabalho e dedicao. necessrio uma mudana de viso e comportamento em toda a instituio,
promoo dos benefcios proporcionados pela mudana, treinamento dos indivduos,
acompanhamento e suporte na aplicao da nova metodologia.
35
5.1
ADAPT
Conforme COHN afirma, para introduzir Scrum na sua organizao necessrio seguir algumas etapas que correspondem a sigla ADAPT, que significa em portugus:
Conscincia (Awareness).
Desejo (Desire).
Competncia (Ability).
Promoo (Promotion).
Transferncia (Transfer).
Conscincia (Awareness) - Nessa etapa a organizao entende que o processo que est sendo usando no traz os resultados pretendidos.
Transferncia (Transfer) - Ser necessrio transferir o conhecimento adquirido para outros departamentos da empresa, como recursos humanos, logstica, marketing, recursos financeiros entre outros, pois esses departamentos embora no
36
precisem utilizar o Scrum, precisaro se adaptar um pouco para potencializar as
vantagens da utilizao do Scrum.
5.2
TREINAMENTO
O principal responsvel em treinar e promover o Scrum na organizao o Scrum Master ou um grupo de Scrum Masters. Por meio de palestras educativas, treinamento tcnico de profissionais, acompanhamento e suporte aos profissionais o(s)
Scrum Master(s) se certifica(m) que as pessoas envolvidas tenham competncia necessria para utilizar o Scrum.
Durante o projeto so realizadas reunies dirias e reunies ao final de cada
Sprint. Essas reunies so ocasies que o Scrum Master deve utilizar para inspecionar a aplicao do Scrum pela equipe e caso a equipe ou algum membro dela ainda precise de treinamento, o Scrum Master deve providenci-lo.
5.3
EQUIPES MULTIFUNCIONAIS
Uma equipe multifuncional uma equipe onde os seus membros tem caractersticas diversificadas para lidar com todas as fases de um projeto. Os membros
dessa equipe deve estar habilitados levantar requisitos, entender do negcio,
construir a aplicao e test-la. No existem sub-equipes no Scrum, como por exemplo: Equipe de negcio ou equipe de testes.
Essas equipes so auto-organizadas. Nem mesmo o Scrum Master pode dizer
a equipe como realizar o seu trabalho. Essa equipe responsvel por traar o plano
de execuo do trabalho e diariamente inspecionar o progresso do seu prprio trabalho. Nessas equipes no existem ttulos a no ser o de Desenvolvedor.
37
Embora individualmente os integrantes da equipe possam ter habilidades especializadas, a equipe responsvel pela entrega do incremento de produto ao fim
de cada Sprint.
Segundo Suderland e Schwaber, o tamanho da equipe de desenvolvimento
deve ser pequeno suficiente para se manter gil e grande o suficiente para completar uma parcela significativa de trabalho, ou seja, no deve ser menor, que trs integrantes e maior que nove. Se a equipe tiver menos de trs integrantes o resultado
ser um menor ganho de produtividade e se for maior que nove ser necessrio
muita coordenao e equipes muito grandes trazem complexidade para um processo emprico gerenciar.
Os papis do Product Owner e do Scrum Master no devem ser includos na
equipe de desenvolvimento, a menos que eles executem algum trabalho do Backlog
do Sprint.
5.4
Um design simples, ou seja, uma arquitetura de software simples porm adequada a necessidade importante para que se ganhe agilidade no desenvolvimento
de software. Quanto mais complexa e quanto mais componentes um arquitetura ti-
38
ver, mais demorado ser o desenvolvimento do produto. Alguns desenvolvedores
podem no estar familiarizados com os muitos componentes diferentes ou com o
ambiente tecnolgico muito complexo, resultando em mais tempo gasto no estudo
do novo componente ou da arquitetura complexa.
A padronizao de cdigo tambm importante para que os desenvolvedores
tenham mais agilidade para criar e resolver problemas inerentes ao desenvolvimento
de software. Caso um projeto tenha padronizaes de cdigo diferentes, os desenvolvedores gastaro tempo valioso tentando entender o novo padro de cdigo antes de atuar na concluso de uma atividade. Tambm quando existe padronizao
de cdigo, um desenvolvedor pode herdar uma atividade que estava sendo feita por
um outro desenvolvedor com mais facilidade.
O arquiteto o responsvel pelo design simples da aplicao e pela padronizao de cdigo. O arquiteto deve treinar a equipe e dar suporte durante o desenvolvimento do produto.
39
trabalho frequentemente, geralmente cada pessoa integra pelo menos diariamente podendo haver mltiplas integraes por dia. Cada integrao verificada
por um build automatizado (incluindo testes) para detectar erros de integrao o mais rpido possvel. Muitos times acham que essa abordagem leva a uma significante reduo nos problemas de integrao e permite
que um time desenvolva software coeso mais rapidamente. (MARTIN FOWLER, 2006)
40
O Pair Programming, ou seja, programao em pares, uma tcnica do Extreme Programming, porm, as equipes que trabalham com desenvolvimento gil frequentemente usam essa tcnica e no diferente com as equipes que usam SCRUM.
Segundo PRESMAN (20 , p 65) o XP recomenda duas pessoas trabalharem
juntas em uma estao de trabalho, pois, isso fornece um mecanismo de soluo de
problemas e garantia de qualidade. Na prtica, cada desenvolvedor deve assumir
um papel diferente. Por exemplo, um desenvolvedor est focado em pensar nos detalhes de cdigo de uma parte especfica do projeto enquanto o outro desenvolvedor
41
garante que as normas de codificao esto sendo seguidas e que essa parte do
cdigo se integrar com facilidade ao restante do projeto.
Os benefcios dessa prtica so cdigo com melhor qualidade e passagem de
conhecimento para o time de desenvolvimento. A passagem de conhecimento ajuda
outros desenvolvedores da equipe aumentarem suas habilidades e se tornarem mais
valiosos.
5.5
Todo projeto precisa ser estimado e depois sua execuo planejada. Segundo
GRENNING a melhor maneira de times geis estimarem o projeto usando a tcnica conhecida como Planning Poker. Planning Poker uma abordagem colaborativa
onde os componentes do team de desenvolvimento opinam sobre o tempo necessrio para concluir determinadas tarefas do projeto.
42
Todos os componentes da equipe participam do planejamento, o que inclui testadores, arquitetos, analistas designers entre outros. O Product Owner participa do
planejamento, mas no participa da estimativa.
Cada participante do Planning Poker recebe um conjunto de cartas com uma
numerao como 0,1,2,3,5,8,13,20,40 e 100. O Produtct Owner l, explica e tira dvidas da equipe a cerca de uma User Story. Aps isso, cada membro da equipe seleciona uma carta com o valor que acha apropriado para a estimativa de construo
dessa User Story e aps todos terem escolhido sua carta, elas so postas na mesa.
Caso haja divergncias significativas entre os componentes da equipe, cada um tem
a oportunidade de explicar o seu ponto de vista e feito uma nova rodada de Planning Poker com novas estimativas de todos os componentes da equipe. Novas rodadas podem ocorrer at que a equipe tenha convirja para uma nica estimativa ou
estimativas muito prximas.
Segundo FLOWER, o Planning Poker funciona, pois, primeiro ele usa mltiplas
opinies de especialistas em um time multifuncional. Segundo, existe um dilogo entre os especialistas para justificar suas estimativas e correes podem ser feitas com
base em opinies de outros. Em terceiro lugar, os estudos mostraram que a mdia
de estimativas individuais conduz a um melhor resultado (Hoest e Wohlin 1998), assim como discusses em grupo (Jrgensen e Molkken 2002). E quarto, Planning
Poker funciona porque divertido.
43
Segundo Martins (2007) a formula abaixo deve ser utilizada para calcular os dias estimados para realizar o trabalho:
Sendo:
DE: quantidade de dias estimado para concluir a tarefa;
IED: prazo necessrio para implementar o item, esse prazo definido pela
equipe;
IED_REAL%: percentual que indica a estimativa de quanto tempo do dia o desenvolvedor ficara dedicado a implantao do item.
44
4) Controle da qualidade e custos de desenvolvimento.
5) Previso do projeto, pois realiza-se uma estimativa nas fases iniciais do
desenvolvimento do software.
45
5.6
De acordo com Pressman, o principal objetivo dos testes de software localizar erros, falhas, defeitos e a verificao das funcionalidades do software em desenvolvimento ou finalizado. Assim possvel revelar problemas em um produto antes
de entreg-lo ao cliente, corrigindo esses defeitos e proporcionando uma melhor
qualidade ao produto.
O framework do Scrum no tem um papel fixo de analista de teste, mas sim
uma equipe capaz de realizar vrios tipos de tarefas e que est envolvida em todos
as fases do processo de desenvolvimento, desde a especificao at a entrega,
sendo toda a equipe responsvel pela qualidade do projeto. Por esse motivo, necessrio entender como os testes devem ser realizados e por quem. Assim, o trabalho apresentar a seguir quais os tipos de artefatos criados, os tipos de testes existentes e como realiz-los de maneira gil.
5.6.1 Artefatos
O framework do Scrum no determina artefatos especficos para os testes, porm incentiva que toda documentao seja o mais simples possvel, evitando desperdcio de tempo mantendo muita documentao.
Para realizar os teste pode ser utilizados artefatos como Plano de Teste, Story
Test e Mind Map, detalhados a seguir.
Segundo Crispin, Mind Maps so uteis para planejar o sistema, os testes, a criao das User Story e dos Story Test durante as reunies iniciais de brainstorm, ou
46
seja, nas reunies onde so expostos todos os objetivos e detalhes inicias sem uma
organizao prvia.
Durante a fase de levantamento e entendimento dos requisitos, o PO esclarece dvidas e ajuda a equipe montar uma interligao entre as funcionalidades e
saber os critrios de aceitao para cada User Story. Nesse caso o Mind Map ajudar a equipe de SCRUM a organizar as ideias iniciais e transform-las em artefatos
que sero utilizados nos Sprints.
Abaixo um exemplo de Mind Map.
47
teste, os objetivos do teste, as funcionalidades a serem testadas, os critrios para
aceitao do produto e os passos que sero dados para executar os testes.
Cada plano de testes possui a descrio de um ou mais casos de teste. Um
caso de teste tambm um artefato que tem um conjunto de aes que devem ser
executadas e pelo menos um critrio de aceitao para servir como base para saber
se o teste foi bem sucedido ou no. Nesse trabalho adotaremos o termo Story Test
para se referir o um caso de teste, visto que a base para produo de caso de teste
ser uma User Story.
Embora o Scrum no cite o Plano de Teste entre os artefatos utilizados no framework, no existe objeo para o uso dele. Abaixo temos uma Ilustrao representando um Plano de Teste.
48
5.6.1.3 Story Test
Segundo Andrade o Caso de Teste, ou seja, uma Story Test um artefato que
contm os procedimentos para teste. Esse artefato deve incluir descrio dos testes
e seus objetivos, pr e ps condies do teste e os inputs e outputs esperados.
Nos procedimento de teste utilizando SCRUM, segundo Crispin pode ser criado
um Story Test para cada User Story. Como a equipe de desenvolvimento multidisciplinar, todos os membros podem participar na confeco dos Story Test e executlos.
Abaixo na Ilustrao 9 temos um exemplo de Story Test.
49
5.6.2 Tipos de Testes
Testes unitrios so pequenos pedaos de cdigo feitos pela equipe para assegurar que os componentes do sistema iro funcionar. Os testes unitrios se estendem ao banco de dados, lgica de negcio, camada de apresentao, comunicao de rede, entre outros aspectos.
50
Os testes unitrios podem ser integrados com uma ferramenta de Integrao
Contnua que a cada atualizao do software executar os testes novamente para
fazer uma varredura em busca de um possvel erro.
Quando a equipe codifica e evolui os testes unitrios juntos com o sistema o
software ser entregue ao cliente com mais qualidade. Segundo Crispin, sem os testes do quadrante 1, os testes unitrios, os outros testes sero muito mais complicados, pois provavelmente se encontraro mais problemas.
Testes funcionais so testes que avaliam o comportamento das funcionalidades criadas. Todo o time do SCRUM responsvel por realizar esse tipo de teste e
podem utilizar todos os artefatos disponveis para orient-los durante o teste, artefatos como Mind Maps, Plano de Teste, Story Test, Flow Diagrams, entre outros.
Segundo Crispin, os testes funcionais devem ser usados para orientar a fase
de desenvolvimento, garantindo assim que o software entregue ao cliente esteja atendendo todos os requisitos solicitados. Alm disso, nenhuma User Story deve ser
dada como finalizada at que sejam realizados os testes com sucesso.
Segundo Crispin, os testes exploratrios so uma avaliao do produto recriando as experincias atuais do cliente, um uso realstico do produto, expondo-o a
cenrios que o produto ser realmente submetido. Nessa etapa podem ser criados
demos, ou seja, verses ainda no finalizadas, para serem testadas com o cliente no
seu ambiente. Os testes exploratrios podem ser executados pelo cliente juntamente com PO ou outro membro da equipe que tenha conhecimento profundo sobre o
projeto.
51
Os testes exploratrios executados juntos com o cliente ajudaro a ambos aprenderem com a experincia e talvez detectar erros ou problemas que no foram
pensados na fase de prototipao do produto. Durante os testes exploratrios pode
ser feita uma observao cuidadosa e uma anlise crtica sobre o produto e melhorias podem ser apontadas.
Durante os testes exploratrios devem ser utilizados dados reais, o processo
real de execuo do produto e sua usabilidade deve ser testada.
O objetivo dos testes de performance e carga testar a performance, a estabilidade, a confiabilidade, a escalabilidade, a compatibilidade, entre outras caractersticas do produto. Tambm devem ser testados o gerenciamento de memria dos
servidores, rotinas de recuperao e migrao de dados caso exista.
Esses testes devem ser planejados por especialistas, porm todo o time do
SCRUM tem a responsabilidade de participar nesses testes, seja codificando rotinas
para facilitar o testes, seja para criar sobrecarga ou monitorar o uso do sistema.
Segundo Crispin o que faz um time gil focar continuamente em fazer o melhor trabalho e entregar o melhor produto possvel. Isso envolve disciplina, aprendizado, tempo, experincia e trabalho em equipe. De modo que, testadores geis esto continuamente procurando por meios na qual o time pode cada vez melhorar
mais seu trabalho, o que pode envolver conhecer os procedimentos de outros times,
testar novas ferramentas para especificar, executar e automatizar os testes.
52
Alem disso, segundo Crispin os componentes de uma equipe gil devem desejar aprender mais, desenvolver novas habilidades, aceitar novos desafios e no se
limitar a resolver os mesmos tipos de problemas.
Segundo Crispin, alguns princpios para realizar testes geis so:
6 CERTIFICAES
Certificar ato de declarar formalmente a veracidade de um fato. Um certificado emitido por uma fonte que tenha credibilidade ou autoridade para atestar um
fato. No mbito tecnolgico um certificado pode ser emitido garantido o conhecimento do profissional aps uma prova com contedo especfico e previamente designado para uma determinada certificao.
No caso do SCRUM as duas instituies mais acreditadas capazes de certificar
que um profissional est capacitado para trabalhar com SCRUM so a Scrum.org e
a Scrum Alliance.
53
6.1
SCRUM.ORG
54
6.1.3 Professional Scrum Product Owner (PSPO)
6.2
SCRUM ALLIANCE
55
6.2.1 Certified Scrum Master (CSM)
Segundo a Scrum Alliance a certificao de Scrum Master atesta que o profissional entende os valores, as prticas e aplicaes do SCRUM. Habilita o Scrum
Master a ser um lder que ajuda o resto do time a trabalhar junto e aprender sobre o
framework do SCRUM. Qualifica o Scrum Master a proteger o time de distraes internas e externas.
De acordo com a Scrum Alliance a certificao de Product Owner habilita o profissional na terminologia do Scrum, prticas, princpios que o ajudam a exercer esse
papel. Tambm como aplicar caractersticas como diligncia, pacincia e compromisso para alcanar a melhoria contnua nos projetos.
56
6.2.4 Certified Scrum Professional (CSP)
Os profissionais Scrum certificados demonstraram experincia, formao acadmica e comprovado conhecimento na execuo de SCRUM. CSPs desafiar suas
equipes SCRUM para melhorar a forma como SCRUM e outros mtodos geis so
implementados para cada projeto. Para atingir essa certificao necessrio ter
uma das certificaes CSM, CSPO ou CSD e ter no mnimo de 36 meses aplicando
SCRUM nos ltimos cinco anos.
Para se tornar um CST, o profissional deve demonstrar um profundo conhecimento e compreenso dos conceitos do SCRUM, prticas e princpios. Ter uma certificao Certified Scrum Professional ativa do Scrum Alliance. Ter ampla experincia
na implementao de SCRUM dentro das organizaes como um membro da equipe, como o proprietrio do produto ou Scrum Master, ou como um mentor. J ter ensinado SCRUM em um contexto no certificado ou em parceria com a CST atual.
57
CSCs j ajudaram a uma ou mais organizaes efetivamente aplicar SCRUM.
Eles tm experincia diversificada em vrios sistemas organizacionais, tais como vrias equipes, produtos, ciclos de projetos, ambientes ou tecnologias.
58
CONCLUSES PROVISRIAS
mercado
pede
com
respeito
ao
controle
das
atividades
preciso nas estimativas dos projetos com o objetivo de gerar mais valor aos produtos, ou seja, aos softwares.
O trabalho se desenvolveu apresentando os modelos de desenvolvimento existentes, como surgiram as metodologias geis, o manifesto gil e seus princpios. O
trabalho focou tambm em explicar como framework do SCRUM suporta o desenvolvimento gil. Detalhes do framework foram explicados, bem como o modo de aplic-lo nas atividades de planejamento, estimativa, controle, teste e exposio dos
resultados obtidos. Alm disso, o trabalho informou como implantar o framework e
qualificar profissionais para os diferentes papis existentes.
Diante do exposto possvel notar a utilidade da aplicao do framework do
SCRUM e dos princpios geis nas diversas fases do desenvolvimento de software e
nas tarefas inerentes a essas fases. Alm disso, o suporte de instituies internacionais para capacitar profissionais no uso do SCRUM reforam a estabilidade e praticidade da tcnica. Sendo o tema, as melhores tcnicas de capacitao e treinamento no uso das metodologias geis, um campo aberto para pesquisa e desenvolvimento.
59
REFERNCIAS BIBLIOGRFICAS
EUA. 2011.
10.
2007.
13.
60
14.
o: Mtodos geis no Planejamento. Engenharia de Software, Rio de Janeiro, n., p.8-13, 01 nov. 2008.
17.
Crispin, Lisa. 2009, Agile Testing: A Practical Guide For Testers and
http://www.ibm.com/developerworks/br/local/rational/criac
IBM.
What
is
Disponvel
em:
https://www.ibm.com/developerworks/rational/library/apr05/bittner-spence/.
A-
the
iterative
development?.