Todo mundo é um gerente de projeto. Esteja você gerenciando o desenvolvimento de um novo aplicativo e aumentando sua startup, trabalhando em um novo projeto corporativo de um bilhão de dólares ou apenas tentando animar seu jardim com um paisagismo DIY, você está sempre gerenciando um projeto.
O sucesso do seu projeto depende de muitos fatores, mas uma das razões mais comuns pelas quais os projetos falham é a falta de gerenciamento ou total ruim Gerenciamento de Projetos. Não importa o quão pequena sua equipe seja, 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 faz Ágil realmente significa?
Para um mergulho mais profundo nos princípios do Agile, sugiro a leitura de nosso Ultimate Guide to Agile Project Gestão.
aprender a codificar em c
Neste post, vamos explicar os fundamentos do gerenciamento ágil de projetos com Kanban.
Mesmo se você for um gerente de projeto experiente que entende os princípios do Agile por dentro e por fora, deve refrescar sua memória e lembrar-se dos conceitos básicos. Ciclos de inovação em desenvolvimento de software estão constantemente acelerando, 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 maneira de gerenciar qualquer processo com mudanças mínimas nas atividades operacionais estabelecidas da equipe.
Para aplicar os princípios Kanban ao seu trabalho, você deve aplicar duas regras simples:
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 as imagens, o cérebro humano pode processar várias informações simultaneamente. Algumas pesquisas afirmam que isso pode ser até 60.000 vezes mais rápido do que ler um texto.
A forma 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:
Com base nisso, sua placa deve ter o seguinte layout:
Visualizar tarefas individuais é tão fácil quanto criar um simples cartão (muito parecido com um Post-it) que representa o trabalho que precisa ser feito. Você pode nomear a tarefa, adicionar o nome do desenvolvedor designado, 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 com vencimento em uma determinada data e atualmente em desenvolvimento.
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 uma parte do código por vez, e a mudança 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 por vez. O desenvolvimento é um trabalho complexo e criativo, algumas tarefas demoram mais e outras levam menos tempo para serem concluídas, e sempre há um atraso enquanto o 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 o caos (isso geralmente é de três a cinco atribuições 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:
É seu trabalho, como gerente de projeto, garantir que a lista de tarefas a fazer seja priorizada de maneira adequada e que as tarefas sejam atribuídas aos desenvolvedores antes do necessário.
Um Quadro Kanban gerenciado de forma adequada lhe dará uma imagem clara do status do seu projeto em um relance. 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 a revisão de novas tarefas.
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.
demonstração do fluxo de caixa do balanço patrimonial e demonstração de resultados
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:
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:
É impossível planejar e gerenciar um projeto sem entender o esforço e o tempo necessários para concluir uma determinada tarefa. No entanto, uma das coisas mais difíceis de fazer no desenvolvimento de software é determinar quanto tempo levará para entregar um novo produto ou recurso de software.
Scrum , um dos princípios Agile mais populares, depende muito de estimativas, sejam elas baseadas no tempo ou em “pontos de complexidade”.
A equipe deve gastar bastante tempo definindo a 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 um entendimento completo de todo o trabalho planejado para aquele prazo.
Kanban não depende de entregas com prazo definido, e você pode planejar a entrega diária se quiser. Depende da otimização do fluxo, o que significa que o foco da equipe é preencher e esvaziar a coluna WIP o mais rápido possível.
você está interessado em identificar a fonte de ataques potenciais que recentemente
A equipe não perde tempo estimando o trabalho com muita antecedência. Um desenvolvedor escolherá o próximo item de Pendências; conclua-o o mais rápido possível; e pegue outra tarefa.
Isso não significa que uma equipe não deva estimar o volume de sua carga de trabalho.
Você pode usar suas ligações 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 o 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 esta situação, passe algum tempo lendo nosso guia para Estimativa de custos de software em gerenciamento ágil de projetos .
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 as práticas recomendadas do Agile também:
Organize uma reunião regular da equipe.
Faça isso pelo menos uma vez por semana para revisar o que foi feito e refinar e priorizar o backlog (lista de tarefas pendentes), 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 pode tomar uma decisão e responder a perguntas) para, eventualmente, fornecer feedback não técnico.
Assegure a 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, o que pode ser uma reunião diária de aproximadamente 15 minutos que você tem com sua equipe. Nesta reunião, cada membro da equipe fala por alguns segundos, afirmando:
Faça anotações durante a chamada e preste atenção para encontrar possíveis problemas (bloqueadores, foco incorreto na tarefa, desafios técnicos inesperados) e trabalhe neles com a equipe.
diferença entre s corp e c corp llc
Embora cada projeto de desenvolvimento de software seja diferente, há 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 a versão do código e um repositório.
Rastrear alterações e monitorar o código é extremamente importante, especialmente ao colaborar em projetos onde várias pessoas estarão atualizando o mesmo código.
Um dos serviços mais populares para controle de versão de código é GitHub . GitHub é um Git baseado na web ou repositório de controle de versão que oferece todas as funcionalidades de controle de versão distribuída e 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 normalmente 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 está sujeito a erros e é fácil cometer um erro e atualizar os dados incorretos durante o desenvolvimento. Ter um backup irá lhe poupar problemas se tal 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 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, Google Docs, Google Sheets e outros aplicativos do Google para compartilhar e colaborar em arquivos.
Configure servidores de desenvolvimento e teste separados.
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 a trabalhar em suas atribuições enquanto o Controle de Qualidade analisa as funcionalidades concluídas.
Ao mesmo tempo, o cliente deve ser capaz de 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 neste processo e garantirá que sua equipe funcione sem interrupções.
Defina um tempo fixo para as chamadas semanais da equipe e um tempo fixo para as chamadas ou chats diários da equipe.
Faça com que todos os membros da sua equipe agendem um horário em seus calendários para ligações e reuniões. Isso dá à sua equipe um cronograma estável, sem interrupções de trabalho.
O gerenciamento de projetos é uma atividade complexa e, muitas vezes, altamente estressante. Adicionar estrutura a ele e tornar o status do projeto visível e preciso o tempo todo alivia muito desse estresse. Empregar o método Kanban e os princípios Agile, combinados com as ferramentas adequadas, economizará muito tempo.
Dito isso, não há ferramenta ou metodologia que irá compensar 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 exija 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 o seu projeto está sendo gerenciado de maneira adequada ou não:
Tenha em mente que esta lista está longe de ser definitiva e concluída; é 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 sem fim de capacitar equipes de desenvolvimento de software.