Calendarios en Project Server (una mirada profunda)

Introducción

En este documento se describen las distintas opciones que Microsoft Project Server posee para el manejo de calendario. Esta dividido en tres partes:

  • Parte 1: conceptos
  • Parte 2: forma de uso
  • Parte 3: impacto al realizar cambios en los calendarios


Contenido:

  • Introducción
  • Contenido
  • Parte 1: conceptos
    • Introducción
    • ¿Qué opciones de configuración de calendario existen?
    • ¿Qué calendario tiene precedencia?
    • Calendario versus Opciones de Calendario
    • ¿Qué calendarios están configurados fuera de la caja?
    • ¿Cuántos calendarios crear? Recomendaciones
  • Parte 2: forma de uso
    • ¿Cómo crear un calendario?
    • ¿Cómo asignar un calendario a un proyecto, recurso o tarea?
  • Parte 3: impacto al realizar cambios en los calendarios
    • ¿Cómo afectan los cambios en los calendarios a los proyectos?
    • ¿Cómo puedo conocer qué calendarios están utilizando los proyectos y los recursos?¿Cómo encarar la modificación de calendarios?
  • Conclusión.
  • Bibliografía
  • Apéndice: tipos de tareas

 

Parte 1: conceptos

Introducción

Un proyecto puede necesitar distintos tipos de calendarios. A modo de ejemplo, no es lo mismo un calendario para una máquina (que puede trabajar 24 horas), una persona o una persona que trabaja por la noche. Por otro lado, los días feriados varían normalmente de acuerdo al país.

Es por ello que en Project podemos manejar diferentes calendarios y también tenemos la opción de asignarlos en diferentes niveles:

  • Proyectos
  • Tareas
  • Recursos.

¿Para qué se usan los calendarios? Para…

  • Determinar la disponibilidad de los recursos
  • Determinar cómo se programan las tareas
  • Determinar cómo se programan los recursos asignados a las tareas


¿Qué opciones de configuración de calendario existen?

Project Server permite crear calendarios corporativos, esto quiere decir que los mismos pueden ser compartidos por diferentes proyectos.

Una vez que definimos un calendario, podemos configurar opciones como:

  • Excepciones al calendario, indicando qué días no son laborables.
  • Semanas laborables que nos permiten indicar por cada día de la semana el horario laboral, lo que determina:
    • Horarios de inicio y fin, y de almuerzo.
    • Cantidad de horas laborables por día

Estos calendarios podrán ser asignados:

  • Al proyecto, dentro de la opción “Información del Proyecto”
  • A un recurso, dentro del “Centro de Recursos”
  • A una tarea, dentro de las opciones avanzadas de la tarea

A su vez, dentro de cada proyecto podremos configuran opciones de calendario tales como:

  • Día en qué comienza la semana
  • Mes en que comienza el año fiscal
  • Hora predeterminada de entrada y de salida
  • Jornada laboral, semana laboral, días por mes

Más adelante se explica la relación entre estas opciones y las configuraciones propias del calendario.


¿Qué calendario tiene precedencia?

El calendario del Proyecto aplica a todos las tareas que:

  • Tenga tipo de tarea duración fija.
  • No tengan recursos asignados
  • No tengan calendarios aplicados específicamente a tareas

El calendario del Recurso:

· Sobrescribe el calendario del Proyecto, si la tarea posee recursos asignados.

El calendario de Tarea:

· Sobrescribe el calendario del Proyecto

· Sobrescribe el calendario del Recursos si se encuentra configurada la opción “la programación omite los calendarios de recursos”

clip_image002


Calendario versus Opciones de Calendario

Si se observa con cuidado, las opciones de inicio y fin del día y la cantidad de horas laborales por día, pueden ser configuradas (aparentemente) en dos lugares:

  • En las opciones de calendario del proyecto.
  • En las opciones “semanas laborales” del calendario.

Opciones de Calendario

clip_image004


Semanas laborales en el Calendario

clip_image006


¿Cuál es la relación entre estas variables? ¿Entran en conflicto?

Sólo los calendarios pueden afectar la programación de las tareas y de los recursos en el tiempo.

Opciones como la “hora predeterminada de entrada” en las opciones de calendario del proyecto, sirven para establecer una hora de inicio cuando la misma no es especificada explícitamente.

Importante: la opción de “jornada laboral” sirve para establecer la cantidad de de horas para una tarea cuando ingresamos la duración de la misma en días.

Si no hacemos coincidir “jornada laboral” y “semana laboral” con las opciones de semanas laborales dentro de nuestro calendario, podremos obtener resultados confusos en el campo duración. Una buena recomendación es hacer coincidir estos valores.

Veamos un ejemplo

Supongamos que tenemos:

· Un calendario de 6.5 horas diarias

· En las opciones de calendario del proyecto, tenemos una jornada laboral de 8 horas

Vamos a crear una tarea, asignarle un recurso y configurar en 2 días la duración. Observamos que el trabajo asignado es de 16 horas (toma las opciones del proyecto), pero la tarea se reparte en 3 días que es lo que necesita el recurso asignado para completar el trabajo:

clip_image008

clip_image010


¿Qué calendarios están configurados fuera de la caja?

Fuera de la caja, Microsoft Project posee tres calendarios ya configurados:

  • Standard: es el calendario predeterminado. Utiliza un horario laboral de 8 a 5 con una hora para almuerzo
  • 24 hours: útil para maquinarias que trabajan en forma continua o cuando necesitamos asignar recursos en diferentes horarios.
  • Night Shift: Utiliza el horario desde las 23 a las 8 con una hora intermedia para descanso


¿Cuántos calendarios crear? Recomendaciones

Microsoft Project ofrece tantas configuraciones para el manejo de calendario que podemos sentirnos tentados a utilizarlas todas. No siempre esto es conveniente, a continuación enumeramos algunas recomendaciones:

  1. En lo posible manejarse con el calendario estándar.
  1. Crear calendarios específicos para cada país si es el caso de nuestra organización. Esto nos permitirá manejar los feriados específicos de cada lugar.
  1. Crear un calendario específico para tareas que deben efectuarse fuera del horario laboral, por ejemplo la instalación de un software en un servidor. Utilizar esta opción sólo en el caso en que queramos que Project maneje automáticamente estas excepciones.
  1. No complicarse con la cantidad de horas diarias, si la gente está acostumbrada a especificar la duración en función de días (no horas) y si no estamos haciendo un uso exhaustivo del esfuerzo. Sin embargo, este dato se debe tener en cuenta para medir la disponibilidad de los recursos.

En general tener en cuenta que las excepciones siempre pueden tener impacto en el rendimiento y en la simpleza del trabajo. Con lo cual no habría que utilizarlas salvo que sea estrictamente necesario.


Parte 2: forma de uso

¿Cómo crear un calendario?

No importa a qué nivel asignaremos el calendario, la forma de crearlo es siempre igual:

  • Accedemos a Configuración del Servidor / Calendarios de Empresa

· Elegimos la opción Nuevo Calendario

  • Elegir un nombre para el calendario
  • Establecer las excepciones
  • Grabamos el calendario en Project Server

clip_image012

clip_image014

En la sección Semanas laborales se puede establecer en qué horarios y días de la semana se trabaja, configurando la opción “Predeterminado”:

clip_image016

En este punto hay que prestar atención respecto a la opción a elegir, especialmente para ver si nosotros definimos las bandas horarias o si se toman las opciones del proyecto.


¿Cómo asignar un calendario a un proyecto, recurso o tarea?

El calendario predeterminado para un proyecto nuevo es el Estándar. El mismo puede ser modificado desde la pantalla Información del Proyecto:

clip_image018

No se puede establecer un calendario distinto al estándar como predeterminado. Sin embargo, se puede establecer un calendario para cada plantilla corporativa.

Para asignar un calendario a una tarea o grupo de tareas, accedemos a las opciones avanzadas de la misma:

clip_image020

Si queremos que el calendario asignado a nivel de tarea tome precedencia sobre el calendario del recurso, entonces seleccionamos la opción “La programación omite los calendarios de recursos”.

Imaginemos que nuestra organización posee un calendario estándar. Sin embargo, algunas tareas como instalación de software en producción deben ser realizadas fuera del horario laboral, para no dar de baja los servicios. En este caso puede ser útil asignar un calendario particular a una tarea específica como la instalación de software.

Nota: otra opción en este caso puede ser establecer restricciones del tipo “Debe comenzar en”. Estas restricciones tienen como desventaja que pueden ser fuertes cuando queremos hacer re-planificaciones en nuestro plan. Pero tienen la ventaja de no tener que crear (y mantener) un calendario específico para este tipo de actividades.

Cuando programamos una tarea en un día no laborable, nos aparece un mensaje como el siguiente:

clip_image022

Necesitamos poner una restricción fuerte en las opciones avanzadas de la tarea para que la misma pueda realizarse el fin de semana. Recordemos que esto es cuando no usamos un calendario de excepción para la tarea:

clip_image024


Parte 3: impacto al realizar cambios en los calendarios

¿Cómo afectan los cambios en los calendarios a los proyectos?

Los cambios en un calendario pueden afectar a la programación de un proyecto. Estos cambios se aplican en el momento en que el proyecto de abre con Project Professional, no en el momento en que se realiza el cambio en el calendario.

Veamos algunos ejemplos

Creamos un calendario de prueba en el que se trabajan 6 horas por día “Calendario de Prueba JP” y se lo asignamos al recurso “PUSSACQ, JUAN”:

clip_image026

Creamos una tarea, la estimamos en 2 días y le asignamos al recurso JUAN. La tarea posee un trabajo de 16 horas (porque está usando las opciones predeterminadas del proyecto) y se distribuye en tres días por el recurso no trabaja más de 6 horas.

clip_image028

clip_image030

Modificamos el calendario y lo convertimos en un calendario de 8 horas:

clip_image032

Abrimos nuevamente el proyecto luego de haber realizado los cambios en el calendario y observamos cómo se han impactado los cambios automáticamente, afectando la fecha de fin de la tarea y la distribución:

clip_image034

clip_image036

Se puede observar que no se modificó la duración de la tarea. Veamos un caso en que sí se modificaría. Cambiamos la semana laboral a 10 horas.

clip_image038

La duración cambia a 1.6:

clip_image040

¿Por qué cambió a 1.6? Porque el trabajo de la tarea estaba establecido en 16 horas, a 10 horas por día, se trata de una duración de 1,6 días. Sin embargo, la distribución se sigue realizando en base al calendario, es decir 8 horas por día, tal como se puede ver en la sección Uso de Recursos:

clip_image042

Veamos que sucede ahora si elimino un calendario, en este caso el que habíamos creado como ejemplo:

Lo primero que sucede es que no puedo eliminar el calendario, porque está siendo utilizado por un Recurso.

clip_image044

Para resolver esto, cambiamos el calendario del recurso y volvemos a intentar la eliminación. En este caso aparece un nuevo error, porque el calendario está siendo utilizado por un proyecto:

clip_image046

Realizo la modificación y vuelvo a intentar eliminar el calendario. Aparece el mismo error. Aparentemente se trata de un bug y hasta que esté resuelto, sólo queda la opción de renombrarlo como “NO USAR” 🙁

Más información en http://social.technet.microsoft.com/Forums/en-US/projserv2010setup/thread/fac71834-01f9-494b-a372-450c6d7e8bfb/


¿Cómo puedo conocer qué calendarios están utilizando los proyectos y los recursos?

Para comenzar a implementar cambios a los calendarios, un primer punto es analizar la situación actual. Podemos realizar algunas consultas SQL para ver cuál es el uso actual de calendarios. Las siguientes son algunas de las consultas posibles, a modo de ejemplo, es posible que necesitemos hacer algunas más detalladas, por ejemplo para ver los calendarios asignados a tareas:

/* Uso de Calendarios por Recursos */

Use ProjectServer_Reporting

select ResourceBaseCalendar, count (*) Total

from MSP_EpmResource_UserView

group by ResourceBaseCalendar

order by count(*) desc

/* Detalle de Calendarios por Recursos */

Use ProjectServer_Reporting

select ResourceName, ResourceBaseCalendar

from MSP_EpmResource_UserView

order by ResourceName

/* Uso de Calendarios por Proyectos */

Use ProjectServer_Published

select C.CAL_Name, count (*) Total

from MSP_Projects PC

left join MSP_Calendars C on C.CAL_UID = PC.CAL_UID

group by C.CAL_Name

order by count(*) desc

/* Detalle de Calendarios por Proyectos */

Use ProjectServer_Published

select C.CAL_Name, PC.Proj_Name

from MSP_Projects PC

left join MSP_Calendars C on C.CAL_UID = PC.CAL_UID

order by C.Cal_Name, PC.Proj_Name desc

/* Variante del query anterior que incluye un campo custom "Estado del Proyecto" */

Use ProjectServer_Published

select C.CAL_Name, PC.Proj_Name, PR.[Estado del Proyecto]

from MSP_Projects PC

left join MSP_Calendars C on C.CAL_UID = PC.CAL_UID

left join ProjectServer_Reporting.dbo.MSP_EpmProject_UserView PR on PR.ProjectUID = PC.PROJ_UID

order by C.Cal_Name, PC.Proj_Name desc

/* Variante para obtener las opciones de calendario del proyecto*/

Use ProjectServer_Published

select PC.Proj_Name, C.CAL_Name, pc.[PROJ_OPT_MINUTES_PER_DAY],

CAST (PC.[PROJ_OPT_MINUTES_PER_DAY] AS FLOAT)/60 AS [Jornada laboral],

CAST (PC.[PROJ_OPT_MINUTES_PER_WEEK]AS FLOAT)/60 AS [Semana laboral]

from MSP_Projects PC

left join MSP_Calendars C on C.CAL_UID = PC.CAL_UID

order by PC.Proj_Name desc

Si se desea conocer los calendarios asignados a las tareas como excepciones, una forma sencilla de hacerlo, es agregando la columna “Calendario de Tarea” en Project Professional.

Si se desea conocer el calendario de un recurso, se puede consultar en Centro de Recursos de PWA, agregando el campo correspondiente. También se puede agregar el dato en la Hoja de Recursos de Project Professional.


¿Cómo encarar la modificación de calendarios?

Las modificaciones en los calendarios pueden tener impactos difíciles de controlar. En caso que lo que necesitemos cambiar sean los calendarios de los recursos, el impacto será mayor ya que afectará en el mismo momento a todos los proyectos, siempre teniendo en cuenta que el impacto se da cuando se vuelve a abrir el proyecto.

El conjunto de acciones para implementar los cambios puede incluir:

  1. Cambiar el calendario de los recursos
  2. Cambiar el calendario del proyecto
  3. Cambiar el calendario de tareas
  4. Cambiar el calendario en las plantillas
  5. Cambiar las opciones de calendario en Enterprise Global
  6. Cambiar las opciones de proyecto si lo deseamos. Recordemos que las opciones del proyecto nos afectarán en la duración, pero no en la asignación.

Nota: cambiar las opciones del proyecto puede ser confuso, si el criterio que el líder ha utilizado para estimar es a partir de la duración. Pero también puede ser confuso que estas opciones no coincidan con las del calendario.

Cuando se cambian los calendarios, los proyectos pueden verse impactados en su duración, sus fechas y su trabajo. Esto no sólo va a depender de los calendarios utilizados, sino también de variables tales como:

  • Tipo de tarea (ver apéndice)
  • Tipo de redistribución (manual o automática)
  • Configuración del campo “Condicionada por el esfuerzo”

Es algo difícil predecir el impacto de las modificaciones en los calendarios. La recomendación es:

  • Probarlos en un ambiente de prueba de Project Server
  • Conocer cómo funcionan cada una de las opciones de calendario y de programación en general
  • Dar soporte a los líderes de proyecto luego de efectuar el cambio


Conclusión

Project Server maneja un conjunto muy amplio de opciones de calendario, que nos permite manejar desde las situaciones simples hasta las más complejas.

En general es recomendable mantenerse dentro de lo simple porque:

· La curva de aprendizaje puede ser importante para los usuarios, especialmente si deciden guiarse por la intuición.

· Se puede llegar a situaciones confusas en donde no se comprenda el comportamiento de la herramienta.

Como casi todo aspecto de parametrización en Project Server, tanto en la implementación inicial, como en un cambio importante, conviene tomarse un tiempo para diseñar la estrategia de calendarios. Fundamentalmente para minimizar los impactos ante futuros cambios cuando ya se tengan varios años de historia en la base de datos.


Bibliografía

Libros:

  • Microsoft® OfficeProject Server 2007 UNLEASHED (QuatumPM, LCC) Chapter 12 (Configuring Calendars)
  • Managing Projects with Office Project 2007 (Joli Ballew and Deanna Reynolds) Chapter 1, Lesson 3 (Working with Calendars)
  • Microsoft Office Project Server 2007 – The complete reference (Rob Stewart – Dave Gochberg)

Enlaces:


Apéndice: tipos de tareas

Project maneja tres tipos de tareas:

  • Unidades fijas (predeterminado)
  • Duración fija
  • Trabajo fijo

La fórmula utilizada es:

Trabajo = Duración * Unidades

Al indicar el tipo de tarea, le estamos diciendo a Project cuál es la variable que debe mantener fija.

Unidades fijas

En el siguiente ejemplo, asumimos que un recurso puede realizar una tarea que lleva 16 horas en 2 días. Si ajustamos las unidades, asignado 2 recursos, entonces Project asume que el trabajo sigue siendo el mismo y la tarea se puede realizar en sólo 1 día.

 

Original

Modifico las unidades

Unidades

100%

200%

Duración

2 días

1 día

Trabajo

16 horas

16 horas

Duración fija

Ahora imaginemos el mismo ejemplo, pero con duración fija. Imaginemos que cambiamos el trabajo a 32 horas. Como Project no puede ajustar la duración, entonces asignará más unidades:

 

Original

Modifico el trabajo

Unidades

100%

200%

Duración

2 días

2 día

Trabajo

16 horas

32 horas

¿Qué hubiese pasado si cambiábamos los días a 1? Project asume que estamos cambiando la estimación y convierte a la tarea a 8 hs.


Trabajo fijo

Nuevamente el mismo escenario. Imaginemos ahora que asignamos 32 horas de trabajo a la tarea. Project asume que necesitamos el doble de días:

 

Original

Modifico las unidades

Unidades

100%

100%

Duración

2 días

4 día

Trabajo

16 horas

32 horas

¿Cómo decide Project qué variable ajustar?

Utilizando la siguiente tabla:

 

Si modifico unidades, Project modifica:

Si modifico duración, Project modifica:

Si modifico trabajo, Project modifica:

Unidades fijas

Duración

Trabajo

Duración

Duración fija

Trabajo

Trabajo

Unidades

Trabajo fijo

Duración

Unidades

Duración

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *