métodos ágeis e saas engenharia de sistemas de informação Daniel Cordeiro 11 de agosto de 2017 Escola de Artes, Ciências e Humanidades EACH USP

Documentos relacionados
estimativa de custos ágil

testes de software & tdd

Programação Extrema na Prática

Introdução a Métodos Ágeis. Curso de Verão IME/USP

A Evolução de XP segundo Kent Beck Parte 1

Desenvolvimento ágil de software

nossa história (e porque você é parte dela)

Informática I. Aula Aula 21-29/11/06 1

Testes Ágeis com BDD. Por que o BDD pode salvar o agile? Paloma Costa

Processos Ágeis de Desenvolvimento de Software

METODOLOGIAS ÁGEIS FEATURE DRIVEN DEVELOPMENT E AUP

Metodologias Ágeis de Desenvolvimento. Fernando Trinta

1. A função DevOps, que se concentra principalmente em Produtos & Serviços:

Sumário. Capítulo 3 Valores do XP Feedback Comunicação... 46

Engenharia de Software II

Desenvolvimento Ágil 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.

Scrum. Projeto de. Desenvolvimento. Software. Prof.: Ari Oliveira

22/03/2018. Professor Ariel da Silva Dias RUP e Modelos Ágeis

TS05. Teste de Software AUTOMATIZAÇÃO DE TESTES. COTI Informática Escola de Nerds

Desenvolvimento Ágil de Software. Prof. Edjandir Corrêa Costa

Processo de desenvolvimento

INTRODUÇÃO A ENGENHARIA DE SOFTWARE

Métodos Ágeis e Programação Extrema (XP)

O papel do QA (Testador) em um time Ágil. #caipiraagil2017

Extreme Programming. Projeto de. Desenvolvimento. Software. Prof.: Ari Oliveira

Desenvolvimento de Software de Qualidade através de Testes Automatizados

arquitetura shared-nothing em 3 camadas

Introdução a Métodos Ágeis com ênfase em XP. Alfredo Goldman Professor do IME - USP

Processos de Software

Luiz Fernando Maurício de Souza Sidemar Fidelis Cezario. FDD Desenvolvimento dirigido a funcionalidades

software as a service (saas) e service-oriented architecture (soa)

Vinícius Manhães Teles prefácio de Kent Beck colaborações especiais de Kent Beck e Robert Mee

Metodologias Ágeis. Equipe WEB Cercomp

Testar: impossível. Jorge Diz Globalcode. Agile Brazil 2010 Slide 1

Desenvolvimento de Software de Qualidade através de Testes Automatizados

Processos Ágeis de Desenvolvimento de Software. Yuri Pereira

Modelos de Gestão de Projetos

PDS. Aula 1.7 Métodos Ágeis. Prof. Dr. Bruno Moreno

TESTES DE SOFTWARE 1. Fundamentos sobre testes de software

Scrum e Extreme Programming

Desenvolvimento Ágil

Cultura Ágil e SCRUM. Bruno Oliveira.

Métodos Ágeis e o SCRUM. Bruno Henrique Oliveira

Capítulo 3. Desenvolvimento Ágil de Software Pearson Prentice Hall. Todos os direitos reservados. slide 1

Estágio II. Aula 04 Testes Ágeis. Prof. MSc. Fred Viana

Processo. Processo unificado. Principais Características do UP. Principais Características do UP RUP. Unified Process (Processo Unificado)

Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS. Nome:

Uso Eficaz de Métricas em Métodos Ágeis de Desenvolvimento de Software

Adoção de metodologia ágil baseada em Scrum - Case da Procergs

BDD e eu com isso? Glaucimar Aguiar. Outubro, 2016

Aula 3.1 Introdução e Visão Geral do Processo Unificado

ENGENHARIA DE SOFTWARE. Aula 12 Testes de software

5. Qual é a primeira execução do desenvolvimento orientado a testes?

Scrum. Daniel Krauze

O PAPEL DO ANALISTA DE NEGÓCIOS NA AGILIDADE. Ainda precisamos de Analistas de Negócios?

Engenharia de Software. Herbert Rausch Fernandes

7ª Conferência da Qualidade de Software e Serviços

FATTO CONSULTORIA E SISTEMAS

Halison Miguel Edvan Pontes

código belo vs. legado e qualidade de software

Dificuldades na implantação de Métodos Ágeis

Scrum Foundations. Fundamentos de Scrum

Modulo I Introdução ao XP

Behavior-Driven Development. Professor: Régis Patrick Silva Simão

Curso online de. Formação em Front-End. Plano de Estudo

Desafios do desenvolvimento de Software (Desenvolvimento Tradicional x Desenvolvimento Ágil)

PROCESSOS DE SOFTWARE

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

Planejamento e Estimativas Ágeis

introdução ao cucumber & capybara

rspec-rails & o ciclo tdd: vermelho verde refatore

Acompanhamento ágil. Adaptação nos slides de Viviane Santos Instituto de Matemática e Estatística - USP

14/11/2013. Capítulo 2. Processos de Software. Tópicos apresentados. Oprocessodesoftware. Modelos de processo de software. Atividades de processo.

Engenharia de Software Processo de Desenvolvimento. Ciclo de Vida - Modelo Cascata

Ebook: Escola de Testes

Engenharia de Software

XP EXTREME PROGRAMMING. AGO106 - Gestão

Testes Automatizados. Cursos de Verão 2007 IME/USP Dairton Bassi & Paulo Cheque

Clientes gerentes Usuarios finais do sistema Clientes engenheiros Gerentes contratantes Arquitetos do sistema. Definicao de requisitos

Contratos ágeis medidos por Pontos de Função

Aula 1.7 Introdução a APOO e UML

Processos de Software

Projeto de Desenvolvimento de Software

Engenharia de Software II

Lista de Exercícios 02: Revisão

Conhecendo um pouco sobre RUP

manutenção de software: refatoração no nível de métodos

Revisitando as práticas de engenharia ágil. Danilo

Protótipo: um brinquedo valioso

Desenvolvimento de Aplicações para Educação à Distância: O Ambiente Virtual de Aprendizagem SOLAR

BEHAVIOR DRIVEN DEVELOPMENT BRUNO ROLIM MANSUR

Papel do PO Métodos Ágeis. Fonte: Adaptworks

SCRUMBUT. Aula de Luiz Eduardo Guarino de Vasconcelos

Manifesto Ágil Princípios

Transcrição:

métodos ágeis e saas engenharia de sistemas de informação Daniel Cordeiro 11 de agosto de 2017 Escola de Artes, Ciências e Humanidades EACH USP

manifesto ágil, 2001 Estamos descobrindo maneiras melhores para se desenvolver software e de ajudar as pessoas a fazê-lo. Ao longo desse trabalho viemos a valorizar mais: Indivíduos e interações ao invés de processos e ferramentas Software que funciona ao invés de documentação extensa Colaboração com o cliente ao invés de negociação de contratos Resposta a mudanças ao invés de seguir um plano Isto é, enquanto há valor nos itens da direita, nós damos mais valor os itens da esquerda. 1/13

programação extrema (xp), uma versão de método ágil Se iterações curtas são boas, faça que sejam as menores possíveis (semanas vs. anos) Se simplicidade é bom, sempre faça a coisa mais simples possível que possa fazer o trabalho Se testar é bom, teste o tempo todo. Escreva o código de teste antes mesmo de escrever o código que será testado Se revisões de código são boas, reveja código continuamente programando em pares, revezando quem ficará de olho no código do outro 2/13

ciclo de vida ágil Abrace mudanças como sendo um fato da vida: melhoria contínua vs. fases Desenvolvedores refinam continuamente um protótipo incompleto, mas funcional, até que o cliente esteja feliz com o resultado. Feedback do cliente em todas as iterações (cada 1 2 semanas) Métodos ágeis enfatizam que Test-Driven Development (TDD) diminuem os defeitos, User Stories validam os requisitos dos clientes e Velocity mede o progresso 3/13

iterações de métodos ágeis / organização do livro-texto Converse com o "Cliente" (Cap. 7) Código Legado (Cap. 9) Padrões de Projeto (Cap. 11) Projeto Guiado por Comportamento: Histórias do Usuário (Cap. 7) Desenvolvimento Guiado por Testes: Testes de Unidade (Cap. 8) Meça Velocidade (Cap. 7) Organização do livro: Parte I: SaaS (2 6) Implante na Nuvem (Cap. 12 e Ap. A) Parte II: Métodos ágeis (7 12) 4/13

métodos ágeis: antes e agora Controverso em 2001 O Manifesto Ágil é uma tentativa a mais de minar a disciplina de engenharia de software. ( ) Na profissão da engenharia de software existem engenheiros e hackers. ( ) Me parece que isso não é nada mais do que uma tentativa de legitimar o comportamento do hacker. ( ) A profissão de engenharia de software apenas mudará para melhor quando os clientes se recusarem a pagar por um software que não cumpre o esperado. ( ) Mudar de uma cultura que encoraje a mentalidade do hacker para uma que seja baseada em práticas de engenharia de software previsíveis apenas ajudará a transformar a engenharia de software em uma disciplina de engenharia respeitada. Steven Ratkin, Manifesto Elicits Cynicism, IEEE Computer, 2001 5/13

métodos ágeis: antes e agora Controverso em 2001 Aceito em 2013 um estudo de 2012 com 66 projetos verificou que a maioria usava métodos Ágeis, mesmo com times distribuídos 5/13

sim: planeje-e-documente não: métodos ágeis 1. É necessário criar uma especificação? 2. Os clientes estarão indisponíveis durante o desenvolvimento? 3. O sistema a ser construído é muito grande? 4. O sistema a ser construído é muito complexo (ex: sistema de tempo real)? 5. O sistema terá uma vida útil muito longa? 6. Você usa ferramentas de softwares pobres? 7. O time está geograficamente distribuído? 8. A cultura do time (seu modo de pensar e planejar) é orientado à documentação? 9. O time possui habilidades de programação fracas? 10. O sistema a ser construído está sujeito a regulações e normas? 6/13

pergunta Qual dessas afirmações é verdadeira? Uma grande diferença entre métodos Ágeis e P-e-D é que Ágil não usa requisitos Uma grande diferença entre métodos Ágeis e P-e-D é medir o progresso em relação a um plano Você pode construir SaaS usando métodos Ágeis, mas não usando P-e-D Uma grande diferença entre métodos Ágeis e P-e-D é a construção de protótipos e as interações com os clientes durante o processo de desenvolvimento 7/13

falácias e armadilhas

falácias e armadilhas Falácia: o ciclo de vida Ágil é o melhor para o desenvolvimento de software Ágil é uma boa escolha para alguns tipos de software, especialmente SaaS Mas não é boa escolha para a NASA; código sujeito a regulamentações Em cada tópico do livro veremos como aplicar métodos Ágeis na prática, mas também veremos como seria a perspectiva de Planeje-e-Documente obs: você irá se deparar com novas metodologias de desenvolvimento ao longo da sua carreira, então prepare-se para aprender outras no futuro 8/13

falácias e armadilhas Armadilha: ignorar o custo do design de software como o custo de fabricação de um software é 0, alguns podem acreditar que também não existe custo para modificá-lo do jeito que um cliente quiser ignora o custo de design e teste Será que não ter custo de fabricação de software/dados não é a mesma ideia que justifica cópias piratas de software/dados? Ninguém deveria pagar pelo desenvolvimento, mas só pela fabricação? 9/13

resumo: engenharia de software é mais do que programar SaaS na Nuvem Padrões de Projeto dentro dos Arcabouços atendem às demandas de SaaS Arcabouços e Ferramentas altamente produtivos Engenharia de SaaS de alta durabilidade Arcabouço e ferramentas removem obstáculos para a prática de Desenvolvimento Ágil O Cliente rapidamente enxerga e usa o resultado da última iteração ágil Desenvolvimento Ágil Figura 1: O triângulo da virtude da engenharia SaaS é formado a partir de três jóias da coroa da engenharia de software, (1) SaaS na Nuvem, (2) Desenvolvimento Ágil e (3) Arcabouços e ferramentas de alta produtividade. 10/13

sobre o projeto Times de 5 6 alunos Ideia: projetar, planejar, desenvolver, testar e implantar um software como um serviço Recomendação: usar Rails para o backend e HTML5+JavaScript para o frontend; outras linguagens/plataformas/arcabouços podem ser usados, porém você deve ter: um arcabouço para os testes de Unidade & funcionais (recomendação: RSpec para Ruby/Rails e Jasmine para JavaScript) uma forma de medir a cobertura dos testes (Coveralls e Travis CI) um arcabouço de teste completo que possa expressar testes que corresponderão às histórias dos usuários (Cucumber e Capybara) um arcabouço para a medição da qualidade do código, que ajude a identificar mal cheiros de projetos, problemas no estilo do código, etc. (CodeClimate) arcabouço de SaaS para o lado do servidor (Rails) arcabouço de SaaS para o lado do cliente (HTML5+JavaScript) 11/13

iteração 0 i A iteração 0 compreende (sugiro que a ordem dos itens seja seguida): 1. Criar um projeto no GitHub 2. Adicionar todos os integrantes do grupo como colaboradores 3. Todos os membros devem conseguir fazer um clone do repositório e executar o projeto em seu ambiente de desenvolvimento local (recomendação: use Linux/MacOS ou Cloud9) 4. rake spec e rake features deve rodar sem erros (mesmo que ainda não haja testes escritos) 5. Integrar o repositório com Travis CI, o que significa ter o Travis CI reportando Build: passing 6. Integrar o repositório com o CodeClimate 12/13

iteração 0 ii 7. Um projeto público no Pivotal Tracker configurado para esse projeto, com todos os membros do time adicionados como colaboradores 8. Um README.md no repositório do projeto que inclua todos os itens abaixo: Prazo: CodeClimate badge mostrando o GPA do projeto Travis CI badge mostrando o status do build no branch master (deve ser: passing) Link para a app implantada no Heroku Link para o projeto no Pivotal Tracker Integrantes do projeto e uma pequena descrição de qual problema o software de vocês resolverá Domingo, 20 de agosto de 2016 13/13