Processo de desenvolvimento

Documentos relacionados
Programação Extrema na Prática

Desenvolvimento Ágil de Software

Scrum Foundations. Fundamentos de Scrum

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

Manifesto Ágil Princípios

Engenharia de Software DESENVOLVIMENTO ÁGIL

Processos Ágeis de Desenvolvimento de Software

Desenvolvimento ágil de software

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

SIGEPRO - Mini Curso sobre Métodos Ágeis de Gestão de Projetos

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

METODOLOGIA ÁGEIS FDD FEATURE DRIVEN DEVELOPMENT. Prof. Fabiano Papaiz IFRN

Modelos de Gestão de Projetos

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

INTRODUÇÃO A ENGENHARIA DE SOFTWARE

Análise e Projeto. Prof. Erinaldo Sanches Nascimento

Aula 3 - Modelos de Processo - cascata, iterativo e incremental e ágil

SCRUM Agilidade na Gestão de Projetos

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

Cultura Ágil e SCRUM. Bruno Oliveira.

Processos de Software

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

XP EXTREME PROGRAMMING. AGO106 - Gestão

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

Análise Léxica II. Eduardo Ferreira dos Santos. Setembro, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 30

PRODUCT BACKLOG. Aula de Luiz Eduardo Guarino de Vasconcelos

27) Em relação aos Projetos de Sistemas de Software, assinale a sequência correta de desenvolvimento de um sistema:

BENEFÍCIOS DA AGILIDADE

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

Trilha Gestão de Produtos

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

SCRUM Na Prática o que importa são os Valores. Danilo Bardusco Gerente Geral de Desenvolvimento

SIMPLe: uma abordagem simples

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

SCRUM aplicado na Gerência de Projetos

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

Introdução ao RUP. Livar Correia de O. C. Cunha Effektiv Solutions

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

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

WESAAC 2019 SCRUMIE: JOGO ORIENTADO A AGENTES PARA ENSINO DE SCRUM. Suelen Regina Cordeiro dos Santos

SCRUM MASTER PROFESSIONAL CERTIFICATE (SMPC) SIMULADO DO EXAME Sample Test V092018

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

Extreme Programming: Valores e Práticas

Scrum e Extreme Programming

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA ENGENHARIA DE SOFTWARE

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

Implementação de um sistema para gerenciamento de projetos baseado no Framework Scrum: um estudo de caso

Escrevendo Estórias do Usuário Eficazes aula #3

02/10/2012 Clarindo Pádua. Avaliação de maturidade em usabilidade de organizações Produtividade do usuário.

Ferramenta para gestão ágil

Introdução a Engenharia de Software

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

Desmistificando o Scrum e o Product Owner

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

2 Processos Ágeis Scrum

Lista de Exercícios 02: Revisão

Computação Embarcada - Projeto

Objetivos do Módulo 3

UNIVERSIDADE FEDERAL DO PARANÁ - UFPR BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO

Wesley Torres Galindo

Escolhendo um Modelo de Ciclo de Vida

Scrum. Daniel Krauze

ENGENHARIA DE SOFTWARE. SCRUM Carlos Mar, Msc. Maio/2014

Marketing Promotions Review

Perfil Profissional. Experiência Profissional. Ilegra Consultoria e Sistemas Projeto Agibank Setembro/2018 Novembro/2018. Função: Product Owner.

Wesley Torres Galindo.

Cadeira: Engenharia de Software

Aula 1.7 Introdução a APOO e UML

SCRUM MASTER PROFESSIONAL CERTIFICATE (SMPC) SIMULADO DO EXAME Sample Test V092018

Pequenas Equipes, Grandes Projetos Desenvolvimento de Jogos Digitais utilizando Scrum

Rational Unified Process (RUP)

15/03/2018. Professor Ariel da Silva Dias Modelos de Processo de Software

INF014 Análise e Projeto de Sistemas Processos Unificado -RUP

O que ele não é? Um método ou técnica definitiva para desenvolvimento de um produto.

Transcrição:

Processo de desenvolvimento Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Agosto, 2016 1 / 19

Sumário 1 Desenvolvimento para a Web 2 / 19

1 Desenvolvimento para a Web 3 / 19

Desaos do desenvolvimento Há pouco tempo, o desenvolvimento era feito por diferentes atores: Programador; Designer; DBA. Nova gura: full stack developer. Você é capaz de administrador quantos bancos de dados? Na nova Web, tudo é serviço! Importância da utilização de padrões e frameworks. 4 / 19

Engenharia de software Engenharia de software para aplicações de Internet [Andersson et al., 2006]; Modelo de 4 passos para o desenvolvimento de aplicações para a Web: 1 Desenvolva um modelo de dados. Quais as informações que devem ser armazenadas e como representá-las? 2 Desenvolva uma coleção de transações para o modelo de dados (INSERT, UPDATE); 3 Desenhe um uxo de páginas. Como o usuário vai interagir com o sistema? Quais os passos necessários para chegar à execução das transações? 4 Implemente individualmente cada uma das páginas: Escreva as consultas que recuperem as informações para o modelo de dados; Encapsule as informações em um template; Retorne o resultado para o usuário de maneira intuitiva. Será que o modelo ainda se aplica? 5 / 19

Manifesto ágil A chegada do manifesto ágil 1 reverte um pouco a lógica da engenharia de software. Indivíduos e interações acima de processos e ferramentas; Software funcional acima de documentação extensa; Colaboração com o cliente acima de negociação de contratos; Resposta a mudanças acima de planejamento detalhado. 1 Fonte: http://agilemanifesto.org/ 6 / 19

Desenvolvimento ágil Comece a programar imediatamente [Ruby et al., 2009]: Não tente especicar todos os detalhes antes de começar; Escreva uma especicação mínima e crie alguma funcionalidade imediatamente; Implemente uma ideia; Colete feedback; Inicie outro ciclo de desenho mínimo e desenvolvimento. Não serve para todos os casos; Precisa de integração com o cliente; Figura do PO Product Owner. 7 / 19

Processo ágil Fazendo um paralelo ao modelo de quatro passos: 1 Identique os atores com a ajuda do cliente; 2 Desenhe um uxo de páginas levando em consideração os principais atores; O uxo de páginas representa um protótipo não funcional; Leve sempre em consideração o ponto de vista do usuário. 3 Desenhe um modelo de dados mínimo; A aplicação deve ser capaz de responder a mudanças no modelo de dados; O versionamento do modelo deve fazer parte do projeto; Princípio: o modelo de dados nunca está completo. 4 Faça o planejamento dos ciclos de desenvolvimento ou releases; 5 Comece a programar. 8 / 19

Fluxo de páginas 1 Figura 1.1: Exemplo de página de um ator comprador [Ruby et al., 2009] 9 / 19

Fluxo de páginas 2 Figura 1.2: Exemplo de página de um ator vendedor [Ruby et al., 2009] 10 / 19

Modelo de dados Figura 1.3: Modelo de dados mínimo [Ruby et al., 2009] 11 / 19

Planejamento Conceito de histórias de usuário: o que as pessoas querem que esteja no produto, em ordem de prioridade; A primeira etapa do planejamento é construir uma lista de histórias de usuário (backlog list); Cada história representa uma funcionalidade do ponto de vista do usuário; A funcionalidade pode ser dividida em uma ou mais tarefas: A tarefa é a menor unidade de implementação; Conceito de gerência de projetos: as tarefas devem durar entre 4 e 40 horas; A diculdade/duração da tarefa é relativa ao programador. Toda funcionalidade deve ser testável com base nos critérios de aceitação; As histórias são organizadas em ciclos de desenvolvimento ou sprints. 12 / 19

Desenvolvimento para a Web Scrum board Figura 1.4: Exemplo do quadro de tarefas do scrum 13 / 19

Histórias de usuário 1 Uma boa história de usuário funciona como uma conversa com o cliente; Pensamentos importantes para a história de usuário: COMO Denição do ator envolvido (QUEM)? EU QUERO Como você vai interagir com o sistema? PARA QUE Qual o impacto da funcionalidade do ponto de vista do usuário? 14 / 19

Histórias de usuário 2 Para saber se a história foi concluída escreva critérios de aceitação: Exemplo rem relação à funcionalidade: DADO QUE Quais os pré-requisitos para que a história seja executada? QUANDO Qual é a ação que deve ser executada? ENTÃO O que o sistema deve apresentar/realizar? Um outro exemplo, levando em consideração possívis consultas: ENQUANTO Qual o ator? QUERO Qual a ação? PELOS SEGUINTES ATRIBUTOS Em que condição? Uma boa história de usuário tem entre 3 e 9 critérios de aceitação. 15 / 19

Sprints Os sprints são as iterações de programação ao nal das quais se obtém feedback sobre o produto entregável; Cada sprint deve possuir impacto suciente para produzir uma mudança visível no programa; Como regra os sprints duram entre 2-4 semanas; Organização do trabalho: Reunião de abertura: dene-se quais as histórias que serão implementadas no sprint; Reuniões diárias (stand-up meeting): feedback diário sobre a evolução em relação ao dia anterior. Diz-se stand-up porque deve ser realizada de pé para ter curta duração (15 min); Reunião de fechamento: avalia-se o produto do sprint para planejar o andamento do próximo. 16 / 19

Ciclos de desenvolvimento Conceito de release: menor unidade implementável que possua impacto para o usuário; O release é como uma nova versão do software, mas do ponto de vista do usuário; No ágil, o software nunca está pronto. Por isso, cada release é muito importante. 17 / 19

Observações gerais Durante o desenvolvimento, é muito importante o ciclo de feedback; O software nunca está pronto; A produtividade é uma medida tangível, mas subjetiva; Controle total e absoluto do tempo. 18 / 19

OBRIGADO!!! PERGUNTAS??? 19 / 19

Andersson, E. A., Greenspun, P., Grumet, A., Eve Andersson, P. G., et al. (2006). Software engineering for Internet applications. Number Sirsi) i9780262511919. Ruby, S., Thomas, D., and Hansson, D. (2009). Agile web development with rails. pragmatic bookshelf. Technical report, ISBN 1-934356-16-6. 20 / 19