UNIVERSIDADE PEDAGÓGICA ESCOLA SUPERIOR TÉCNICA LICENCIATURA EM ENGENHARIA ELECTRÓNICA (3° ANO) COMPUTAÇÃO
Engenharia de Software
SCRUM Discente: Francisco José Tembe
Docente: MSc. Sheila Sitoe
1.Introdução Com o intuito de organizar os processos e fornecer uma estrutura para a construção de Software de alta qualidade é que a Engenharia de Software foi criada. A Engenharia de Software é uma aproximação sistemática para a produção
de Software que considera o custo para o desenvolvimento, cronograma e questões de confiabilidade, assim como as necessidades
dos
clientes
e
dos
desenvolvedores
(Sommerville 2011).
2
Breve Historial
Em 2001 decorreu uma importante reunião nos Estados Unidos da América, formalizando a criação dos métodos ágeis para o desenvolvimento de Software e seu objectivo era discutir formas de melhorar o desempenho de seus projectos e assim redigiram um documento chamado manifesto ágil. Para superar falhas de atraso, em 1993 Jeff Sutherland e Ken Schwaber inventaram o Scrum que é semelhante aos sistemas autocorrectivos, evolucionários e adaptativos. A história do Scrum surge num artigo da Harward Business Review em 1986: “The New Product Game Development”. 3
Breve Historial
Onde empresas como Honda, Canon e Fuji-Xerox produziram resultados a nível mundial através de uma abordagem baseada em equipe que era mais rápida, flexível e multifuncionais. Os executivos eram líderes facilitadores focados em retirar os obstáculos do caminho, não em determinar o que deviam fazer e como deveriam desenvolver o produto. O termo Scrum(que deriva de uma estratégia no jogo de rúgbi) foi introduzido para definir
práticas
adaptativas
utilizadas
em
teams
auto-
gerenciáveis.
4
2. Objectivos 2.1. Objectivo Geral • Estudar o método ágil Scrum. 2.2. Objectivos Específicos • Caracterizar as técnicas principais para a criação de software ou produtos; • Definir a Metodologia de Scrum; • Descrever a estrutura e seus intervenientes; • Descrever as fases e processos de sua implementação.
5
3. Scrum Conjunto de ferramentas, denominado Framework, com o qual as pessoas podem resolver problemas complexos,
enquanto fornecem produtos criativos de maior valor possível, e ainda: Scrum é um Framework leve; Scrum é simples de entender; Scrum é difícil de dominar. A
metodologia Scrum não é um processo ou uma técnica para a construção de produtos, mas sim um Framework em que é possível empregar vários processos e técnicas.
6
Pontos fortes •O Scrum indica quando não se tem todos os requisitos do sistema. Flexibilidade para mudanças constantes durante
as fases do projecto; •O cliente faz parte da equipe em tempo integral; •Reuniões diárias que guiam o andamento do projecto; •Ciclos
de
desenvolvimento
curtos
e
constantes;
Comunicação entre os membros da equipe é frequente e Revisões das funcionalidades realizadas acontecem no final de cada ciclo. 7
Papéis e Responsabilidades
Figura 1. Equipe de Desenvolvimento (RUBIN 2012). 8
Time-Boxes e Ciclos de Desenvolvimento Time-boxes são caixas de tempo utilizadas no método Scrum para regular o desenvolvimento do projecto em fases que podem durar de 2 a 4 semanas. Os eventos visam garantir a transparência crítica, inspecção, regularidade
e
adaptação.
São
reuniões
usadas
principalmente para fixar objectivos, já que o Scrum tem uma abordagem por tempo fechado.
9
Sprint Conjunto de iterações ou processos sistemáticos para encontrar soluções rapidamente, nomeadamente: 1.Sprint Planning- evento para ser especificado o plano do
Sprint; 2.Daily Scrum- alinhamento do trabalho a ser executado nas
próximas 24 horas; 3.Sprint Review- demonstração do resultado no final da
Sprint pelos integrantes da Equipe ao Cliente; 4.Sprint Retrospective- revisar e melhorar o processo
usando as experiências aprendidas. . 10
Artefactos São resultados ou produtos das actividades de gestão projectados para aumentar a transparência das informações relacionadas com a entrega do projecto e oferecem oportunidades para inspecção e adaptação. São eles: Product Backlog: lista ordenada de tudo o que é necessário para compor o produto final e é escrito em stories.
Sprint Backlog: lista de itens seleccionados a partir do Product Backlog para entregar através de um Sprint. 11
Incremento: é o conjunto de todos os itens completados do Product Backlog até o final de um determinado Sprint.
Acompanhamento dos progressos rumo ao objectivo: medição de desempenho e previsão para todo o projecto. Acompanhamento dos progressos do Sprint: medição de desempenho e previsões para um único Sprint.
12
Figura 2. Ciclo de desenvolvimento em Scrum. Fonte: www.mountaingoatsoftware.com/Scrum
13
Processos do Scrum FASES
PROCESSOS
Inicial
Análise do projecto Identificação do Scrum Master e Team Develop Elaborar Develop Epic(s) Definir as prioridades do Product Backlog Planeamento da Conduta de Entregas
Planeamento e Estimativa
Criar Aprovar, calcular e fechar o Stories Criar e estimar tarefas Criar Sprint Backlog
Implementação
Criar Entregáveis Conduzir Standup diários Manter prioridade no produto Backlog
Revisão e Retrospectiva Convocar Scrum Demonstrar, validar e realizar Retrospectiva do Sprint Entregas
Entregar o Produto e fazer a retrospectiva do Projecto 14
Características do processo Scrum 1. Sprints são de comprimento fixo, normalmente duas a quatro semanas. 2. O ponto de partida para o planeamento é o Backlog do produto, que é a lista do trabalho a ser feito no projecto. 3. A fase de selecção envolve todos da equipe do projecto que trabalha com o cliente para seleccionar os recursos e a funcionalidade a ser desenvolvida durante o Sprint. 4. Diante a um acordo, a equipe se organiza para desenvolver o Software e esta fica isolada do cliente e da organização, com todas as comunicações canalizadas por meio do Scrum Master. 15
Figura 3. Ciclo de desenvolvimento em Scrum. Fonte:http://consultingblogs.emc.com/colinbird.
16
Scrum em relação aos outros métodos ou técnicas da Engenharia de Softwares Etapas Adaptação Iterativo Ciclos
Gerência de projectos de software Scrum Xp Up Rup
Sim Sim Sim Sim Sim Sim Grande Poucos Poucos ciclos quantidade ciclos rotativos de ciclos dependentes dependente s Gestão de Auto gestão Necessita Necessita Necessita de Necessita de informação de de acompanha acompanhame acompanha acompanha mento nto constante mento mento constante constante constante Documentação Objectiva Objectiva Objectiva Objectiva Objectiva Entrega
Sim Sim Poucos ciclos rotativos
Prototipagem
Sim Sim Quantidade razoável
Incremental Incremental Incremental de de grandes de pequenos blocos pequenos blocos blocos
Entrega do produto completo
Incremental de pequenos blocos
Vantagens Velocidade no desenvolvimento dos projectos;
Maior motivação dos colaboradores; Menor evidência de bugs; As equipe são auto-organizadas; As prioridades podem ser alteradas; Evita surpresas com os resultados; Participação e direcção do cliente.
18
Desvantagens Menor controle de custos e lucro;
Não especifica técnicas praticas; Tem problemas com o cumprimento de prazos; Necessidade de conhecimento da metodologia Scrum
tanto para o Dono do produto, o Mestre Scrum e bem como a Equipe de Desenvolvimento; Difícil de trabalhar com equipes grandes.
19
4.Conclusão O Scrum parte do princípio que se o problema for atacado em conjunto, as soluções serão mais rápidas e criativas, mas para que isso exista é necessário que a equipe tenha comprometimento. Por
isso, o Scrum é um método de equipes auto organizadas e auto dirigidas. Com relação aos outros métodos ágeis, o Scrum é de uma certa forma a melhor forma de gerenciamento de software e também de outros produtos pois possui poucos ciclos rotativos, fazendo com que não hajam repetições de tarefas pois sempre faz-se o estudo dos resultados obtidos e as tarefas que não foram finalizadas tendo assim de levar esses pendentes como prioridades nas próximas tarefas.
20
5.Referências Bibliográficas KNIBERG, HENRIK. Scrum e XP directo das Trincheiras-Como fazemos Scrum. 2007. MANIFESTO, AGILE. “Manifesto for Agile Software Development.” Agile Aliance. 2013. RUBIN, KENNETH S. Essential Scrum. A Practical Guide to the Most Popular Agile Process. Michigan: Pearson Education Inc, 2012. SBROCCO, JOSE HENRIQUES, E PAULO CESAR MACEDO. Metodologias Ageisengenharia de software sob medida. 1. Sao Paulo: Erica, 2012. SCHWABER, K. Agile Project Management with Scrum. Microsoft Press, 2004. SCHWABERK, K., E J. SUTHERLAND. “Scrum Guide: Developed and sustained.” 2009. Scrum.org. SOMMERVILLE, IAN. Engenharia de Software. 9. Traduzido por Ivan Bosnic e Kalinka Gonçalves. São Paulo: Pearson Prentice Hall, 2011. SUTHERLAND, JEFF. Scrum : a arte de fazer o dobro do trabalho na metade DO TEMPO. Montagem por Natalie Gerhardt. Sao Paulo: LeYa, 2014. 21