Upload
rebecca-betwel
View
154
Download
4
Embed Size (px)
DESCRIPTION
Com intuito de esclarecer sobre como surgiu o manifesto ágil e discutir as metodologias ágeis mais utilizadas. Esse material é parte de um conjunto de materiais sobre Engenharia de Software Software Engineering - Agil Development.
Citation preview
Engenharia de SoftwareProcessos de Software - Desenvolvimento Ágil
Objetivos da Aula
Apresentar o desenvolvimento ágil e os principais modelos conhecidos.
Desenvolvimento ÁgilBreve 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 contratos4.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ícios1 - 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áficaPRESSMAN, 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.