Criador : Jeff De Luca Singapura, no final de 1997 FDD evoluiu de um projeto real Automação de empréstimos bancários Luca era gerente de projeto 50 membros da equipe de desenvolvedores Peter Coad : Arquiteto Chefe Análise orientada a objetos e especialista em design da década de 1990 História
Feature Driven Development – Desenvolvimento guiado por funcionalidades É uma metodologia ágil para gerenciamento e desenvolvimento de software A abordagem do FDD não abrange todo o processo de desenvolvimento de software, mas se concentra nas fases de design e construção FDD usa um modelo de iteração curta O FDD combina as principais vantagens de outras abordagens ágeis populares com outras práticas recomendadas reconhecidas pela indústria O FDD foi criado para escalar facilmente para projetos e equipes muito maiores Possui mais requisites formais e passos que outras metodollogias ágeis como XP O que é FDD?
Lema do FDD Resultados frequentes, tangíveis e funcionais Adail Rentamal
FDD - Princípios Estamos descobrindo maneiras melhores de desenvolver software fazendo-o nós mesmos e ajudando outros a fazê-lo. Através desse trabalho, passamos a valorizar: Indivíduos e interação entre eles 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 Mesmo havendo valor nos itens à direita, valorizamos mais os itens à esquerda
FDD Aplicabilidade – é mais formal que outras metodologias ágeis e é recomendado para projetos com mais de dez desenvolvedores. Características Fornece a estrutura suficiente para equipes maiores Enfatiza a produção de software de qualidade Entrega resultados frequentes, tangíveis e funcionais Realiza trabalho significativo desde o início, antes de tornar-se altamente iterativa Fornece informação de estado e progresso de forma simples e compreensível Agradam a clientes, gerentes e desenvolvedores
Classe atribuída a um desenvolvedor específico Proprietário da classe é responsável por todas as mudanças na implementação de novos recursos Propriedade Coletiva Qualquer desenvolvedor pode modificar qualquer artefato a qualquer momento Aborda o problema de impasse A propriedade da classe não implica exclusividade, mas apenas responsabilidade Propriedade de Classe
Vantagens Alguém responsável pela integridade de cada classe Cada aula terá um especialista disponível Os proprietários da classe podem fazer alterações muito mais rápido Facilmente empresta a noção de propriedade de código Auxilia no dimensionamento de FDD para equipes maiores Propriedade de Classe
Gestor de projeto Arquiteto chefe Gerente de desenvolvimento Especialistas em Domínio Proprietários de classe Programadores Chefes FDD - Funções Primárias
Os programadores chefes escolhem equipes com base no recurso atual em desenvolvimento Os programadores chefes lideram a equipe escolhida Normalmente 3 a 5 pessoas Após a conclusão do recurso atual, a equipe se dispersa Cada equipe trabalhará simultaneamente em sua própria iteração independente Possível estar em várias equipes ao mesmo tempo FDD - Equipes de Recursos
FDD – Processos
FDD – Processos DMA – Desenvolver um Modelo abrangente Análise orientada a objetos CLF – Construir a lista de funcionalidades Decomposição funcional PPF – Planejar por funcionalidade Planejamento incremental DPF – Detalhar por funcionalidade Desenho (do projeto) orientado por objetos CPF – Construir por funcionalidade Programação e teste orientados por objetos
FDD – Processos DMA – Desenvolver um Modelo abrangente Diagramas de classes com foco na forma do modelo, isto é, quais classes estão no domínio, como estão conectadas umas as outras e sob quais restrições Método e atributos identificados são colocados nas classes Diagrama de sequência e/ou de máquina de estados, se houver, Comentários sobre o modelo para registrar o motivo pelo qual uma forma de modelo foi escolhida e/ou quais alternativas foram consideradas CLF – Construir a lista de funcionalidades Uma lista de áreas de negócios Para cada área, uma lista de atividades de negócio dentro daquela área Para cada passo da atividade de negócio, uma funcionalidade que satisfaça ao passo
FDD – Processos PPF – Planejar por funcionalidade Atividade de negócio com datas de termino (mês e ano) Programadores-líderes atribuídos à atividades de negócio Áreas com datas de término (mês e ano), derivadas da data do último término de suas respectivas atividades de negócios Lista das classes e seus respectivos desenvolvedores proprietários DPF – Detalhar por funcionalidade Uma capa com comentários, que completa e descreve o pacote de projeto de tal forma a ser suficiente para futuros revisores Os requisitos referenciados (se houver) na forma de documentos e de todos os memorandos de configuração relacionados, e documentação de apoio Os diagramas de sequência
FDD – Processos DPF – Detalhar por funcionalidade Alternativas de projeto (design se houver) O modelo de objetos com classes, métodos e atributos novos/atualizados A saída gerada pela <ferramenta> para os prefácios de classes e métodos, criados ou modificados por esse projeto (design) Lista de tarefas e agendamentos para itens de ação nas classes afetadas para cada membro da equipe CPF – Construir por funcionalidade Classe(s) e/ou método(s) que passaram na inspeção do código com sucesso Classe(s) que foi( ram ) promovida(s) à versão atual (build) O término de uma função com valor para o cliente (funcionalidade)
FDD combina muitas das melhores práticas de outros modelos ágeis O FDD foi inicialmente criado e é mais voltado para grandes equipes de projeto FDD coloca menos foco no design inicial e rapidamente chega ao ponto onde a equipe pode fornecer novas funcionalidades para o projeto, característica por característica Resumindo
FDD Caso de Sucesso https://www.youtube.com/watch?v=iEDFgXX-WcA&ab_channel=MarianaAzevedo
LSD Criado a partir do sistema de produção Toyota É um conjunto de princípios e ferramentas Promete alcançar qualidade, velocidade e alinhamento com o cliente Sete princípios do Lean Thinking (“Pensamento Enxuto”) Eliminar desperdício Ampliar a aprendizagem Decidir o mais tarde possível Entregar o mais rápido possível Capacitar a equipe Construir integrada Ver o todo
LSD Eliminar desperdício O que é desperdício? Qualquer coisa que não adicione valor ao produto Desperdício d desenvolvimento de software trabalho parcialmente feito Processos extras Recursos extras Troca de tarefas Espera Movimentar Detectar Atividades de gestão
LSD Ampliar a aprendizagem Desenvolver software é aprender Design de software é um processo de resolução de problemas Iteração curta acelera o processo de aprendizagem Unidade de gravação -> codificação-> refatoração -> teste de integração -> feedback do cliente Decidir o mais tarde possível Desenvolvimento de software é sobre incerteza Existem muitas respostas para uma pergunta Deixe o cliente ver o produto rapidamente, deixe-o decidir, a resposta voltará mais tarde Você não pode prever o futuro! Mantenha a flexibilidade
LSD Entregar o mais rápido possível Todos gostam de entrega rápida Entrega rápida para o cliente, veja se é o que eles pediram primeiro Sistema puxado. Ex. Kanban Capacitar a equipe Encontre o bem e deixe-os fazer o trabalho deles As pessoas não são recursos, elas precisam de motivação Construir integrada Perceber integridade Experiência do cliente com um sistema
LSD Construir integrada Integridade conceitual Flexibilidade Manutenção Eficiência Capacidade de resposta Ver o todo Produto de software! = soma de sua parte Pense sobre as áreas afetadas ao corrigir defeitos / adicionar novos recursos Otimização
Kaizen
Kaizen Mudar para melhor Aperfeiçoamento constante Melhoria contínua
KAIZEN Kaizen significa melhoria contínua, envolvendo todos, inclusive gerentes e operários, que discutem possibilidades de melhorias inovadoras e sustentáveis, visando agregar valores Etapas do Kaizen : 1) Identificar potenciais de melhoria - Aumentar a segurança do trabalho - Melhorar a qualidade do trabalho - Facilitar a execução do trabalho - Reduzir os custos relacionados ao trabalho - Melhorar o uso do tempo na execução do trabalho
2) Analisar a situação vigente - Documentar todos os acontecimentos - Respeitar posições e colocações do grupo 3) Gerar idéias - Brainstorming : técnica usada para maximizar a geração de idéias provenientes de um grupo de pessoas. Estas idéias são relacionadas com as causas ou soluções de um problema, ou ainda, direcionadas para a criação de novos produtos ou inovações KAIZEN
4) Planejar -Cronologia -Responsabilidades -Análise da viabilidade econômica 5) Implementar -Treinamento -Conscientização -Adesão de novos membros no grupo -Formação de novos grupos KAIZEN
6) Avaliar os resultados -Análise de resultados -Desvios da implementação (problemas) -Apresentação dos resultados -Novos projetos KAIZEN KAIZEN
KAIZEN Os mandamentos do KAIZEN Eliminar o desperdício Busca de melhoria continuamente Envolvimento de todas as pessoas, sem exceções Aumento de produtividade, sem investimentos significativos-estratégia barata Total transparência de procedimentos, processos e valores Valorização das pessoas “ Humanware ” O lema essencial da aprendizagem organizacional é aprender fazendo
Kaizen
Kaizen
Kaizen e o PDCA
Elementos para o Sucesso do Kaizen Envolvimento da alta gerência Flexibilidade a mudança Distribuição clara de tarefas Equipes multifuncionais e harmoniosas Treinamento Persistência Foco
Principais Ferramentas Utilizadas Kaizen é um guarda-chuva que abrange todas as técnicas de melhoria, aglutinando-as de maneira harmoniosa para tirar o máximo proveito do que cada uma oferece Diagrama de causa e efeito Brainstorming 5W 2H Kanban
Diagrama de Causa e Efeito – Ishikawa
5W 2H
Kaizen – Caso de Uso https://www.youtube.com/watch?v=moY0cD7EOaY&ab_channel=Compet%C3%AAnciaTotal https://www.youtube.com/watch?v=hlROsIfqT-A
Kanban
Definição Kaizen foi um sistema utilizado pelos japoneses no período pós guerra , tinha como objetivo principal a melhoria contínua dos processos , envolvendo todos desde gerentes a operários . A filosofia do Kaizen afirma que o nosso modo de vida , seja no trabalho , na sociedade ou em casa, merece ser constantemente melhorado . É um sistema que controla a transferência de material de um estágio a outro da operação. Kanban é um método de operacionalizar o sistema de planejamento e controle puxado. Kanban é a palavra japonesa para cartão ou sinal. Ele controla a transferência de material de um estágio a outro da operação. Em uma forma mais simples, é um cartão utilizado por um estágio cliente, para avisar seu estágio fornecedor que mais material deve ser enviado.
KANBAN Significado : palavra de origem japonesa que significa, cartão, cartaz, banners, onde é uma técnica de programação da produção em um curto intervalo de tempo que usa cartões para acionar o “puxar” de materiais de um processo para outro Objetivo : redução dos tempos de manufatura com a eliminação de estoques intermediários, mantendo um controle efetivo sobre o fluxo de materiais e processos até a obtenção dos produtos finais Regras básicas do KANBAN : o controle da produção através deste sistema exige grande disciplina de todos envolvidos. Para o seu funcionamento adequado, estão instituídas sete regras básicas:
Kanban Existe basicamente três tipos de Kanban : Kanban de transporte: é usado para avisar o estágio anterior que o material pode ser retirado do estoque e transferido para uma destinação específica. Kanban de produção: é um sinal para um processo produtivo de que ele pode começar a produzir um item para que seja colocado em estoque Kanban do fornecedor: ele é similar ao Kanban de transporte mas é mais usado para fornecedores externos.
KANBAN 1) Produtos com defeito não devem seguir o fluxo da produção a produção de defeituosos significa um investimento de materiais, mão-de-obra, equipamentos e facilidades de produção, em um bem que depois de concluído não poderá ser aproveitado 2) A operação posterior deve retirar na operação anterior somente os itens necessários na quantidade e tempo corretos para atendimento do planejamento da produção retira no centro produtivo anterior os componentes que necessita, quando necessita
3) Cada centro produtivo deverá produzir somente a mesma quantidade de itens retiradas pelos centros produtivos, seus clientes, de acordo com o ordenado pelos KANBANS Não se deve produzir mais do que o solicitado 4) A carga de produção deve ser uniforme e nivelada A operação fornecedora deverá ter sempre uma capacidade um pouco maior que a operação consumidora para possíveis flutuações do mercado consumidor KANBAN
5) Os KANBANS podem tolerar pequenas variações da demanda No máximo 20%, sem que seja necessário alterar os cálculos e os números de KANBANS em circulação na fábrica 6) Estabilidade dos processos produtivos Estabelecimento de normas padronizadas para que as operações sejam uniformes 7) O número de KANBANS deve ser o menor possível Para evitar excessos de estoque KANBAN
Como Funciona o Kanban ?
Em que o Kanban Ajuda? Dá transparência ao processo e seu fluxo Expõe gargalos, filas, variabilidade e desperdício Incentiva a discussão sobre melhorias Encoraja a evolução incremental de processos existentes A abordagem de “parar a linha de produção” parece encorajar níveis mais elevados de qualidade e uma queda rápida de retrabalho
Quais os Pontos Fracos do Kanban Limite de atividades Muito alto ou muito baixo A necessidade de concentrar toda a equipe e toda a empresa na solução o problema para desbloquear o item e restaurar o fluxo
Kanban Caso de uso https://www.youtube.com/watch?v=qJRbAXlhJ3c&ab_channel=Pluga.co https://www.youtube.com/watch?v=ypxzLz8D6QU&ab_channel=AnaGSoares
KANBAN – Resumo É adequado para implantação nos mais diversos segmentos empresariais como forma de gerenciamento da produção Trata-se de um ferramenta poderosa para se alcançar o JIT Requer planejamento prévio adequado, treinamento continuado e auto-disciplina Trata-se de um sistema motivador que alia postos de trabalho sempre ativos, redução dos estoques, aumento da produtividade e respeito ao indivíduo