1. MINISTÉRIO DA EDUCAÇÃO
SECRETARIA DE EDUCAÇÃO PROFISSIONAL E TECNOLÓGICA
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
FARROUPILHA CAMPUS SÃO VICENTE DO SUL - RS
Instituição: Instituto Federal de Educação Ciência e Tecnologia Farroupilha
Unidade Organizacional: Campus de São Vicente do Sul
Curso: Superior de Tecnologia em Análise e Desenvolvimento de Sistemas
Disciplina: Seminários em Tecnologia da Informação
Orientador: Rogério Cassanta Rosado
Componentes:
Paulo Ricardo paulo.vinck@gmail.com
Michel Minussi michelminnussi@yahoo.com.br
Ruan Pozzebon rb.pozzebon@gmail.com
Turma: ADS 05
3. SUMÁRIO
LISTA DE FIGURAS......................................................................................................................... 3
RESUMO........................................................................................................................................... 4
ABSTRACT.......................................................................................................................................
.
4
INTRODUÇÃO..................................................................................................................................
.
5
OBJETIVO GERAL............................................................................................................................ 6
OBJETIVOS ESPECÍFICOS............................................................................................................. 6
REVISÃO BIBLIOGRAFIA................................................................................................................. 7
MATERIAL E METODOS.................................................................................................................. 12
CRONOGRAMA................................................................................................................................ 13
RESULTADOS E DISCUSSÕES...................................................................................................... 14
CONCLUSÃO.................................................................................................................................... 15
REFERÊNCIAS BIBLIOGRAFICAS.................................................................................................. 16
3
4. LISTA DE FIGURAS
FIGURA 1....................................................................................................................................... 16
FIGURA 2...................................................................................................................................... 16
1. RESUMO
4
5. As metodologias clássicas de desenvolvimento da Engenharia de Software
têm causado alguns transtornos como: atrasos na entrega de projetos, insatisfação
de clientes, além de conflitos e desgastes para os profissionais da área. Assim com
o objetivo de obter melhores resultados varias empresas está adotando
metodologias de desenvolvimento, que dão mais agilidade, organização ao trabalho,
além de facilitar a interação entre os usuários e o próprio sistema. Essas
metodologias são chamadas de Metodologias Ágeis de Desenvolvimento de
Software. Assim com a proposta de apresentar e explicar o que são essas
metodologias escolhemos o processo de desenvolvimento SCRUM usado hoje por
muitas empresas conceituadas nesta área.
2. ABSTRACT
Traditional methodologies of software engineering development have caused some
inconvenience as: delays in project delivery, customer dissatisfaction, and conflict
and starvation for professionals in the area. So in order to obtain better results
companies are adopting various development methodologies, which provide more
flexibility, organization of work, and to facilitate interaction between users and the
system itself. These methods are called Agile Software Development. Thus the
proposal to introduce and explain what these methods chose the SCRUM
development process used today by many reputable companies in this area.
3. INTRODUÇÃO
5
6. Quando falamos em Engenharia de Software, temos em vista diversas áreas
envolvendo desde a criação de um sistema até os testes finais do mesmo.
Procurando deixar mais organizada essas tarefas de desenvolvimento, foram
criadas certas metodologias, que visam deixar mais fácil e rápida estas etapas do
projeto, as quais foram definidas como Metodologias ágeis de Desenvolvimento,
dentre elas, são mais conhecidas as práticas “XP” e “SCRUM”, sendo trabalhado
neste artigo o método “SCRUM”.
4. OBJETIVO GERAL
6
7. Este artigo tem como objetivo fazer uma apresentação conceitual sobre uma das
mais conhecidas Metodologias Ágeis para Desenvolvimento de Software, o SCRUM,
apresentando vantagens e desvantagens do uso em relação a Metodologias
Clássicas, sejam elas para plataformas Desktop, Web ou Dispositivos Móveis.
5. OBJETIVOS ESPECIFICOS
Detalhando mais o foco do artigo, temos o objetivo de:
• Pesquisar sobre o método de desenvolvimento “SCRUM”;
• Identificar os modelos de desenvolvimento ágeis mais utilizados no mercado
de software;
• Mostrar as vantagens e desvantagens da utilização de métodos ágeis;
• Relatar práticas bem sucedidas da utilização de métodos ágeis;
Também é um fato importante que se pretende citar é como que é a
implantação de “SCRUM” em um projeto, desde o início até a fase de testes, e até
uma experiência real de uma empresa.
7
8. 6. REVISÃO BIBLIOGRÁFICA (DESENVOLVIMENTO)
6.1.Metodologias Clássicas (Tradicionais)
Também conhecidas como Metodologias orientadas a planejamento, as
Metodologias Clássicas dominaram a forma de desenvolvimento de softwares até o
início da década de 90, Entretanto, estas metodologias devem ser aplicadas apenas
em situações em que os requisitos do sistema são estáveis e os requisitos futuros
são previsíveis. Metodologias ou Processos orientados a documentação são, de
certa forma, barreiras impostas ao desenvolvimento, pois muitas organizações não
possuem recursos para processos pesados de produção de software. Por esta
razão, as organizações pequenas acabam por não usar nenhum processo. Isto pode
trazer efeitos negativos no que diz respeito à qualidade do produto final, além de
dificultar a entrega do software nos prazos, custos e funcionalidades previamente
definidas.
8
9. 6.2.Metodologias Ágeis e o Manifesto Ágil
A expressão “Metodologias Ágeis” tornou-se conhecida em 2001, quando
especialistas em processos de desenvolvimento de software representando entre
outros, os métodos Scrum e Extreme Programming (XP), foram estabelecidos
princípios e características comuns destes métodos. Assim foi criada a “Aliança Ágil”
e efetuou-se o estabelecimento do “Manifesto Ágil”.
6.2.1. Principais conceitos do Manifesto Ágil
- Pessoas e interações, ao contrário de processos e ferramentas.
- Software executável, ao contrário de documentação extensa e confusa.
- Colaboração do cliente, ao contrário de constantes negociações de contratos.
- Respostas rápidas para as mudanças, ao contrário de seguir planos previamente
definidos.
“A percepção que os usuários têm de suas necessidades também evolui à medida
que eles conhecem o sistema. É difícil compreender o valor de uma determinada
funcionalidade até que ela seja efetivamente usada, principalmente porque não
se pode requerer de um usuário comum a mesma capacidade de abstração que
um desenvolvedor possui ao olhar um conjunto de requisitos” (OLIVEIRA,
2003, p. 16).
9
10. 6.3.Metodologias Ágeis (Scrum)
Inicialmente, o Scrum foi utilizado em projetos de empresas de fabricação de
automóveis e produtos de consumo, por Takeuchi e Nonaka. Eles notaram que
projetos usando equipes pequenas e multidisciplinares produziram os melhores
resultados, e associaram estas equipes altamente eficazes à formação Scrum do
Rugby (utilizada para reinício do jogo em certos casos). Jeff Sutherland aplicou a
primeira concepção do Scrum na Easel Corporation em1993, mais tarde, por volta
de 1995, Ken Schwaber formalizou essa metodologia baseando se em sua própria
experiência no desenvolvimento de sistemas e processos. O SCRUM assume-se
como uma metodologia extremamente ágil e flexível, que tem por objetivo definir um
processo de desenvolvimento interativo e incremental podendo ser aplicado a
qualquer produto ou no gerenciamento de qualquer atividade complexa. Esta
metodologia baseia-se no desenvolvimento incremental das aplicações centrado na
equipe com ciclos de iteração curto. SCRUM aplica-se a projetos tanto pequenos
como grandes. Esforçando-se para liberar o processo de quaisquer barreiras, o seu
principal objetivo é conseguir uma avaliação correta do ambiente em evolução,
adaptando-se constantemente ao “caos” de interesses e necessidades, indicados e
utilizados para o desenvolvimento de softwares em ambientes complexos, onde os
requisitos mudam com certa freqüência, sendo o caminho utilizado para aumentar
produtividade nesses tipos de sistemas. A Metodologia SCRUM apenas estabelece
conjuntos de regras e práticas de gestão que devem ser adotadas para garantir o
sucesso de um projeto. Centrado no trabalho em equipe, melhora a comunicação e
maximiza a cooperação, permitindo que cada um faça o seu melhor e se sinta bem
com o que faz o que mais tarde se reflete num aumento de produtividade.
Englobando processos de engenharia, este método não requer nem fornece
qualquer técnica ou método específico para a fase de desenvolvimento de software.
6.4.Características
10
11. Segundo (FERREIRA, 2005), as principais características do SCRUM são:
• é um processo ágil para gerenciar e controlar o desenvolvimento de projetos;
• é um wrapper para outras práticas de engenharia de software;
• é um processo que controla o caos resultante de necessidades e interesses
conflitantes;
• é uma forma de aumentar a comunicação e maximizar a cooperação;
• é uma forma de detectar e remover qualquer impedimento que atrapalhe o
desenvolvimento de um produto;
• é escalável desde projetos pequenos até grandes projetos em toda empresa.
Segundo Abrahamsson (2002) os papéis identificados no Scrum são: Mestre
(Scrum Master), Proprietário do produto (Product Owner), Equipe Scrum
(Scrum Team), Cliente (Customer) e Gerência (Management).
6.5.Vocabulário utilizado no SCRUM
• Backlog: Lista de todas as funcionalidades a serem desenvolvidas durante o
projeto completo, sendo bem definido e detalhado no inicio do trabalho, deve ser
listado e ordenado por prioridade de execução;
• Sprint: Período não superior a 30 dias, onde o projeto (ou apenas algumas
funcionalidades) é desenvolvido;
• Sprint Planning Meeting: Reunião de planejamento;
• Sprint Goal: Disparo dos objetivos/metas;
• Sprint Review Meeting: Revisão da reunião;
• Sprint Backlog: Trabalho a ser desenvolvido num Sprint de modo a criar um
produto a apresentar ao cliente. Deve ser desenvolvido de forma incremental,
relativa ao Backlog anterior (se existir);
• Dayling SCRUM: Reunião diária;
• Scrum: Reunião diária onde são avaliados os progressos do projeto e as barreiras
encontradas durante o desenvolvimento;
• Scrum Meeting: Protocolo a seguir de modo a realizar uma reunião Scrum;
• Scrum Team: A equipe de desenvolvimento de um Sprint;
• Scrum Master: Elemento da equipe responsável pela gestão do projeto e liderar as
11
12. Scrum Meetings são normalmente engenheiros de software ou da área de sistemas.
Apesar de ser gestor não tem propriamente autoridade sobre os demais membros
da equipe.
• Product Backlog: Produção do trabalho executado.
• Product Owner: Proprietário do produto.
6.6.Processos e Funcionamento
As fases de desenvolvimento SCRUM podem ser divididas basicamente em três,
são elas:
• Planejamento: Definição de uma nova funcionalidade requerida pelo sistema
baseado no conhecimento do sistema como um todo;
• Desenvolvimento: Desenvolvimento dessa nova funcionalidade respeitando o
tempo previsto, requisitos exigidos e qualidade. Esses itens definem o fim do ciclo
de desenvolvimento;
• Encerramento: Preparação para a entrega do produto persistindo as atividades:
Teste Caixa Branca, Teste Caixa Preta, Documentação do Usuário, Treinamento e
Marketing.
12
13. 7. MATERIAL E METÓDOS
Essa pesquisa foi realizada por meio de referências de autores da área,
trabalhos publicados, experiências que deram certo e literaturas da área. E para o
desenvolvimento do trabalho foi utilizado notebooks como equipamentos e Microsoft
Word como software.
13
14. 8. CRONOGRAMA
Tabela 1 – Cronograma
Tarefas
10/3
17/3
24/3
28/3
31/3
5/4
7/4
12/4
14/4
19/4
25/4
Definição do problema X
Embasamento teórico X X
Revisão bibliográfica X
Coleta e tabulação de
dados
X X X
Redação do trabalho X X
Revisão ortográfica X X
Compilação dos
resultados
X
Apresentação X
9. RESULTADOS E DISCUSSÕES
14
15. Com pesquisas e leituras sobre o tema de Metodologias Ágeis de Desenvolvimento
vimos que há grandes vantagens em utilizar esse método para agilizar o serviço, já
que hoje os aspectos mais procurados são agilidade e rapidez na entrega de
software, melhor distribuições de tarefas entre componentes da equipe, melhor
interação entre a equipe, por serem formadas por poucos integrantes e de boa
qualificação. Assim, conseguem interagir melhor se conhecendo e dividindo tarefas
mais organizadamente. E segundo WILSON BISSI (2007) esses são alguns dos
benefícios obtidos com o uso da metodologia SCRUM:
• diminuição dos riscos;
• maior integração entre os membros das equipes;
• rápida solução de problemas;
• progresso medido continuamente;
• os clientes se tornam parte da equipe de desenvolvimento;
• entregas freqüentes de funcionalidades funcionando;
• discussões diárias de status com a equipe;
• os profissionais de negócios e tecnologias trabalham juntos.
10.CONCLUSÃO
15
16. Os processos ágeis têm evoluído e ganhado um grande numero de usuários,
principalmente pela agilidade de fornecer resultados ao usuário final, pois logo nos
primeiros meses de projetos já existem resultados concretos, visíveis. Essa
característica talvez seja a que mais chama atenção dos clientes, que querem ter
seu sistema o mais cedo possível. Para garantir que erros de implementação não
atrapalhem essa boa impressão ao longo do projeto, os testes de software são
considerados vitais ao processo. Algumas características necessárias para
aplicação dos processos ágeis nem sempre são possíveis, como disponibilidade de
encontro entre os desenvolvedores e um representante do cliente que tenha
autoridade de decisão e ao mesmo tempo conhecimento profundo dos requisitos.
Além disso, a capacitação técnica e experiência dos desenvolvedores são de
extrema importância para o sucesso na aplicação das etapas.
11.REFERÊNCIAS BIBLIOGRÁFICAS
16
17. FERREIRA, D.; COSTA, F.; ALONSO, F.;ALVES, P.; NUNES, T. SCRUM -
Um Modelo Ágil para Gestão de Projetos de Software.Disponível em:
<http://paginas.fe.up.pt/~aaguiar/es/artigos%20finais/es_final_19.pdf>.
CRUZ, R.S.L. Metodologia Scrum. Disponível em: http://scrum-masters.com.
[Agile Manifesto (2004)] Disponível em http://agilemanifesto.org/
OLIVEIRA, E. S. (2003). “Uso de Metodologias Ágeis no Desenvolvimento de
Software”, Monografia apresentada no Programa de Pós-Graduação em
Engenharia de Software da UFMG.
CARVALHO, L.C. (1988). “Análise de sistemas”, Rio de Janeiro: Livros
Técnicos e Científicos.
FERREIRA, R. B. (2004). “Diálogo de surdos: a difícil explicitação do saber
entre programadores de software e operadores de fábrica”, Dissertação de
mestrado pela Engenharia de Produção: UFMG.
ANEXOS
17
18. Figura1. Desenvolvimento Clássico.
Figura2. Desenvolvimento Scrum.
Fase de
planejamento
Fase de liberaçãoFase de desenvolvimentoFase de estágio
Product
backlog
Atualizações
regulares
Sprint
backlog
Estimativa de
esforço
Versão
final
Documentação
Inspeção
24 hours
Iteração
Incremento do
produto
Prioriza
requisitos
18