Modelo Kanban em Engenharia de Software
O que é Kanban?
Kanban é uma estrutura muito popular para desenvolvimento na metodologia ágil de desenvolvimento de software. Proporciona uma forma transparente de visualizar as tarefas e a capacidade de trabalho de uma equipe. Utiliza principalmente quadros físicos e digitais para permitir que os membros da equipe visualizem o estado atual do projeto em que estão trabalhando.
Kanban se originou na Toyota na década de 1940. O significado de Kanban em japonês é “outdoors”. O quadro Kanban possui colunas e cartões de história. As colunas não são nada, mas os estados e cartões do fluxo de trabalho nada mais são do que uma demonstração da tarefa real que um membro da equipe está executando.
Quando usar Kanban?
Aqui estão as razões para usar o método de desenvolvimento Kanban:
- Kanban pode ser usado em qualquer domínio e pode ser usado de forma muito eficaz no desenvolvimento de software. O gerenciamento de projetos Kanban ajuda a melhorar a eficiência da equipe.
- É um sistema baseado em pull. As tarefas estão sendo retiradas assim que um indivíduo está livre.
- Kanban deve ser usado quando você deseja liberar seu trabalho a qualquer momento. Requer ramificação do git, mas é factível.
- Kanban deve ser usado quando você deseja alterar as prioridades rapidamente. Para isso, basta colocar essa história no topo da fila de tarefas.
- Deve ser utilizado quando você deseja visualizar seu trabalho e deseja ver visualmente o andamento de suas tarefas.
Cartões Kanban
O sistema Kanban recomenda a visualização do trabalho. Sugere a utilização do quadro físico e do digital.
Os cartões Kanban são peças essenciais do quadro Kanban, pois representam o trabalho que a equipe está realizando. Esses cartões terão
- Prioridade
- Proprietário
- Formato
- Data de Vencimento
Uma coluna no quadro Kanban representa o estágio de trabalho e você pode colocar um limite WIP (Work in Progress) na coluna. O limite WIP significa o número máximo de cartões que podem permanecer naquela coluna.
Como o gerenciamento de projetos Kanban usa um sistema baseado em pull, conforme e quando um desenvolvedor estiver livre, ele poderá puxar um cartão da coluna de tarefas para a coluna de desenvolvimento.
Quadro Kanban
Quadro Kanban é uma ferramenta ágil de gerenciamento de projetos que ajuda a implementar Kanban para gerenciar projetos para fins pessoais e comerciais. É um quadro físico ou digital (JIRA) desenvolvido para ajudar as equipes a visualizar seu trabalho nas diferentes etapas e processos. Também ajuda a representar as etapas do trabalho com colunas por meio de cartões.
Possui colunas que representam o status do trabalho como
- Pendência,
- Dev
- Ensaios
- Feito.
Cada uma dessas colunas pode ter cartões <=o limite de WIP. Os cartões representam o trabalho real.
Você pode usar números positivos para limitar o trabalho em andamento, e esse número limite pode ser colocado no topo das colunas em quadros Kanban físicos e digitais. Qualquer indivíduo da equipe pode gerenciar o estado do seu cartão e toda a equipe pode visualizar o fluxo de trabalho. A seguir neste tutorial Kanban, aprenderemos sobre o fluxo de trabalho Kanban.
Fluxo de trabalho Kanban
Fluxo de trabalho Kanban é um conjunto de etapas que ajuda as equipes a definir políticas e princípios explícitos no Kanban. Representa as regras e procedimentos enquanto o trabalho prossegue em vários estágios dos ciclos de desenvolvimento e entrega. O fluxo de trabalho Kanban consiste em processos passo a passo entre o início e a entrega de uma tarefa específica.
O princípio básico que o Kanban segue é, “pare de começar, comece a terminar”. Com a ajuda dos limites de WIP, é possível realizar mais trabalho. Existem fluxos de trabalho e estados Kanban personalizáveis disponíveis em qualquer ferramenta moderna como o JIRA.
Abaixo estão os estados básicos que muitas equipes de software seguem para o gerenciamento de fluxo de trabalho.
Unidos | Compreensão das tarefas |
---|---|
Façam | As tarefas chegam aqui pela primeira vez neste estado. |
Pronto para análise | Analise a tarefa e adicione requisitos completamente. |
Pronto para desenvolvimento | A análise foi concluída e o desenvolvimento pode ser iniciado. |
Em desenvolvimento | As tarefas estão sendo desenvolvidas. |
Pronto para teste | Desenvolvimento concluído e agora os testes podem começar. |
No teste | As tarefas estão sendo testadas. |
Pronto para lançamento | Teste concluído; a liberação pode acontecer. |
Liberado/Concluído | Liberado. |
Os Quatro Princípios do Kanban
Abaixo estão os quatro princípios básicos do Kanban:
- Comece com o que você tem agora: O sistema Kanban sugere trabalhar de forma incremental e começar com o que você tem atualmente. Como uma de suas práticas é melhorar continuamente, você deve melhorar o sistema gradativamente.
- Concordar em buscar mudanças incrementais e evolutivas: Kanban recomenda uma mudança incremental no processo, e você não deve fazer uma grande mudança no processo de uma só vez.
- Respeite o processo, funções e responsabilidades atuais: Mais uma vez, comece com o que você tem agora e mude o processo, a função e as responsabilidades de maneira incremental.
- Incentive atos de liderança em todos os níveis: Cada indivíduo pode atuar como líder e fornecer ideias para melhorar a eficiência do sistema Kanban geral. Você não deve pensar que esta é uma atividade de nível gerencial, e até o membro mais jovem da equipe pode atuar como líder.
As seis práticas básicas do Kanban
A seguir estão as seis principais práticas principais do Kanban:
- Visualize o fluxo de trabalho: Este princípio sugere ter um quadro Kanban (físico ou digital) para visualizar o fluxo de trabalho. Cada indivíduo de uma equipe deve ver seu cartão e os cartões dos demais membros da equipe. Você pode mover suas cartas em colunas diferentes conforme a imagem acima. Traz muita transparência dentro da equipe e também facilita a resolução de bloqueadores
- Limitar o trabalho em andamento: Kanban é um sistema baseado em pull e melhora a eficiência de uma equipe para limitar o trabalho em andamento e ter tarefas que podem ser concluídas no prazo determinado pela equipe. Este limite de WIP se aplica do início ao fim do fluxo de trabalho. Você pode aplicar o limite no topo da coluna usando um número inteiro positivo.
- Concentre-se no fluxo: Este princípio concentra-se no fluxo e em quaisquer interrupções. Se houver interrupções ou bloqueadores, eles deverão ser corrigidos permanentemente.
- Políticas Explícitas: Políticas podem ser estabelecidas em equipe para reduzir o retrabalho e focar nas áreas que requerem atenção ou onde é mais eficaz.
- Loop de feedback: Os ciclos de feedback são muito essenciais no Kanban. Não é apenas dentro da equipe, mas entre várias equipes, treinadores, etc. Isso ajuda a melhorar a saúde geral do sistema Kanban.
- Melhoria Contínua: Este é o princípio fundamental do sistema Kanban. Afirma que você sempre pode melhorar o processo e isso resultará em melhor eficiência.
Sistema baseado em pull
Kanban é um método baseado em pull, onde as tarefas são puxadas em vez de empurradas. Assim que tiver concluído seu cartão atual, você poderá retirar um novo cartão da coluna anterior do quadro Kanban.
Com o limite WIP, o Kanban auxilia na melhoria do Lead Time e do Cycle Time. Deve haver a menor diferença possível entre esses dois horários. Por exemplo, temos 5 desenvolvedores e apenas 1 testador; o que acontecerá neste caso? Sempre haveria muitos cartões que exigiriam testes e eles ficariam ociosos e esperando.
Para superar os problemas mencionados acima e melhorar a eficiência, o Kanban segue a abordagem baseada na extração com limites de WIP, onde haveria um número limitado de cartões a serem extraídos.
Portanto, um testador retirará uma tarefa do estágio “pronto para teste” quando terminar a tarefa atual em mãos. Com o limite de WIP nas colunas Kanban (estágios de desenvolvimento), você não terá muitos cartões desacompanhados no fluxo de trabalho Kanban.
O sistema baseado em pull também ajuda a encontrar a velocidade correta para a equipe. Com a velocidade certa definida, a equipe terá um desempenho melhor.
Prazo de entrega e tempo de ciclo
No método Kanban, o lead time e o tempo de ciclo são amplamente utilizados, há uma diferença entre os dois e é importante entender isso para evitar confusão.
Tempo De Espera | Tempo de Ciclo |
---|---|
O lead time é medido como o tempo entre a chegada da tarefa em seu fluxo de trabalho e sua saída do fluxo de trabalho, ou seja, ela foi liberada. | O tempo de ciclo é medido como o tempo entre a chegada da tarefa no estado “em andamento” e a chegada da tarefa no estado “pronta para liberação”. |
Aqui também é importante entender que não deve incluir o tempo que leva entre a preparação para o lançamento e o lançamento real.
Cycle Time = Work in Progress/Throughput
No cenário ideal, a lacuna entre o lead time e o tempo de ciclo deve ser mínima, e o Kanban usa um diagrama de fluxo cumulativo (CFD) para medir os dados históricos de lead e de tempo de ciclo.
Diagrama de Fluxo Cumulativo (CFD)
CFD é um gráfico que está disponível em todos os principais ferramentas de gerenciamento de fluxo de trabalho como JIRA. Este gráfico mede a quantidade total de cartões/tarefas de trabalho que entraram no fluxo de trabalho e acumularam cartões/tarefas concluídas ao longo do tempo.
Isso ajuda você a ter uma estimativa do tempo médio de entrega e do tempo de ciclo para um tempo pré-especificado.
O diagrama CFD fornecerá indicadores ou áreas problemáticas para corrigir. Ele fornecerá uma imagem clara e baseada neste diagrama. Você pode corrigir o lead time e o tempo de ciclo da sua equipe.
- Tempo De Espera: É o tempo entre a chegada de um novo cartão em seu fluxo de trabalho e sua saída final do fluxo de trabalho.
- Tempo de Ciclo: É o período entre a chegada do cartão ao estado de funcionamento e o momento em que o cartão está pronto para liberação.
- WIP: o trabalho em andamento (WIP) limita a quantidade máxima de itens de trabalho nos diferentes estágios do fluxo de trabalho.
- Produtividade: É o desempenho real e informa o número real de cartões entregues em um determinado período.
Taxa de transferência = WIP/tempo de ciclo
Limitando WIP (trabalho em andamento)
Na metodologia de desenvolvimento Kanban, o WIP limita o número de tarefas/cartões que podem ser trabalhados por um membro da equipe ou por um todo de uma vez.
Os limites de WIP garantem que a equipe estabilize seu trabalho e aumentem a natureza preditiva, essencial no sistema pull. Normalmente, a decisão do limite de WIP é tomada pela própria equipe.
Razão para definir os limites de WIP
Aqui estão os motivos para definir os limites de WIP:
- Ele muda o foco em fazer as coisas à medida que o indivíduo se concentra em uma única tarefa de cada vez.
- Ajuda as equipes a compreender sua capacidade.
- Melhora a produtividade e o tempo de ciclo.
- Ajuda a evitar o acúmulo de tarefas (em modo de espera).
- Ajuda na movimentação do fluxo de trabalho e as tarefas continuam em movimento.
- Também ajuda a resolver bloqueadores, pois um indivíduo não alterna entre tarefas diferentes.
Scrum vs. Kanban
Aqui estão as diferenças importantes entre Scrum vs. Kanban
Scrum | Kanban |
---|---|
Scrum enfatiza o planejamento. Começa com o planejamento do sprint e termina com a retrospectiva do sprint. São realizadas muitas reuniões que ajudam a garantir que a equipe esteja alinhada com as próximas etapas, prioridades e aprendizados dos sprints anteriores. | Kanban está aberto para fazer alterações em qualquer lugar. Isso significa que há menos rigidez e as coisas podem mudar com frequência. |
Recomenda a coleta de medições de tempo feito durante sprints | Kanban recomenda gráficos para obter uma visão geral do progresso da equipe ao longo do tempo. |
Scrum já não pede um compromisso das equipes. Em vez disso, trata-se das metas e previsões do sprint. | Kanban depende de time-boxing e previsões. |
Ele enfatiza o planejamento e, portanto, estimativa tem um papel muito importante no Scrum | Kanban tem sem requisitos obrigatórios para estimativa. |
Cada indivíduo tem seu papel e responsabilidades. | Não definir funções com tanta flexibilidade em termos de responsabilidades individuais. |
As iterações/Sprints têm duração fixa. Essa duração varia de 2 semanas a 1 mês. | Kanban é não baseado na duração. Isso é medido em relação aos tempos de ciclo. |
Equipes são obrigado a cometer uma quantidade específica de trabalho. | Compromisso não é necessário é opcional para equipes. |
Neste método, equipes multifuncionais são importantes porque podem lidar com qualquer interrupção que possa causar um gargalo no desenvolvimento de software. | Tendo equipe especializada é importante. |
É não é possível adicionar itens para iterações contínuas. | Novo itens podem ser facilmente adicionados se a capacidade adicional estiver disponível. |
Um backlog de sprint pertence apenas a um equipe única. | Equipe múltiplas podem compartilhar o quadro Kanban. |
As entregas são determinado por sprints, para o qual um conjunto de trabalhos deve ser concluído e pronto para revisão. | Produtos e processos são entregue continuamente de acordo com a necessidade. Portanto, o processo de teste e revisão ocorre simultaneamente. |
Método de desenvolvimento de software Scrum foca no backlog. | Método Kanban inteiramente concentra-se no painel de processos. |
Cada membro da equipe tem uma função específica no Scrum master decide os cronogramas, o proprietário do produto define metas e objetivos e os membros da equipe conduzem o trabalho de desenvolvimento. | Não há funções predefinidas para uma equipe. Contudo, ainda poderá haver um Gerente de Projeto; a equipe é incentivada a colaborar e trabalhar em conjunto. |
Melhor para projetos com mudando prioridades. | Ideal para equipes com prioridades estáveis isso provavelmente não mudará com o tempo. |
Mede a produção usando velocidade através de sprints. | Mede a produção usando tempo de ciclo ou o tempo exato que leva para concluir uma parte completa de um projeto. |
Scrum requer um mudança completa do modelo tradicional ao modelo Agile Scrum que seria implementado no projeto. | Kanban não permite mudanças drásticas no projeto. |
É um método ideal para projetos com prioridades amplamente variadas. | Mais adequado para equipes com prioridades estáveis. |
No Scrum, todo o team se concentra em colaborar e concluir a tarefa para fornecer trabalho de desenvolvimento de qualidade. | As equipes trabalham para atingir metas e reduza o tempo para concluir todo o processo. Assim, a redução do ciclo de tempo é o maior indicador de sucesso aqui. |
Scrum ênfase em seus horários; novos itens não podem ser adicionados a iterações em andamento. | Kanban é mais iterativo por natureza, pois não tem prazos específicos. Assim, novos itens podem ser adicionados continuamente sempre que houver capacidade adicional disponível. |
O trabalho total é feito em lotes/Sprints. | Todo o projeto é executado na movimentação de item de trabalho de thread único fluxos. |
Mestre Scrum atua como um solucionador de problemas. | Kanban incentiva cada membro da equipe é um líder e compartilhando responsabilidades entre todos eles. |
Scrum prescreve iterações com limite de tempo. | Kanban se concentra em planejando uma duração diferente para iteração individual. |
Scrum ajuda as empresas a economizar tempo e dinheiro. | Método Kanban foco na melhoria contínua, produtividade e eficiência. |
Alcançar comunicação estável e consistente de desempenho em todos os níveis. | Os membros da equipe são mais propensos a atingir seus objetivos com muito mais facilidade por causa da natureza visual dos quadros Kanban. |
Projeto são codificado e testado durante o sprint rever | Os membros da equipe são mais propensos a atingir seus objetivos com muito mais facilidade por causa da natureza visual dos quadros Kanban. |
É mais fácil de se adaptar às constantes mudanças por causa dos sprints curtos e do feedback regular. | É projetado para uma saída regular e estável, grandes mudanças na demanda dos clientes podem fazer com que o Kanban falhe. |
O custo total do projeto é mínimo, o que pode levar a resultado mais rápido e barato. | Se uma tarefa não for corretamente estimada, o o custo total do projeto nunca será preciso. Nesses casos, a tarefa pode ser distribuída em vários sprints. |
Esta metodologia requer membros de equipe experientes apenas. Portanto, se a equipe for formada por pessoas que não sejam especialistas, o projeto não poderá ser concluído a tempo. | Não prazos específicos são alocados em cada fase, para que os membros da equipe nunca tenham ideia de quanto tempo podem levar em cada fase. |
Neste método Agile Scrum, é mais fácil entregar um produto de qualidade em horário agendado. | Ele é projetado para um saída regular e constante, grandes mudanças na demanda dos clientes podem fazer o Kanban cair. |
A o plano do projeto nunca perturbará mesmo que um membro da equipe deixe a equipe. | Se algum dos membros da equipe sair durante o desenvolvimento, isso pode prejudicar o desenvolvimento do projeto. |
Reuniões diárias às vezes frustrar membros do time. | Quadro Kanban desatualizado pode levar a problemas no processo de desenvolvimento. |
Grandes projetos podem ser facilmente divididos em sprints facilmente gerenciáveis. |
Resumo
- Definição Kanban: Kanban é definido como uma metodologia de desenvolvimento ágil para desenvolver software, automóveis, bens, medicamentos, calçados ou qualquer outro trabalho de fabricação.
- Kanban usa o quadro Kanban para visualizar o trabalho. Ele usa colunas como etapas (tarefas, desenvolvimento, testes, etc.) e cartões como item de trabalho.
- A metodologia Kanban suporta o quadro físico e digital para visualização.
- Kanban é um sistema baseado em pull, e os cartões são puxados do estágio anterior para os estágios atuais pelos membros da equipe.
- O método Kanban usa o diagrama CFD para entender o lead time e o tempo de ciclo da equipe. Este gráfico ajuda as equipes a corrigir a lacuna entre esses dois tempos e a melhorar a eficiência.
- Metodologia de desenvolvimento Kanban, WIP limita o número de tarefas/cartões que podem ser trabalhados por um membro da equipe ou por um todo de uma vez.
- Os limites de WIP mudam o foco em fazer as coisas enquanto um indivíduo se concentra em uma única tarefa por vez.