segunda-feira, 30 de maio de 2016

Utilização avançada de calendários no Project

Olá pessoal,

Alguns dias atrás, durante um treinamento, surgiu uma dúvida bastante interessante. O cenário proposto era o seguinte:

“Na minha empresa, configuramos o calendário padrão com os devidos feriados nacionais, pontes e demais datas que a empresa considera como dias não trabalhados. Via de regra, todos os projetos e colaboradores da empresa utilizam o calendário padrão. Porém, há um projeto no qual iremos necessitar de uma pessoa que não faz parte da equipe de projetos e esta pessoa só poderá dedicar esforços às segundas e quartas-feiras. Desta maneira, todas as tarefas do projeto que tiverem a participação dessa pessoa deverão respeitar esta restrição – inclusive, se houver mais recursos atribuídos às tarefas nas quais este recurso participa, estas deverão ajustar as datas para respeitar o calendário de exceção deste recurso. Como resolver?”

Esta é uma dúvida muito pertinente, então acho que vale a pena dedicar um post a este assunto.

Os tipos de calendário do Project

Começando pelo começo... a Microsoft disponibiliza na sua página de suporte um excelente artigo com a visão geral dos calendários no Project. Recomendo muito a leitura do artigo para que você possa entender melhor o mecanismo de funcionamento deste recurso. Um resumo bem resumido do artigo diria que existem as seguintes possibilidades:
  • Calendário base: um calendário base é aquele que é utilizado como referência para determinar as horas de trabalho do projeto, das tarefas e também dos recursos. Por padrão, há três calendários base no Project: calendário Padrão, 24 horas e Turno da Noite
  • Calendário do projeto: é o calendário que define os dias úteis, as folgas e o horário de trabalho padrão das tarefas. Caso você não efetue nenhuma modificação, o Project sempre irá utilizar o calendário Padrão como calendário do projeto
  • Calendário dos recursos: você pode configurar calendários que representem a disponibilidade dos recursos para executar o trabalho. Por exemplo, na sua empresa o calendário Padrão é utilizado em todos os projetos, porém há um determinado departamento no qual os colaboradores só podem dedicar 50% do seu tempo a atividades relacionadas a projetos. Neste caso, o ideal é criar um calendário específico que determine a disponibilidade desses recursos (um outro cenário são as empresas que possuem sistema de revezamento e/ou férias coletivas)
  • Calendário das tarefas: o Project também permite que você configure calendários específicos para que determinadas tarefas do projeto sejam executadas em períodos diferenciados. Imagine uma situação onde uma atividade apenas possa ser executada nos finais de semana, pois o trabalho dos colaboradores não pode ser paralisado durante o horário comercial

Funcionamento geral dos calendários

Caso você, ao iniciar o trabalho no Project, não crie nenhum calendário novo (digamos que você adicione as datas de exceção ao calendário Padrão), então o calendário Padrão será o calendário do projeto. Se, ao contrário, você tiver criado um novo calendário, então poderá defini-lo como calendário do projeto utilizando a caixa de diálogo Informações do Projeto, ao clicar em Projeto > Informações do Projeto. Porém, neste exercício, vou considerar que o calendário Padrão foi modificado para absorver as datas de exceção da empresa (feriados, pontes e etc.) e nenhum novo calendário foi criado.

Quando você define o calendário do projeto, os recursos que forem cadastrados também irão utilizar este calendário por padrão, a menos que você efetue uma modificação manual (a exceção ocorre quando você cria um novo calendário após os recursos já terem sido criados).

Já as tarefas, como fazem parte do projeto como um todo, não terão nenhum calendário especificamente definido, e irão seguir o que foi definido no calendário do projeto. Tecnicamente falando, as tarefas possuem, por padrão, o calendário “Nenhum”.

Então, neste cenário, temos:

Calendário do projeto = calendário Padrão
Calendário dos recursos = calendário Padrão
Calendário das tarefas = Nenhum

Como as tarefas se ajustam à disponibilidade dos recursos?

Após toda a explicação teórica, agora vamos começar a resolver o problema colocado no início do post. Para que você possa se situar, o cronograma que estou utilizando neste exercício possui o calendário Padrão como calendário do projeto. O calendário Padrão foi editado para incluir todos os feriados nacionais (fixos e móveis) e nenhuma ponte ou emenda foi considerada.

Agora, como haverá um membro da equipe que poderá trabalhar apenas às segundas e quartas-feiras, será necessário criar um novo calendário que respeite esta restrição. Para isso, clique em Projeto > Alterar Período de Trabalho. Na caixa de diálogo seguinte, clique em Criar Novo Calendário. Como os feriados nacionais previamente cadastrados terão de ser respeitados, então vale a pena manter a opção Criar uma cópia do calendário Padrão selecionada. Dê um nome para o novo calendário (eu irei chamá-lo de Segundas e Quartas) e clique OK:


Em seguida, será necessário determinar que apenas as segundas e quartas-feiras deverão ser consideradas como dias úteis. Sendo assim, ainda na caixa de diálogo Alterar Período Útil, clique em Semanas de Trabalho. Mantenha a linha [Padrão] selecionada e clique em Detalhes...


A caixa de diálogo Detalhes permite que você modifique o padrão dos dias da semana para o calendário. As opções disponíveis são:
  • Usar períodos padrão do Project para estes dias: ou seja, seguir o padrão de trabalho de segunda a sexta-feira, com sábados e domingos sendo considerados dias não úteis
  • Definir dias para o período de folga: neste caso, poderíamos configurar uma folga para um dia que é normalmente considerado como dia de trabalho
  • Definir dias para os períodos de trabalho específicos: esta opção permite que você determine um período de trabalho não padrão. Por exemplo, poderia determinar trabalho em um sábado; ou então definir um período de trabalho diferente para um dia da semana
Como no cenário atual apenas as segundas e quartas-feiras serão consideradas dias úteis para o recurso, então selecione a terça, a quinta e a sexta-feira e marque a opção Definir dias para o período de folga (você pode selecionar os dias alternadamente mantendo a tecla CTRL pressionada):


Clique OK. Observe que agora o padrão desse novo calendário é considerar apenas segundas e quartas como dias úteis:


O próximo passo é cadastrar a equipe do projeto. Todos deverão estar associados ao calendário Padrão, com exceção do recurso que terá disponibilidade reduzida. Utilize a Planilha de Recursos para cadastrar a equipe:


Voltando ao Gráfico de Gantt, vamos testar alguns cenários. Antes, crie uma nova tarefa (vou chamá-la de Planejamento) com duração de 5 dias e início em uma segunda-feira. Configure a tarefa para que seu tipo seja Unidades Fixas e desmarque a opção Controlada pelo empenho. Defina a tarefa como Modo de Agendamento automático:


Cenário 1: atribuição de um recurso com calendário Padrão

Neste primeiro cenário, atribua um recurso que está associado ao calendário Padrão (vou utilizar o recurso Raphael) à tarefa:


Como já era esperado, nada mudou – uma vez que o recurso possui o mesmo calendário do projeto.

Cenário 2: atribuição de um recurso com calendário Segundas e Quartas

Agora, remova o recurso anterior da tarefa e atribua apenas o recurso com o calendário Segundas e Quartas (Arthur):


Aqui é possível enxergar uma mudança significativa. Como o recurso possui disponibilidade para trabalhar apenas às segundas e quartas, o Project precisa reorganizar o trabalho da tarefa para que este esteja em conformidade com a disponibilidade do recurso. Essa reorganização, consequentemente, afeta diretamente a data de término da tarefa. Caso você esteja curioso para saber como o trabalho foi distribuído ao longo do tempo, poderá selecionar o modo de exibição Uso da Tarefa:


O resultado será:


É possível perceber que o recurso Arthur possui trabalho atribuído apenas às segundas e quartas, como era esperado. Isso nos leva a deduzir que, apesar de o calendário Padrão ter sido definido para o projeto, caso o recurso possua um calendário diferente, este terá prioridade, uma vez que representa a disponibilidade real do recurso para trabalhar nas tarefas do projeto.

Cenário 3: atribuição dos recursos Raphael e Arthur à mesma tarefa

Por fim, vamos testar um terceiro cenário: voltando ao modo de exibição do Gráfico de Gantt, mantenha o recurso Arthur atribuído à tarefa e adicione o recurso Raphael. O resultado:


Aparentemente, não houve uma mudança significativa em relação ao cenário anterior. Porém, se você observar melhor, a duração da tarefa, que antes era de 5 dias, foi alterada para 8 dias. Modifique o modo de exibição para Uso das Tarefas para visualizar as informações de distribuição de trabalho dos recursos:


Agora tudo fica bem mais claro: como a tarefa possui duração de 5 dias e não é controlada pelo empenho, quando você adiciona o recurso Raphael (que está associado ao calendário Padrão), o Project considera que este recurso poderá trabalhar os 5 primeiros dias da tarefa (de segunda a sexta-feira), pois seu calendário assim o permite. Desta forma, ele trabalhará 5 dias diretos e sua participação na tarefa estará encerrada. Em contrapartida, o recurso Arthur (associado ao calendário Segundas e Quartas) só poderá trabalhar em dias específicos, logo, na primeira semana trabalhará apenas dois dias, depois mais dois dias na semana seguinte e encerrará sua participação na segunda-feira da terceira semana.

Porém, esse não era exatamente o resultado esperado. Considerando que a tarefa deverá ser executada apenas de acordo com a disponibilidade do recurso Arthur, o trabalho do recurso Raphael também deveria ser ajustado para atender esta restrição nas tarefas em que eles trabalham juntos.

Atribuindo um calendário a uma tarefa

Para que seja possível resolver o problema e distribuir o trabalho do recurso Raphael da mesma maneira que o recurso Arthur, uma possível solução seria atribuir o calendário Segundas e Quartas ao recurso Raphael. Entretanto, essa não é uma alternativa viável, uma vez que sua disponibilidade deve ser considerada com base no calendário Padrão.

Nesse sentido, dadas as circunstâncias atuais, a melhor alternativa é atribuir o calendário diretamente à tarefa. Para realizar a ação, efetue duplo-clique na tarefa e clique na aba Avançado. Em seguida, na opção Calendário, selecione o calendário Segundas e Quartas e marque a opção O agendamento ignora calendários do recurso, para que o calendário da tarefa tenha prioridade quando houver conflito com os calendários atribuídos aos recursos:


Perceba que a duração da tarefa voltará a ser de 5 dias. Ao selecionar o modo de exibição Uso da Tarefa, também será possível ver que agora o trabalho dois dois recursos está sincronizado nos mesmos dias:


Ufa! Demorou, mas conseguimos atingir o objetivo esperado!


Nota

O comportamento observado ao atribuir um recurso adicional à tarefa pode variar em virtude de uma série de fatores: configuração do Tipo de Tarefa (Duração Fixa, Unidades Fixas ou Trabalho Fixo com ou sem controle de empenho), Unidades Máximas do Recurso (disponibilidade) e Unidades de alocação à tarefa (Atribuição). Portanto, caso você observe um resultado diferente, atente-se a estas configurações para conseguir atingir o mesmo resultado deste exercício.

Links complementares

Para finalizar, gostaria de compartilhar alguns links interessantes que podem complementar o estudo sobre os tópicos discutidos neste post:






Arquivo digital

O arquivo digital deste post, em PDF, está disponível para download aqui:


-----------------------------------------------
É isso aí pessoal! Espero que tenham gostado do post! Até a próxima!


10 comentários:

  1. Raphael Santos, não entendi porque criou um calendário novo para o recurso Arthur. Sendo que todos os recursos cadastrados como "Trabalho", possuem seu próprio calendário.

    ResponderExcluir
    Respostas
    1. Olá Tiago.

      Neste exemplo, todos os recursos seguem o calendário padrão, com trabalho de segunda a sexta-feira. Porém, o Arthur possui uma restrição de disponibilidade, só podendo trabalhar em projetos às segundas e quartas-feiras. Por esse motivo ele está atribuído a um calendário diferente dos demais recursos.

      Espero que isso ajude a ilustrar melhor.

      Um abraço!

      Excluir
  2. Olá Rafael,

    Primeiramente, parabéns pelo excelente conteúdo.

    Quero esclarecer a seguinte dúvida:

    É possível elaborar um cronograma que contenha calendário onshore e offshore? Estou tendo dificuldades.

    1) Criei dois calendários, Onshore 07h00 - 17h00 (Seg-Qui) e 07h00 - 16h00 (Sex), Offshore 06h00 - 18h00 (Dom-Dom).

    2) Atribui o calendário Onshore como padrão, e em opções alterei o período com início as 07h00 e término as 17h00, 8.8 h/d, 44 h/s e 25 d/m.

    3) Quando atribuo um recurso que tenha calendário onshore em uma tarefa com duração fixa, sem controle por empenho e com agendamento automático, a proporcionalidade apresentada pelo Project fica satisfatório.

    4)De outra forma, quando atribuo um recurso que tenha atribuído o calendário offshore a alocação do recurso continua sendo 8,8 h/d mesmo ele tendo disponibilidade para 11 h/d. Mantendo as configurações de unidades fixas, sem controle por empenho e automática.

    5) Atribui o calendário offshore a tarefa, mas ela continua atendo-se ao trabalho de 8,8 h/d.

    Esgotei as minhas tentativas até o momento.
    Espero que tenha entendido e aguardo seu posicionamento.

    Atenciosamente,
    Rodrigo Sequeira.

    ResponderExcluir
    Respostas
    1. Fala Rodrigo -

      Nesse caso específico, você tentou modificar a duração da tarefa para 11 hrs (na coluna Trabalho)?

      Pois como o calendário padrão do projeto é OnShore, o Project irá esperar que a duração de um dia de tarefa siga esse padrão - e o fato de que o recurso possui mais disponibilidade para trabalhar na tarefa não causará nenhum impacto, uma vez que as horas adicionais que o recurso dispõe não são necessárias neste caso.

      Acredito que para as tarefas OffShore, você vai precisar configurar essa parte manualmente (você pode tentar também a configuração das tarefas individualmente com o calendário OffShore antes de atribuir os recursos).

      Por favor, veja se isso retorna um resultado positivo e me avise.

      Um abraço!

      Excluir
  3. Olá Raphael, meus parabéns pelo tópico.
    A dúvida do Rodrigo também a minha, porem ele não te deu retorno, fiz até o que você orientou na resposta porem quando você altera a duração do trabalho ele sempre altera a duração da tarefa pois é feito um multiplicação do total de horas X quantidade de recursos (ex: se a duração é 2h e você informa que irá ter dois recursos, o trabalho total será de 4h) se você diminuir o trabalho ele aumenta a hora e vice-versa.
    Temos mais alguma alternativa para um cronograma com Multi calendários?

    ResponderExcluir
    Respostas
    1. Oi André, tudo bem?

      Pois é, o Project não possui a funcionalidade de trabalhar com múltiplos calendários ligados ao projeto. Você pode, como falei no post, trabalhar com diferentes calendários para as tarefas e para os recursos, mas não para o projeto em si.

      No seu caso, qual o tipo de tarefa configurada? Unidades Fixas, Trabalho Fixo ou Duração Fixa?

      Excluir
    2. Nesse caso, com disponibilidades diferentes de recursos ou sites, coloque o calendário do projeto com 24 horas 7 dias da semana. O trabalho será calculado pelo calendário do recurso.

      Excluir
  4. Olá, Raphael.

    Meu projeto tem a seguinte rotina de trabalho:
    07 - 17h de seg a quinta
    07 - 16 sexta
    07 - 15 sábado,

    mas mesmo configurando esses horários ele ainda transfere horas de trabalho para outros dias e no sábado considera 1 hora de almoço, quando isso não acontece de fato.

    Há alguma maneira de configurar isso?

    ResponderExcluir
  5. Olá Raphael. Primeiramente quero agradecer pelo ótimo conteúdo do blog e pelo seu livro sobre fórmulas para o Project, que é excelente.

    O post é antigo, mas a dúvida é nova e não encontrei solução. Se puder me ajudar, Serei muitíssimo grato.

    1. Tenho o seguinte cenário: Todos os recursos do projeto são recursos da empresa e possuem calendários definidos na Central de Recursos do PWA (calendário padrão);

    2. Os recursos são membros de equipe de vários projetos e, eventualmente ocorrem superalocações;

    3. Preciso definir exceções de período útil nos calendários dos recursos, mas o Project Professional não permite que eu altere o calendário do recurso da empresa, pois essa informação vêm do PWA;

    4. Se eu alterar o calendário do recurso no PWA, isso afeta os cronogramas de todos os projetos em que o recurso possui tarefas atribuídas, mas eu só preciso alterar o calendário do recurso para alguns projetos.

    Como fazer para ter vários calendários para o mesmo recurso, considerando sua disponibilidade em cada um deles? Exemplo: no projeto A o recurso trabalha todas as manhãs da semana, já no projeto B o recurso trabalha todas as tardes da semana.

    Complicado, não é mesmo?

    Desde já, agradeço pela atenção.

    ResponderExcluir
    Respostas
    1. Fala Vitor, tudo bem? Cara, nesse cenário, você vai ter que criar calendários específicos e então associá-los a cada tarefa individualmente, pois não é possíve configurar um calendário para cada recurso de acordo com o projeto.

      Vai ser trabalhoso, mas penso que seja a única alternativa viável.

      Excluir