quarta-feira, 28 de junho de 2017

Nivelamento de Recursos no Microsoft Project

Olá pessoal,

Há um bom tempo venho ensaiando um post sobre as boas práticas para aplicação da técnica de nivelamento de recursos no Microsoft Project. Mesmo sendo uma das funcionalidades mais importantes do software, ela ainda é pouco compreendida pelos gerentes de projeto em geral – então, acredito que este seja um momento oportuno para falar sobre isso.

Para facilitar um pouco as coisas, achei uma boa ideia fazer mais um post da série “guest post”, onde trazemos aqui a tradução de um post/artigo já publicado por um profissional com extenso conhecimento e experiência na utilização do Microsoft Project. Nesse episódio, mais uma vez trazemos um convidado europeu – mais precisamente, um dinamarquês com residência em Phoenix, nos Estados Unidos: vou utilizar como referência um post publicado em 2014 pelo CEO da Sensei Project Solutions, empresa na qual trabalho, Kenneth Steiness. Kenneth é um dos mais renomados ‘scheduling masters’ do mercado, com uma bagagem de mais de 20 anos no campo do gerenciamento de projetos, possuindo também uma série de livros publicados, treinamentos e apresentações/palestras ao longo de todos os Estados Unidos e Europa.

Aqui, gostaria de deixar uma notificação: este post utiliza, em sua grande parte, a base do artigo publicado pelo Kenneth há cerca de 3 anos. Entretanto, tomei a liberdade de fazer pequenos ajustes e também de inserir comentários e observações pessoais para enriquecer este post. O post original pode ser lido aqui.

Entendendo o nivelamento de recursos

De uma maneira resumida, o nivelamento de recursos deve ser utilizado no Microsoft Project para que os gerentes de projeto possam garantir que a utilização dos recursos não exceda sua disponibilidade. Assim, quando o Microsoft Project encontrar uma situação na qual a demanda pela utilização de recursos seja maior do que a sua disponibilidade, o software tentará corrigir as atribuições através da movimentação das tarefas do cronograma. Abaixo um exemplo visual do funcionamento do nivelamento de recursos:




Como foi possível verificar, antes do nivelamento o recurso Arthur Mamede estava superalocado na segunda e terça-feira, uma vez que possuía 16 horas de atribuição nesses dois dias. O processo de nivelamento moveu a segunda tarefa para os dias seguintes do cronograma onde havia disponibilidade de trabalho por parte do Arthur.

No Microsoft Project, os recursos superalocados podem ser identificados através do indicador de atenção disponível na coluna Indicadores:



O modo de exibição Gráfico de Recursos também oferece uma boa opção para visualizar os recursos superalocados:



Ao utilizar o nivelamento de recursos para resolver os problemas de superalocação nos seus cronogramas, é importante que os gerentes de projeto entendam alguns conceitos importantes de como o Microsoft Project efetua alguns cálculos internamente:
  • Unidades Máximas: trata-se da porcentagem (ou capacidade) máxima em que o recurso está disponível para executar atividades em um projeto. Quando um novo recurso é cadastrado no Microsoft Project, sua capacidade padrão será de 100%, o que significa que este recurso estará disponível para trabalhar 8 horas por dia nas tarefas do cronograma (considerando aqui as configurações padrão do software). Caso um determinado recurso seja incluído na equipe do projeto com uma capacidade limitada (exemplo: o recurso está autorizado a dedicar apenas 4 horas do seu dia para trabalhar no projeto), então o gerente de projetos poderá alterar suas unidades máximas para 50%;
  • Unidades de Atribuição: este campo armazena as informações referentes a porcentagem de alocação dos recursos atribuídos às tarefas. Caso a atribuição seja realizada de maneira padrão (sem modificações), o valor deste campo será semelhante às unidades máximas definidas para o recurso. Porém, durante a realização das atribuições, o gerente de projetos poderá definir um valor diferente (exemplo: um recurso é cadastrado com as unidades máximas a 100%; entretanto, em uma determinada tarefa, será necessário que este recurso dedique apenas metade do seu tempo para entregá-la e, sendo assim, a unidade de atribuição pode ser definida para 50% neste caso). É importante ressaltar que este campo não é modificado durante o processo de nivelamento, então é importante garantir que este campo nunca seja maior do que as unidades máximas definidas para o recurso;
  • Pico: representa a porcentagem máxima de unidades atribuídas a um recurso para tarefas conforme a distribuição ao longo do tempo. Se um determinado recurso está atribuído a duas tarefas, de segunda a quarta feira, sendo que na Tarefa1 as unidades de atribuição são de 50% e na Tarefa2 25%, então o pico para este recurso será de 75% para cada um dos dias em que as tarefas ocorrem em paralelo.

Configurações do nivelamento de recursos

Para que você possa aproveitar ao máximo as funcionalidades que o nivelamento de recursos oferece, é importante conhecer os recursos disponíveis. Para isso, no menu Recurso da Faixa de Opções, clique em Opções de Nivelamento:


O Microsoft Project irá exibir a caixa de diálogo Nivelamento de Recursos, que apresenta as seguintes opções:
  • Automática versus Manual: em poucas palavras, esta opção é responsável por determinar quando o nivelamento de recursos deve ocorrer. Quando a opção Automática está selecionada, o Microsoft Project irá realizar o nivelamento dos recursos toda vez que haja uma mudança no cronograma (e caso essa mudança gere uma superalocação). Como é possível imaginar, manter a opção automática selecionada não é o mais recomendado. Já a opção Manual garante um maior controle sobre a utilização do nivelamento de recursos, já que permite que você determine quando e quais recursos (ou tarefas) devem ser nivelados;
  • Procurar superalocações em uma...: esta opção indica a unidade de medida que deverá ser analisada para que o Microsoft Project encontre uma superalocação. Considerando um cenário padrão, no qual os recursos trabalham 8 horas por dia, a opção ‘diariamente’ irá definir um recurso como superalocado sempre que o total de atribuições for superior a 8 horas, dia-a-dia (exemplo: suponha que um determinado recurso esteja atribuído a duas tarefas de 6 horas no mesmo dia; neste caso, ele será considerado superalocado, já que o montante de horas – 12 – é superior à sua capacidade diária – 8); já a opção ‘semanalmente’ irá considerar o recurso superalocado apenas quando o total de atribuições na semana for superior a 40 horas (para ilustrar este cenário, vamos utilizar o mesmo exemplo anterior: um recurso que possua duas atribuições de 6 horas no mesmo dia não seria considerado superalocado, uma vez que o total de horas – 12 – é inferior à sua capacidade semanal – 40);
  • Limpar nivelamentos anteriores: esta opção, caso selecionada, irá garantir que cada ação de nivelamento seja iniciada sem levar em consideração nivelamentos realizados anteriormente;
  • Intervalo de nivelamento: através desta opção você poderá determinar se deseja nivelar o projeto inteiro ou se deseja se concentrar nos problemas de superalocação encontrados em um determinado período do cronograma;
  • Ordem de nivelamento: esta opção determina em qual ordem o Microsoft Project deve realizar o nivelamento dos recursos. As opções são: 1) Número da tarefa: através desta opção, o software irá levar em consideração a maneira como as tarefas estão organizadas no cronograma, ou seja, sua sequência, para nivelar os recursos superalocados; 2) Padrão: caso este seja a opção selecionada, o software irá examinar os seguintes critérios de acordo com a ordem em que eles estão listados para que possa determinar quais ações a serem tomadas em tarefas que possuam recursos superalocados: a) A relação de vínculos (predecessoras e sucessoras); b) a margem de atraso das tarefas (ou seja, por quanto tempo a tarefa pode ser atrasada sem que atrase a data final do projeto); c) Datas de Início e Término das tarefas; d) Prioridades das tarefas; e) Restrições das tarefas. 3) Prioridade, Padrão: finalmente, a terceira opção disponível para determinar a ordem de nivelamento das tarefas utiliza os mesmos métodos da opção anterior, com a diferença de que o critério Prioridade da tarefa será alçado à condição de primeiro critério a ser analisado. Dessa maneira, as tarefas que possuírem menor prioridade serão sempre niveladas antes daquelas que possuírem maior prioridade. Já falamos aqui no blog sobre como determinar a prioridade de uma tarefa – você pode visitar este link caso queira saber mais;
  • Nivelar sem atrasar o projeto: esta opção, caso selecionada, tentará resolver os problemas de superalocação até o ponto em que a movimentação das tarefas no cronograma não ultrapasse a data final do projeto;
  • O nivelamento pode ajustar atribuições individuais em uma tarefa: ao selecionar esta opção, você está dizendo ao Microsoft Project que irá permitir que a as datas de início das tarefas poderão sofrer alterações de acordo com a disponibilidade dos recursos. Isso significa dizer que tarefas agendadas para iniciar ao mesmo tempo podem ser agendadas para começar em diferentes datas, a depender da disponibilidade do recurso. Além disso, caso haja mais do que um recurso atribuído à tarefa, esta opção irá permitir que uma pessoa inicie o trabalho enquanto a outra apenas comece a trabalhar quando estiver disponível;
  • O nivelamento pode causar interrupções no trabalho restante: esta opção determina que uma tarefa pode ser interrompida para que outra tarefa seja realizada (por exemplo, quando uma tarefa que já foi iniciada possui menos prioridade em relação a uma outra tarefa que será iniciada em breve). Dessa maneira, a tarefa anterior (com menos prioridade), poderá ser interrompida e então continuada em um outro período, quando houver disponibilidade do recurso;
  • Nivelar recursos com o tipo de reserva proposto: o Microsoft Project permite que os gerentes de projeto indiquem se a atribuição realizada a um determinado recurso está proposta (ou seja, ainda não foi confirmada) ou comprometida (ou seja, já está confirmada). O padrão do software é sempre definido com comprometida, então você deverá se preocupar apenas caso tenha modificado este padrão;
  • Nivelar tarefas agendadas manualmente: através desta opção você poderá definir se deseja que o nivelamento de recursos leve também em consideração as tarefas agendadas manualmente.

Após discutir cada um dos itens disponíveis nas opções de nivelamento, vale a pena destacar quais as boas práticas que devem ser levadas em consideração para que esta funcionalidade seja utilizada de maneira adequada.

A princípio é preferível sempre manter selecionada a opção de nivelamento de cálculos em ‘manual’, afim de se ter um maior controle sobre quando o Microsoft Project deve exercer o nivelamento dos recursos. Em seguida, a opção recomendada para a procura por superalocações é sempre “diariamente”, uma vez que a verificação demanda x capacidade deve sempre ocorrer na menor escala de tempo disponível. Em terceiro lugar, outra opção recomendada é de que sempre se defina a ordem de nivelamento como ‘Prioridade, Padrão’, pois assim é possível definir as tarefas prioritárias do cronograma e deixar que o Microsoft Project efetue a movimentação nas tarefas restantes. Por fim, as opções restantes devem ser controladas de acordo com as características do projeto no qual se está trabalhando, e levando-se em consideração o cenário atual.

Opções adicionais do nivelamento

Antes de nivelar os recursos superalocados do seu cronograma, você precisa conhecer as opções disponibilizadas pelo Microsoft Project. Ao navegar na Faixa de Opções, a seção Nível oferece os seguintes recursos:


  • Nivelar Seleção: caso você selecione duas ou mais tarefas que possuem superalocação, esta opção irá realizar o nivelamento das tarefas selecionadas;
  • Nivelar Recursos: esta opção permite que você especifique quais os recursos para os quais deseja realizar o nivelamento;
  • Nivelar Tudo: como o próprio nome sugere, esta opção aplica o nivelamento a todo o projeto, sem distinção de tarefas ou recursos;
  • Opções de Nivelamento: permite que você determine as configurações que devem ser consideradas pelo Microsoft Project ao realizar o nivelamento dos recursos, conforme visto anteriormente;
  • Limpar Nivelamento: caso você tenha realizado o nivelamento dos recursos e tenha de voltar ao estado anterior, esta opção irá limpar os nivelamentos aplicados;
  • Próxima Superalocação: esta opção irá posiciona-lo na próxima linha em que haja uma superalocação de recursos.

Nivelando recursos

Para iniciar o trabalho prático de nivelamento de recursos, vamos usar como exemplo o cronograma abaixo:


Neste cronograma é possível identificar as seguintes superalocações:

- O recurso Daniel está superalocado pois há conflito nas tarefas ‘Configurar o workflow personalizado’ e ‘Fazer upload dos projetos piloto

- O recurso Melissa está superalocado pois há conflito nas tarefas ‘Treinamento para Membros de Equipe’ e ‘Treinamento para Gerentes de Projeto

- Novamente podemos identificar uma superalocação para o recurso Daniel, em virtude do conflito existente nas tarefas ‘Treinamento para Administradores’ e ‘Prover Suporte aos usuários do Project Online

Para que seja possível explorar de maneira detalhada o nivelamento de recursos, de modo a entender quais ações são realizadas pelo Microsoft Project na medida em que a resolução de conflitos é aplicada, iremos trabalhar com cada conflito individualmente. Em primeiro lugar, vamos definir os parâmetros que o software deverá levar em consideração através do recurso Opções de Nivelamento. Na seção Solucionando superalocações, as seguintes opções deverão ser definidas:
  • Ordem de nivelamento: esta opção deverá ser definida como Prioridade, Padrão;
  • Em seguida, selecione também a opção Nivelar sem atrasar o projeto, para que o Microsoft Project tente resolver os conflitos sem alterar a data final do cronograma;
  • Em seguida, certifique-se de que as opções O nivelamento pode ajustar atribuições individuais de uma tarefa e O nivelamento pode criar interrupções no trabalho restante estão selecionadas.

Clique OK. Em seguida, selecione as tarefas ‘Configurar o workflow personalizado’ e ‘Fazer upload dos projetos piloto’, ambas atribuídas ao recurso Daniel, e clique em Nivelar Seleção. Você irá receber uma mensagem de alerta:


O que isso significa? Basicamente, o Microsoft Project não foi capaz de resolver o conflito existente nas duas tarefas niveladas, pois não foi possível move-las sem afetar a data final do projeto. Clique em Ignorar para visualizar o resultado (perceba que, mesmo após o nivelamento, o recurso Daniel continua superalocado):


Já que não é possível resolver o conflito sem atrasar o projeto, clique novamente em Opções de Nivelamento e, em seguida, desmarque a opção Nivelar sem atrasar o projeto. Clique OK. Em seguida, ainda com as duas tarefas selecionadas, clique novamente em Nivelar Seleção. Você irá agora perceber que a tarefa Configurar o workflow personalizado foi movida, e que o conflito existente foi então resolvido:


Para que seja possível visualizar de maneira mais abrangente as modificações realizadas pelo Microsoft Project quando do nivelamento dos recursos, você pode modificar o Modo de Exibição para Gantt de Nivelamento:



Perceba que as barras marrons representam o estado anterior das tarefas (ou seja, as datas de início e término antes do nivelamento), enquanto as barras azuis demonstram o estado atual das tarefas após o nivelamento.

Estabelecendo prioridade para as tarefas

Vamos agora resolver o próximo conflito, que está acontecendo com o recurso Melissa. Selecione as tarefas ‘Treinamento para Membros de Equipe’ e ‘Treinamento para Gerentes de Projeto’ e, em seguida, clique em Nivelar Seleção. Perceba que o Microsoft Project moveu a tarefa ‘Treinamento para Membros de Equipe’ para resolver o conflito existente:


Porém, neste caso, imagine que a lógica de sequenciamento das tarefas foi quebrada: o treinamento para membros de equipe deveria vir antes do treinamento para gerentes de projeto. Para que seja possível resolver esta situação, você deverá estabelecer prioridades diferentes entre as tarefas, de modo a determinar que o treinamento para membros de equipe possui prioridade superior ao treinamento para gerentes de projeto. Para entender de maneira detalhada como o Microsoft Project utiliza a prioridade para determinar a importância das tarefas do cronograma, você poderá visitar este post.

Porém, antes de estabelecer a prioridade das tarefas, é preciso limpar o resultado do nivelamento anterior. Ainda com as tarefas que foram niveladas selecionadas, clique em Limpar Nivelamento e escolha a opção Tarefas Selecionadas. Isso fará com que as tarefas ‘Treinamento para Membros de Equipe’ e ‘Treinamento para Gerentes de Projeto’ retornem ao seu estado anterior.

Agora, como sabemos que o treinamento para membros de equipe possui maior prioridade se comparado com o treinamento para gerentes de projeto, será necessário modificar a prioridade dessa tarefa. Para isso, efetue duplo-clique na tarefa ‘Treinamento para Membros de Equipe’ e defina o valor da opção Prioridade para 600. Clique OK. Em seguida, selecione as duas tarefas (‘Treinamento para Membros de Equipe’ e ‘Treinamento para Gerentes de Projeto’) e clique em Nivelar Seleção. Dessa vez, o Microsoft Project moveu a tarefa adequada (‘Treinamento para Gerentes de Projeto’), uma vez que ela possui menor prioridade:


Nivelamento com interrupções

Outro tópico muito interessante referente ao nivelamento de recursos está relacionado à interrupção do trabalho existente em uma tarefa que está em andamento. Ao avaliar o próximo conflito, é possível identificar que o recurso Daniel está trabalhando em duas tarefas (‘Treinamento para administradores’ e ‘Prover suporte aos usuários do Project Online’) que não estão iniciando na mesma data. A princípio, o recurso inicia o trabalho de prover suporte aos usuários do Project Online e então, quando esta tarefa já está em andamento, ele deve iniciar o treinamento aos administradores:


Neste caso, suponha que o treinamento aos administradores terá maior prioridade em relação ao suporte, de modo que quando o treinamento for iniciado todo o trabalho de suporte deverá ser interrompido temporariamente. Para que as configurações sejam realizadas de maneira adequada, efetue duplo-clique na tarefa ‘Treinamento para Administradores’ e aumente a sua prioridade. Em seguida, é importante lembrar que, nas configurações do nivelamento, foi definido que O nivelamento pode criar interrupções no trabalho restante – o que significa que uma tarefa poderá ser interrompida quando houver um conflito na qual ela possua menor prioridade.

Uma vez realizadas as configurações devidas, selecione as duas tarefas (‘Treinamento para Administradores’ e ‘Prover suporte aos usuários do Project Online’) e clique em Nivelar Seleção. Perceba que o suporte aos usuários do Project Online teve de ser interrompido para que o recurso Daniel pudesse entregar o treinamento aos administradores do Project Online:


Conclusão

Como você pôde ver, o nivelamento de recursos é uma funcionalidade muito poderosa e, se bem utilizada, oferece uma ajuda valiosa na construção de um cronograma realístico, enquanto garante que os recursos são atribuídos de maneira correta às tarefas.

Downloads & Links

Caso você queira aprofundar o seu conhecimento neste tópico, gostaria de compartilhar alguns links e downloads:

Neste link você pode baixar o arquivo digital PDF deste post na íntegra.

Aqui você pode baixar o cronograma utilizado neste exemplo, caso queira testar os cenários propostos.

Finalmente, aqui você pode encontrar um excelente post técnico da Microsoft que trata do nivelamento de recursos.

.................................................................................................................

Espero que você tenha achado este post útil.

Um abraço e até a próxima!


10 comentários:

  1. Este comentário foi removido pelo autor.

    ResponderExcluir
  2. Bom dia, Raphael.

    Eu queria saber como fazer o MS Project entender que ao final de certas tarefas eu posso relocar os recursos para tarefas já iniciadas e minimizar as subalocações?

    Por exemplo, na minha obra eu tenho disponível 2 marceneiros. Eu tenho então duas atividades que não dependem um da outra e que portanto podem ser desenvolvidas ao mesmo tempo: tapume da obra e a locação da obra.

    Meu tapume da obra tem duração de 20 h e a minha locação da obra tem 16 h. Um marceneiro vai trabalhar nas 20 h do tapume e o outro nas 16 h da locação. Dá pra perceber que, ao final da locação da obra, eu posso levar meu marceneiro para finalizar o tapume junto com o outro marceneiro e, assim, diminuir um pouco a duração da tarefa tapume. Então, após finalizada a locação, eu poderia trabalhar com 2 marceneiros nas últimos 4 h de tapume, o que faria minha duração final diminuir pela metade. Ou seja, o tapume levaria 16 h com um marceneiro e mais 2 h com dois marceneiros. O trabalho no tapume seria 20 hh, mas a duração seria 18 h.

    Eu já pesquisei muito e não achei como fazer o MS project entender que eu posso fazer esse "pool" de recursos entre tarefas de um mesmo projeto. Você saberia me ajudar? O problema no meu projeto são subalocações e não superalocações. Esse tipo de situação está gerando muitas subalocações no meu projeto, praticamente diariamente.

    ResponderExcluir
    Respostas
    1. Fala Fiúza, tudo bem?

      Cara, muito boa a sua pergunta. Eu desconheço qualquer funcionalidade no Project que enxergue subalocações nas tarefas para, então, otimizar a alocação dos recursos.

      Em um cenário como o seu, dependerá muito mais da intervenção manual do gerente de projetos (acredito que você) para a identificação dessas subalocações e subsquente resolução do problema através da atribuição dos recursos às tarefas.

      Uma alternativa que você pode testar é a utilização de Modos de Exibição diferentes (como por exemplo o 'Uso das Tarefas' ou 'Uso dos Recursos'), uma vez que esses modos de exibição organizam e agrupam as informações de alocação de uma maneira que fique mais simples a identificação de gargalos (superalocações) ou oportunidades (subalocações).

      Os gráficos de alocação de recursos também podem ser bons aliados nesta tarefa.

      Espero que tenha ajudado (mesmo que um pouco apenas).

      Forte abraço!

      Excluir
    2. Entendi. Eu uso todas os formulários e modos de visualização do project. Já até tentei usar recursos genéricos, mas não resolveu meu problema. Mas de qualquer maneira, muito obrigado! Vou tentar ajustar manualmente.

      Parabéns pelo seu blog, muito conteúdo bom aqui!

      Abraço

      Excluir
    3. Eu é que agradeço Fiúza.

      Deixo o convite para você seguir a minha página (facebook.com/raphaelsantosnet) e no YouTube (youtube.com/c/raphaelsantosnet) pois sempre procuro compartilhar informações relevantes por lá.

      Abração!

      Excluir
  3. Olá Raphael, primeiramente parabens pelo produto aqui prestado.
    Gostaria de solicitar seu apoio na elaboração de um post sobre Pool de Recursos, acredito que seria bom para todos que te acompanham e que trabalhão com Cronograma Integrados. Abraço

    ResponderExcluir
  4. Meu amigo, tudo bem? deixa eu te perguntar uma coisa, vc sabe alguma maneira de fazer alocação dinâmica de recursos no project? Será que é possível fazer?? por exemplo, eu tenho 40 desenvolvimentos de programas e meia duzia de programadores... a medida que cada programador for finalizando um desenvolvimento, ele já pega outro programa pra fazer e assim por diante. TEm alguma ideia de como resolver isso? Obrigado e boa noite!

    ResponderExcluir
    Respostas
    1. Olá Mauricio, como vai? Olha, eu desconheço essa possibilidade.

      Se você estiver usando uma plataforma PPM como o Project Online, é possível que cada indivíduo se auto-atribua a uma tarefa, de acordo com sua disponibilidade. Mas diretamente no Microsoft Project eu não acredito ser possível.

      Abs!

      Excluir
    2. Opa Raphael amigo tudo bem? Obrigado pela resposta... só vim aqui te dizer que consegui resolver meu problema, mas usando um artifício: Criei Recursos com o nome "ProgramadorTipo1" e "ProgramadorTipo2" e atribui 200%, 300% de utilização para cada um. Para o meu propósito, deu certo!! o único problema é que não dá pra medir a produtividade de cada um, mas não se pode ter tudo nessa vida. rsrs Abraços!

      Excluir