SlideShare ist ein Scribd-Unternehmen logo
1 von 26
Downloaden Sie, um offline zu lesen
Engenharia de Software 
Processos de Software - Desenvolvimento 
Ágil
Objetivos da Aula 
Apresentar o desenvolvimento ágil e os principais modelos conhecidos.
Desenvolvimento Ágil 
Breve Histórico 
2001 - Kent Beck e outros dezesseis desenvolvedores e consultores se reunem e formam a “ Agile 
Alliance “ - “ Aliança dos Ágeis”, e assinam o manifesto ágil. E decidiram valorizar no 
desenvolvimento, ver o link para o Manifesto Ágil: 
1.Indivíduos e interação entre eles mais que processos e 
ferramentas 
2.Software em funcionamento mais que documentação 
abrangente 
3.Colaboração com o cliente mais que negociação de contratos 
4.Responder a mudanças mais que seguir um plano
Desenvolvimento Ágil 
Os 12 princípios do manifesto ágil: 
1. Nossa maior prioridade é satisfazer o cliente, através da entrega adiantada e contínua de 
software de valor. 
2. Aceitar mudanças de requisitos, mesmo no fim do desenvolvimento. Processos ágeis se 
adequam a mudanças, para que o cliente possa tirar vantagens competitivas. 
3. Entregar software funcionando com freqüencia, na escala de semanas até meses, com 
preferência aos períodos mais curtos. 
4. Pessoas relacionadas à negócios e desenvolvedores devem trabalhar em conjunto e 
diáriamente, durante todo o curso do projeto. 
5. Construir projetos ao redor de indivíduos motivados. Dando a eles o ambiente e suporte 
necessário, e confiar que farão seu trabalho.
Desenvolvimento Ágil 
Os 12 princípios do manifesto ágil: 
6. O Método mais eficiente e eficaz de transmitir informações para, e por dentro de um time de 
desenvolvimento, é através de uma conversa cara a cara. 
7. Software funcional é a medida primária de progresso. 
8. Processos ágeis promovem um ambiente sustentável. Os patrocinadores, desenvolvedores e 
usuários, devem ser capazes de manter indefinidamente, passos constantes. 
9. Contínua atenção à excelência técnica e bom design, aumenta a agilidade. 
10. Simplicidade: a arte de maximizar a quantidade de trabalho que não precisou ser feito. 
11. As melhores arquiteturas, requisitos e designs emergem de times auto-organizáveis. 
12. Em intervalos regulares, o time reflete em como ficar mais efetivo, então, se ajustam e otimizam 
seu comportamento de acordo.
Desenvolvimento Ágil 
Com base nesses princípios e valores algumas metodologias ágeis de 
desenvolvimento foram surgindo. Entre elas podemos destacar: XP e Scrum.
Desenvolvimento Ágil - XP 
“Extreme Programming (XP) é uma metodologia de desenvolvimento de 
software, nascida nos Estados Unidos ao final da década de 90. Vem 
fazendo sucesso em diversos países, por ajudar a criar sistemas de melhor 
qualidade, que são produzidos em menos tempo e de forma mais econômica 
que o habitual. Tais objetivos são alcançados através de um pequeno 
conjunto de valores, princípios e práticas, que diferem substancialmente da 
forma tradicional de se desenvolver software. “ (Extreme Programming)
Desenvolvimento Ágil - XP 
Foi definido um conjunto de 5 valores que estabelecem as bases para todo 
trabalho utilizando XP: 
● Comunicação; 
● Simplicidade; 
● Feedback; 
● Coragem (Disciplina) e 
● Respeito.
Desenvolvimento Ágil - XP 
Para estabelecer comunicação efetiva entre engenheiros de software e 
demais envolvidos no sistema, a XP enfatiza a colaboração estreita, embora 
muitas vezes informal ( de forma verbal), entre clientes e desenvolvedores, o 
estabelecimento de metáforas eficazes para comunicar conceitos importantes, 
feedback contínuo e evitar documentação volumosa como meio de 
comunicação.
Desenvolvimento Ágil - XP 
Para alcançar a simplicidade, a XP restringe os desenvolvedores a projetar 
apenas para as necessidades imediatas, em vez de considerarem as 
necessidades futuras. O intuito é criar um projeto simples que possa ser 
facilmente implementado em código. Caso precise melhorar, isso poderá ser 
facilmente feito posteriormente.
Desenvolvimento Ágil - XP 
O feedback provém de três fontes: do próprio software implementado, do 
cliente e dos outros membros da equipe de software. Através de uma 
estratégia para elaboração eficazes dos testes, eles podem fornecer um 
feedback para a equipe ágil. 
O XP valoriza os testes unitários, a medida que as classes são 
implementadas os testes unitários são feitos para cada operação , de acordo 
com a funcionalidade especificada. A medida que, um incremento é entregue a 
um cliente, as histórias de usuários ou casos de uso implementados pelo 
incremento são usados como base para testes de aceitação.
Desenvolvimento Ágil - XP 
A XP foca no desenvolvimento para o software hoje, sem se preocupara com o 
que pode vir a ocorrer com o software no futuro para isso é preciso coragem, 
ou disciplina, para atenter as necessidades atuais do projeto. Por este motivo 
muitas equipes que utilizam métodos ágeis sucubem, pois é um engano querer 
projetar o “futuro do sistema” já que as mudanças são bem aceitas, logo se a 
equipe ao inves de preocupar-se com o problema atual preocupa-se com 
problemas futuros podem ter realmente perdas significativas de trabalho já que 
o amanhã do sistema pode sofrer grandes mudanças.
Desenvolvimento Ágil - XP 
A XP foca no desenvolvimento para o software hoje, sem se preocupara com o 
que pode vir a ocorrer com o software no futuro para isso é preciso coragem, 
ou disciplina, para atenter as necessidades atuais do projeto. Por este motivo 
muitas equipes que utilizam métodos ágeis sucubem, pois é um engano querer 
projetar o “futuro do sistema” já que as mudanças são bem aceitas, logo se a 
equipe ao inves de preocupar-se com o problema atual preocupa-se com 
problemas futuros podem ter realmente perdas significativas de trabalho já que 
o amanhã do sistema pode sofrer grandes mudanças.
Desenvolvimento Ágil - XP 
Por fim o respeito, respeitar os membros envolvidos no processo e outros 
envolvidos , de forma direta ou indireta.
Desenvolvimento Ágil - XP 
O processo XP 
utiliza-se de 4 atividades metodológicas: 
● Planejamento; 
● Projeto; 
● Codificação e 
● Testes.
Desenvolvimento Ágil - XP 
O processo XP: Planejamento 
ouvir - Levantamento de requisitos ( ouvir as partes interessadas ) 
histórias - semelhante aos casos de uso, 
entender o ambiente de negócios do software - permite uma percepção ampla 
dos resultados solicitados e esperados para o sistema. 
“ouvir “ conduz à criação de um conjunto de “histórias” que descrevem os 
resultados, caracteristicas e funcionalidades esperadas pelo usuário.
Desenvolvimento Ágil - XP 
O processo XP: Projeto 
● Segue o lema KIS (Keep It Simple), mantenha simples. 
● Quando aparece um requisito problemático ou confuso, é recomendado a 
criação de um protótipo. 
● Projeto é algo transitório, deve ser continuamente alterado conforme a 
construção prossegue. 
● Essa fase ocorre tanto antes quanto depois da codificação.
Desenvolvimento Ágil - XP 
O processo XP: Codificação 
Conceito chave é a programação em duplas ( duas pessoas em um única 
máquina codificando para criar o código de uma história) ; 
Conforme a dupla termina uma história, o código gerado é integrado ao 
software.
Desenvolvimento Ágil - XP 
O processo XP: Codificação 
Conceito chave é a programação em duplas ( duas pessoas em um única 
máquina codificando para criar o código de uma história) ; 
Conforme a dupla termina uma história, o código gerado é integrado ao 
software.
Desenvolvimento Ágil - Scrum 
De acordo com Pressman [PRESSMAN, 2011], o nome Scrum vem de uma 
atividade do rugby. 
Desenvolvido no início de 1990 e foi concebido por Jeff Sutherland e sua 
equipe de desenvolvimento. 
As atividades estruturais do Scrum são: Requisitos, Analise, projeto, evolução 
e Entrega.
Desenvolvimento Ágil - Scrum 
“No Scrum, os projetos são dividos em ciclos (tipicamente mensais) chamados 
de Sprints. O Sprint representa um Time Box dentro do qual um conjunto de 
atividades deve ser executado. Metodologias ágeis de desenvolvimento de 
software são iterativas, ou seja, o trabalho é dividido em iterações, que são 
chamadas de Sprints no caso do Scrum.” [SCRUM]
Desenvolvimento Ágil - Scrum 
“As funcionalidades a serem implementadas em um projeto são mantidas em 
uma lista que é conhecida como Product Backlog. No início de cada Sprint, 
faz-se um Sprint Planning Meeting, ou seja, uma reunião de planejamento na 
qual o Product Owner prioriza os itens do Product Backlog e a equipe 
seleciona as atividades que ela será capaz de implementar durante o Sprint 
que se inicia. As tarefas alocadas em um Sprint são transferidas do Product 
Backlog para o Sprint Backlog.” [SCRUM]
Desenvolvimento Ágil - Scrum 
“A cada dia de uma Sprint, a equipe faz uma breve reunião (normalmente de 
manhã), chamada Daily Scrum. O objetivo é disseminar conhecimento sobre o 
que foi feito no dia anterior, identificar impedimentos e priorizar o trabalho do 
dia que se inicia. Ao final de um Sprint, a equipe apresenta as funcionalidades 
implementadas em uma Sprint Review Meeting. Finalmente, faz-se uma Sprint 
Retrospective e a equipe parte para o planejamento do próximo Sprint. Assim 
reinicia-se o ciclo. Veja a ilustração abaixo: 
” [SCRUM]
Scrum - Ciclo
Exercícios 
1 - Escreva uma história de usuário XP que descreva o recurso “ sitea favoritos 
“ disponível em grande parte dos navegadores; 
2 - Leia o Manifesto Ágil (http://manifestoagil.com.br/) e comente sobre os “valores” 
que poderiam levar a quipes a terem problemas. 
3 - Pesquise e responda: Qual o papel do Scrum Master e do Product Owner e 
quem assume essas responsabilidades em um projeto?
Referência Bibliográfica 
PRESSMAN, Roger S. Engenharia de Software: Uma abordagem Profissional / Roger S. Pressman; 
tradução Ariovaldo Griesi, Mario Moro Fecchio; revisão técnica Reginaldo Arakaki, Julio Arakaki, 
Renato Mazan de Andrade. - 7. ed. - Porto Alegre :AMGH, 2011. 
SOMMERVILLE, Ian. Engenharia de Software, 8º edição / Ian Sommerville; tradução: Selma Shin 
Shimizu Melnikoff, Reginaldo Arakaki, Edílson de Andrade Barbosa; revisão técnica: Kechi Kirama. -- 
8 º ed. -- São Paulo: Pearson Addison - Wesley, 2007. 
Manifesto Ágil. Disponível em <http://manifestoagil.com.br/>. Acessado em 19 de agosto de 2014. 
Extreme Programming. Disponível em <http://desenvolvimentoagil.com.br/xp/> . Acessado em 19 de 
agosto de 2014. 
Scrum. Disponhttp://desenvolvimentoagil.com.br/scrum/ível em < http://desenvolvimentoagil.com. 
br/scrum/ > . Acessado em 19 de agosto de 2014.

Weitere ähnliche Inhalte

Was ist angesagt?

Gestão Ágil de Projetos com Scrum
Gestão Ágil de Projetos com ScrumGestão Ágil de Projetos com Scrum
Gestão Ágil de Projetos com ScrumMarcos Garrido
 
Extreme Programming - Workshop Praticas Jedi XP - LinguÁgil 2016
Extreme Programming - Workshop Praticas Jedi XP - LinguÁgil 2016Extreme Programming - Workshop Praticas Jedi XP - LinguÁgil 2016
Extreme Programming - Workshop Praticas Jedi XP - LinguÁgil 2016Annelise Gripp
 
Seminario Scrum
Seminario ScrumSeminario Scrum
Seminario ScrumFingerTips
 
Porque devo usar Scrum em meus projetos
Porque devo usar Scrum em meus projetosPorque devo usar Scrum em meus projetos
Porque devo usar Scrum em meus projetosEamon Sousa, PMP
 
Scrum: Uma Nova Abordagem No Desenvolvimento De Software Face À Demanda...
Scrum: Uma Nova Abordagem No Desenvolvimento De Software Face À       Demanda...Scrum: Uma Nova Abordagem No Desenvolvimento De Software Face À       Demanda...
Scrum: Uma Nova Abordagem No Desenvolvimento De Software Face À Demanda...Luiz Lemos
 
Scrum - Desenvolvimento Ágil
Scrum - Desenvolvimento ÁgilScrum - Desenvolvimento Ágil
Scrum - Desenvolvimento ÁgilIsrael Santiago
 
Introdução à Programação Extrema (Extreme Programming - XP)
Introdução à Programação Extrema (Extreme Programming - XP)Introdução à Programação Extrema (Extreme Programming - XP)
Introdução à Programação Extrema (Extreme Programming - XP)Claudia Melo
 
Introdução A Gestão Ágil De Projetos Com Scrum
Introdução A Gestão Ágil De Projetos Com ScrumIntrodução A Gestão Ágil De Projetos Com Scrum
Introdução A Gestão Ágil De Projetos Com ScrumJuan Bernabó
 
Apostila Scrum: Fundamentos do Scrum
Apostila Scrum: Fundamentos do ScrumApostila Scrum: Fundamentos do Scrum
Apostila Scrum: Fundamentos do ScrumMindMasterBrasil
 
Desenvolvimento Ágil com Scrum e XP
Desenvolvimento Ágil com Scrum e XPDesenvolvimento Ágil com Scrum e XP
Desenvolvimento Ágil com Scrum e XPlucianocoelho
 
Introdução a Métodos Ágeis de Desenvolvimento de Software
Introdução a Métodos Ágeis de Desenvolvimento de SoftwareIntrodução a Métodos Ágeis de Desenvolvimento de Software
Introdução a Métodos Ágeis de Desenvolvimento de SoftwareDaniel Cukier
 
Scrum - Gerenciamento de Projetos
Scrum - Gerenciamento de ProjetosScrum - Gerenciamento de Projetos
Scrum - Gerenciamento de ProjetosWilliam Lima
 
Lean Kanban
Lean KanbanLean Kanban
Lean KanbanLucashgt
 
Ferramentas Livres para a Gestão de Projetos Ágeis com Scrum
Ferramentas Livres para a Gestão de Projetos Ágeis com ScrumFerramentas Livres para a Gestão de Projetos Ágeis com Scrum
Ferramentas Livres para a Gestão de Projetos Ágeis com ScrumThiago Barros, PSM
 
Estudo de ferramentas em Software Livre para gestão ágil de projetos de desen...
Estudo de ferramentas em Software Livre para gestão ágil de projetos de desen...Estudo de ferramentas em Software Livre para gestão ágil de projetos de desen...
Estudo de ferramentas em Software Livre para gestão ágil de projetos de desen...Keila Freitas
 

Was ist angesagt? (20)

Gestão Ágil de Projetos com Scrum
Gestão Ágil de Projetos com ScrumGestão Ágil de Projetos com Scrum
Gestão Ágil de Projetos com Scrum
 
Extreme Programming - Workshop Praticas Jedi XP - LinguÁgil 2016
Extreme Programming - Workshop Praticas Jedi XP - LinguÁgil 2016Extreme Programming - Workshop Praticas Jedi XP - LinguÁgil 2016
Extreme Programming - Workshop Praticas Jedi XP - LinguÁgil 2016
 
Scrum
ScrumScrum
Scrum
 
Seminario Scrum
Seminario ScrumSeminario Scrum
Seminario Scrum
 
Porque devo usar Scrum em meus projetos
Porque devo usar Scrum em meus projetosPorque devo usar Scrum em meus projetos
Porque devo usar Scrum em meus projetos
 
Scrum: Uma Nova Abordagem No Desenvolvimento De Software Face À Demanda...
Scrum: Uma Nova Abordagem No Desenvolvimento De Software Face À       Demanda...Scrum: Uma Nova Abordagem No Desenvolvimento De Software Face À       Demanda...
Scrum: Uma Nova Abordagem No Desenvolvimento De Software Face À Demanda...
 
Scrum - Desenvolvimento Ágil
Scrum - Desenvolvimento ÁgilScrum - Desenvolvimento Ágil
Scrum - Desenvolvimento Ágil
 
Introdução ao TDD
Introdução ao TDDIntrodução ao TDD
Introdução ao TDD
 
Metodologias ágeis de desenvolvimento
Metodologias ágeis de desenvolvimento Metodologias ágeis de desenvolvimento
Metodologias ágeis de desenvolvimento
 
Introdução à Programação Extrema (Extreme Programming - XP)
Introdução à Programação Extrema (Extreme Programming - XP)Introdução à Programação Extrema (Extreme Programming - XP)
Introdução à Programação Extrema (Extreme Programming - XP)
 
Introdução A Gestão Ágil De Projetos Com Scrum
Introdução A Gestão Ágil De Projetos Com ScrumIntrodução A Gestão Ágil De Projetos Com Scrum
Introdução A Gestão Ágil De Projetos Com Scrum
 
Apostila Scrum: Fundamentos do Scrum
Apostila Scrum: Fundamentos do ScrumApostila Scrum: Fundamentos do Scrum
Apostila Scrum: Fundamentos do Scrum
 
Desenvolvimento Ágil com Scrum e XP
Desenvolvimento Ágil com Scrum e XPDesenvolvimento Ágil com Scrum e XP
Desenvolvimento Ágil com Scrum e XP
 
Introdução a Métodos Ágeis de Desenvolvimento de Software
Introdução a Métodos Ágeis de Desenvolvimento de SoftwareIntrodução a Métodos Ágeis de Desenvolvimento de Software
Introdução a Métodos Ágeis de Desenvolvimento de Software
 
Scrum - Gerenciamento de Projetos
Scrum - Gerenciamento de ProjetosScrum - Gerenciamento de Projetos
Scrum - Gerenciamento de Projetos
 
Lean Kanban
Lean KanbanLean Kanban
Lean Kanban
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 
Ferramentas Livres para a Gestão de Projetos Ágeis com Scrum
Ferramentas Livres para a Gestão de Projetos Ágeis com ScrumFerramentas Livres para a Gestão de Projetos Ágeis com Scrum
Ferramentas Livres para a Gestão de Projetos Ágeis com Scrum
 
O que é SCRUM
O que é SCRUMO que é SCRUM
O que é SCRUM
 
Estudo de ferramentas em Software Livre para gestão ágil de projetos de desen...
Estudo de ferramentas em Software Livre para gestão ágil de projetos de desen...Estudo de ferramentas em Software Livre para gestão ágil de projetos de desen...
Estudo de ferramentas em Software Livre para gestão ágil de projetos de desen...
 

Ähnlich wie Engenharia de software aula 6 - Introdução ao Desenvolvimento Ágil

Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)Rennan Martini
 
Modelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane Fidelix
Modelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane FidelixModelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane Fidelix
Modelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane FidelixCris Fidelix
 
Métodos Ágeis para Desenvolvimento de Software
Métodos Ágeis para Desenvolvimento de SoftwareMétodos Ágeis para Desenvolvimento de Software
Métodos Ágeis para Desenvolvimento de Softwarealexandre_malaquias
 
Texto de Apoio2_Síntese de Metodologias Ageis.ppt
Texto de Apoio2_Síntese de Metodologias Ageis.pptTexto de Apoio2_Síntese de Metodologias Ageis.ppt
Texto de Apoio2_Síntese de Metodologias Ageis.pptHurgelNeto
 
Leds zeppellin infraestrutura de apoio ao desenvolvimento
Leds zeppellin   infraestrutura de apoio ao desenvolvimentoLeds zeppellin   infraestrutura de apoio ao desenvolvimento
Leds zeppellin infraestrutura de apoio ao desenvolvimentoledsifes
 
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)André Dias
 
Gerenciamento ágil de processos - SCRUM
Gerenciamento ágil de processos - SCRUMGerenciamento ágil de processos - SCRUM
Gerenciamento ágil de processos - SCRUMLucas Vinícius
 
Desenvolvimento ágil de software: análise sintética a partir de KANBAN
Desenvolvimento ágil de software: análise sintética a partir de KANBANDesenvolvimento ágil de software: análise sintética a partir de KANBAN
Desenvolvimento ágil de software: análise sintética a partir de KANBANFernando Palma
 
Metodologia agil no desenvolvimento criativo de software
Metodologia agil no desenvolvimento criativo de softwareMetodologia agil no desenvolvimento criativo de software
Metodologia agil no desenvolvimento criativo de softwareUniversidade Tiradentes
 

Ähnlich wie Engenharia de software aula 6 - Introdução ao Desenvolvimento Ágil (20)

Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)
 
Modelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane Fidelix
Modelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane FidelixModelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane Fidelix
Modelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane Fidelix
 
Métodos Ágeis para Desenvolvimento de Software
Métodos Ágeis para Desenvolvimento de SoftwareMétodos Ágeis para Desenvolvimento de Software
Métodos Ágeis para Desenvolvimento de Software
 
Texto de Apoio2_Síntese de Metodologias Ageis.ppt
Texto de Apoio2_Síntese de Metodologias Ageis.pptTexto de Apoio2_Síntese de Metodologias Ageis.ppt
Texto de Apoio2_Síntese de Metodologias Ageis.ppt
 
Trabalho xp
Trabalho xpTrabalho xp
Trabalho xp
 
ageis2003.ppt
ageis2003.pptageis2003.ppt
ageis2003.ppt
 
ageis2003.ppt
ageis2003.pptageis2003.ppt
ageis2003.ppt
 
Artigo23
Artigo23Artigo23
Artigo23
 
Desenvolvimento Ágil
Desenvolvimento ÁgilDesenvolvimento Ágil
Desenvolvimento Ágil
 
Aula 3 - Engenharia de Software
Aula 3 - Engenharia de SoftwareAula 3 - Engenharia de Software
Aula 3 - Engenharia de Software
 
Artigo
ArtigoArtigo
Artigo
 
Leds zeppellin infraestrutura de apoio ao desenvolvimento
Leds zeppellin   infraestrutura de apoio ao desenvolvimentoLeds zeppellin   infraestrutura de apoio ao desenvolvimento
Leds zeppellin infraestrutura de apoio ao desenvolvimento
 
Programacao Extrema
Programacao ExtremaProgramacao Extrema
Programacao Extrema
 
38484931 questionario-es
38484931 questionario-es38484931 questionario-es
38484931 questionario-es
 
Métodos Ágeis
Métodos ÁgeisMétodos Ágeis
Métodos Ágeis
 
Metodologias Ágeis
Metodologias ÁgeisMetodologias Ágeis
Metodologias Ágeis
 
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
 
Gerenciamento ágil de processos - SCRUM
Gerenciamento ágil de processos - SCRUMGerenciamento ágil de processos - SCRUM
Gerenciamento ágil de processos - SCRUM
 
Desenvolvimento ágil de software: análise sintética a partir de KANBAN
Desenvolvimento ágil de software: análise sintética a partir de KANBANDesenvolvimento ágil de software: análise sintética a partir de KANBAN
Desenvolvimento ágil de software: análise sintética a partir de KANBAN
 
Metodologia agil no desenvolvimento criativo de software
Metodologia agil no desenvolvimento criativo de softwareMetodologia agil no desenvolvimento criativo de software
Metodologia agil no desenvolvimento criativo de software
 

Engenharia de software aula 6 - Introdução ao Desenvolvimento Ágil

  • 1. Engenharia de Software Processos de Software - Desenvolvimento Ágil
  • 2. Objetivos da Aula Apresentar o desenvolvimento ágil e os principais modelos conhecidos.
  • 3. Desenvolvimento Ágil Breve Histórico 2001 - Kent Beck e outros dezesseis desenvolvedores e consultores se reunem e formam a “ Agile Alliance “ - “ Aliança dos Ágeis”, e assinam o manifesto ágil. E decidiram valorizar no desenvolvimento, ver o link para o Manifesto Ágil: 1.Indivíduos e interação entre eles mais que processos e ferramentas 2.Software em funcionamento mais que documentação abrangente 3.Colaboração com o cliente mais que negociação de contratos 4.Responder a mudanças mais que seguir um plano
  • 4. Desenvolvimento Ágil Os 12 princípios do manifesto ágil: 1. Nossa maior prioridade é satisfazer o cliente, através da entrega adiantada e contínua de software de valor. 2. Aceitar mudanças de requisitos, mesmo no fim do desenvolvimento. Processos ágeis se adequam a mudanças, para que o cliente possa tirar vantagens competitivas. 3. Entregar software funcionando com freqüencia, na escala de semanas até meses, com preferência aos períodos mais curtos. 4. Pessoas relacionadas à negócios e desenvolvedores devem trabalhar em conjunto e diáriamente, durante todo o curso do projeto. 5. Construir projetos ao redor de indivíduos motivados. Dando a eles o ambiente e suporte necessário, e confiar que farão seu trabalho.
  • 5. Desenvolvimento Ágil Os 12 princípios do manifesto ágil: 6. O Método mais eficiente e eficaz de transmitir informações para, e por dentro de um time de desenvolvimento, é através de uma conversa cara a cara. 7. Software funcional é a medida primária de progresso. 8. Processos ágeis promovem um ambiente sustentável. Os patrocinadores, desenvolvedores e usuários, devem ser capazes de manter indefinidamente, passos constantes. 9. Contínua atenção à excelência técnica e bom design, aumenta a agilidade. 10. Simplicidade: a arte de maximizar a quantidade de trabalho que não precisou ser feito. 11. As melhores arquiteturas, requisitos e designs emergem de times auto-organizáveis. 12. Em intervalos regulares, o time reflete em como ficar mais efetivo, então, se ajustam e otimizam seu comportamento de acordo.
  • 6. Desenvolvimento Ágil Com base nesses princípios e valores algumas metodologias ágeis de desenvolvimento foram surgindo. Entre elas podemos destacar: XP e Scrum.
  • 7. Desenvolvimento Ágil - XP “Extreme Programming (XP) é uma metodologia de desenvolvimento de software, nascida nos Estados Unidos ao final da década de 90. Vem fazendo sucesso em diversos países, por ajudar a criar sistemas de melhor qualidade, que são produzidos em menos tempo e de forma mais econômica que o habitual. Tais objetivos são alcançados através de um pequeno conjunto de valores, princípios e práticas, que diferem substancialmente da forma tradicional de se desenvolver software. “ (Extreme Programming)
  • 8. Desenvolvimento Ágil - XP Foi definido um conjunto de 5 valores que estabelecem as bases para todo trabalho utilizando XP: ● Comunicação; ● Simplicidade; ● Feedback; ● Coragem (Disciplina) e ● Respeito.
  • 9. Desenvolvimento Ágil - XP Para estabelecer comunicação efetiva entre engenheiros de software e demais envolvidos no sistema, a XP enfatiza a colaboração estreita, embora muitas vezes informal ( de forma verbal), entre clientes e desenvolvedores, o estabelecimento de metáforas eficazes para comunicar conceitos importantes, feedback contínuo e evitar documentação volumosa como meio de comunicação.
  • 10. Desenvolvimento Ágil - XP Para alcançar a simplicidade, a XP restringe os desenvolvedores a projetar apenas para as necessidades imediatas, em vez de considerarem as necessidades futuras. O intuito é criar um projeto simples que possa ser facilmente implementado em código. Caso precise melhorar, isso poderá ser facilmente feito posteriormente.
  • 11. Desenvolvimento Ágil - XP O feedback provém de três fontes: do próprio software implementado, do cliente e dos outros membros da equipe de software. Através de uma estratégia para elaboração eficazes dos testes, eles podem fornecer um feedback para a equipe ágil. O XP valoriza os testes unitários, a medida que as classes são implementadas os testes unitários são feitos para cada operação , de acordo com a funcionalidade especificada. A medida que, um incremento é entregue a um cliente, as histórias de usuários ou casos de uso implementados pelo incremento são usados como base para testes de aceitação.
  • 12. Desenvolvimento Ágil - XP A XP foca no desenvolvimento para o software hoje, sem se preocupara com o que pode vir a ocorrer com o software no futuro para isso é preciso coragem, ou disciplina, para atenter as necessidades atuais do projeto. Por este motivo muitas equipes que utilizam métodos ágeis sucubem, pois é um engano querer projetar o “futuro do sistema” já que as mudanças são bem aceitas, logo se a equipe ao inves de preocupar-se com o problema atual preocupa-se com problemas futuros podem ter realmente perdas significativas de trabalho já que o amanhã do sistema pode sofrer grandes mudanças.
  • 13. Desenvolvimento Ágil - XP A XP foca no desenvolvimento para o software hoje, sem se preocupara com o que pode vir a ocorrer com o software no futuro para isso é preciso coragem, ou disciplina, para atenter as necessidades atuais do projeto. Por este motivo muitas equipes que utilizam métodos ágeis sucubem, pois é um engano querer projetar o “futuro do sistema” já que as mudanças são bem aceitas, logo se a equipe ao inves de preocupar-se com o problema atual preocupa-se com problemas futuros podem ter realmente perdas significativas de trabalho já que o amanhã do sistema pode sofrer grandes mudanças.
  • 14. Desenvolvimento Ágil - XP Por fim o respeito, respeitar os membros envolvidos no processo e outros envolvidos , de forma direta ou indireta.
  • 15. Desenvolvimento Ágil - XP O processo XP utiliza-se de 4 atividades metodológicas: ● Planejamento; ● Projeto; ● Codificação e ● Testes.
  • 16. Desenvolvimento Ágil - XP O processo XP: Planejamento ouvir - Levantamento de requisitos ( ouvir as partes interessadas ) histórias - semelhante aos casos de uso, entender o ambiente de negócios do software - permite uma percepção ampla dos resultados solicitados e esperados para o sistema. “ouvir “ conduz à criação de um conjunto de “histórias” que descrevem os resultados, caracteristicas e funcionalidades esperadas pelo usuário.
  • 17. Desenvolvimento Ágil - XP O processo XP: Projeto ● Segue o lema KIS (Keep It Simple), mantenha simples. ● Quando aparece um requisito problemático ou confuso, é recomendado a criação de um protótipo. ● Projeto é algo transitório, deve ser continuamente alterado conforme a construção prossegue. ● Essa fase ocorre tanto antes quanto depois da codificação.
  • 18. Desenvolvimento Ágil - XP O processo XP: Codificação Conceito chave é a programação em duplas ( duas pessoas em um única máquina codificando para criar o código de uma história) ; Conforme a dupla termina uma história, o código gerado é integrado ao software.
  • 19. Desenvolvimento Ágil - XP O processo XP: Codificação Conceito chave é a programação em duplas ( duas pessoas em um única máquina codificando para criar o código de uma história) ; Conforme a dupla termina uma história, o código gerado é integrado ao software.
  • 20. Desenvolvimento Ágil - Scrum De acordo com Pressman [PRESSMAN, 2011], o nome Scrum vem de uma atividade do rugby. Desenvolvido no início de 1990 e foi concebido por Jeff Sutherland e sua equipe de desenvolvimento. As atividades estruturais do Scrum são: Requisitos, Analise, projeto, evolução e Entrega.
  • 21. Desenvolvimento Ágil - Scrum “No Scrum, os projetos são dividos em ciclos (tipicamente mensais) chamados de Sprints. O Sprint representa um Time Box dentro do qual um conjunto de atividades deve ser executado. Metodologias ágeis de desenvolvimento de software são iterativas, ou seja, o trabalho é dividido em iterações, que são chamadas de Sprints no caso do Scrum.” [SCRUM]
  • 22. Desenvolvimento Ágil - Scrum “As funcionalidades a serem implementadas em um projeto são mantidas em uma lista que é conhecida como Product Backlog. No início de cada Sprint, faz-se um Sprint Planning Meeting, ou seja, uma reunião de planejamento na qual o Product Owner prioriza os itens do Product Backlog e a equipe seleciona as atividades que ela será capaz de implementar durante o Sprint que se inicia. As tarefas alocadas em um Sprint são transferidas do Product Backlog para o Sprint Backlog.” [SCRUM]
  • 23. Desenvolvimento Ágil - Scrum “A cada dia de uma Sprint, a equipe faz uma breve reunião (normalmente de manhã), chamada Daily Scrum. O objetivo é disseminar conhecimento sobre o que foi feito no dia anterior, identificar impedimentos e priorizar o trabalho do dia que se inicia. Ao final de um Sprint, a equipe apresenta as funcionalidades implementadas em uma Sprint Review Meeting. Finalmente, faz-se uma Sprint Retrospective e a equipe parte para o planejamento do próximo Sprint. Assim reinicia-se o ciclo. Veja a ilustração abaixo: ” [SCRUM]
  • 25. Exercícios 1 - Escreva uma história de usuário XP que descreva o recurso “ sitea favoritos “ disponível em grande parte dos navegadores; 2 - Leia o Manifesto Ágil (http://manifestoagil.com.br/) e comente sobre os “valores” que poderiam levar a quipes a terem problemas. 3 - Pesquise e responda: Qual o papel do Scrum Master e do Product Owner e quem assume essas responsabilidades em um projeto?
  • 26. Referência Bibliográfica PRESSMAN, Roger S. Engenharia de Software: Uma abordagem Profissional / Roger S. Pressman; tradução Ariovaldo Griesi, Mario Moro Fecchio; revisão técnica Reginaldo Arakaki, Julio Arakaki, Renato Mazan de Andrade. - 7. ed. - Porto Alegre :AMGH, 2011. SOMMERVILLE, Ian. Engenharia de Software, 8º edição / Ian Sommerville; tradução: Selma Shin Shimizu Melnikoff, Reginaldo Arakaki, Edílson de Andrade Barbosa; revisão técnica: Kechi Kirama. -- 8 º ed. -- São Paulo: Pearson Addison - Wesley, 2007. Manifesto Ágil. Disponível em <http://manifestoagil.com.br/>. Acessado em 19 de agosto de 2014. Extreme Programming. Disponível em <http://desenvolvimentoagil.com.br/xp/> . Acessado em 19 de agosto de 2014. Scrum. Disponhttp://desenvolvimentoagil.com.br/scrum/ível em < http://desenvolvimentoagil.com. br/scrum/ > . Acessado em 19 de agosto de 2014.