miércoles, 13 de abril de 2016

PM - Buenas prácticas a la hora de hacer un cronograma - Parte 2


B.  Desarrolla una línea base del modelo de cronograma

1. Define hitos.  

Sí son esas tareas de duración cero, no tienen recursos asignados, y son usados como marcas para medir el progreso, así como para definir el inicio y fin de varios eventos importantes del proyecto.  Ej. puedes tener hitos que simbolicen los inicios y fin de las etapas del proyecto, o los entregables contractuales de un proveedor a lo largo del proyecto.

2. Diseña las actividades del proyecto.  

Un buen diseño tiene presente:
  • La actividad es un elemento medible y discreto que es un elemento tangible del alcance del proyecto.
  • Una sola persona es responsable de la actividad y así mismo responsable de reportar su progreso.  Y es que bien dice el dicho cuando las cosas son de todos al final no son de nadie; aunque se requieran varios recursos para lograr la actividad debe ser una sola persona la responsable de ésta manera no se diluye en un montón de excusas tipo: "Dongo le dió a Borondongo, Borondo le dió a Bernabe,,," y etc (canción de Celia Cruz si es que alguien no la ha escuchado).
  • El nombre de la actividad describe el trabajo a lograr. Debe iniciar con un verbo conteniendo un objeto único y específico; sin dejar a confusión ni ambiguedades lo que és.  Los adjetivos pueden ayudar a aclarar ambiguedades.  La actividad es independiente del agrupamiento u ordenamiento del cronograma.  Ejemplo de NO hacer: digamos que queremos identificar una actividad que es hacer el documento de requisitos, la actividad No debería llamarse "Documento de requisitos" sino "Elaborar documento de requisitos".

    Práctica personal, cuando son varios módulos con las mismas actividades me gusta usar siglas para identificar a qué corresponde y de esta manera queda identificada de manera única sin ser tan larga su descripción.  Ej módulo de administración: adm, módulo de encuestas enc; entonces la tarea quedaría adm- Elaborar documento de requisitos.

    No ves la utilidad todavía?  OK.  Alguna vez has usado los reportes de MS Project o has tenido que filtrar una tarea? que tal un proyecto con 26 módulos que repiten lo mismo y sólo en el nombre de la tarea padre pusiste a qué módulo pertenece, al filtrar no tienes forma de saber la tarea de Elaborar documento a qué modulo pertenece....  y así hay muchos otros ejemplos... intenta extraer las tareas retrasadas: MS Project muy juicioso dice: Elaborar documento.. y tu respondes: sí pero de qué módulo ?? grrr....
  • El trabajo de una actividad, una vez iniciado debe continuar sin interrupciones.  Si por alguna fuerza sobrenatural se suspende o retrasa, lo mejor es dividir la actividad para reflejar este comportamiento de interrupción.  Recuerda que hacer esta modificación en la que cambias la linea base implica generar y aprobar un control de cambios.

    Generalmente la duración de una actividad debería ser menos de dos veces el ciclo de actualización, así podras reportar su inicio y fin en 1 o 2 periodos de reporte de avance del proyecto,
3. Secuenciar las actividades del proyecto.  

Todas las actividades e hitos excepto la primera y la última deberían tener una predecesora y una sucesora.  Pensemos un rato la lógica de esto....  eureka !!  pues claro!...  al tener el cronograma definido de esta manera garantiza que no tendrás actividades abiertas que no sabes cuándo terminan o  después de qué seguían, o hitos que no sabes si puedes dar al 100% terminados.  

Es aconsejable usar relaciones del tipo FS (fin inicio), si vas a incluir Lags estos deben obedecer a situaciones físicas necesarias,  Ej. después del comité que aprueba la compra de un equipo, la maquina demora 20 días en estar lista.. entonces a la tarea de Configurar máquina deberemos colocarle de predecesora el hito de aprobación de compra del comité +20d. 

Esta práctica permite un  mejor control del cronograma, ya que evidencia claramente en qué tarea (cliente o proveedor) estás teniendo problemas.

Es posible también que requieras dejar "quemada" una fecha Ej. inicio de una licitación, no depende de una tarea predecesora de tu cronograma, no, la entidad dice en que fecha es y punto.  

Sin embargo, ten mucho mucho cuidado con quemar fechas para reflejar cuándo un recurso puede atender esa tarea, pégate ahora mismo en la cabeza... no has entendido aún? ...  

yodaPara reflejar este comportamiento usa predecesoras...  el quemar una fecha te distorsiona el avance del cronograma: si la actividad que debería ser predecesora se adelanta no vas a ver lo demás que puedes adelantar precisamente porque le impusiste una fecha de inicio, y si se retrasa la supuesta predecesora tampoco vas a ver que no puedes hacer ésta tarea por la imposición de fecha.  Deja fluír el cronograma Obi-Wan Kenobi, él te guiará...  


4. Determina los recursos para cada actividad

Es demasiado claro como para tener algo adicional que decir.

5. Determina la duración de cada actividad

Sabes porque se hace primero la definición del tipo de recurso y luego se estima la duración?...  si!  porque dependiendo de las habilidades del recurso será el tiempo que le tome completar la tarea, no es lo mismo un consultor junior que uno Senior.

6. Analiza el cronograma resultante

Esto parece tan obvio cuando recién se lee, pero no lo és. Algunos PM creen que hasta antes de esta actividad ya terminó su trabajo, pero has analizado que por ejemplo no haya sobrecarga de recursos? además debes hacer nivelación de recursos.. que tal que un mes estés trabajando 4.000 horas, al siguiente tengas apenas 100 horas y luego 2.500?  no, no, no..  La idea es que a lo largo del proyecto todos estén asignados 100% mes tras mes.

7. Aprueba el cronograma

8. Linea base del modelo del cronograma

Una vez aprobado tu cronograma debes quemar la linea base, ya que sobre ésta será medido el rendimiento del mismo,   Sólo se puede modificar una linea base mediante control de cambios, si te quedo mal el nombre de un recurso entonces control de cambios (CC), si se te quedó en el calendario un festivo sin registrar entonces CC, si necesitas agregar media hora a una actividad entonces CC.. si se te quedó una s al final por fuera.. no pregunte mas que ya sabe la respuesta.... Control de cambios.

Mejor dicho una vez quemada, ud no tiene derecho a volver a tocar la linea base.

................. Continúa leyendo la parte 3, deja un comentario así la próxima entrega te informare.......



miércoles, 23 de marzo de 2016

PM - Buenas prácticas a la hora de hacer un cronograma - Parte 1

Si eres un PM que nunca ha hecho un plan de gestion del cronograma y quieres saber las buenas prácticas PMI al respecto, bienvenido !!

Pero y qué es ese plan???  (si no te has certificado como PMP ni has estudiado...  entiendo que te hagas esta pregunta, sino... aún no presentes el examen, no estás listo).  La respuesta es fácil,  es un plan donde dejas escritas todas las "reglas" que gobernarán la creación, gestión y mantenimiento de tu plan de trabajo en ése proyecto.

Mientras desarrollo este tema, ten en mente lo siguiente: es un proyecto de más de un año, con varios proveedores distintos, algunos de ellos en otros países; ahora sí las buenas prácticas según el PMI - Practice Standard for Scheduling y según mi propia experiencia en mis propias palabras.

Otra cosa: soy fan de MS Project así que tenme paciencia si no es lo tuyo.

Qué es el Schedule Model ?

Según el PMI:  representación dinámica del plan para ejecutar las actividades del proyecto desarrolladas por los interesados, aplicando un método de programación a una herramienta usando datos específicos.  Puede ser procesado por una herramienta de programación para producir varias instancias del modelo.

Según YO: Es la unión  de datos del proyecto en una herramienta de programación como MS Project (ej EDT (WBS), actividades duraciones, secuencias, dependencias, restricciones, hitos, calendarios, etc) ; que se puede visualizar de varias formas (diagrama de red, lista de actividades, etc).  Si usas MS Project, una instancia de tu modelo sería el diagrama de red.


Buenas prácticas a la hora de crear tu cronograma - Parte 1

A.  Crea un plan de gestión del modelo de cronograma, recuerda: estoy pensando en un proyecto donde intervienen varios interesados de distintos tipos, colores y formas..  los quiero a todos alineaditos y entendiendo qué estamos haciendo, cómo vamos y sobre todo viendo la misma versión del archivo ! (suele pasar... )

Este plan incluye:

1. Elegir un modelo de programación a seguir. 
Depende de las políticas de tu empresa y las características del proyecto, puede ser Diagranación por precedencia (PDM, Precedence Diagram Method), Ruta crítica (CPM, Critical Path Method), Cadena crítica.

2. Elige una herramienta de programación.
MS Project si si si si .... :) ....  existen otras como OpenProject, etc.

3. Define el plan para la creación del modelo del cronograma.
El PM (Project Manager) en conjunto con el equipo y los interesados clave definen dicho plan; lo hacemos en conjunto para que todos tengamos las reglas claras.  Dentro de las definiciones puede estar hacer planeación rolling wave; es decir, no tengo el detalle de todo lo que haré en 1 año pero sí tengo el detalle de los próximos 5 meses (ojo, esto no quiere decir que no tiene idea que debes hacer después del 5to mes, sí tienes que conocer las actividades macro del mes 6 en adelante .....)

 el detalle que sí tienes de los próximos 5 meses lo dejas consignado, más adelante a medida que vamos avanzando en el proyecto podrás ir construyendo el detalle de las actividades macro.

4. ID del modelo de programación
Claro, cada modelo debe tener un método de identificación único.

5. Versión del modelo de programación
Claro, cada instancia del modelo debe tener un identificador único. Ej PROYECTO-DRED-VersionXXX-ddmmaaaa

6. Calendarios y períodos laborales
Por favor no olvides esto, y si tu proyecto se extiende no olvides ingresar los nuevos días festivos !!! que horror cuando un PM se compromete con una fecha y resulta oups! se le olvidó meter los festivos al cronograma.  

Práctica personal siempre tengo los festivos de al menos 1 año más allá de la fecha fin del proyecto original (sí, suena exagerado, pero ya me ha pasado que un proyecto se extienda con uno y otro y otro control de cambios).  

    Carnaval de barranquilla - Monocuco
  • Define los días laborales de la semana (que tal una empresa que sólo trabajara de lunes a miércoles? .. yo kiero ;( ...).
    Ej: lun - vie
  • Define los turnos por día (ej personal de aseo de la fábrica tiene dos turnos: turno A de 6am - 2pm; turno B 2pm - 10pm)
    Ej: 8am - 12pm y 2pm - 6pm
  • Define el número de horas a trabajar cada día
    Ej. 8h diarias
  • Define los períodos no laborales.  Puede ser por beneficios empresariales donde en tiempo de feria no se trabaja (saludes a los barranquilleros y su carnaval).
    Ej. semana santa, carnaval de barranquilla
  • Define los períodos de sobrecarga.  Sí, puedes saber con antelación cuando tendrás que trasnochar :(  por ejemplo, durante una puesta en producción de fin de semana; aquí cuando tu equipo pregunta cuánto trabajarán tu frase favorita es: hasta que quede bien.
Resultado de imagen para overtime work

Práctica personal creo un calendario que cubre 3 años y lo llamo como mi país (ej. COLOMBIA 2015 - 2018) que me servirá de plantilla para todos mis proyectos, luego en MS Project en un nuevo proyecto simplemente lo importo y lo defino como el default.

Para proyectos multinacionales, deberás también tener el calendario de los demás países de forma que puedas asignar calendarios a cada tarea o recurso según requieras.  Confuso? bueno, explicaré con plastilina:  supongamos que tengo una tarea de "Montaje en ambiente de producción" y como debe hacerse en Perú, pues a esta tarea como tal le asigno el calendario de Perú.  (en MS Project : Información de la tarea -> Avanzado -> Calendario).  Ahora supongamos que tenemos una tarea que desarrollan en conjunto los equipos de ambos países ej. "Validación del documento" aquí necesitas tener en cuenta los días festivos de ambos países, por ello es bueno que le asignes el calendario que corresponde a cada uno de los recursos (en MS Project: Vista Hoja de Recursos -> Calendario base); de esta manera Project calcula de manera automática el día laboral más cercano de todos los recursos asignados a la tarea.

7. Ciclo de actualización del proyecto
Es el intervalo de tiempo en que se actualiza el status del proyecto.  Depende del tipo de proyecto si es de manufactura podría requerirse a diario, pero si es de construcción podría ser por semanas o meses; también depende del momento que atraviese el proyecto.

Ej: el informe de avance del cronograma estará disponible en el repositorio los lunes a las 4pm, y se realizará presentación los martes a las 8:00am en comité.

Así mismo debes también tener clara la escala de tiempo a usar: meses, dias, horas.

8. Estructura de codificación de las actividades e hitos
Un buen sistema de identificación brinda un mejor entendimiento de cómo encaja una actividad enla visión global del proyecto.  Supongamos que tu cronograma tiene hitos, unos son entregables contractuales de tus proveedores por ej manual de usuario, y otros simplemente los usas como entes de control de momentos en tu proyecto ej desarrollos terminados...  como los distinguirías? y si son 10 proveedores como sabes qué entregable es de cual sin tener que mirar los recursos o las actividades predecesoras? ahjá...  un sistema de codificación sencillo:  HITO: Finalización de capacitaciones...  éste sería un hito de un momento del proyecto; pero HITO: IBM.Entregable.ManualUsuario.. ya sabes qué es y de quien cierto?.

Similar ocurre con tus actividades.. supongamos que estamos desarrollando software y tienes 7 módulos con las mismas tareas internas de desarrollo, puesta en ambiente de pruebas, pruebas, etc.  Para identificarlas podrías decir que 1-Desarrollo será el módulo de campañas, 2-Desarrollo el de finanzas; o puedes usar abreviaturas CMPÑ-Desarrollo, FNZS-Desarrollo.  Esto es lo que debes dejar consignado para que todos sepan y entiendan; y los que nó pues los mandas a leer el documento de plan de gestión de modelo del cronograma para que terminen de aterrizar en el proyecto.

La codificación te sirve para identificar fases o subfases del proyecto, lugar del trabajo, eventos, persona u organización responsable, etc.

Y.................................... el código debe ser único.

9. Indicadores de rendimiento
Estos indicadores le dicen a los interesados cómo va el proyecto.  Uno de los indicadores es el Método de valor ganado.  Para saber más revisa "Practice Standard forEarned Value Management" del PMI o ten paciencia a que saque el post correspondiente.

Resultado de imagen para cara lengua afuera gif10. Modelo maestro de cronograma
Imagina tener 6 frentes o áreas involucradas en un proyecto donde cada uno tiene un cronograma de 4000 lineas; no es práctico tener todo esto en un único cronograma consolidado (además que su majestad MS Project empieza a hacer de las suyas y sacarte la lengua).

Aquí es mejor no pelear y saber darle la vuelta a la situación creando un cronograma maestro conteniendo los demás subproyectos.  Puedes usar la opción de subproyecto de MS Project (aunque a veces sigue sacando la lengua), otra opción puede ser dejar en el cronograma maestro sólo las actividades grandes como: Desarrollo y que en el detallado si existan las tareas de Creación de BD, Creación de SP, Creación de ETLs, etc; así deberás registrar el avance sólo de la actividad padres.

................. Continúa leyendo la parte 2, deja un comentario y la proxima entrega te informare.......











jueves, 19 de abril de 2012

Configurar Reporting Services para consumir SSIS packages

Hola

Este artículo es muy MUY MUUUYYY  interesante, te enseña a configurar Reporting Services para consumir como entrada un paquete de Integration Services.

Cual es la lógica del asunto? pues así como puedo ejecutar un stored procedure y decirle que esos datos alimenten mi reporte, tambien puede hacer que se ejecute un SSIS. :)  :)  Hey!... no se entusiasmen tanto, mucho cuidado con el rendimiento del servidor.

Si alguien ya ha  usado este tipo de Frankenstein, por favor dejen un comentario sobre en qué situaciones se vieron obligados a implementarlo para que el blog sea un compartir de conocimientos !!

Aquí les dejo el enlace
Configure Reporting Services to consume SSIS packages
http://www.vsteamsystemcentral.com/cs/blogs/applied_team_system/archive/2006/05/20/77.aspx

Tengan presente que la parte inferior del articulo les indica los archivos en el servidor de reportes que deben modificar (a nivel de configuración del motor), para que la opción de SSIS les quede activa en la interfaz de desarrollo.
_________________________

jueves, 12 de enero de 2012

SSIS - Como crear un log de errores

Espero estar explicando esta semana este punto ;)... despues de un año retomo el tema del blog... tengan paciencia.