Um guia para iniciantes para gerenciar o desenvolvimento de software com Kanban e Trello
Publicados: 2022-03-11Todo mundo é um gerente de projeto. Esteja você gerenciando o desenvolvimento de um novo aplicativo e expandindo sua startup, trabalhando em um novo projeto empresarial de bilhões de dólares ou apenas tentando animar seu quintal com um paisagismo DIY, você está sempre gerenciando um projeto.
O sucesso do seu projeto depende de muitos fatores, mas um dos motivos mais comuns pelos quais os projetos falham é a falta de gerenciamento ou um gerenciamento de projeto totalmente ruim . Não importa quão pequena seja sua equipe, ou quão claramente seus requisitos sejam documentados, se você não gerenciar sua equipe adequadamente, seu projeto está fadado ao fracasso.
O gerenciamento ágil de projetos é um método amplamente aceito de abordagem de projetos modernos de desenvolvimento de software. Mas o que realmente significa Agile?
Para um mergulho mais profundo nos princípios do Agile, sugiro a leitura do nosso Ultimate Guide to Agile Project Management.
Neste post, explicaremos os fundamentos do gerenciamento ágil de projetos com Kanban.
Mesmo se você for um gerente de projeto experiente que entende os princípios ágeis de dentro e de fora, você deve refrescar sua memória e se lembrar dos conceitos básicos. Os ciclos de inovação no desenvolvimento de software estão em constante aceleração, tornando o gerenciamento de projetos mais complexo a cada iteração. Voltar aos princípios fundamentais e solidificar os princípios básicos do Agile é sempre importante. Afinal, a repetição é a mãe de todo conhecimento.
Kanban é um dos métodos mais fáceis de gerenciar qualquer projeto de desenvolvimento de software Agile. Você pode lidar facilmente com uma equipe de desenvolvimento local que trabalha no mesmo escritório ou equipe distribuída, espalhada por vários fusos horários.
Kanban não é um processo. É uma forma de gerenciar qualquer processo com alterações mínimas nas atividades operacionais estabelecidas pela equipe.
Para aplicar os princípios Kanban ao seu trabalho, você deve aplicar duas regras simples:
- Visualize seu processo.
- Limite o trabalho em andamento.
Visualize Seu Processo
A visualização de dados é uma maneira rápida e fácil de transmitir informações de maneira universal e fácil de entender. Ao olhar para imagens, o cérebro humano pode processar várias informações simultaneamente. Algumas pesquisas dizem que isso pode ser até 60.000 vezes mais rápido do que ler um texto.
A maneira mais popular de visualizar um processo é um quadro Kanban. Um quadro Kanban é um quadro dividido verticalmente em várias colunas, com cada coluna representando um estado em seu processo.
Vamos dar uma olhada em como seria uma placa de desenvolvimento de software simples. Primeiro, precisamos definir estados para nossos recursos de desenvolvimento:
- To-Do - o recurso está aguardando desenvolvimento
- Desenvolvimento - o recurso é atribuído a um desenvolvedor e ele está trabalhando nele
- Garantia de qualidade - o recurso está em revisão
- Implantado - o recurso é aceito e incluído na versão do aplicativo
Com base nisso, sua placa deve ter o seguinte layout:
Visualizar tarefas individuais é tão fácil quanto criar um cartão simples (muito parecido com um Post-it) que representa o trabalho que precisa ser feito. Você pode nomear a tarefa, adicionar o nome do desenvolvedor atribuído, data de vencimento e qualquer outra informação relevante a este cartão.
Ao adicionar esse cartão a uma coluna no Quadro Kanban, você visualizou que, por exemplo, um desenvolvedor específico está trabalhando em uma tarefa específica que deve vencer em uma determinada data e está atualmente em desenvolvimento.
Limitar trabalho em andamento (WIP)
A multitarefa humana é uma ilusão. Em vez de prestar atenção a uma ou duas coisas simultaneamente, nossos cérebros estão alternando entre elas muito rapidamente.
Isso é mais visível no desenvolvimento de software do que em qualquer outro lugar. Os desenvolvedores podem trabalhar apenas em um pedaço de código por vez, e mudar para outro recurso causará atrasos e afetará sua concentração e desempenho.
Isso não significa que você deve limitar o número de atribuições a apenas uma de cada vez. O desenvolvimento é um trabalho complexo e criativo, algumas tarefas demoram mais e outras demoram menos para serem concluídas, e sempre há um atraso enquanto um desenvolvedor está esperando por algo ou alguém. O importante é limitar as tarefas atribuídas a um número razoável que não produza caos (geralmente de três a cinco tarefas por vez).
Supondo que sua equipe de desenvolvimento seja composta por dois desenvolvedores e um engenheiro de controle de qualidade, sua placa pode ter os seguintes limites de WIP:
- Tarefas - Ilimitado
- Desenvolvimento - Limite de seis cartões (dois desenvolvedores cada um limitado a um máximo de três tarefas)
- Garantia de qualidade - Limite de três cartões (1 engenheiro de controle de qualidade limitado a um máximo de três cartões)
- Implantado - Ilimitado
É seu trabalho, como gerente de projeto, garantir que a lista de tarefas seja priorizada adequadamente e que as tarefas sejam atribuídas aos desenvolvedores assim que necessário.
Um quadro Kanban devidamente gerenciado lhe dará uma visão clara do status do seu projeto rapidamente. Você pode ver que seus desenvolvedores têm trabalho suficiente, que você preparou novas tarefas que eles podem assumir assim que suas atribuições forem concluídas e que seu engenheiro de controle de qualidade está aguardando novas tarefas para revisão.
Use o Trello para gerenciar seu quadro Kanban
O Trello é um aplicativo de gerenciamento de projetos Kanban baseado na web. Ele permite a colaboração fácil e em tempo real entre os membros da equipe e até mesmo várias equipes e projetos.
Para criar um quadro no Trello, clique no item de menu “Criar novo quadro…” e defina um título para o seu quadro.
Você começará com um tabuleiro vazio. Use a caixa “Adicionar lista …” para criar colunas para seus cartões Kanban.
Ao clicar em “Adicionar um cartão…” na parte inferior de qualquer uma das listas, você pode criar facilmente uma tarefa. Cada cartão que você cria deve representar uma tarefa que será executada por um membro da equipe.
Os cartões no Trello podem ser personalizados de várias maneiras:
- Atribuir membros da equipe responsáveis pela execução de uma tarefa
- Codifique-os com cores dependendo dos agrupamentos específicos que você gostaria de adicionar
- Definir datas de vencimento
- Adicionar Anexos
- Adicione campos personalizados, como uma lista de verificação, onde você pode acompanhar o progresso de elementos menores que compõem uma tarefa
- Os membros da equipe podem comentar em um cartão e todos serão notificados de qualquer alteração feita.

A visualização é tudo no Kanban, então aqui está a aparência de um cartão no quadro:
Apenas olhando para o cartão, sem abrir a visualização detalhada, você pode ver que:
- A tarefa para configurar o repositório de código do GitHub está aguardando para ser executada na lista de tarefas pendentes.
- A tarefa está prevista para 27 de janeiro.
- A tarefa tem uma descrição.
- Há um comentário sobre a tarefa.
- Há uma lista de verificação de dois itens, e nenhum desses itens está concluído no momento.
- A tarefa é atribuída ao usuário DS, que irá buscá-la em seguida.
- A tarefa pertence a um grupo de cartões de cor verde, o que significa que é necessária antes do início do projeto.
Estimativa de tempo e complexidade do trabalho de desenvolvimento
Planejar e gerenciar um projeto é impossível sem entender o esforço e o tempo necessários para concluir uma determinada tarefa. No entanto, uma das coisas mais difíceis de se fazer no desenvolvimento de software é determinar quanto tempo levará para entregar um novo produto ou recurso de software.
Scrum, um dos princípios ágeis mais populares, depende muito de estimativas, sejam elas baseadas em tempo ou em “pontos de complexidade”.
A equipe deve gastar um tempo significativo definindo o escopo da tarefa.
Isso ocorre porque o Scrum é baseado em intervalos de tempo, quando um determinado grupo de tarefas deve ser concluído. Para planejar a entrega, você precisa ter uma compreensão completa de todo o trabalho planejado para esse prazo.
O Kanban não depende de entregas em caixa de tempo e você pode planejar a entrega diária, se desejar. Ele se baseia na otimização do fluxo, o que significa que o foco da equipe é completar e esvaziar a coluna WIP o mais rápido possível.
A equipe não gasta tempo estimando o trabalho com muita antecedência. Um desenvolvedor pegará o próximo item do To-Do; completá-lo o mais rápido possível; e pegar outra tarefa.
Isso não significa que uma equipe não deva estimar o volume de sua carga de trabalho.
Você pode usar suas chamadas semanais ou diárias para atualizar e verificar as datas de vencimento.
No entanto, para uma equipe pequena, é mais importante garantir que os desenvolvedores estejam trabalhando na tarefa de maior prioridade a qualquer momento e que não haja gargalos, forçando um desenvolvedor a pausar seu trabalho.
Eventualmente, seu projeto crescerá e você precisará começar a estimar a quantidade de trabalho de desenvolvimento com mais detalhes. Quando você chegar a essa situação, passe algum tempo lendo nosso guia para Estimativa de Custos de Software no Gerenciamento Ágil de Projetos.
Práticas de gestão obrigatórias
Até agora, você aprendeu sobre a importância de visualizar seu processo e limitar o WIP, e como usar o Trello para gerenciar seu projeto.
Um projeto de software não pode ser gerenciado apenas com cartões e colunas. Portanto, é importante implementar também as melhores práticas ágeis:
Organize uma reunião regular da equipe.
Faça isso pelo menos semanalmente para revisar o que foi feito e refinar e priorizar a lista de pendências (lista de tarefas), se necessário. Dessa forma, toda a equipe receberá atualizações ao mesmo tempo e as ideias poderão ser compartilhadas. Nessas reuniões, é importante ter uma parte interessada do projeto (Cliente, CTO da empresa ou qualquer pessoa da equipe de produto que possa tomar uma decisão e responder a perguntas) para eventualmente fornecer feedback não técnico.Assegurar uma comunicação constante com os membros individuais da equipe.
Isso tornará o trabalho diário de todos muito mais fácil. Mantenha essas reuniões ou sincronizações muito curtas e simples, basta uma atualização rápida em seu programa de bate-papo favorito. É útil ter check-ins diários, que podem ser reuniões diárias de aproximadamente 15 minutos que você tem com sua equipe. Nesta reunião, cada membro da equipe fala por alguns segundos afirmando:
- No que eles trabalharam ontem.
- O que eles planejam trabalhar hoje.
- Quais desafios ou gargalos eles estão enfrentando.
Faça anotações durante a ligação e preste atenção para encontrar possíveis problemas (bloqueadores, foco errado na tarefa, desafios técnicos inesperados) e trabalhe neles com a equipe.
Inicialize seu projeto de desenvolvimento de software
Embora cada projeto de desenvolvimento de software seja diferente, existem certas tarefas que você encontrará em quase todos eles. Aqui estão algumas das tarefas que você deve planejar ao iniciar um projeto de desenvolvimento de software:
Configure o controle de versão de código e um repositório.
O rastreamento de alterações e monitoramento de código é extremamente importante, especialmente ao colaborar em projetos em que várias pessoas atualizarão o mesmo código.
Um dos serviços mais populares para versionamento de código é o GitHub. O GitHub é um repositório de controle de versão ou Git baseado na Web que oferece todo o controle de versão distribuído e funcionalidade de gerenciamento de código-fonte (SCM) do Git.
Ele fornece controle de acesso e vários recursos de colaboração, como rastreamento de bugs, solicitações de recursos, gerenciamento de tarefas e wikis para cada projeto.Defina uma política de backup de banco de dados.
O uso de serviços como o GitHub garantirá que o backup do seu código seja feito regularmente.
Os bancos de dados geralmente não fazem parte do seu sistema de controle de versão e você também deve configurar backups de banco de dados frequentes.
O processo de desenvolvimento é propenso a erros e é fácil cometer um erro e atualizar os dados errados durante o desenvolvimento. Ter um backup evitará problemas se esse problema ocorrer.Configure ferramentas de colaboração e compartilhamento de arquivos.
A documentação do projeto, especificações funcionais, arquivos de design e qualquer outra documentação e arquivos que são usados durante o desenvolvimento do projeto são constantemente atualizados e devem ser distribuídos para sua equipe.
Você pode usar vários serviços diferentes para compartilhar esses arquivos. O Google permite uma solução simples e econômica para esse problema. Use o Google Drive, o Documentos Google, o Planilhas Google e outros aplicativos do Google para compartilhar e colaborar em arquivos.Configure servidores separados de desenvolvimento e teste.
O processo de desenvolvimento deve continuar em todos os momentos.
Os desenvolvedores não devem esperar pelos resultados dos testes de aplicativos e devem continuar trabalhando em suas atribuições enquanto a Garantia de qualidade analisa as funcionalidades concluídas.
Ao mesmo tempo, o cliente deve poder verificar o estado atual do aplicativo a qualquer momento, sem esperar pela equipe de desenvolvimento. Ter um servidor de teste dedicado que é atualizado regularmente removerá todos os gargalos nesse processo e garantirá que sua equipe funcione sem interrupções.Defina um horário fixo para chamadas semanais da equipe e um horário fixo para chamadas ou bate-papos diários da equipe.
Faça com que todos os membros da sua equipe agendem um horário em sua agenda para chamadas e reuniões. Isso dá à sua equipe um cronograma estável sem interrupções no trabalho.
Leve embora
O gerenciamento de projetos é uma atividade complexa e, muitas vezes, altamente estressante. Adicionar estrutura a ele e tornar o status do projeto sempre visível e preciso alivia muito esse estresse. Empregar o método Kanban e os princípios Agile, combinados com as ferramentas adequadas, economizará muito tempo.
Com isso dito, não há ferramenta ou metodologia que compense o tempo que você, como gerente de projeto, deve dedicar ao gerenciamento do projeto.
E só porque um projeto é pequeno, não significa que necessariamente requer menos do seu tempo. Essa mentalidade é uma ótima receita para uma grande dor de cabeça no futuro.
Aqui está uma lista de verificação simples para ajudá-lo a verificar se seu projeto está sendo gerenciado adequadamente ou não:
- Seu processo está devidamente visualizado?
- O WIP para cada membro da equipe é limitado e minimizado?
- Sua equipe tem uma reunião agendada de forma consistente – semanal ou diária?
- Seu quadro Kanban é atualizado regularmente?
- Você tem um repositório de código no local?
- Você agendou backups de banco de dados?
- Você configurou ferramentas de comunicação e colaboração em equipe?
- Seu ambiente de desenvolvimento está separado de testes, aceitação e produção?
Tenha em mente que esta lista está longe de ser definitiva e pronta; é apenas o começo.
Deixe seus comentários e compartilhe suas dicas e práticas com gerentes de projeto que estão apenas começando sua jornada interminável de capacitação de equipes de desenvolvimento de software.