Métodos Ágeis em Engenharia de Software Thiago do Nascimento Ferreira.

Slides:



Advertisements
Apresentações semelhantes
XP EXTREME PROGRAMMING
Advertisements

Engenharia de Software Prof ª. Isabel Sofia de Brito Prof ª. Maria Fernanda Pedro.
SCRUM para Gerência de Projetos
Extreme Programming(XP)
Gestão Ágil de Projetos
Desenvolvimento ágil: eXtreme Programming vs SCRUM Tiago Rodrigues de Mello CCO-230 – ENGENHARIA DE SOFTWARE / 2010.
FDD.
Métodos Ágeis de Desenvolvimento
Métodos Ágeis Agile Modeling, ou AG
Técnicas e Projeto de Sistemas
Engenharia de Software
Fundamentos de Engenharia de SW
Implantando SCRUM na Simplestec Equipe Tributária
Implantando SCRUM na Simplestec Equipe Tributária
SCRUM Equipe Amauri Cleverson Daiane Mauri Mauricio.
Engenharia de Software
Desenvolvimento Rápido de Aplicação (RAD)
eXtreme Programming Metodologia XP
Engenharia de Software
Metodologias Ágeis Para o Desenvolvimento de Software
Gerenciamento de Equipes com Scrum Curso de Verão 2008 – IME/USP Dairton Bassi Danilo Sato 24/Jan/2008.
SCRUM Metodologia para o Desenvolvimento Ágil de Software Rafael Rodrigues, Rafael Rost.
Metodologias Ágeis Para o Desenvolvimento de Software
Métodos Ágeis e Programação Extrema (XP)
SCRUM.
Gestão Ágil de Projetos
SISTEMA DE MONITORAMENTO DA TECNOLOGIA DA INFORMAÇÃO.
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína XP (EXTREME PROGRAMMING) Pós-Graduação em Engenharia de Software Metodologias.
Erton W. Vieira Metodologias Ágeis, Qualidade de Software e Design Centrado no usuário: Pontos de Interação Erton W. Vieira.
Extreme Programming Alexandre Nodari.
GERÊNCIA DE REQUISITOS Engenharia de Requisitos Departamento de Informática Pontifícia universidade Católica do Rio de Janeiro (PUC-Rio) Joanna.
Controle Pessoal Financeiro Danilo H. D. Pereira Erison da Silva Fábio G. Bettio.
SCRUM.
SCRUM Development Process Universidade Federal de Pernambuco Lenylda Albuquerque
Introdução POO Thiago Medeiros Sistemas de Informação Definição: Sistemas de Informação é uma combinação de pessoas, dados, processos, redes de.
METODOLOGIA XP (Extreme programming) UMC - Universidade de Mogi das cruzes Mogi das Cruzes – SP Abril 2016.
Estrutura Organizacional
Método para Estudo e Intervenção nas Organizações Forma de intervenção nas organizações.
Gerência de Projetos. Benefícios Obtidos com GP Benchmark de problemas mais comuns em projetos.
Metodologia Ágil THOBER CORADI DETOFENO, MSC. Aula 04 JOINVILLE 2016 Universidade do Estado de Santa Catarina – CCT/UDESC.
AS PERSONALIDADES DO LÍDER Psicóloga Marieli Lopes Alves.
Gestão da Segurança da Informação e Série ISO/IEC 27000
Project Charter Documento que reconhece formalmente a necessidade de um projeto e suas premissas. Conteúdo do Project Charter de modo geral: 1. Objetivo/escopo.
Informática Básica Karine Alessandra Córdova O navegador é o principal programa para acessar a Internet. Com ele, você pode visitar endereços na rede,
UMC - ENGENHARIA DE SOFTWARE E GERENCIAMENTO DE PROJETOS MÉTODOS ÁGEIS PARA DESENVOLVIMENTO DE SOFTWARE.
A abordagem de resolução de Problemas Autores: Laundon & Laudon Abordagem de resolução de problemas – significa considerar os sistemas de informação junto.
1 Marketing Social. 2 DEFINIÇÃO: MARKETING SOCIAL... _______________________________________________________...envolve o uso dos princípios e técnicas.
Conteúdo da última aula 1 Ref. Bibliográfica - PMBOK Cap 2 e 3.
3. SELEÇÃO DE PRESTADOR DE SERVIÇOS LOGÍSTICOS 3
Capítulo 1 Introdução aos Sistemas Operacionais Curso Técnico de Redes de Computadores Professor Emerson Felipe Administração de Sistemas Operacionais.
CONCEITOS NA ANÁLISE DE SISTEMAS ANÁLISE É O ESTUDO DE UM PROBLEMA QUE ANTECEDE À EXECUÇÃO DE UMA AÇÃO. ANÁLISE DE SISTEMAS NO DOMÍNIO ESPECÍFICO DO DESENVOLVIMENTO.
ANÁLISE ERGONÔMICA DOS POSTOS DE TRABALHO (Material Adaptado do Programa de Pós-Graduação da Engenharia de Produção e Sistemas da Universidade Federal.
GESTÃO DE PROJETOS. 1. Introdução ao Gerenciamento de Projetos 1.1. Definições de Projeto, Programa e Portfólio. Relações entre Gerenciamento de Projetos,
A ética não pode ser considerada como fonte de pesadas e enfadonhas obrigações, mas como uma filosofia moral dignificante.
Pós-Graduação em Análise, Projeto e Gerência de Sistemas Centro Universitário Estácio do Ceará.
Workflow. COMPONENTES ANA CLAUDIA ELIZÂNGELA GOMES HERIKA PIRES LEONARDO PORTES MARIANA ARIELLE MARIA MOREIRA SANDRO PIRES.
K A I Z E N KAI ZEN MudançaBom MELHORIA CONTÍNUA Regina Panazzo (Gestão Empresarial/2009)
B.I. Business Inteligence PROFESSOR MARCELO CAMPINHOS.
Orçamento Empresarial Aula 04. Relação com outras áreas Periodicidade Plano de projetos Aquisição de uma máquina, construção de fábrica contrato de fornecimento.
Comportamento Organizacional
Diagramas de Sequência e Comunicação
GRUPO: Augusto Monteiro, Igor Dias e Tais Ucinski PROFº CESAR AUGUSTO KRUGER CASO 2: A MODA.
Fundamentos da Administração
 Mapeamento de seus cenários internos e externos, identificando requisitos essenciais a serem atendidos;  Tradução de requisitos em informações a serem.
Plano de Negócios TGA2 PLANO DE NEGÓCIOS Um negócio bem planejado terá mais chances de sucesso que aquele sem planejamento, na mesma igualdade de condições.
G ESTÃO DA Q UALIDADE Conceitos Histórico Gestão da Qualidade Total.
2nd CONTECSI International Conference on Information Systems and Technology Management. TECSI/FEA/USP June, 2005 USP/São Paulo/SP 2º CONTECSI Congresso.
Acadêmicas: Tamyres D.C.A. de Lima; Thaliane A. de Freitas; Vanessa Brunnquell.
Sistemas de Informações Sistemas Informações Empresariais 1. Engenharia de Sistemas Márcio Aurélio Ribeiro Moreira
ORÇAMENTO BASE ZERO.
Transcrição da apresentação:

Métodos Ágeis em Engenharia de Software Thiago do Nascimento Ferreira

Introdução Desenvolvimento de software é imprevisível e complicado; Empresas operam em ambiente global com mudanças rápidas; Reconhecer e se adaptar as mudanças é imprescindível; Construir o software pela metodologia clássica e perceber que as especificações mudaram durante o processo;

Introdução Métodos Ágeis surgem para suprir esta necessidade rápida de mudança; O software é desenvolvido como uma série de incrementos; Seguem uma filosofia diferente focando principalmente nos resultados (processo ainda é importante); Menos ênfase nas definições de atividades e mais na pragmática e nos fatores humanos.

Introdução Ágil é diferente de Rápido

Introdução Visão em 1980 até o início de 1990 era de que o melhor software tem: Um planejamento cuidado do projeto; Qualidade da segurança formalizada; Uso de métodos de análise e projeto apoiados por ferramentas CASE; Um processo de software rigoroso e controlado. Visão baseada nos engenheiros de software responsáveis pelo desenvolvimento de sistemas de software grandes e duradouros, como sistemas aeroespaciais e de governo. Por exemplo, sistema de uma aeronave moderna pode demorar 10 anos da especificação até a implantação;

Introdução O problema surge quando se aplica essa abordagem em sistemas corporativos de pequeno e médio porte; Gasta-se mais tempo em análises de como o sistema deve ser construído do que o programa e os testes em si; A insatisfação com essas abordagens pesadas levou em 1990 uma grande quantidade de desenvolvedores a propor métodos ágeis; Essa filosofia é refletida no Manifesto Ágil.

Manifesto Ágil Documento assinado em 2001 por 17 pesquisadores da área; Pesquisadores:

Manifesto Ágil Documento formado por: Valores Princípios e

Manifesto Ágil “Estamos descobrindo maneiras melhores de desenvolver software fazendo-o nós mesmos e ajudando outros a fazê-lo”.

Manifesto Ágil Valores Maior do que Indivíduos e Interações Software Funcionando Colaboração do Cliente Responder às Mudanças Processos e Ferramentas Documentação Compreensível Negociação de Contrato Seguir um Plano “Embora os itens à direita sejam importantes, valorizamos mais os que estão na esquerda”

Manifesto Ágil Princípios Nossa maior prioridade é satisfazer o cliente, através da entrega adiantada e contínua de software de valor 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. Entregar software funcionando com freqüencia, na escala de semanas até meses, com preferência aos períodos mais curtos. Pessoas relacionadas a negócios e desenvolvedores devem trabalhar em conjunto e diariamente, durante todo o curso do projeto.

Manifesto Ágil Construir projetos ao redor de indivíduos motivados. Dando a eles o ambiente e suporte necessário, e confiar que farão seu trabalho. 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. Software funcional é a medida primária de progresso. Processos ágeis promovem um ambiente sustentável. Os patrocinadores, desenvolvedores e usuários, devem ser capazes de manter indefinidamente, passos constantes. Princípios

Manifesto Ágil Contínua atenção à excelência técnica e bom design, aumenta a agilidade. Simplicidade: a arte de maximizar a quantidade de trabalho que não precisou ser feito. As melhores arquiteturas, requisitos e designs emergem de times auto- organizáveis. Em intervalos regulares, o time reflete em como ficar mais efetivo, então, se ajusta e otimiza seu comportamento de acordo. Princípios

Métodos Ágeis Modelos de desenvolvimento de software considerados ágeis: Feature-Driven Development (FDD) Dynamic Systems Development Method (DSDM) Scrum XP Crystal Clear Adaptative Software Development (ASD)

Métodos Ágeis Empresas que usam:

Scrum Modelo ágil de gestão de projetos; Conceito mais importante chama-se sprint (ou ciclo); Origem na indústria automobilítica; Livro de Schwaber e Beedle (2001) explica de forma completa e sistemática;

Perfis Importantes no Scrum

●Responsável pelo projeto em si; ●Indicar quais requisitos são os mais importantes em cada ciclo; ●Responsável por conhecer e avaliar as necessidades do cliente;

Perfis Importantes no Scrum ●Não é gerente; ●Não é lider. ●É um facilitador; ●Conhece bem o modelo; ●Solucionador de conflitos;

Perfis Importantes no Scrum ●Equipe de desenvolvimento; ●Não necessariamente dividida em papéis (analista, designer…); ●Todos interagem para desenvolver o produto em conjunto; ●Recomendado equipes de 6 a 10 pessoas.

Product Backlog Lista contendo as funcionalidades a serem implementadas em cada projeto (requisitos ou histórias de usuário); Não precisa ser completo (do Manifesto Ágil, adaptação em vez de planejamento); Não precisa fazer um levantamento inicial excessivamente superficial; Tentar obter do cliente o maior número possível de informações sobre suas necessidades

Product Backlog Exemplo IDNomeImpPHComo demonstrarNotas 1Depósito305 Logar, abrir página de depósito, depositar R$ 10,00, ir para a página de saldo e verificar que ele aumentou em R$ 10,00 Precisa de um diagrama de sequência UML. 2Ver extrato108 Logar, clicar em “Transações”. Fazer um depósito. Voltar para “Transações”, ver que o depósito aparecue. Usar paginação para evitar consultas grandes ao BD. ●Imp: Importância da história de usuário; ●PH: Estimativa de esforço necessário para transformar a história em software; Valor dado em Pontos de História; ●Como demonstrar: considerar a história efetivamente implementada.

Planning Poker ●Definido pela primeira vez por James Grenning em 2002; ●Obtém estimativas por meio de um jogo de cartas; ●Realizadas rodadas para obter a estimativa de um cartão que possui uma estória ou tarefa a desenvolver; ●PO é responsável por tirar todas as possíveis dúvidas evitando assim o retrabalho.

Sprint Ciclo de desenvolvimento de poucas semanas de duração (2 a 4 semanas); No início é feito um sprint planning meeting Prioriza os elementos do product backlog e transfere para o sprint backlog. Equipe se compromete em desenvolver as atividades do sprint backlog; Product Owner se compromete a não trazer novas funcionalidades durante o mesmo sprint; Requisitos em alto nível e voltado as necessidades do cliente Product Backlog Visão dos requisitos voltada a maneira como a equipe vai desenvolvê-los Sprint Backlog

Quadro de Andamento de Atividades

Diagrama Sprint Burndown Tarefas a fazer Número de Tarefas Tempo Diagrama Ideal

Sprint Final da sprint, equipe deve realizar: Sprint Review Meeting Sprint Retrospective Sprint Review Meeting Verificar o que foi feito e, então, partir para uma nova sprint Sprint Retrospective Avaliar a equipe e os processos (impedimentos, problemas, dificuldades, ideias novas…)

Daily Scrum Modelo sugere reuniões diárias chamada Daily Scrum; Objetivo: Falar o que fez no dia anterior; O que vai fazer no dia seguinte; O que impede de prosseguir. Reuniões rápidas e em pé em frente ao quadro de anotações; Boa maneira de dissipar o cansaço.

Visão Geral do Scrum

Extreme Programming Também conhecido como XP; Surgiu nos Estados Unidos no final da década de 1990; Inicialmente adequada a equipes pequenas e médias; Codificação é a principal tarefa; Baseada em diversos valores, princípios e regras; Principais valores do XP: Simplicidade; Respeito; Comunicação; Feedback; Coragem.

Simplicidade Concentrar nas atividades efetivamente necessárias e não naquelas que poderiam ser; Assuma a solução mais simples como a melhor; Use as tecnologias, algoritmos e técnicas mais simples que permitirão atender aos requisitos do usuário-final; Design, processo e código podem ser simplificados a qualquer momento.

Respeito Respeito entre os membros da equipe, assim como entre a equipe e o cliente;

Comunicação XP prioriza comunicação de boa qualidade preferindo encontros presenciais. Quanto mais pessoal e expressiva, melhor; Encontro presenciais > videoconferências > telefonemas > s; Dê preferência a comunicação mais ágil.

Feedback Buscar obter feedback o quanto antes para evitar eventuais falhas de comunicação e aumento do custo da correção; Cliente sabe se o produto que está sendo desenvolvido atende às suas necessidades;

Coragem Coragem de abraçar as inevitáveis mudanças em vez de simplesmente ignorá- las por estarem fora do contrato formal ou por serem difíceis de acomodar; Testes, integração contínua, programação em pares e outras práticas de XP aumentam a confiança do programador e ajudam-no a ter coragem para: Melhorar o código que está funcionando; Investir tempo no desenvolvimento de testes; Pedir ajuda aos que sabem mais.

Princípios Básicos do XP A partir do valores, os princípios básicos do XP são definidos: Feedback Rápido; Presumir Simplicidade; Mudanças Incrementais; Abraçar Mudanças; Trabalho de Alta Qualidade. Priorização das funcionalidades mais importantes.

Princípios Básicos do XP Feedback Rápido Modele um pouco, mostre ao cliente e então modele novamente Presumir Simplicidade Deixe o modelo tão simples quanto possível; Mudanças Incrementais Os problemas devem ser solucionados com um conjunto de pequenas modificações Abraçar Mudanças Aceite as mudanças e tenha coragem para reconstruir Trabalho de Alta Qualidade A qualidade do trabalho nunca deve ser comprometida. Importância da codificação e dos testes antes da programação

Atividades do XP Escutar Testar Codificar Projetar

Práticas XP Jogo de Planejamento; Metáfora; Equipe Coesa; Reuniões em Pé; Design Simples; Versões Pequenas; Ritmo Sustentável; Posse Coletiva; Programação em Pares; Padrões de Codificação; Testes de Aceitação; Desenvolvimento orientado a testes (TDD); Refatoração; Integração Contínua. * As práticas do XP não são consenso entre os desenvolvedores;

Programação em Pares Todo o desenvolvimento em XP é feito em pares Um computador, um teclado, dois programadores Um piloto, um co-piloto Papéis são alternados frequentemente Pares são trocados periodicamente Benefícios Melhor qualidade do design, código e testes Revisão constante do código Nivelamento da equipe Maior comunicação

TDD Desenvolvimento orientado a Testes; “Test first, then code”; Programadores XP escrevem testes primeiro, escrevem código e rodam testes para validar o código escrito; Cada unidade de código só tem valor se seu teste funcionar 100%; Testes são a documentação executável do sistema;

TDD

Integração Contínua Projetos XP mantêm o sistema integrado o tempo todo Integração de todo o sistema pode ocorrer várias vezes ao dia (pelo menos uma vez ao dia) Todos os testes (unidade e integração) devem ser executados Benefícios: Expõe o estado atual do desenvolvimento; Oferece feedback sobre todo o sistema; Permite encontrar problemas de design;

Dificuldades Vencer barreiras culturais; Deixar alguém mexer no seu código; Trabalhar em pares e ter coragem de admitir que não sabe; Vencer hábitos antigos: Manter as coisas simples; Jogar fora código desnecessário; Escrever testes antes de codificar; Refatoração com frequência (vencer o medo).

Conclusão Para implementar XP não é preciso usar diagramas ou processos formais; A maior parte das práticas do XP devem ser seguidas Não é a bala de prata

Quando não usar Métodos Ágeis Equipes grandes e espalhadas geograficamente: Comunicação é um valor fundamental de XP; Não é fácil garantir o nível de comunicação requerido em projetos XP em grandes equipes. Situações onde o feedback é demorado: Testes muito difíceis, arriscados e que levam tempo; Programadores espalhados em ambientes físicos distantes e sem comunicação eficiente. Sistemas que precisam passar por regulamentação;

Referências Web 4cb d9160d22fb23&v=&b=&from_search=3 software?qid=6d3a cb d9160d22fb23&v=&b=&from_search=1 Livros Beck, K. Extreme Programming Explained: Embrace Change, Addison- Wesley.