Buscar

Unidade I Introdu o a Engenharia de Software

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 86 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 86 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 86 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

INTRODUÇÃO À 
ENGENHARIA DE SOFTWARE 
Prof. Ms. Adonias Pinheiro Pires
Conceitos Importantes 
 Engenharia de Software: é uma disciplina de engenharia
relacionada a todos os aspectos de produção de software. Assim,
engenharia de software é apenas parte do processo.
 Processo de Software: é um conjunto de atividades cujo
objetivo é o desenvolvimento ou a evolução de software. São as
atividades para se chegar a um software entregue.
 Modelo de Processo de Software: é uma representação
simplificada de um processo de software, apresentada sob
perspectiva específica.
Modelos Prescritivos 
 São uma representação abstrata (não apresentada detalhes) e
simplificada do processo de desenvolvimento de software,
apresentada a partir de uma perspectiva específica (papéis e
responsabilidades envolvidas ou uma perspectiva de artefatos
gerados ou etapas a serem executadas...). Tipicamente contém:
 Esqueleto do Processo;
 Ordem de Precedência das Atividades;
 Principais Artefatos e Produtos Gerados;
Modelos Prescritivos 
 Modelo em Cascata ou Clássico: teve a origem na indústria de
manufatura e produção. Funciona como se fosse uma linha de
produção.
 É composta por várias etapas, executadas de forma sistemática e
essencial. Ou seja, só é possível passar para uma etapa quando a fase
imediatamente anterior tiver sido completamente terminada.
 É orientado a planos, ou seja, planeja-se tudo antes de se iniciar uma
determinada etapa, não havendo uma segunda chance de correções
de erros, por exemplo.
Modelos Prescritivos 
 Modelo em Cascata ou Clássico:
 Cada fase geralmente prevê a entrega de algum artefato que marca o
fim dessa fase. Ex: Entrega da documentação de requisitos envolve a
entrega da fase de requisitos.
 É utilizado com requisitos muito bem definidos, em projeto de baixa
complexidade, se há uma grande estabilidade no desenvolvimento
de um projeto.
 Projetos reais dificilmente seguem o fluxo sequencial;
 Em geral, é difícil que o cliente estabeleça todos os requisitos
explicitamente;
Modelos Prescritivos 
 Modelo em Cascata ou Clássico:
 Uma versão executável do programa não vai ficar disponível até o
período final do intervalo de tempo do projeto.
 Minimiza o planejamento, organizando as atividades em uma
sequência com entregas bem definidas;
 É facilmente aplicável em equipes inexperientes;
 Atrasa a redução dos riscos. É a maior desvantagem. Se existir
alguma modificação durante a sequencia, ou não se aplica a
modificação ou se reinicia todo o processo.
Modelos Prescritivos 
 Modelo em Cascata ou Clássico (Pressman):
Modelos Prescritivos 
 Modelo em Cascata ou Clássico:
 Análise: Intensificação da análise de requisitos, conhecendo o
domínio da informação, comportamento, desempenho e interface.
 Projeto: Foca estruturas de dados, arquitetura do software e
detalhes procedimentais. Traduz os requisitos de forma que a
representação do software possa ser avaliada antes da codificação.
 Codificação: Teste de unidade. É a tradução do projeto para a
linguagem de máquina.
 Teste: É a integração. Descobrir erros e garantir que entradas
definidas produzirão os resultados exigidos.
 Manutenção: torna-se necessária quando se tem uma modificação.
Replica cada uma das outras fases a um programa existentes.
Modelos Prescritivos 
 Modelo em Cascata ou Clássico:
Modelos Prescritivos 
 Fases Genéricas do Ciclo de Vida: Segundo Pressman, uma
metodologia genérica para engenharia de software,
independente do tamanho e da atividade, compreende 5
atividades:
 Comunicação: antes de iniciar o trabalho técnico, é preciso
comunicar-se com o cliente e outros interessados, compreendendo
os objetivos das partes interessadas para com o projeto.
 Planejamento: define o trabalho de engenharia de software,
descrevendo as tarefas técnicas s ser conduzidas, riscos, recursos
necessários, produtos resultantes e um cronograma.
Modelos Prescritivos 
 Fases Genéricas do Ciclo de Vida:
 Modelagem: é um esboço da coisa, para que se tenha uma ideia
como um todo, projetando uma arquitetura ou refinando o próprio
esboço com mais detalhes para melhor compreender o problema.
 Construção: geração de código e testes necessários para revelar
erros.
 Emprego: o software, seja ele todo ou um incremento, é entregue ao
cliente, que avalia o produto e fornece feedback.
Modelos Iterativos
 É uma passagem pelas disciplinas técnicas do desenvolvimento
de software.
 Percorrer várias vezes as disciplinas e a cada vez que se percorre,
constrói-se um melhor entendimento sobre o problema.
 Utilizado quando requisitos mudam frequentemente à medida
que o processo segue, dificultando um caminho direto ao
produto final, prazos são curtos, mas uma versão reduzida pode
ser elaborada devido ao mercado ou pressões do negócio.
Modelos Iterativos
 Requisitos do sistema sempre evoluem durante o projeto;
 É a divisão do projeto em mini projetos;
 A cada iteração, uma versão é entregue, havendo o feedback do
cliente;
 Existem duas abordagens: Incremental e Espiral.
Modelos Iterativos
Modelos Prescritivos 
 Prototipagem: seu objetivo é realizar um projeto rápido para
atender somente a aspectos do software que ficarão visíveis. O
protótipo é avaliado pelo cliente e usado para refinar os
requisitos que serão desenvolvidos.
 Novas interações são realizadas para que se tenha a evolução do
protótipo e melhor entendimento do desenvolvedor.
 É uma técnica para se levantar requisitos, e não de desenvolvimento.
Deve ser evitado passar ao cliente que poderia ser sua versão final.
Modelos Prescritivos 
 Prototipagem Evolucionária: o objetivo é trabalhar junto com os
clientes para evoluir o sistema a partir de uma especificação
inicial resumida. Entregar o resultado o mais rápido possível, não
descartando essa primeira evolução, para que o cliente veja logo
funcionando.
 Deve ser começado pelos requisitos mais bem compreendidos;
 Novas funcionalidades são adicionadas à medida que o cliente as
propõe a cada nova versão;
 Aplicável em sistemas pequenos, médios ou com curto ciclo de vida.
Modelos Prescritivos 
 Prototipagem Descartável: quando não se menciona qual o tipo
de prototipagem, se está falando desse tipo. Assim como na
Evolucionária, pequenas versões são disponibilizadas para o
cliente para avaliação.
 Porém, o objetivo da prototipagem descartável é esclarecer os
requisitos do sistema. Assim deve-se começar com os requisitos
mais difíceis e menos compreendidos, pois com eles o protótipo
é gerado para o cliente decidir o que ele quer com um exemplo
mais concreto;
 Ao final, descarta-se o protótipo e o desenvolvimento do
software continua;
Modelos Prescritivos 
 Prototipagem Descartável:
 É útil para grandes e complicados sistemas e quando o cliente
não sabe exatamente o que quer;
 Protótipos descartáveis podem ser aplicados no contexto de
qualquer modelo de processo. Ex: Cascata, espiral,
iterativo/incremental, etc. Assim, apesar de poder ser usada
isoladamente, é utilizada muito mais como uma técnica dentro
de outros modelos de processo. O modelo em Espiral, por
exemplo, já incorpora a prototipagem em sua metodologia.
Modelos Prescritivos 
Modelos Evolucionários
 É utilizado quando os requisitos do software são razoavelmente
bem definidos, havendo também a necessidade de fornecer
rapidamente um conjunto limitado de funcionalidade de
software e depois refinar e expandir essa funcionalidade em
versões subsequentes.
 Modelo Incremental: combina elementos do modelo em cascata
aplicado de forma interativa.
 Aplica sequência lineares de forma racional, à medida que o
tempo passa, produzindo incrementos de software passíveis de
serem entregues.Modelos Evolucionários
 Em um primeiro incremento, normalmente, os requisitos mais
críticos são priorizados, diminuindo os riscos do projeto. Tem
como objetivo apresentar um produto funcional a cada
incremento. O primeiro incremento é chamado de Núcleo do
Produto.
 Os requisitos não são todos de uma vez especificados, e sim
elicitados à medida que o desenvolvimento acontece;
 É útil quando não há mão-de-obra disponível para uma
implementação completa;
 Primeiros incrementos podem ser implementados com menos
pessoal.
Modelos Evolucionários
Modelos Evolucionários
Modelos Evolucionários
Modelos Evolucionários
 Modelo Espiral:
 Originalmente proposto por Boehm, combina a natureza
iterativa da prototipagem com os aspectos controlados e
sistemáticos do modelo em cascata, fornecendo o potencial para
o desenvolvimento rápido de versões de software cada vez mais
completas.
 Possui uma abordagem cíclica, aumentando o grau de definição
e implementação de um sistema enquanto seu risco diminui.
 Outra característica é um conjunto de marcos de ancoragem,
garantindo o comprometimento dos interessados.
Modelos Evolucionários
 Modelo Espiral:
 A partir de atividades arcabouço (ex: modelagem,
implementação, construção, etc), dividi-se o modelo.
 No momento em que o desenvolvimento se inicia, a equipe
realiza as atividades por um circuito em volta da espiral, no
sentido horário, começando pelo centro.
 Após cada passagem, versões mais sofisticadas são
desenvolvidas.
 Cada passagem também resulta em ajustes no plano do projeto
(custos, números de iterações, etc).
Modelos Evolucionários
 Modelo Espiral:
 Cada volta na espiral representa uma fase no processo. Dessa
forma, a volta mais interna pode preocupar-se com a viabilidade
do sistema; o ciclo seguinte com os requisitos; o próximo ciclo
com o projeto do sistema e assim por diante. Os quadrantes não
são fases, e sim tarefas (Pressman) ou Quadrantes
(Sommerville);
 Não há fases fixas. Cada volta não significa passar pelas mesmas
atividades. É possível escolher que atividades na qual se quer
passar pela fase;
Modelos Evolucionários
 Modelo Espiral:
 São acrescentados, explicitamente, aspectos gerenciais ao
desenvolvimento. Assim, existe um quadrante de tomada de
decisão e outro quadrante de análise de risco. Se um risco
importante não for descoberto e gerenciado, fatalmente
ocorrerão problemas. Nessa etapa de análise de riscos é possível
fazer o uso de protótipos.
 É um modelo realista de desenvolvimento de software de grande
porte, fazendo com que o cliente entenda melhor os riscos do
projeto;
Modelos Evolucionários
Modelos Evolucionários
 Modelo Espiral:
 Em cada quadrante são realizadas várias atividades;
 No quadrante de planejamento, são feitas estimativas de custos,
prazos, etc., ou seja, pensar um plano antes de realizar as
atividades técnicas;
 A Análise de Riscos é o grande diferencial desse modelo para os
outros, que está explicita dentro do modelo. O projeto é viável?
Devo continuar com os loops? O custo/benefício é algo viável?
Se sim, passa-se ao próximo quadrante de Engenharia;
Modelos Evolucionários
 Modelo Espiral:
 No quadrante de Engenharia são encontradas as atividades
técnicas de desenvolvimento de software: análise, requisitos,
engenharia, desenvolvimento....
 A direção da espiral é de dentro para fora, em loops pequenos,
crescendo a medida que se passa a novas fases.
Modelos Evolucionários
Modelos Evolucionários
Desenvolvimento Ágil
 As metodologias ágeis são adequadas para situações em que a
mudança de requisitos é frequente, devendo aceitar a mudança
ao invés de prever o futuro. Buscam flexibilizar o
desenvolvimento de software, pregando, de acordo com o
Manifesto Ágil.
Desenvolvimento Ágil
 Características:
 Indivíduos e interações em vez de processos e ferramentas
(comunicação é mais importante que hierarquia);
 Software executável o mais rápido possível, em vez de
documentação (código, invés de documentos);
 Colaboração do cliente ao invés de negociação de contratos;
 Reposta rápidas às mudanças em vez de seguir planos;
Desenvolvimento Ágil
 Características:
 Reposta rápidas às mudanças em vez de seguir planos;
 Abordagem interativa e incremental;
 A arquitetura não para e vai emergindo a partir da necessidade
da aplicação.
 A agilidade pode ser empregada a qualquer processo de
software.
 Métodos ágeis são mais adequados para projetos com pequenos
times.
Desenvolvimento Ágil
 Princípios do Manifesto Ágil:
 Nossa maior prioridade é satisfazer o cliente através da entrega
contínua e adiantada de software com valor agregado.
 Mudanças nos requisitos são bem-vindas, mesmo tardiamente
no desenvolvimento. Processos ágeis tiram vantagem das
mudanças visando vantagem competitiva para o cliente.
 Entregar frequentemente software funcionando, de poucas
semanas a poucos meses, com preferência à menor escala de
tempo.
Desenvolvimento Ágil
 Princípios do Manifesto Ágil:
 Pessoas de negócio e desenvolvedores devem trabalhar
diariamente em conjunto por todo o projeto.
 Construa projetos em torno de indivíduos motivados. Dê a eles o
ambiente e o suporte necessário e confie neles para fazer o
trabalho.
 O método mais eficiente e eficaz de transmitir informações para
e entre uma equipe de desenvolvimento é através de conversa
face a face.
Desenvolvimento Ágil
 Princípios do Manifesto Ágil:
 Software funcionando é a medida primária de progresso.
 Os processos ágeis promovem desenvolvimento sustentável. Os
patrocinadores, desenvolvedores e usuários devem ser capazes
de manter um ritmo constante indefinidamente.
 Contínua atenção à excelência técnica e bom design aumenta a
agilidade.
Desenvolvimento Ágil
 Princípios do Manifesto Ágil:
 Simplicidade: a arte de maximizar a quantidade de trabalho não
realizado é essencial.
 As melhores arquiteturas, requisitos e designs emergem de
equipes auto-organizáveis.
 Em intervalos regulares, a equipe reflete sobre como se tornar
mais eficaz e então refina e ajusta seu comportamento de
acordo.
Desenvolvimento Ágil
 Problemas do Desenvolvimento Ágil:
 Será que em todo o momento o cliente será capaz de estar ao
lado da equipe de desenvolvimento? Frequentemente,
representantes dos clientes estão sujeitas as mais diversas
pressões e não podem participar plenamente do
desenvolvimento do software;
 Membros individuais da equipe podem não ter perfil para
trabalhar com métodos ágeis, não interagindo bem com outros
membros da equipe;
Desenvolvimento Ágil
 Problemas do Desenvolvimento Ágil:
 Priorizar mudanças pode ser difícil, especialmente quando
existem muitos stakeholders envolvidos, cada um fornecendo
sua visão do que é prioridade;
 Muitas organizações já definiram durante muitos anos seus
processos. É difícil mudar a cultura para um processo informal.
 Fazer as coisas simples, como prega o manifesto ágil, requer
trabalho extra. Pressões de cronograma influenciam nas
simplificações.
Extreme Programming (XP)
 “É uma metodologia ágil para equipes pequenas e médias,
baseada em requisitos vagos e que são modificados
constantemente.” – Kent Beck. Encoraja:
 Feedback Constante (programador terá feedback constantes sobre o
código e o cliente.
 A informação sobre o código é feita através de testes que indicam
erros individuais ou integrados.
 O cliente deve ter frequentemente uma parte do software
totalmente funcional para avaliar);
 Abordagem incremental;
 A comunicação entre as pessoas é encorajada;
Extreme Programming (XP)
 O que é programar ao extremo?
 Se revisar código é bom, vamos revisá-lo toda hora
(programação em pares); Se testar é bom, vamos testá-lo toda hora (testes funcionais);
 Se projetar é bom, vamos fazer disso parte do trabalho diário de
cada pessoa (refactoring);
Extreme Programming (XP)
 O que é programar ao extremo?
 Se integrar é bom, vamos integrar a maior quantidade de vezes
possível (integração contínua). Ou seja, sempre que se mexer em
uma parte do software, integrá-lo imediatamente;
 Se simplicidade é bom, vamos deixar o sistema na forma mais
simples possível (projeto simples). A simplicidade visa a permitir
a criação de código enxuto (menor número possível de
componentes como classes e métodos), que não deve possuir
funções desnecessárias.
Extreme Programming (XP)
 Práticas da XP:
 Planejamento: desenvolvedores devem decidir sobre o prazo e a
área de negócio sobre o escopo, baseando-se em requisitos
atuais, e não futuros. O curso deve ser replanejado a qualquer
momento;
 Pequenas Versões: atualizar um software simples a medida que
novos requisitos surgirem, a cada mês ou no máximo a cada 2
meses, evitando surpresas e a necessidade de grandes
modificações, sempre entregando pedaços funcionando de
software;
Extreme Programming (XP)
 Práticas da XP:
 Metáfora: uma história que todos (programadores, clientes,
gerentes...) entendam de como o sistema funciona, com o intuito
de guiar o desenvolvimento. Não devem ser utilizado termos
técnicos.
 Projeto Simples: o código está na forma mais simples que passe
todos os testes. Ou seja, no momento da codificação o código
está o mais simples para resolver os requisitos atuais e passar
pelos testes positivamente.
Extreme Programming (XP)
 Práticas da XP:
 Desenvolvimento Orientado a Testes: uma estrutura de testes
unitários automatizada e os testes são escritos antes da
implantação (TDD – Test Driven Development). O projeto do
teste pode começar a ser feito desde a elicitação dos requisitos.
 Programação em pares; programadores trabalham em pares,
validando mutuamente o trabalho feito. Ambos usam a mesma
máquina. Se um programador morre, sai da empresa, falta, etc. o
outro programador conhece bem o que se está fazendo.
Extreme Programming (XP)
 Práticas da XP:
 Código-padrão: recomenda-se a adoção de regras de escrita, no
estilo e formato de comentários e no uso de identificadores.
 Refatoração: deve ser feita sempre que for possível simplificar
uma parte do desenvolvimento, sem perda de funcionalidade,
removendo redundâncias e duplicidades.
 Propriedade Coletiva: o código do projeto pertence a todos, pois
todos são responsáveis pelo software inteiro. Assim, qualquer
pessoa está autorizada a realizar mudanças, evitando “ilhas de
conhecimento”. Dessa forma, todos conhecem o código;
Extreme Programming (XP)
 Práticas da XP:
 Integração Contínua: os diversos módulos do software são
integrados o mais cedo possível, evitando problemas no futuro.
Assim que um módulo é completado, já é integrado ao sistema
como um todo;
 Reunião em Pé: reuniões rápidas e diárias com a equipe, para
discutir apenas o essencial. A reunião não deve durar mais que
15 minutos;
Extreme Programming (XP)
 Práticas da XP:
 Trabalho semanal de 40 horas: caso seja preciso trabalhar mais
de 40 horas semanais, há um problema no projeto, tendo que
ser resolvida com melhor planejamento, por exemplo.
 Cliente presente: cliente deve estar disponível em tempo integral
para a equipe, pois ele faz parte do desenvolvimento. Ele será
responsável pela definição do teste de aceitação do sistema.
OBS: Analogia do Táxi (entregar um documento com o cliente no
táxi e sem o cliente no táxi).
Extreme Programming (XP)
 Práticas da XP:
 Planejamento Incremental: requisitos são registrados como
história dos usuários (em linguagem coloquial) e priorizados para
serem incluídos em uma determinada iteração.
 Abraçar Mudanças: Quem trabalha com o XP gosta e aceita
mudanças.
Extreme Programming (XP)
 Valores do XP: norteiam a ética, a filosofia do XP.
 Comunicação: valores indivíduos e interações, do que a
burocracia. Comunicação intensa dentro da própria equipe e
com o cliente, disseminando o conhecimento;
 Simplicidade: XP encoraja que se comece sempre pela solução
mais simples que funcione;
Extreme Programming (XP)
 Valores do XP: norteiam a ética, a filosofia do XP.
 Feedback: do cliente, do sistema, dos colegas de trabalho...
 Coragem: para fazer algo simples é preciso ter coragem, pois,
futuramente, o programador sabe que as chances de mudança
são grandes;
 Respeito: Respeito da equipe, dos colegas de trabalho, do
cliente...Todos tem que se importar com o projeto.
Extreme Programming (XP)
 Cartão de História: é um documento que possui a definição da
história do usuário. Traz uma visão descritiva de como as coisas
devem acontecer (funcionalidade que o cliente espera receber).
 Após sua definição, a equipe de desenvolvimento deverá dividi-
lo em tarefas e estimar o esforço e os recursos necessários para
implementação.
 Concentram em “quem, o quê e porquê de um recurso, e não
como”;
Extreme Programming (XP)
 Cartão de História:
 O cartão de história tem que ser escrito a partir de uma
perspectiva do usuário.
 O cartão não deve possuir jargões técnicos ou informações de
design, ou qualquer outra coisa que não seja informações de
negócio.
 Um cartão deve ser escrito com a linguagem no negócio, para
que seja compreendido por todos.
Extreme Programming (XP)
Extreme Programming (XP)
Scrum
 Cartão de História:
 É um framework (ou seja, é incompleto por natureza, podendo
ser adaptado a cada realidade. Para concursos, é uma
“metodologia”) de processo dentro do qual podem ser
empregados outros processos e técnicas variadas (assim, é
possível adicionar papéis, artefatos, atividades e eventos de
acordo com a necessidade de cada empresa).
Scrum
 Inicialmente, o Scrum foi concebido como um estilo de
gerenciamento de projetos em empresas de fabricação de
automóveis e produtos de consumo.
 Em 1995, Ken Schwaber formalizou a definição de Scrum e
ajudou a implantá-lo no desenvolvimento de softwares em todo
o mundo.
 É um framework mais para gerenciamento, não contendo, por
exemplo, práticas e técnicas de programação ou engenharia.
 É eficiente para projetos com prazos curtos, requisitos mutantes
e criticidade de negócio. Os princípios Scrum são consistentes
com o manifesto ágil (iterativo, incremental, reuniões rápidas,
etc.)
Scrum
 Características:
 É composto de papéis, reuniões e artefatos. Não quer dizer que
não possa haver mais componentes, de acordo com a empresa
(Ex: Atas de Reunião), mas o SCRUM deve ter no mínimo esses 3
componentes.
 Pequenas equipes se auto-organizam para maximizar a
comunicação e diminuir a supervisão. Assim, a equipe escolhe a
melhor forma de realizar o trabalho tecnicamente, não
necessitando de supervisão gerencial;
Scrum
 Características:
 É iterativo e incremental. O produto evolui em uma série de
“sprints” (período delimitado de tempo, geralmente de 2 a 4
semanas). Uma sprint é uma iteração;
 Os requisitos (funcionalidade dos clientes) são listados em um
“product backlog (é o escopo do produto, lista de
funcionalidades a serem implementadas. É gerenciado pelo dono
do produto)”;
Scrum
 Características:
 Processo precisa ser adaptável tanto a modificações técnicas
quanto ao negócio;
 Processo produz incrementos que podem ser ajustados,
testados, documentados e expandidos;
 Testes e documentação constantes são realizados à medida que
o produto é construído.
Scrum
Scrum
 Os requisitos estão estruturados por prioridade no Product
Backlog, ou seja, tudo se inicia nele.
 Tendo esse escopo, uma reunião é realizada, chamada de
Planejamento da Sprint. Nesse planejamento é derivado o Spring backlog, que é uma
lista de tarefas técnicas a serem feitas pela equipe de
desenvolvimento para implementar as funcionalidades, durando
aproximadamente de 2 a 4 semanas.
 Diariamente existem as Daily Scrums, que são as reunião diárias,
no máximo de 15 minutos, para obter o feedback sobre as
atividades e respondendo a 3 perguntas.
 Ao final é gerado o Incremento Potencialmente Implantável do
Produto, ou seja, é uma entrega funcional..
Scrum
Scrum
 Pilares do SCRUM:
 Transparência: os aspectos do processo que afetam o resultado
devem ser visíveis para aqueles que gerenciam o resultado. Se
algo estiver destoando, deve ser exposto.
 Inspeção: detecção de variâncias inaceitáveis no processo devem
ser inspecionadas e detectadas. Existem algumas atividades de
inspeção (detalhadas abaixo): Reunião Diária, Sprint Review,
Sprint Planning, Sprint Perspective.
 Adaptação: se for detectado no decorrer da inspeção que um ou
mais aspectos do processo saiu dos trilhos e que o produto final
será inaceitável, eles devem ser ajustados. O SCRUM é adaptável
ao projeto.
Scrum
 Product Backlog: É um documento dinâmico.
 Uma lista ordenada das funcionalidades necessárias do produto.
Quanto mais no topo do Product Backlog, mais prioritária será a
necessidade;
 Itens mais prioritários (possuem maior valor agregado pelo
cliente) estão localizados no topo do product backlog;
 Nunca está congelado. É um artefato dinâmico, e nunca está
completo, podendo ser aumentado ou diminuído de acordo com
a vontade do cliente;
 É replanejado (repriorizado) no início de cada Sprint. É analisado
junto com o cliente se o resultado esperado atendeu ao cliente;
Scrum
 Sprint Backlog: com o escopo já definido, um sprint é uma lista
de tarefas técnicas (refatorar código, gerar tabelas...) que a
equipe se compromete a realizar. O cliente normalmente não
enxerga o Sprint Backlog.
 Os itens são derivados a partir do product backlog. 1:N;
 Deverá conter: itens de backlog selecionados, suas respectivas
tarefas e a meta da sprint;
 • Diz respeito as micro atividades;
Scrum
 Sprint Backlog:
 São considerados:
 A prioridade que o cliente deu aos itens;
 O tempo e o esforço estimados pela equipe de desenvolvimento para
completar os vários itens. Assim, clientes e desenvolvedores chegam a um
acordo se o que o cliente solicitou é possível fazer no tempo e esforço
estimados.
Scrum
Scrum
Scrum
 Sprint: um incremento potencialmente entregável do produto,
testado e pronto para ser usado;
 Release: É uma entrega que entrará em produção, de acordo
com uma condição de satisfação real, clara e prioritária. Assim,
uma release poderá conter várias sprints.
Scrum
 Sprint Burndown: é um gráfico da equipe, não do PE nem do SM.
Seu objetivo é ajudar a equipe no micro gerenciamento.
 O gráfico só evolui quando o item está realmente pronto;
 Auxilia na medição da velocidade da equipe por sprint;
 O eixo X mostra os dias de trabalho do Sprint e o eixo Y mostra a
quantidade de esforço necessária para terminar a Sprint. A
representação do esforço necessário pode ser em horas reais de
trabalho.
Scrum
Scrum
 Product Owner: é o dono do produto. Gerencia o Product
Backlog, com o auxilio do Scrum Master. É o
cliente/representante do cliente. É o responsável por todo o
macro gerenciamento de um projeto scrum, ou seja, grandes
planejamentos, não definindo/gerenciando coisas do dia a dia.
 Possui total decisão sobre o produto;
 Funciona como um “Proxy” em ambientes com mais de um
cliente. Ou seja, é um centralizador de clientes;
Scrum
 Product Owner:
 Define a visão macro do projeto, ou seja, qual o produto final deve ser
desenvolvimento, mas sem entrar em detalhes. Recolhe informações
junto a clientes, usuários finais, equipes, gerentes, etc.
 Define as funcionalidades a serem implementadas do produto;
 Decide as datas de lançamento e conteúdo;
 Prioriza as funcionalidades de acordo com o valor para a empresa,
aceitando ou rejeita os resultados dos trabalhos;
Scrum
 Team (Equipe de Desenvolvimento): enquanto que o PO faz o
macro gerenciamento, a Equipe de Desenvolvimento faz o micro
gerenciamento do produto.
 Contém, tipicamente, 5 a 9 pessoas;
 São equipes Multifuncionais;
 Possuem dedicação integral, pois as equipes são curtas, o sprint
tem pouco tempo para ser realizada e a pressão é grande pelos
resultados;
 É uma equipe auto-organizável.
Scrum
 Scrum Master: foca no processo, ou seja, é responsável pela
aplicação dos valores e práticas do scrum no projeto. Não é um
gerente de projeto.
 Garante que o próprio scrum esteja sendo seguido, cuidando que
as equipes sigam as regras, teorias e práticas do scrum (período
de tempo da sprint, dedicação total...).
 Scrum Master não é o gerente, nem chefe da equipe. Equipes
scrum são auto-organizadas, não necessitando de um gerente.
Apenas garante a aplicação do próprio scrum;
Scrum
 Planejamento da Sprint:
 é o planejamento do trabalho a ser executado durante uma
Sprint.
 Selecionam-se os itens do Product Backlog, e as tarefas (contidas
no Sprint Backlog) são identificadas e estimadas.
Scrum
 Planejamento da Sprint:
 Normalmente, para uma sprint de 1 mês, essa reunião de
planejamento dura 8 horas e é dividida em 2 partes: a primeira
parte é o planejamento estratégico (trata do que será feito na
Sprint, definindo-se a meta da sprint), com participação ativa do
Product Owner, e a segunda parte da reunião é o planejamento
tático (trata de como será feita a Sprint), tratando de coisas
técnicas, com participação não tão ativa do Product Owner
(tirando dúvidas, negociando o trabalho e efetuando mudanças).
Scrum
 Planejamento da Sprint:
 Tudo é feito de forma colaborativa, com toda a equipe (Scrum
Master, Equipe de Desenvolvimento e o Product Owner);
 Ao final da reunião, deve-se ter o Sprint Backlog;
 Essas duas reuniões são realizadas dentro da própria sprint. Se
uma sprint possui 2 semanas, essa reunião consome 1 dos 14
dias da sprint.
Scrum
 Reuniões Diárias:
 Reunião rápida, apenas com os membros da equipe (PO não está
presente), em pé, durante no máximo 15 minutos, responde as
três perguntas tradicionais.
 É uma reunião para obter um feedback da equipe de
desenvolvimento e adaptações para o próximo dia de trabalho.
 Possui o Scrum Master como facilitador;
 Planeja o dia seguinte de trabalho e um ganho de visibilidade de
como está o caminho para a meta;
Scrum
 Revisão do Sprint: apresenta os resultados obtidos, ou seja,
apresentação do pedaço do software funcionando. Acontece ao
final da sprint.
 Não é um evento formal. Todos participam, inclusive o Scrum
Master e o PO. No máximo 2 horas de preparação, totalizando 4
horas para uma sprint de 1 mês, sem slides (nada de
PowerPoint), mostrando e navegando no sistema
(funcionalmente).
 A equipe discute o que correu bem e os problemas encontrados
e como foram resolvidos;
 O PO identifica o que foi feito e o que não foi;
Scrum
 Retrospectiva da Sprint: ocorre após a revisão da sprint e antes
da próxima reunião de planejamento. É inspecionado muito mais
o processo seguido do que o incremento do produto, encorajado
pelo Scrum Master, pois o segundo já ocorreu na Revisão do
Sprint. Inspeciona como foi a última sprint em termos de:
 Pessoas e Relações: como está o ambiente de trabalho? Todas as
habilidades estão contidas na equipe de desenvolvimento?
 Processos e Ferramentas: Como estão as ferramentas? Estão
adequadas ao processo? Como estão as regras aplicadas?
 • Enquanto a Reunião da Sprint avalia o produto, a
Scrum
 Retrospectiva da Sprint:
 Enquanto a Reunião da Sprint avaliao produto, a Retrospectiva
da Sprint avalia o processo;
 Possui duração de 3 horas. O time é encorajado pelo Scrum
Master para revisar o processo de trabalho de acordo com as
práticas do Scrum.

Outros materiais

Materiais relacionados

Perguntas relacionadas

Perguntas Recentes