Please enable JavaScript.
Coggle requires JavaScript to display documents.
:pencil2: MADS - Métodos Ágeis de Desenvolvimento de Software - Coggle…
:pencil2:
MADS - Métodos Ágeis de Desenvolvimento de Software
Processo de Software
Definição: um conjunto de atividades que levam a produção de um produto de software.
Atividades: especificação, projeto e implementação, validação e evolução de software
Especificação: estudo de viabilidade, elicitação e análise de requisitos, especificação de requisitos e validação de requisitos.
Projeto: arquitetura, interface entre componentes, componente e banco de dados.
Implementação: codificação.
Validação: teste de unidade, integração e validação
Evolução: mudanças que ocorrem no decorrer do ciclo de vida de um software.
Descrições de processo: produtos, papéis, pré e pós-condições.
NÃO EXISTE UM PROCESSO IDEAL (depende do contexto em que se trabalha).
Modelos Tradicionais de Processo de Software
Cascata
abordagem sequencial para a criação de um software
Fases
Análise (levantamento de requisitos)
Projeto/Design: representação técnica dos requisitos.
Codificação
Teste
Suporte
Prototipação
cliente consegue visualizar o que será gerado dentro do processo.
Fases
Definição de requisitos
Projeto Rápido
Avaliação do protótipo
Incremental
cada sequência linear produz um incremento entregável
(deliverable) do software
Espiral
o software é desenvolvido em uma série de
versões evolucionárias
Fases
Planejamento (estimativas, cronogramas e análise de riscos
Modelagem (análise e projeto)
Construção (código e teste)
Entrega (entrega e feedback)
Comunicação
RUP
baseado nos artefatos da UML que serão produzidos ao longo do ciclo de produção do software
Fases
Concepção
Elaboração
Construção
Transição
Disciplinas
Modelagem de Negócios
Requisitos
Análise e Design
Implementação
Teste
Implantação
Gerência de Configuração e mudança
Gerencia de projeto
Ambiente
Manifesto Ágil
Processos ágeis no desenvolvimento de software.
Novos padrões de comportamento e atitude.
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 e Responder a mudanças mais que seguir um plano.
Princípios Ágeis
Satisfazer o cliente
Entregar que não demoram
Valor agregado
Mudanças de requisitos
Aceitar mudanças
Software funcionando
quanto mais rápido entregar, melhor
Trabalhar com o cliente
Motivação da Equipe
Comunicação face-a-face
Desenvolvimento sustentável
Excelência Técnica
Simplicidade
Auto-organização
Reflexão
Lean Software Development
Pensamento
Valor
Fluxo de Valor
Fluxo
Puxar
Perfeição
Eliminar desperdícios
Trabalho inacabado
Funcionalidades extras
Reaprendizagem
Transferência de controle
Troca de tarefas
Atrasos
Defeitos
Integrar qualidade
Criar conhecimento
Adiar comprometimentos
Entregar rápido
Respeitar as pessoas
Otimizar o todo
Scrum
Características
Equipes pequenas e multidisciplinares
Equipes auto-organizáveis
comunicação e cooperação
Sprints com duração de até um mês
Reunião de planejamento
Scrum diária
Revisão da sprint
Retrospectiva da Sprint
Burndown Chart (acompanhamento)
Papéis
Product Owner (PO)
Scrum Master
Equipe de Desenvolvimento
Artefatos
Backlog do Produto
Backlog da Sprint
Incremento do Produto
Cerimônias
Reunião de Planejamento da Sprint
Scrum Diária
Revisão da Sprint
Retrospectiva da Sprint
Extreme Programming
Valores
Comunicação
Simplicidade
Feedback
Coragem
Atividades
Codificar
Testar
Ouvir
Projetar
Principios
Feedback Rápido
Simplicidade Presumida
Mudanças Incrementais
Aceitação das mudanças
Alta qualidade
Ensinar aprendendo
Investimento inicial pequeno
Jogar para ganhar
Experimentação concreta
Comunicação honesta e franca
Trabalhar em favor dos instintos do pessoal, não contra eles
Aceitação de responsabilidades
Adaptação local
Viajar com pouca bagagem
Métricas genuínas
Práticas
Jogo do Planejamento
Entregas Frequentes
Metáfora
Projeto Simples
Teste
Refatoração
Programação em pares
Propriedade coletiva
Integração contínua
Semana de 40 horas
Cliente presente
Padrões de codificação
Kanban
Atividades
Tornar o trabalho visível
Limitar o trabalho em progresso
Mapa Visual com limites de WIP
Fazer o trabalho fluir
Acompanhamento
Cummulative Flow Diagram
Mostra a quantidade de WIP e cada estagio do sistema
Entrega Contínua de Software
Crie um processo de confiabilidade e repetitividade de entrega de versão
Automatize quase tudo
Mantenha tudo sobre controle de versão
Se é difícil, faça com mais frequência e amenize o sofrimento
A qualidade deve estar presente desde o início
Pronto quer dizer versão entregue
Todos são responsáveis pelo processo de entrega
Melhoria Contínua