Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Qualidade de Software | Feature Driven Developm...

Qualidade de Software | Feature Driven Development, Lean e Kanban

Slides utilizados em aula na disciplina Qualidade de Software do Instituto de Ciências Exatas e Informática - Sistemas de Informação. Pontifícia Universidade Católica de Minas Gerais - Unidade Barreiro, 1º Semestre 2015.

Eduardo Miranda

March 18, 2015
Tweet

More Decks by Eduardo Miranda

Other Decks in Education

Transcript

  1. modelo do FDD Criar um modelo abrangente Escrever uma lista

    de funcionalidades Planejamento por funcionalidade Detalhar por funcionalidade Construir por funcionalidade
  2. • • • • • ciclo de vida do FDD

    Criar um modelo abrangente Escrever uma lista de funcionalidades Planejamento por funcionalidade Detalhar por funcionalidade Construir por funcionalidade
  3. modelo do FDD Criar um modelo abrangente Escrever uma lista

    de funcionalidades Planejamento por funcionalidade Detalhar por funcionalidade Construir por funcionalidade • ◦ ◦ ◦
  4. modelo do FDD Criar um modelo abrangente Escrever uma lista

    de funcionalidades Planejamento por funcionalidade Detalhar por funcionalidade Construir por funcionalidade • • • •
  5. modelo do FDD Criar um modelo abrangente Escrever uma lista

    de funcionalidades Planejamento por funcionalidade Detalhar por funcionalidade Construir por funcionalidade • • • • • •
  6. modelo do FDD Criar um modelo abrangente Escrever uma lista

    de funcionalidades Planejamento por funcionalidade Detalhar por funcionalidade Construir por funcionalidade • • • •
  7. Várias práticas do XP são utilizadas por equipes usando FDD

    como: • Testes unitários; • Refatoração; • Programação em pares; • Integração contínua, etc. FDD
  8. O FDD também propõe práticas como: • Inspeção formal (de

    desenho e de código) e • Posse individual de código. Partes diferente do código tem donos diferentes para garantir integridade, consistência e performance. ◦ No XP todo o time é responsável por todo o código. FDD
  9. Na prática Lean Software Development não é um método ágil;

    mas os princípios do LEAN são muito parecidos. LEAN é um conjunto de princípios que foram baseados no LEAN Manufacturing (Produção enxuta) e aplicados ao desenvolvimento de software. LEAN
  10. De acordo com a Teoria das Restrições (TOC - Theory

    of constraints), toda organização tem — em um dado momento no tempo — pelo menos uma restrição que limita a performance do sistema. teoria das restrições
  11. Um sistema puxado determina que o trabalho em progesso (WIP

    - Working in progress) deve ser configurado levando em consideração a capacidade. O objetivo é atingir um ritmo sustentável de produção e evitar sintomas como: oversotcking, bottlenecks e delays. sistema puxado
  12. • Em administração da produção, kanban significa um cartão de

    sinalização que controla os fluxos de produção e transporte em uma industria. • O cartão pode ser substituído por outro sistema de sinalização como: luzes, caixa ou locais vazios demarcados. • No caso da Toyota os cartões kanban são utilizados para sinalizar a necessidade de reposição de estoque. kanban
  13. • Permitem você visualizar o seu trabalho ◦ Você deve

    ser capaz de, a qualquer momento, olhar para a sua carga de trabalho e ser capaz de rapidamente determinar o que será sua próxima tarefa. • Limite o trabalho em progresso (WIP) ◦ Limitar o número de atividades que você trabalha simultaneamente; ◦ Torna mais fácil de visualizar o seu trabalho; ◦ Ajuda a evitar os perigos da multitarefa. kanban boards
  14. • Value Driven Delivery é muito mais um conceito do

    que uma prática ou ferramenta. • Neste modelo o que rege todo o trabalho do projeto do ponto de vista de planejamento e priorização, é o valor de uma determinada parte do escopo para o negócio. • Prioriza-se o backlog do produto do projeto de acordo com o que tem maior valor para o negócio da organização. value-driven delivery
  15. O Manifesto Ágil diz: • Indivíduos e interações mais que

    processos e ferramentas • Software em funcionamento mais que documentação abrangente • Colaboração com o cliente mais que negociação de contratos • Responder a mudanças mais que seguir um plano value-driven delivery
  16. Pesquisa do Standish Group Índices de sucesso e falhas de

    acordo com uma pesquisa na indústria feita pelo Standish Group (1994; 2012)
  17. No Scrum, um projeto se inicia com uma visão simples

    do produto que será desenvolvido. A visão pode ser vaga a princípio e ir tornando-se clara aos poucos. O __________ então, transforma essa visão em uma lista de requisitos funcionais e não-funcionais para que, quando forem desenvolvidos, reflitam essa visão. Essa lista, chamada de __________ , é priorizada pelo __________ de forma que os itens que gerem maior valor ao produto tenham maior prioridade. Completa, correta e respectivamente, as lacunas I, II e III: A. Daily Scrum - Scrum Team - Sprint B. Daily Scrum - Product Backlog - Sprint Planning Meeting C. Product Owner - Sprint - Product Backlog D. Scrum Team - Sprint Planning Meeting - Product Owner E. Product Owner - Product Backlog - Product Owner exercícios
  18. No Scrum, um projeto se inicia com uma visão simples

    do produto que será desenvolvido. A visão pode ser vaga a princípio e ir tornando-se clara aos poucos. O __________ então, transforma essa visão em uma lista de requisitos funcionais e não-funcionais para que, quando forem desenvolvidos, reflitam essa visão. Essa lista, chamada de __________ , é priorizada pelo __________ de forma que os itens que gerem maior valor ao produto tenham maior prioridade. Completa, correta e respectivamente, as lacunas I, II e III: A. Daily Scrum - Scrum Team - Sprint B. Daily Scrum - Product Backlog - Sprint Planning Meeting C. Product Owner - Sprint - Product Backlog D. Scrum Team - Sprint Planning Meeting - Product Owner E. Product Owner - Product Backlog - Product Owner exercícios
  19. No Scrum: A. Os itens do Backlog do Produto de

    ordem mais baixa (final da lista) devem ser mais claros e mais detalhados que os itens de ordem mais alta; quanto menor a ordem na lista, maior são os detalhes. Os itens do Backlog do Produto são mais refinados apenas durante o time-box da Sprint, de onde saem “Prontos”. B. Em qualquer ponto do tempo, o total do trabalho restante para alcançar o objetivo pode ser resumido. Várias práticas de estimativa como burndown e burnup são usadas para prever o progresso, uma vez que não se pode confiar no empirismo. Em ambientes complexos, o que acontecerá deve ser previsto e contar com ações associadas já definidas. C. O incremento é a soma de todos os itens do Backlog do Produto completados durante a Sprint e tudo das Sprints anteriores. Ao final da Sprint, um novo incremento deve estar “Pronto”, ou seja, estar na condição utilizável e atender a definição de “Pronto” do Time Scrum, independente do Product Owner decidir por liberá- lo realmente ou não. D. O objetivo da Sprint fornece à Equipe de Desenvolvimento precisamente quais funcionalidades a serem implementadas dentro do time-box da Sprint. Assim, a Equipe trabalha para cumprir o objetivo, implementando a funcionalidade e a tecnologia. O Product Owner não pode negociar o escopo do Backlog da Sprint dentro da Sprint. E. Além da Sprint, que é um container para outros eventos, cada evento no Scrum é uma oportunidade de inspecionar e adaptar o produto. Assim, há bastante flexibilidade na realização de eventos no Scrum, e a não inclusão de alguns dos eventos é recomendável para acelerar o ritmo do desenvolvimento. exercícios
  20. No Scrum: A. Os itens do Backlog do Produto de

    ordem mais baixa (final da lista) devem ser mais claros e mais detalhados que os itens de ordem mais alta; quanto menor a ordem na lista, maior são os detalhes. Os itens do Backlog do Produto são mais refinados apenas durante o time-box da Sprint, de onde saem “Prontos”. B. Em qualquer ponto do tempo, o total do trabalho restante para alcançar o objetivo pode ser resumido. Várias práticas de estimativa como burndown e burnup são usadas para prever o progresso, uma vez que não se pode confiar no empirismo. Em ambientes complexos, o que acontecerá deve ser previsto e contar com ações associadas já definidas. C. O incremento é a soma de todos os itens do Backlog do Produto completados durante a Sprint e tudo das Sprints anteriores. Ao final da Sprint, um novo incremento deve estar “Pronto”, ou seja, estar na condição utilizável e atender a definição de “Pronto” do Time Scrum, independente do Product Owner decidir por liberá- lo realmente ou não. D. O objetivo da Sprint fornece à Equipe de Desenvolvimento precisamente quais funcionalidades a serem implementadas dentro do time-box da Sprint. Assim, a Equipe trabalha para cumprir o objetivo, implementando a funcionalidade e a tecnologia. O Product Owner não pode negociar o escopo do Backlog da Sprint dentro da Sprint. E. Além da Sprint, que é um container para outros eventos, cada evento no Scrum é uma oportunidade de inspecionar e adaptar o produto. Assim, há bastante flexibilidade na realização de eventos no Scrum, e a não inclusão de alguns dos eventos é recomendável para acelerar o ritmo do desenvolvimento. exercícios
  21. SCRUM é um framework baseado no modelo ágil. No SCRUM,

    A. O scrum team é a equipe de desenvolvimento, necessariamente dividida em papéis como analista, designer e programador. Em geral o scrum team tem de 10 a 20 pessoas. B. As funcionalidades a serem implementadas em cada projeto ( requisitos ou histórias de usuários ) são mantidas em uma lista chamada de scrum board. C. O scrum master é um gerente no sentido dos modelos prescritivos. É um líder, um facilitador e um solucionador de conflitos. É ele quem decide quais requisitos são mais importantes. D. Um dos conceitos mais importantes é o sprint , que consiste em um ciclo de desenvolvimento que, em geral, tem duração de 4 a 7 dias. E. E o product owner tem, entre outras atribuições, a de indicar quais são os requisitos mais importantes a serem tratados em cada sprint . É responsável por conhecer e avaliar as necessidades dos clientes. exercícios
  22. SCRUM é um framework baseado no modelo ágil. No SCRUM,

    A. O scrum team é a equipe de desenvolvimento, necessariamente dividida em papéis como analista, designer e programador. Em geral o scrum team tem de 10 a 20 pessoas. B. As funcionalidades a serem implementadas em cada projeto ( requisitos ou histórias de usuários ) são mantidas em uma lista chamada de scrum board. C. O scrum master é um gerente no sentido dos modelos prescritivos. É um líder, um facilitador e um solucionador de conflitos. É ele quem decide quais requisitos são mais importantes. D. Um dos conceitos mais importantes é o sprint , que consiste em um ciclo de desenvolvimento que, em geral, tem duração de 4 a 7 dias. E. E o product owner tem, entre outras atribuições, a de indicar quais são os requisitos mais importantes a serem tratados em cada sprint . É responsável por conhecer e avaliar as necessidades dos clientes. exercícios
  23. Uma fábrica de software utiliza um ciclo de vida de

    desenvolvimento de sistemas que contempla um conjunto sequencial de ações de desenvolvimento, desde o diagnóstico do problema até os testes necessários à implementação. Além disso, nada está terminado até que todas as fases estejam completas. Esse ciclo de vida é conhecido como A. XP; B. Cascata; C. SCRUM; D. Continuum; E. Espiral. exercícios
  24. Uma fábrica de software utiliza um ciclo de vida de

    desenvolvimento de sistemas que contempla um conjunto sequencial de ações de desenvolvimento, desde o diagnóstico do problema até os testes necessários à implementação. Além disso, nada está terminado até que todas as fases estejam completas. Esse ciclo de vida é conhecido como A. XP; B. Cascata; C. SCRUM; D. Continuum; E. Espiral. exercícios
  25. Os modelos ágeis de desenvolvimento de software têm menos ênfase

    nas definições de atividades e mais ênfase na pragmática e nos fatores humanos do desenvolvimento. Um destes modelos enfatiza o uso de orientação a objetos e possui apenas duas grandes fases: 1 - Concepção e Planejamento e 2 - Construção. A fase de Concepção e Planejamento possui três disciplinas (chamadas de processos): Desenvolver Modelo Abrangente, Construir Lista de Funcionalidades e Planejar por funcionalidade. Já a fase de Construção incorpora duas disciplinas (processos): Detalhar por Funcionalidade e Construir por Funcionalidade. O texto acima apresenta a metodologia ágil conhecida como A. XP; B. Scrum; C. Crystal Clear; D. ASD; E. FDD. exercícios
  26. Os modelos ágeis de desenvolvimento de software têm menos ênfase

    nas definições de atividades e mais ênfase na pragmática e nos fatores humanos do desenvolvimento. Um destes modelos enfatiza o uso de orientação a objetos e possui apenas duas grandes fases: 1 - Concepção e Planejamento e 2 - Construção. A fase de Concepção e Planejamento possui três disciplinas (chamadas de processos): Desenvolver Modelo Abrangente, Construir Lista de Funcionalidades e Planejar por funcionalidade. Já a fase de Construção incorpora duas disciplinas (processos): Detalhar por Funcionalidade e Construir por Funcionalidade. O texto acima apresenta a metodologia ágil conhecida como A. XP; B. Scrum; C. Crystal Clear; D. ASD; E. FDD. exercícios
  27. No eXtreme Programming ? A. O código é integrado e

    testado depois de alguns dias e, no máximo, até o final da semana. B. A codificação é feita em grupos de programadores (no mínimo 3 integrantes), preferencialmente num único computador. C. As equipes de desenvolvimento estabelecem suas próprias regras, mas uma equipe pode adotar as regras de outra equipe. D. Releases quando complexos não podem deixar de fora os requisitos de negócio de maior valor para o cliente. E. E módulos não são propriedade de nenhum desenvolvedor; todo desenvolvedor da equipe tem o direito de checar um módulo e modificá- lo. exercícios
  28. No eXtreme Programming ? A. O código é integrado e

    testado depois de alguns dias e, no máximo, até o final da semana. B. A codificação é feita em grupos de programadores (no mínimo 3 integrantes), preferencialmente num único computador. C. As equipes de desenvolvimento estabelecem suas próprias regras, mas uma equipe pode adotar as regras de outra equipe. D. Releases quando complexos não podem deixar de fora os requisitos de negócio de maior valor para o cliente. E. E módulos não são propriedade de nenhum desenvolvedor; todo desenvolvedor da equipe tem o direito de checar um módulo e modificá- lo. exercícios
  29. No XP (eXtreme Programming) A. Deve-se usar o modelo em

    cascata para o desenvolvimento do software. B. Os programadores desenvolvem o software criando primeiramente os testes. C. Deve ser evitada a comunicação pessoal entre clientes e desenvolvedores, sempre dando preferência a outros meios de comunicação mais formais. D. Os programadores desenvolvem o software fazendo todos os testes possíveis no término do desenvolvimento. E. Deve-se projetar todas as funções possíveis com a máxima previsão do que ocorrerá no futuro, antes do desenvolvimento do software, a fim de evitar alterações desnecessárias. exercícios
  30. No XP (eXtreme Programming) A. Deve-se usar o modelo em

    cascata para o desenvolvimento do software. B. Os programadores desenvolvem o software criando primeiramente os testes. C. Deve ser evitada a comunicação pessoal entre clientes e desenvolvedores, sempre dando preferência a outros meios de comunicação mais formais. D. Os programadores desenvolvem o software fazendo todos os testes possíveis no término do desenvolvimento. E. Deve-se projetar todas as funções possíveis com a máxima previsão do que ocorrerá no futuro, antes do desenvolvimento do software, a fim de evitar alterações desnecessárias. exercícios
  31. São práticas recomendadas pelo processo ágil de desenvolvimento de software

    Extreme Programming (XP), EXCETO: A. Programação em Pares B. Integração Contínua C. Documentação Abundante e Detalhada D. Refatoração Frequente E. Padronização de Código exercícios
  32. São práticas recomendadas pelo processo ágil de desenvolvimento de software

    Extreme Programming (XP), EXCETO: A. Programação em Pares B. Integração Contínua C. Documentação Abundante e Detalhada D. Refatoração Frequente E. Padronização de Código exercícios