viernes, 6 de julio de 2012

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.

Les dejo un artículo con consultas más complejas en este enlace: http://surpoint.blogspot.com.ar/2012/07/calendarios-en-project-server-una_13.html

 

¿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.
OriginalModifico las unidades
Unidades100%200%
Duración2 días1 día
Trabajo16 horas16 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:
OriginalModifico el trabajo
Unidades100%200%
Duración2 días2 día
Trabajo16 horas32 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:
OriginalModifico las unidades
Unidades100%100%
Duración2 días4 día
Trabajo16 horas32 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 fijasDuraciónTrabajoDuración
Duración fijaTrabajoTrabajoUnidades
Trabajo fijoDuraciónUnidadesDuración




1 comentarios:

Buenos dias tengo una consulta, si yo uso dos calendarios tengo el ejemplo de Calendario a 6am a 6pm (vias y puentes), calendaro b 24horas(tuneles), Calendario base (opciones), 24 horas, cuando se le asignan a las tareas especificas, el project calcula las fechas de comienzo y fin con los calendarios asignados sin embargo las duraciones se calculan con el calendario base, no obstante las duraciones para las actividades del calendario 6am a 6pm van a ser en un 50% menores a pesar de que sus fechas correspondan a las del calendario asignado, como podria solucionar esto??

Publicar un comentario en la entrada