Introdução a Métodos Ágeis de Desenvolvimento de Software - PDF
Download "Introdução a Métodos Ágeis de Desenvolvimento de Software"
Matilde Marques Fortunato
1 Introdução a Métodos Ágeis de Desenvolvimento de Software Curso de Verão Centro de Competência em Software Livre Departamento de Ciência da Computação - IME / USP Realização: AgilCoop Verão Ágil 2010 Copyleft by AgilCoop
2 Nossa experiência Cursos de graduação em XP desde 2001 Apresentações SBES, SUCESU, SEPAI, SEBRAE, etc. Arquivos disponíveis: Assessorias em métodos ágeis Artigos científicos Dissertações de Mestrado Verão Ágil 2010 Copyleft by AgilCoop 2
3 Roteiro Motivação Problemas e possíveis direções Métodos ágeis Princípios Problemas com os métodos tradicionais Alguns métodos ágeis Hoje mais tarde: XP Próximos dias: detalhamento Verão Ágil 2010 Copyleft by AgilCoop 3
4 Novos ventos no mundo do Desenvolvimento de Software Sociedade demanda grande quantidade de sistemas/aplicações software complexo, sistemas distribuídos, heterogêneos requisitos mutantes (todo ano, todo mês, todo dia) Mas, infelizmente, não há gente suficiente para desenvolver tanto software com qualidade. Verão Ágil 2010 Copyleft by Helves, Jef & Fabio 4
5 CHAOS Report Resultado dos projetos (2004): sucesso com problemas 53% 29% 18% falham 5
6 CHAOS Report Projetos não concluídos % Projetos bem sucedidos % Estouro médio de custo > 180% Estouro médio de prazo > 164% Projetos não concluídos % Projetos bem sucedidos % Estouro médio de custo % Estouro médio de prazo % 6
7 Qual software? Funcionalidades nunca ou raramente utilizadas 64% Jim Johnson,
8 Problemas Com métodos tradicionais de desenvolvimento Supõem que é possível prever o futuro Pouca interação com os clientes Ênfase em burocracias (documentos, formulários, processos, controles rígidos, etc.) Avaliação do progresso baseado na evolução da burocracia e não do código Com software Grande quantidade de erros Falta de flexibilidade Verão Ágil 2010 Copyleft by AgilCoop 8
9 Como resolver esse impasse? Melhores Tecnologias Padrões de Projeto (reutilização de idéias) Componentes (reutilização de código) Middleware/frameworks (aumenta a abstração) Melhores Metodologias Métodos Ágeis (o foco deste curso) outras... (abordados em outros cursos de ES) Verão Ágil 2010 Copyleft by AgilCoop 9
10 O que é desenvolvimento de sofware? Por Alistair Cockburn: Modelagem Engenharia Disciplina Poesia Artesanato Arte (Jacobson) (Meyer) (Humphreys) (Cockburn) (Knuth) (Gabriel) Erro comum: olhar para software como apenas um desses itens e ignorar os demais SBES/SBBD 2008 Copyleft by Helves, Jef & Fabio 10
11 Jacobson, agosto/
12 Métodos Ágeis de Desenvolvimento de Software Movimento iniciado por programadores experientes e consultores em desenvolvimento de software. Questionam e se opõem a uma série de mitos/práticas adotadas em abordagens tradicionais de Engenharia de Software e Gerência de Projetos. Manifesto Ágil: Assinado por 17 desenvolvedores em Utah em fevereiro/ Verão Ágil 2010 Copyleft AgilCoop 12
13 O Manifesto do Desenvolvimento Ágil de Software Indivíduos e interações são mais importantes que processos e ferramentas. Software funcionando é mais importante do que documentação completa e detalhada. Colaboração com o cliente é mais importante do que negociação de contratos. Adaptação a mudanças é mais importante do que seguir o plano inicial. Verão Ágil 2010 Copyleft by AgilCoop 13
14 Princípios do Manifesto Ágil Objetivo: satisfazer o cliente entregando, rapidamente e com freqüência, sistemas com algum valor. Entregar versões funcionais em prazos curtos. Estar preparado para requisitos mutantes. Pessoal de negócios e desenvolvedores juntos. Troca de informações através de conversas diretas. 14
15 Mais princípios do Manifesto Ágil Medir o progresso através de software funcionando. Desenvolvimento sustentável. Construir projetos com indivíduos motivados. Simplicidade é essencial. De tempos em tempos, o time pensa em como se tornar mais eficiente e ajusta o seu comportamento de acordo. 15
16 Em um projeto ágil ideal. (1/2) O gerente de projeto concorda em prosseguir sem que todos os requisitos estejam bem definidos. Os desenvolvedores concordam em prosseguir sem ter todos os requisitos documentados. Os membros da equipe sabem que alguém vai ajudar quando ocorrerem problemas. 16
17 Em um projeto ágil ideal.(2/2) Os gerentes percebem que não precisam dizer à equipe o que fazer, ou garantir o que vai ser feito. A equipe percebe que ninguém vai dizer o que fazer, isto faz parte do trabalho da equipe. Não existem mais a impressão de divisão (testers and programmers), todos são desenvolvedores. 17
18 Enquanto isso, no mundo tradicional Levantamento de Requisitos 1. Análise de Requisitos 2. Desenho da Arquitetura 3. Implementação 4. Testes 5. Produção / Manutenção 18
19 Premissas Básicas do ModeloTradicional É necessário fazer uma análise de requisitos profunda e detalhada antes de projetar a arquitetura do sistema. É necessário fazer um estudo minucioso e elaborar uma descrição detalhada da arquitetura antes de começar a implementá-la. É necessário testar o sistema completamente antes de mandar a versão final para o cliente. 19
20 O que está por trás deste modelo? Custo de mudanças requisitos desenho testes análise implementação produção 20
21 E se a realidade hoje em dia fosse outra? Custo de mudanças tempo 21
22 E se essa fosse a realidade? A atitude dos desenvolvedores de software seria completamente diferente: Tomaríamos as grandes decisões o mais tarde possível. Implementaríamos agora somente o que precisamos agora. Não implementaríamos flexibilidade desnecessária (não anteciparíamos necessidades). 22
23 E essa é a nova realidade! (pelo menos em muitos casos) Orientação a Objetos: facilita e cria oportunidades para mudanças. Técnicas de Refatoração. Testes automatizados: nos dão segurança quando fazemos mudanças. Prática / cultura de mudanças: aprendemos técnicas e adquirimos experiência em lidar com código mutante. 23
24 Principais Métodos Ágeis Programação extrema (XP) O preferido dos desenvolvedores Scrum O preferido dos gerentes Crystal (uma família de métodos) Lean Software Development Adaptive Software Development Feature Driven Development 24
25 Práticas Ágeis Planejamento adaptativo (cliente presente) Histórias Detalhamento apenas quando necessário Programação em pares (redundância) Testes Automatizados (TDD) Refatoração (melhoria contínua) Pequenos passos ciclo semanal design incremental implantação incremental Integração Contínua (repositório único de código) 25
26 Com o código já temos bastante experiência Programadores se habituam e passam a trabalhar com mais prazer motivação produtividade qualidade Ferramentas boas para Testes Automatizados / Cobertura Refatoração Coleta de Métricas / Acompanhamento Planejamento e Gerenciamento do Projeto 26
27 Em relação a bancos de dados supercomplexos precisamos aprender mais Evolução de Bancos de Dados muito complexos ainda é difícil. Conflitos programadores vs DBAs Faltam ferramentas boas para Testes Automatizados Refatoração Coleta de Métricas / Acompanhamento Planejamento e Gerenciamento do Projeto Verão Ágil'2010 Copyleft by AgilCoop 27
28 Programa deste curso Segunda-feira: Métodos ágeis (1h50) - Fabio XP (1h50) - Alfredo Terça-feria: Refatoração (1h50) - Mari Testes (1h50) - Mari Quarta-feira: Planejamento (1h50) - Dairton Acompanhamento (55min) - Dairton Scrum (55min) - Dairton Quinta-feira: Lean (55min) - Hugo TDD (55min) - Hugo BDs ágeis (1h50) - Helves Sexta-feira: Código Limpo (1h50) - Hugo Perguntas/Aprofundamento (1h50) - Hugo Verão Ágil'2010 Copyleft by AgilCoop 28
29 Próximo curso: Laboratório de Programação extrema Objetivos: Através de uma abordagem essencialmente prática, oferecer a oportunidade para desenvolvedores de software e gerentes de TI construirem um pequeno sistema de software de forma colaborativa utilizando XP. O curso será ministrado inteiramente no laboratório Eclipse do IME/USP. Ferramentas utilizadas: No laboratório serão utilizadas Java, como linguagem de programação; Eclipse, como ambiente de desenvolvimento; Subversion, como repositório de código para controle de versões e integração contínua; JUnit para testes de unidade; Selenium para testes de aceitação e de interface; XPlanner, para gerenciamento, acompanhamento e planejamento do desenvolvimento. Verão Ágil'2010 Copyleft by AgilCoop 29
30 Curso seguinte: Desenvolvimento de Software de Qualidade através de Testes Automatizados Objetivos: Familiarizar desenvolvedores de software, tanto estudantes quanto profissionais do mercado, com a importância dos testes automatizados e com as principais tecnologias e métodos associados a esta disciplina. Conteúdo: Importância do Teste de Software. Diferença entre testes manuais e automatizados. Tipos de testes: testes de unidade, teste de aceitação, teste de estresse, teste de segurança. Arcabouços para automação de testes, família xunit, Selenium, JMeter, etc. Cobertura de testes. Técnicas avançadas para escritas de bons testes. Padrões auxiliares para escrita de testes em sistemas de grande porte e em sistemas com Bancos de Dados. Verão Ágil'2010 Copyleft by AgilCoop 30
31 Ser Ágil = Vencer medos Escrever código Mudar de idéia Ir em frente sem saber tudo sobre o futuro Confiar em outras pessoas Mudar a arquitetura de um sistema em funcionamento Escrever testes 31
32 Dúvidas? (artigos + agilcast) 32
Desenvolvimento Ágil de Software com Programação extrema (XP) Ricardo Argenton Ramos
Desenvolvimento Ágil de Software com Programação extrema (XP) Ricardo Argenton Ramos Novos ventos no mundo do Desenvolvimento de Software Sociedade demanda grande quantidade de sistemas/aplicações software
1º SEMESTRE DE 2011 Prof. Msc. Hilmer Rodrigues Neri
Gestão de Por+ólios e Projetos de SOFTWARE 1º SEMESTRE DE 2011 Prof. Msc. Hilmer Rodrigues Neri Sociedade demanda grande quan?dade de sistemas/aplicações sodware complexo, sistemas distribuídos, heterogêneos
Agile Methods for the Traditional Guy
Agile Methods for the Traditional Guy Conexão Java 07 Danilo Sato www.dtsato.com (Agradecimento: Mariana Bravo) Danilo Sato BCC/Mestrado - IME/USP AgilCoop Fundador do Dojo@SP ThoughtWorks UK Modelo? Quem
Com metodologias de desenvolvimento
Sociedade demanda grande quantidade de sistemas/aplicações software complexo, sistemas distribuídos, heterogêneos requisitos mutantes (todo ano, todo mês, todo dia) Mas, infelizmente, não há gente suficiente
Daniel Wildt -dwildt@gmail.com
Metodologias Ágeis e Software Livre Daniel Wildt -dwildt@gmail.com Bacharel em Informática (PUCRS) Professor Universitário (FACENSA) Mais de 10 anos de experiência em Desenvolvimento de Software, hoje
Desenvolvimento Ágil de Software em Larga Escala
Desenvolvimento Ágil de Software em Larga Escala Jutta Eckstein Encontro Ágil 2009 1 Agilidade é Quente Gerenciamento Ágil de Projetos Testes Ágeis Arquitetura Ágeis Offshore Ágil Investimento Ágil PLM
Metodologias Ágeis. Gerenciando e Desenvolvendo Projetos de forma eficiente. Gabriel Verta 0767948 Rafael Reimberg 0767701 Vinicius Quaiato - 0767697
Metodologias Ágeis Gerenciando e Desenvolvendo Projetos de forma eficiente Gabriel Verta 0767948 Rafael Reimberg 0767701 Vinicius Quaiato - 0767697 Introdução Ao longo dos anos a indústria de desenvolvimento
Prof. Luiz A. Nascimento. As práticas denominadas ágeis vêm sendo cada vez mais utilizadas na gerência de projetos de software.
Prof. Luiz A. Nascimento As práticas denominadas ágeis vêm sendo cada vez mais utilizadas na gerência de projetos de software. Porque metodologias ágeis? A história dos fracassos no desenvolvimento de
Desenvolvimento Ágil. Prof. Ricardo Argenton Ramos Aula 13 e 14. [baseada na apresentação dos professores Fabio Kon e Alfredo Goldman DCC-IME-USP]
Desenvolvimento Ágil Prof. Ricardo Argenton Ramos Aula 13 e 14 [baseada na apresentação dos professores Fabio Kon e Alfredo Goldman DCC-IME-USP] Novos rumos no mundo do Desenvolvimento de Software Sociedade
A PRIMMER possui casos importantes nesta área. Venha compartilhar conosco desta experiência magnífica no mundo das metodologias ágeis.
METODOLOGIAS ÁGEIS Boas Práticas para o Gerenciamento de Projetos de TI utilizando métodos ágeis baseados em SCRUM e XP etc. DIFERENCIAIS Avaliação prévia das necessidades de cada participante para customização
+ Sistemas de Informação I Extreme Programming I Ricardo de Sousa Britto rbritto@ufpi.edu.br Você gostaria de trabalhar assim? Análise de Requisitos Longe de acordo Requerimentos Complexo Anarquia Perto
5. Métodos ágeis de desenvolvimento de software
Engenharia de Software 5. Métodos ágeis de desenvolvimento de software Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt Desenvolver e entregar software o mais rapidamente possível é hoje em dia um dos
TESTE DE SOFTWARE COM XP. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com
TESTE DE SOFTWARE COM XP Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com Contexto Inúmeros processos de software Evolução das formas/metodologias de desenvolvimento de software Dificuldades encontradas
Java Programação para Fábrica de Software. Fernando Lozano Consultor 4Linux lozano@4linux.com.br
Java Programação para Fábrica de Software Fernando Lozano Consultor 4Linux lozano@4linux.com.br Quem É o Lozano? Atua há mais de 15 anos em TI Consultoria para Amsterdam Sauer, Banco Bovorantim, Bob's,
Prof. Me. Marcos Echevarria Introdução a engenharia de software; Conceito de análise orientada a objetos; UserStories; Requisitos de software; Técnicas de levantamento de requisitos; Modelo de casos de
Engenharia de Software I. Aula 15: Metodologias Ágeis. Prof. Márcio D. Puntel marcio@puntel.org
Engenharia de Software I Aula 15: Metodologias Ágeis Prof. Márcio D. Puntel marcio@puntel.org Março - 2008 Antes... Manifesto Mudança de contratos Foco nas premissas... 2 Algumas metodologias Extreme Programming
Engenharia da WEB 16/08/2011. Vida moderna. Sistemas WEB
Engenharia da WEB Fernando Schütz Especialização 2010 UTFPR Vida moderna Sistemas WEB Início Arquivos hipertexto Hoje Bancos! Powell Sistemas WEB envolvem uma mistura de publicação impressa e desenvolvimento
FACULDADE SETE DE SETEMBRO FASETE Departamento de Sistemas de Informação PROJETO DE FÁBRICA DE SOFTWARE Denise Xavier Fortes Paulo Afonso BA Agosto/2015 Sumário 1. INTRODUÇÃO... 3 2. PERFIS FUNCIONAIS...
Desenvolvimento Ágil sob a Perspectiva de um ScrumMaster
Desenvolvimento Ágil sob a Perspectiva de um ScrumMaster Danilo Sato e Dairton Bassi 21-05-07 IME-USP O que é Scrum? Processo empírico de controle e gerenciamento Processo iterativo de inspeção e adaptação
Engenharia de Software I 2012.2 Modelos de Processo de Software
Engenharia de Software I 2012.2 Modelos de Processo de Software Ricardo Argenton Ramos ricargentonramos@gmail.com A Engenharia de Software Uma Tecnologia em Camadas Gerenciamento da Qualidade Total e filosofias
A Evolução de XP segundo Kent Beck Parte 2
A Evolução de XP segundo Kent Beck Parte 2 O que mudou nesses 5 anos? Danilo Toshiaki Sato dtsato@ime.usp.br Agenda PARTE 1 1. Introdução 2. O que é XP? 3. O que mudou em XP? Valores, Princípios e Práticas
Guia Projectlab para Métodos Agéis
Guia Projectlab para Métodos Agéis GUIA PROJECTLAB PARA MÉTODOS ÁGEIS 2 Índice Introdução O que são métodos ágeis Breve histórico sobre métodos ágeis 03 04 04 Tipos de projetos que se beneficiam com métodos
UMA ABORDAGEM SOBRE TESTES AUTOMATIZADO DE SOFTWARES EM AMBIENTES DE DESENVOLVIMENTO
UMA ABORDAGEM SOBRE TESTES AUTOMATIZADO DE SOFTWARES EM AMBIENTES DE DESENVOLVIMENTO Robson L. Nascimento 1, Késsia R. C. Marchi¹ 1 Universidade Paranaense (UNIPAR) Paranavaí-PR-Brasil robsonluisn@yahoo.com.br,
Sobre a Prime Control A Prime Control é um Centro de Excelência em Qualidade de Software. Nossa missão é desenvolver, aperfeiçoar e realizar serviços de testes de software inovadores que agregam valor
Programação extrema (XP)
Programação extrema (XP) Cursos de Verão 2010 - IME/USP Alfredo Goldman Departamento de Ciência da Computação www.agilcoop.org.br Agenda Primeira versão de XP Segunda versão de XP Perguntas durante a apresentação
O CONCEITO DE TDD NO DESENVOLVIMENTO DE SOFTWARE
O CONCEITO DE TDD NO DESENVOLVIMENTO DE SOFTWARE Renan Leme Nazário, Ricardo Rufino Universidade Paranaense (Unipar) Paranavaí PR - Brasil renazariorln@gmail.com, ricardo@unipar.br Resumo. Este artigo
Dificuldades na implantação de métodos ágeis Marcelo Werneck
Dificuldades na implantação de métodos ágeis Marcelo Werneck Apresentação - Prof. Marcelo Werneck Mestre em Ciência da Computação; Coordenador e Professor do curso de Sistemas de Informação PUC Minas no
"Antes de imprimir pense em sua responsabilidade e compromisso com o MEIO AMBIENTE." Engenharia de Software de Desenvolvimento de Software Givanaldo Rocha de Souza givanaldo.rocha@ifrn.edu.br http://docente.ifrn.edu.br/givanaldorocha
Métodos Ágeis para Desenvolvimento de Software Livre
Métodos Ágeis para Desenvolvimento de Software Livre Dionatan Moura Jamile Alves Porto Alegre, 09 de julho de 2015 Quem somos? Dionatan Moura Jamile Alves Ágil e Software Livre? Métodos Ágeis Manifesto
Engenharia de Software Processos de software Departamento de Matemática Universidade dos Açores Hélia Guerra helia@uac.pt Processo Um processo é uma série de etapas envolvendo actividades, restrições e
Engenharia de Software Apresentação da disciplina, metodologia de ensino, conteúdos, avaliações e bibliografia Prof. MSc. Hugo Vieira L. Souza Este documento está sujeito a copyright. Todos os direitos
CONHEÇA. nosso. processo. Para você lançar sua Startup. Semana de descoberta. Semana de desenvolvimento. E depois de tudo pronto?
CONHEÇA nosso processo Para você lançar sua Startup Semana de descoberta Semana de desenvolvimento E depois de tudo pronto? Acreditamos em uma melhor maneira de começar sua startup De forma Colaborativa,
AULA 1 INTRODUÇÃO - ENGENHARIA DE SOFTWARE. Prof. Msc. Hélio Esperidião
AULA 1 INTRODUÇÃO - ENGENHARIA DE SOFTWARE Prof. Msc. Hélio Esperidião O QUE É UM ALGORITMO? É qualquer procedimento computacional bem definido que informa algum valor ou conjunto de valores como entrada
Ideal para que tipo de empresa (equipe): pequena, média, grande? Em software onde os requisitos não são conhecidos é recomendado o uso do XP? Por quê?
Significado de XP? Extreme Programming (Programação Extrema). Ideal para que tipo de empresa (equipe): pequena, média, grande? Pequenas e Médias. Em software onde os requisitos não são conhecidos é recomendado
O evento não fará uso do vídeo (webcam), somente slides e áudio. Se necessário, ajuste o idioma da sala na barra de ferramentas superior
1 Orientações iniciais Dê preferência ao uso de uma conexão de banda larga O evento não fará uso do vídeo (webcam), somente slides e áudio Se necessário, ajuste o idioma da sala na barra de ferramentas
Sobre a Prime Control A Prime Control é uma empresa focada e especializada em serviços de qualidade e testes de software. Somos capacitados para garantir, através de sofisticadas técnicas, a qualidade
DESENVOLVIMENTO DE IDE PARA PLATAFORMA OMAP. Larissa Lucena Vasconcelos¹, Raul Fernandes Herbster², Joseana Macêdo Fechine³
DESENVOLVIMENTO DE IDE PARA PLATAFORMA OMAP Larissa Lucena Vasconcelos¹, Raul Fernandes Herbster², Joseana Macêdo Fechine³ 1 Aluna do Curso de Ciência da Computação, integrante do PET-Computação, Depto.
Gestão Ágil de Projetos e a certificação PMI-ACP
Gestão Ágil de Projetos e a certificação PMI-ACP Apresentação Roberto Gil Espinha Mais de 15 anos de experiência em Projetos Bacharel em Administração de Empresas pela UNIVILLE Pós-Graduado em Gestão Empresarial
Práticas de. Engenharia de Software. Givanaldo Rocha de Souza givanaldo.rocha@ifrn.edu.br http://docente.ifrn.edu.
"Antes de imprimir pense em sua responsabilidade e compromisso com o MEIO AMBIENTE." Engenharia de Software Práticas de Engenharia de Software Givanaldo Rocha de Souza givanaldo.rocha@ifrn.edu.br http://docente.ifrn.edu.br/givanaldorocha
SCRUM: UM MÉTODO ÁGIL. Cleviton Monteiro (cleviton@gmail.com)
SCRUM: UM MÉTODO ÁGIL Cleviton Monteiro (cleviton@gmail.com) Roteiro Motivação Manifesto Ágil Princípios Ciclo Papeis, cerimônias, eventos, artefatos Comunicação Product Backlog Desperdício 64% das features
PROVA DISCURSIVA. UnB/CESPE BACEN/2013
PROVA DISCURSIVA Nesta prova, faça o que se pede, usando, caso deseje, os espaços para rascunho indicados no presente caderno. Em seguida, transcreva os textos para o CADERNO DE TEXTOS DEFINITIVOS DA PROVA
Análise e Projeto Orientados por Objetos Apresentação da Disciplina Edirlei Soares de Lima Objetivos da Disciplina Apresentar e discutir técnicas avançadas de Análise e Projeto de
MPSP Projeto ALM/Scrum. Diretoria de Sistemas de Informação
MPSP Projeto ALM/Scrum Diretoria de Sistemas de Informação Agenda O que é ALM? Objetivo do Projeto Atividades Desenvolvidas Indicadores Dúvidas O que é ALM? ALM Application Lifecycle Management Gerenciamento
Leves ou pesadas Incrementais, cascata, lineares... etc. Pro ativas e reativas RAD, SDLC
Classificações: Leves ou pesadas Incrementais, cascata, lineares... etc. Pro ativas e reativas RAD, SDLC Vantagens das metodologias light Flexível para mudanças Adaptável a novos requisitos Orientada