Verão Ágil ’2009Copyleft by AgilCoop Introdução a Métodos Ágeis de Desenvolvimento de Software Curso de Verão Centro de Competência em Software Livre Departamento.

Slides:



Advertisements
Apresentações semelhantes
A Evolução do Conceito e da Prática da Gestão da Qualidade
Advertisements

PESQUISA DE MERCADO Prof. Nilton Almeida
Desenvolvendo Software com Qualidade e Agilidade Hugo Corbucci AgilCoop DCC - IME - USP
Testes Automatizados Cursos de Verão 2007 – IME/USP Dairton Bassi & Paulo Cheque.
Tecnologias para Internet Thyago Maia Tavares de Farias Aula 19.
EA976 – Engenharia de Software AULA 3 O Processo de Software.
Análise Desenvolvimento/Testes Entrega Suporte. Nome da atividade Análise de Negócio Fase Análise Finalidade Esta atividade tem por finalidade analisar.
Ferramenta de apoio aos testes baseados em requisitos Acadêmico: Leandro da Cunha Orientador: Everaldo Artur Grahl.
“Revisão” para Qualidade 2016/2 Prof. Luís Fernando Garcia Engenharia de Software.
Profª Andrea Padovan Jubileu MODELOS DE PROCESSO DE SOFTWARE Definição e Elementos de Processo de Software Alguns Modelos Prescritivos Alguns Modelos Ágeis.
FULL MANAGEMENT SUPPLY CHAIN Gestão Eficiente do Setor de Compras FULL MANAGEMENT SUPPLY CHAIN Gestão Eficiente do Setor de Compras.
Qualidade de Software Aula 8 Prof. Dr. Luís Fernando Garcia
GESTÃO E EMPREENDEDORISMO Empreendedorismo corporativo AULA 7 PROFª BRUNA ROSSETTI CANDIDO.
FERRAMENTA PARA GERENCIAMENTO DE ARTEFATOS EM PROJETO DE MELHORIA NO PROCESSO DE TESTES. UNIVERSIDADE REGIONAL DE BLUMENAU CURSO DE SISTEMAS DE INFORMAÇÃO.
Ferramenta para Acompanhamento de Projetos Utilizando o Método Kanban
Equipe Diretoria de Comunicação e Relacionamento

AULA 1: INTRODUÇÃO À ECONOMIA
Introdução e Conceitos.
MARKETING DIGITAL PARA TERAPEUTAS
Introdução ao Comportamento Organizacional
Processo de Fábrica de Software
Funcionamento das aulas
Introdução Os pesquisadores através da mensuração descrevem fenómenos que existem no mundo empresarial em termos de por exemplo, demografia, comportamento,
Família Crystal e Iconix
Administração de serviços 7º período
especificação de requisitos do software
Fábrica de Software.
Avaliação de Desempenho Humano
GEM 2015 GLOBAL ENTREPRENEURSHIP MONITOR
Projeto IEC Conclusão em
Cultura Organizacional
EMPREENDEDORISMO – CASO DE SUCESSO
Planejamento de estratégias:
Modelos de Qualidade para indivíduos e grupos: PSP & TSP
Workshop Agile tdd - Test Driven development
COMO ELABORAR UM PROJETO DE PESQUISA
Engenharia de Software II
Como a Copel conseguiu adotar métodos ágeis nos projetos de software
Parte III – Planejando o Projeto
Tópicos Avançados de RH Aula 1
Engenharia de Software Analise de Riscos
Proposta para implantação de um Escritório de Projetos
PESQUISA DE MERCADO Prof. Nilton Almeida
RESPOSTAS A INCIDENTES E PLANO DE CONTINUIDADE DE NEGÓCIOS
Metodologias de Desenvolvimento de Software Orientado a Objetos
Técnico em Logística People Alexandre Ribeiro Rosa
Aula 3.3.
PROCESSO DE DESENVOLVIMENTO DE SOFTWARE AULA 8
MBA: Gestão Estratégica de Pessoas
Coaching “A situação em que um profissional experiente em dado trabalho orienta outro, ensinando-o, motivando-o, fazendo-o praticar o trabalho (ou partes.
Uma Metodologia Ágil, Baseada no RUP e no TSP, Para Pequenas Equipes
O que é Estatística? Introdução ao CEQ
Projeto de Implantação da Gestão da Qualidade Total
Trabalho de Conclusão de Curso I
Produto UFAM Universidade Federal do Amazonas Faculdade de Tecnologia
DESIGN THINKING.
Manuais Administrativos
GSI030 – engenharia de software
Software Process Improvement Capability dEtermination
DEPARTAMENTO DE CIÊNCIA E TECNOLOGIA AEROESPACIAL
INSTITUTO FEDERAL FARROUPILHA CAMPUS SÃO BORJA
Projeto de Implantação da Gestão da Qualidade Total
PROFESSOR RICARDO FERREIRA
Programação eXtrema Desenvolvendo Software com Qualidade e Agilidade
Administração de Carreira Varias opções de se mudar a carreira.
Modelagem de Sistemas
Agilidade mais que Frameworks e Modelos
Gestão da Cadeia de Suprimentos 3º período
Vou começar a trabalhar com projeto de BUSINESS INTELLIGENCE, o que devo entender? Igor George Abdo.
Transcrição da apresentação:

Verão Ágil ’2009Copyleft by AgilCoop 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

2 Verão Ágil ’2009Copyleft by AgilCoop 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

3 Verão Ágil ’2009Copyleft by AgilCoop 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

4 Verão Ágil ’2009Copyleft by Helves, Jef & Fabio 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.

5 CHAOS Report  Resultado dos projetos (2004): 18% 29% 53% com problemas sucesso falham

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 %

7 Qual software? 64% Funcionalidades nunca ou raramente utilizadas Jim Johnson, 2000

8 Verão Ágil ’2009Copyleft by AgilCoop 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

9 Verão Ágil ’2009Copyleft by AgilCoop Como resolver esse impasse?  Melhores Tecnologias Padrões de Projeto (reutilização de idéias) ‏ Componentes (reutilização de código) ‏ Middleware (aumenta a abstração) ‏  Melhores Metodologias Métodos Ágeis (o foco deste curso) ‏ outras... (abordados em outros cursos de ES)

10 SBES/SBBD’2008Copyleft by Helves, Jef & Fabio O que é desenvolvimento de sofware?  Por Alistair Cockburn:  Erro comum: olhar para software como apenas um desses itens e ignorar os demais (Gabriel)‏Arte (Knuth)‏Artesanato (Cockburn)‏Poesia (Humphreys)‏Disciplina (Meyer)‏Engenharia (Jacobson)‏Modelagem

11 Jacobson, agosto/2007

12 Verão Ágil ’2009Copyleft by Helves, Jef & Fabio 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/

13 Verão Ágil ’2009Copyleft by Helves, Jef & Fabio 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.

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.

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.

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.

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.

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

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.

20 O que está por trás deste modelo? Custo de mudanças requisitos desenho testes análise implementação produção

21 E se a realidade hoje em dia fosse outra? Custo de mudanças tempo

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).

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.

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

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) ‏

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

27 Verão Ágil'2009Copyleft by AgilCoop Em relação a bancos de dados super- complexos 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

28 Verão Ágil'2009Copyleft by AgilCoop Programa deste curso Segunda-feira: Métodos ágeis (1h50) - FabioXP (1h50) - Alfredo Terça-feria:Refatoração (1h50) - MariTestes (1h50) - Paulo Quarta-feira:Planejamento (1h50) - DairtonAcompanhamento (55min) - Mari Scrum (55min) - Dairton Quinta-feira:Lean (55min) - HugoTDD (55min) - Hugo BDs ágeis (1h50) - Helves Sexta-feira:Dificuldades na implantação (1h50) - Hugo/Dairton Perguntas/Aprofundamento (1h50) - Hugo/Dairton

29 Verão Ágil'2009Copyleft by AgilCoop 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.

30 Verão Ágil'2009Copyleft by AgilCoop 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.

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

32 Dúvidas? ? (artigos + agilcast)