BAND | Projetos TI v 1.0 update: 06/12/2010 Band – Projetos TI Natanael Rodrigues © 2010 – BAND | Projetos TI Natanael R. Silva BAND | Projetos TI Preview Visão do Produto; User Stories versus Use Cases; Captura, Identificação e Especificação de Requisitos; Features > “Use Cases” ou “User Story” Priorizar Backlog e Sprint Backlog. © 2010 – BAND | Projetos TI Natanael R. Silva BAND | Projetos TI Software Running Artefatos e Entregáveis Version Control Minor bug fix Minor feature addition Minor system adaptation Visões do Produto Product Owner PRODUT BACKLOG - Features - Mudanças Plano de Projeto: - Regras do Jogo, Apoio, Papeis, Ambiente e Responsabilidades Fábrica de Software Team Documento de Visão do Produto - A equipe precisar ter a visão do todo! - Visão do Escopo do Projeto e expectativa do produto a ser entregue. Requisitos (Features & Use Cases); Especificações para o Time: - Regras de negócio bem claras; - Fluxo e estruturas bem definidas; - Estórias ou Casos de Usos; - Critérios de Aceite e Testes; Sprint BackLog © 2010 – BAND | Projetos TI Natanael R. Silva BAND | Projetos TI Requisitos de Software e o SCRUM Em que fase do SCRUM é feito a especificação dos Requisitos/Features/Item de Backlog ? Obrigatoriamente Antes da Planning: - Identificação dos workitens, estórias ou Use Cases do próximo Sprint. - No Planning Pocker, os desenvolvedores precisam ter pelo menos uma noção do que vão desenvolver para poder estimar, mesmo que os casos de uso ou estórias não estejam totalmente especificadas. © 2010 – BAND | Projetos TI Natanael R. Silva BAND | Projetos TI Fases Customizadas por Projeto KANBAN © 2010 – BAND | Projetos TI Natanael R. Silva BAND | Projetos TI Product BackLog Priorizando Valores de Negócio O BackLog: • Lista de features, estórias ou Use Cases a ser implementada; • Definir a ordem e prioridade das implementações e releases; • Dar visibilidade do escopo e visão do produto ao cliente. Product Owner Attack Plan Plano de “Attack”, ajuda: • Visão do que agrega valor ao negócio; • Na Construção Incremental; • Definir Prioridades; • Visão dos Componentes de Negócio; Problema: Num processo de construção incremental, cuidar para não deixar falhas ou “gaps” perdidos, ou que suas implementações posteriores gerem muito retrabalho. Planejar para Agregar Valor nas Entregas Incrementais! © 2010 – BAND | Projetos TI Natanael R. Silva BAND | Projetos TI Product BackLog - Montagem Estórias versus Use Cases Estórias: • Puramente descritivo, objetivo e sucinto para entendimento do negócio; • Tem mais clareza na conversa de objetivos com usuários! • Difícil visualizar e contextualizar escopo / idéia do fluxo, processo e contexto de negócio; • Dificuldades em estimativas, prazos e custos; Épico Use Cases: • Melhor entendimento funcional com uso de UML; • Clareza no fluxo, escopo e regras de negócio; • Melhor para uso de métricas de estimativas de software (UCP) Prazos e Custos! • Priorização por componentes de negócio (Packages); • Ferramentas Cases e Uso da UML para especificação; Componente de Negócio (Package) Estória Critérios de Aceite © 2010 – BAND | Projetos TI Natanael R. Silva BAND | Projetos TI Product BackLog - Montagem Estórias versus Use Cases Problemas: Como medir, formar processos, contextualizar (componentes de negócio Features protótipo modelos/Domínios) Estórias na prática: Estória: Eu como gerente financeiro, preciso aprovar uma Estória: Eu como gerente financeiro, preciso aprovar uma Estória: Eu como gerente financeiro, preciso aprovar uma requisição de compra. Estória: Eu como gerente financeiro, preciso aprovar uma requisição de compra. requisição de compra. requisição de compra. Critérios de Aceite: Critérios dede Aceite: Critérios Aceite: - -AACritérios requisição maior que R$ 200,00; deprecisar Aceite:ser requisição precisar ser maior que R$ 200,00; A requisição precisar ser maior que R$ 200,00; - -Ao aprovar o status da requisição deve estar igual aa A requisição precisar ser maior que R$ 200,00; Ao aprovar o status da requisição deve estar igual - -Ao o ostatus dada deve “Aprovada” eevoltar para orequisição solicitante; Aoaprovar aprovar, status requisição deveestar estarigual iguala a “Aprovada” voltar para o solicitante; edeverão voltar ooordenadas solicitante; - -AsAs“Aprovada” requisições estar por prioridade “Aprovada” edeverão voltarpara para solicitante; requisições estar ordenadas por prioridade As requisições deverão estar ordenadas por eeurgência de aprovação; - urgência As requisições deverão estar ordenadas porprioridade prioridade de aprovação; eeurgência de aprovação; urgência de aprovação; Features; Funcionalidades; Telas; Processos; Serviços; • Regras de Negócio; • {Constraints} • Validações e Consistências; • Plano de Testes; © 2010 – BAND | Projetos TI Natanael R. Silva BAND | Projetos TI Product BackLog - Montagem Estórias versus Use Cases Use Case na prática: Componente de Negócio (Package) •Features; •Funcionalidades; •Telas; •Processos; •Serviços; Ferramentas e Semânticas apropriadas para descrever: • Fluxo do processo e Cenários; • Caminhos/Cenários alternativos; • Regras de Negócio {Constraints}; • Requisitos de atendimento ao negócio; • Requisitos de testes; • Escopo; • Prazos; • Estimativas e valoração; Use Case Points Descrever de Forma sucinta e Objetiva! Use Cases “magrinhos” e simples são ágeis!!! © 2010 – BAND | Projetos TI Natanael R. Silva BAND | Projetos TI Review Definir as Features; Agrupá-las em Componentes de Negócio / Módulos / Pacotes; Identificar e Especificar Casos de Uso (ou “User Stories”) Alimentar Documento de Visão do Produto (Requisitos Funcionais e Não Funcionais) Priorizar Backlog e Sprint Backlog; Levar à Planning Pocker; Documento de Visão Componentes de Negócio Features Product BackLog Use Cases ou Estórias Planning Pocker Sprint BackLog Visão do Produto © 2010 – BAND | Projetos TI Natanael R. Silva BAND | Projetos TI Processo de Desenvolvimento Artefatos e Sequência de Trabalhos Responsáveis Scrum Master & Scrum Team Product Owner & Analista Funcional (A&D) Plano de Projeto Documento de Visão Features Product BackLog Use Cases ou Estórias {Critérios de Aceite} Domain Model Planning Pocker Sprint BackLog Visão do Produto © 2010 – BAND | Projetos TI Natanael R. Silva BAND | Projetos TI Templates Documento de Visão do Produto; Documento de Requisitos de Software (Features); Especificação de Use Cases no EA (Hands On); Outros: Atas Issue Report; Documento de Entregas Documento de Aceite Pasta na Rede: \\sbdsao-app140\Informatica\Desenvolvimento\ProjetosTI\_PMO_Band\Templates\10_DocumentosProjeto © 2010 – BAND | Projetos TI Natanael R. Silva BAND | Projetos TI Samples: Product Vision © 2010 – BAND | Projetos TI Natanael R. Silva BAND | Projetos TI Samples: Business Component Vision © 2010 – BAND | Projetos TI Natanael R. Silva BAND | Projetos TI Samples: Domain Model Aggregate Root class Account Domain Model ContaBanco Account Common::Cidade + + + Codigo: string Nome: string Estado: Estado + + Cidade() ~Cidade() Dispose() : void + + + + + + + + + + + + + + + + + + + ID: int Nome: string CpfCnpj: string InscricaoEstadual: string Rg: string Sexo: char DataNascimento: datetime Email: string +Pai Email2: string Senha: string Telefone: string Celular: string Recado: string Saldos: IList<Saldo> Enderecos: IList<Endereco> Pedidos: IList<Pedido> Pai: Account Ativo: bool ContasBanco: IList<ContaBanco> + + Account() ~Account() Dispose() : void + + + 0..* + + + + + + +ContasBanco + + «enumeratio... Common:: TipoMov imento Credito = "C" Debito = "D" ContaBanco() ~ContaBanco() Dispose() : void +TipoMovimento Mov imento Saldo +Saldos + 0..* + + + + NumeroAgencia: string DigitoAgencia: string NomeAgencia: string NumeroConta: string DigitoConta: string VariacaoConta: string Titular: string CPFCNPJ: string Banco: Banco DataFechamento: datetime SaldoAnterior: float TotalCredito: float TotalDebito: float SaldoAtual: float + + +Lancamentos + + 0..* + + Data: DateTime Descricao: string Valor: float Doc: string TipoMovimento: TipoMovimento Parcela: Parcela +Cidade +Enderecos 1..* Endereco «enumeration» Common::TipoEndereco Comercial = "C" Residencial = "R" Cobranca = "B" +TipoEndereco + + + + + TipoEndereco: TipoEndereco Endereco: string Bairro: string Cep: string Cidade: Cidade + + Endereco() ~Endereco() Dispose() : void © 2010 – BAND | Projetos TI Natanael R. Silva BAND | Projetos TI Pensamento Final Não somos mestres, nem sois aprendizes! Nosso objetivo é equalizar conhecimentos e compartilhar experiências, aproveitando o conhecimento e habilidade de cada um, para formar uma equipe forte, unida e com um só objetivo. © 2010 – BAND | Projetos TI Natanael R. Silva