Gerencia de proyectos de TI

Blog del Grupo de Interés

Casi todos los gerentes de proyecto tienen, por defecto, una cantidad interminable de “cosas por hacer”. Por lo tanto, es común encontrar que una herramienta muy utilizada es “La Lista de Tareas Pendientes” – más conocida como To Do -término en inglés.

Yo me considero un fanático de la herramienta, pero debo admitir públicamente que siempre empiezo una o varias listas -dependiendo de lo que tenga a la mano- y pocas veces logro encontrar el mecanismo o procedimiento adecuado para mantenerlas actualizadas. Es por eso que decidí escribir este artículo, con base en un artículo publicado por Method 123 hace algunos meses.

Una lista de tareas no es algo simple de hacer, y no debería limitarse a una lista de chequeo, similar a aquella que usamos los hombres cuando nuestras mujeres nos envían a hacer las compras. Por lo general, la cantidad de tareas que adicionamos a la lista es mayor que la cantidad de tareas que realizamos, esto hace que la lista crezca y que experimentemos una falsa sensación de NO-progreso. He aquí algunas claves para evitar que esto suceda.

Una lista ÚNICA

Si usted es, como yo, de los que tiene una lista de tareas sobre el escritorio de su estudio, otra en el carro (sobre un dispositivo para tomar notas como los de algunos taxis bogotanos),  y pequeños Post-It en el monitor de su pantalla en la oficina, lo más urgente es unificar las listas. Este proceso de unificación lógica, es también un ejercicio para definir los criterios de unificación, agrupación y priorización. Una vez todas las tareas están condensadas en su nueva lista unificada, sentirá un alivio al saber que ya todo ha sido nombrado e identificado.

Fechas y Límites

Para cada una de las actividades por hacer, es vital definir la fecha estimada o la fecha límite en las cuales las tareas deben ser realizadas o finalizadas. Esta asignación de fechas ayuda a identificar puntos críticos donde la carga de trabajo es elevada y por lo tanto nos obliga a determinar prioridades -que es más importante- y desde luego a planear mejor nuestro tiempo.

Establecer prioridades claras

Hasta el momento, esta lista de tareas es un poco más compleja pero a su vez es mucho más útil que aquella conformada por los Post-Its en el monitor de nuestro computador. Algunos criterios son de clasificación y priorización son:

  • Fechas
  • Esfuerzo requerido para realizar la actividad
  • Complejidad
  • Importancia
  • Fechas Límite (deadlines)

Sin embargo, la priorización y control requiren de herramientas un poco más sofisticadas que el papel y el lápiz. Existen soluciones de software (herramientas Web, programas para nuestros teléfonos móviles, o programas de escritorio) que nos ayudan a simplificar estos procesos. Al final encontrarán una pequeña lista de herramientas como un aporte personal.

Definir la ruta crítica

No es un misterio que no en todos los casos se pueden ejecutar todas las tareas. Para estos escenarios se debe definir una ruta crítica que deben ser realizadas para lograr los objetivos (personales o laborales) que motivaron la lista. Un mecanismo para identificar aquellas tareas críticas es saber si de ellas depende la continuidad del proyecto, nuestro trabajo, u otros compromisos personales. Muchas tareas dentro de una lista de ToDo pueden ser obviadas o no son vitales para lograr las metas del día, la semana, o el proyecto.

Administrar la lista

El siguiente paso desde luego es establecer las fechas de las actividades críticas. Aquellas actividades deben comprometer al gerente de proyecto de manera excepcional y son precisamente esas tareas las que deben ser realizadas de acuerdo al plan. Incluso para aquellas actividades no críticas es posible no determinar la fecha y mantener un control básico.

A medida que las actividades se han resuelto, se debe actualizar la lista. De la misma manera, cuando nuevas actividades deben ser incluidas, es importante evaluar y clasificar cada nuevo elemento y determinar si es crítico o no y establecer las fechas.

Mantener la lista actualizada y centralizada requiere un esfuerzo moderado, pero trae muchas ventajas y simplifica considerablemente el proceso diario al que se somete toda persona cada mañana ante la pregunta ¿y hoy, qué tengo pendiente para hacer?

Herramientas disponibles en el mercado

En el mercado existe una amplia, muy amplia, variedad de herramientas para administrar las tareas pendientes o ToDo lists. He aquí una lista MUY reducida de ellas -sin ningún orden particular.

  • Google Tasks – para aquellos que usamos los servicios de Google
  • JOTT – este es un servicio avanzado de integración de plataformas. Pero es interesante mencionarlo.
  • ThinkingRock GTD – herramienta que usa el método diseñado por David Allen: Get Things Done
  • Vitalist – herramienta Web para desktop y iPhone. También basada en GTD

En el tema de la gerencia de proyectos hay mucho que aprender, y desde luego recorrer un camino que incluye administrar el tiempo, los recursos financieros, equipos y materiales, y desde luego, gerenciar y potenciar un grupo de personas con talentos y debilidades. Sin embargo, hay algunos pasos básicos que debemos completar para no fracasar, o al menos no sacrificar todo el tiempo libre y personal en el proceso.

Iniciar con cautela

No todos los proyectos son iguales y, aunque no lo parezca, cada uno requiere de una mirada inicial detallada que permita identificar la forma de afrontar los requerimientos. Es decir, definir un proceso, unas reglas de juego para el equipo de trabajo y desde luego, un mecanismo apropiado para que el gerente del proyecto haga “su magia”.

  1. Definir los objetivos, el plazo esperado y el cronograma
  2. Cuantificar los recursos necesarios
  3. Especificar el alcance y los entregables
  4. Determinar para cada entregable si ha de ser un desarrollo interno o si ha de ser tercerizado.
  5. Reclutar el equipo de trabajo y ofrecer un área de trabajo adecuada

Planear al detalle necesario

Identificar las actividades que deben ser realizadas, priorizarlas y determinar el costo (tiempo y dinero) de cada una. Con esta información es posible ahora construir un plan de proyecto y cronograma detallados. La clave de una buena gerencia es siempre saber qué hay que hacer, cuándo hay que hacerlo y, quién ha de realizarlo.

  1. Identificar el equipo requerido para realizar el trabajo
  2. Determinar el presupuesto y el flujo de caja (cuándo y cuánto necesita la ejecución para mantener el ritmo?)
  3. Listar los entregables y establecer los parámetros de evaluación de cumplimiento esperados (cómo saber que el entregable esta listo y cumple con los requerimientos?)
  4. Definir el esquema de comunicación para garantizar que los interesados están bien informados (qué debo comunicar? y qué medio utilizo para ello?)
  5. Determinar el plan de acción ante riesgos, el procedimiento para aceptar cambios y atacar incidentes (qué pasa cuando algo no sale según el plan?)

Ejecutar con rapidez

Desde luego, la ejecución se debe realizar de forma eficiente. Es claro que la ejecución consumirá la mayor cantidad de tiempo y recursos de un proyecto (de ahí que la gráfica de ejecución presupuestal vs. tiempo se parezca a la letra S – ‘Curva S’). Si existe un buen plan, es más probable una ejecución inteligente que se adapte a la realidad de las circunstancias.

  1. Mantener control y registro sobre la utilización de los recursos
  2. Verificar con frecuencia el avance del proyecto y comparar con lo planeado
  3. Tomar las decisiones a tiempo para garantizar la ejecución a tiempo
  4. Integrar los cambios aprobados al plan del proyecto lo más pronto posible
  5. Atacar y resolver incidentes y riesgos
  6. Mantener al equipo motivado y promover un rendimiento excepcional

Finalizar y capitalizar

Cuando todo el trabajo ha sido realizado y debidamente entregado a los interesados, es momento de cerrar el proyecto. Desde luego, implica terminar las relaciones contractuales con aquellos miembros y recursos del proyecto que fueron contratados o adquiridos para el proyecto particular -contratistas, proveedores, contratos de arrendamiento. Finalizar el proyecto también implica documentar e interiorizar las lecciones aprendidas, que permiten consolidar la experiencia y conforman la base de conocimiento que en el futuro apoyará la toma de decisiones en nuevos emprendimientos.

Estos pasos básicos son, desde luego muy similares para todos los proyectos y son frecuentemente mencionados en metodologías y marcos conceptuales definidos para la gerencia de proyectos, sin embargo muchas veces obviamos lo básico y nos concentramos en el detalle complejo de la realización diaria.

La VIII Jornada de Gerencia de Proyectos de TI es un escenario propicio para la discusión y una invitación a cuestionar nuestras propias realidades y contextos sobre la gerencia de proyectos en el mundo de la Tecnología de la Información.

Algunos de los conferencistas nos presentarán casos reales vividos por ellos como gerentes de proyectos, otros nos explicarán algunas metodologías utilizadas y finalmente presentaremos la octava versión de la encuesta sobre el tema de gerencia de proyectos de TI en Colombia.

Queremos invitarlos a que nos acompañen en esta nueva versión de la Jornada donde tendremos dos días de actualización y de espacios de discusión sobre los diferentes temas de la Gerencia de Proyectos de Tecnología de la Información.

Para las personas certificadas PMP, la participación a este evento con su respectivo certificado, le permitirá registrar 16 PDUs en categoría 4, los cuales le servirán para la renovación de su certificación.

Marzo 11 y 12 de 2010 (8:00am a 6:00pm)
Auditorios CM
Cra 19C No 90 -30 Piso 6
Bogotá, Colombia

Más información en ACIS

En Colombia, y en general durante los tiempos de crisis, el dinamismo de los proyectos, y en particular los proyectos de desarrollo de software (SW) se sustenta en la ecuación del costo fijo. Lo curioso de nuestro caso, el colombiano, es que la mayoría de los casos, el costo del proyecto se define aún antes de tener la certeza del resultado, es decir, que sabemos cuanto debe costar, pero nunca que debe hacer o producir

Por eso, es común encontrar en el medio colombiano que, en las empresas proveedoras de servicios de desarrollo y producción de SW existe una resistencia común a las metodologías ágiles de producción de SW. En consecuencia expongo a continuación algunos tips para aquellos que confían en la aproximación ágil de desarrollo y temen aplicarla a proyectos de costo fijo.

  • Asegurar un cliente comprometido. Un cliente comprometido seguramente entenderá el costo y la responsabilidad asociado a una ejecución ágil de la producción. Esta aproximación tiene muchas ventajas al reducir los riesgos, minimizar posibles problemas de “scope creep” y permitir un mayor control tangible sobre el avance. Desde luego significa un costo alto en compromiso. La administración del cambio es, en esencia una modificación al contrato y por lo tanto será seguramente un incremento en el costo. Un consejo, el compromiso del cliente es evidente desde las reuniones de pre-venta o lanzamiento del proyecto, si el cliente demuestra poco interés o tiene otras prioridades desde el lanzamiento, es seguro que este comportamiento persistirá a lo largo de toda la ejecución.
  • Garantizar colaboración oportuna. En la ejecución ágil de proyectos asume un compromiso continuo sin descanso o pausa. La ejecución tradicional sólo presenta este nivel de compromiso en la ejecución de las actividades de la ruta crítica. En el desarrollo ágil no existe tal cosa y por tanto cada iteración o sprint debe por obligación ser administrado como ruta crítica. Una retroalimentación tardía o cualquier otro tipo de participación del lado del cliente que represente demora es, sin excepción una grave falta al compromiso y al dinamismo del proyecto.
  • Dividir es vencer -muchos proyectos pequeños son mejores que un gran proyecto grande. En realidad esta es la verdadera razón de la existencia de las metodologías ágiles, es mejor pequeños adelantos incrementales a un gran salto tradicional -similar la fábula de “la liebre y la tortuga” de Esopo, donde cada iteración es un pequeño paso de la tortuga, y un gran ciclo de desarrollo tradicional es como un gran “pique” del conejo. Para garantizar una adecuada distribución del trabajo es importante siempre considerar los drivers del negocio y sobre aquello las historias de usuario que representen la mejor calidad y mayor cantidad posible de  requerimientos para la iteración planeada.
  • Permitir que el cliente participe en la priorización de los requerimientos, de forma directa el cliente quien visualiza efectivamente los sacrificios funcionales y de tiempo que se deben tomar para garantizar la continuidad y éxito del proyecto-recuerde el primer consejo, un cliente comprometido compartirá responsabilidades con el proveedor.
  • Definir los requerimientos como historias de usuario con el cliente. Este punto puede tener gran discusión, pero en su defensa, estas cortas descripciones pueden ser apoyadas por elementos detallados en los casos que así se requiera. Las historias de usuario son, por defecto, simples y cortas, y así son fáciles de entender. Las historias de usuario pueden ser derivadas de los drivers del negocio. Así mismo, se asume que en grupos auto-organizados, el entendimiento de los drivers de negocio asociados al desarrollo del producto son razón suficiente para garantizar un adecuado factor de “cumplimiento/satisfacción”.
  • Intercambiar requerimientos. Cuando en un proyecto se detecta un incremento sustancial en los requerimientos de cambio o nuevas solicitudes, significa que el resultado obtenido no es el esperado y/o es probable que cumpla con las especificaciones originales pero sea insuficiente para cubrir las necesidades actuales. Introducir nuevos requerimientos al sistema es, en un proyecto de costo fijo, restrictivo en tiempo -por la conocida triple restricción, por eso, más allá del “control de cambios” piense siempre en “intercambio de requerimientos”. Las habilidades de negociación son críticas, ya que el control de cambios debe ser estricto para garantizar la finalización oportuna y sobre el costo planeado, así como minimizar el impacto en la planeación continua de las iteraciones. Recuerde que en la metodología ágil no se debe interrumpir una iteración.
  • Proponer fases futuras. Tras la negociación de los requerimientos es importante considerar que no todos los requerimientos puedan ser resueltos en el tiempo y costo (que casi siempre son fijos), por lo tanto es saludable documentar los requerimientos y proponer, en pro de una sana relación cliente-proveedor, nuevas fases de proyecto.
  • Evaluar antes de iniciar otras fases. El punto anterior asume un cierre de proyecto. El objetivo de posponer entregables no se debe interpretar como una extensión del proyecto actual o nuevas iteraciones a nuevo costo. Este cierre es saludable y permite la evaluación -a blanco y negro- del producto entregado. En ese periodo es prudente evaluar con el uso, la calidad del producto, el grado de completitud de los requerimientos, y satisfacción del cliente.
  • Involucrar presencialmente al cliente. Esto es algo muy complejo y sólo ocurrirá cuando el proyecto sea crítico, sin embargo algunos métodos ágiles definen roles al interior de sus grupos de trabajo para garantizar una adecuada representación en todo momento de los intereses del cliente y de las necesidades del negocio.
  • Documentar y evaluar las lecciones aprendidas. Algunas metodologías no hacen suficiente énfasis en este punto, sin embargo es algo que nunca debemos olvidar, documentar lo aprendido a nivel de proceso, de producto, de manejo de cliente, de negocio, y demás.

En conclusión el costo fijo no es una restricción excluyente de los procesos de desarrollo ágil de producto, sin embargo si debe asumirse una relación gana-gana entre el cliente y el proveedor ya que, como en todo, esta decisión tiene sus PROs y sus CONTRAs. El desarrollo de software es, por naturaleza, un “salto de fe”, y en mi concepto, el desarrollo iterativo es por lo tanto una reducción de la distancia de “este salto de fe”, al incluir el desarrollo iterativo y la producción de entregables de valor en cada iteración.

Estos objetivos genéricos de la gerencia de proyectos son independientes de la industria y, sin importar la experiencia, deberían ser considerados en sus proyectos.

Objetivo 1: Terminar a tiempo

Este es el más antiguo y enredado de los objetivos mencionados. Es el más difícil puesto que los requerimientos muy probablemente cambiaran durante el ciclo de vida del proyecto y, como nos pasa a todos, el cronograma original era en “algo” optimista.

Para garantizar el éxito deberá, como gerente de proyecto, gestionar el alcance con suma precaución. Implementar un proceso de control de cambios adecuado para incluir propiamente todos los nuevos requerimientos y cambios. Mantener siempre actualizado su plan de proyecto/trabajo, evaluar el progreso del proyecto (planeado vs. real). Identificar las desviaciones del plan y corregir el rumbo del proyecto lo más pronto posible.

Objetivo 2: No exceder presupuesto

Asegurar los costos del proyecto de acuerdo al presupuesto -o en muchos casos, por debajo- no es tarea fácil. Para ello establecer líneas base de presupuesto permitirán comparar y hacer seguimiento en todo momento a la ejecución de dicho presupuesto. Es muy importante incluir todos los costos relacionados con el proyecto, ya sea de forma directa o indirecta -como son entre otros: personal, equipos, proveedores, materiales. Esto logra que, al establecer el plan de ejecución -las tareas por hacer- se pueda asociar con mayor certeza un plan de ejecución presupuestal.

No debemos olvidar que es posible balancear el gasto realizado, si para algunas tareas tenemos sobrecosto y para otras ahorro.

Objetivo 3: Satisfacer los requerimientos

Este objetivo es intrínseco ya que es por los requerimientos que se definió el proyecto para el cual estamos trabajando o vamos a trabajar. Sin importar cuales sean estos requerimientos, nuestro objetivos como gerentes es garantizar que estos requerimientos se cumplen en un 100%.

El truco es garantizar que la información detallada de algunos requerimientos es suficiente al inicio de la ejecución. Si los requerimientos son ambiguos, de seguro existirán diferencias entre las expectativas e interpretaciones, y es ahi donde “un requerimiento” se convierte en todo un “subproyecto”, lo que en otros términos en una asignación de personas o consumo inesperado de recursos.

Objetivo 4: Hacer felices a los clientes

Es curioso pero cierto, usted puede terminar su proyecto a tiempo, dentro del presupuesto estimado y habiendo alcanzado el 100% de los requerimientos, y esto no garantiza que el resultado sea un cliente contento/agradecido. Esto se debe en la mayoría de los casos a que los requerimientos no concuerdan con las expectativas, y esto significa desde luego que las expectativas deben ser gestionadas de forma similar a los requerimientos.

Para garantizar que el patrocinador del proyecto (sponsor), los clientes y otros interesados (stakeholders) están contentos al final del proyecto, es vital gestionar y manejar las expectativas de cada uno de forma cuidadosa. Para ello, es importante mantener un contacto regular con ellos, informando sobre el avance. Este informe de avance no puede ser otra cosa más que real, claro y sencillo de entender. También es importante darles un espacio regularmente para comentar sus dudas e inquietudes. Y, desde luego, es importante poner la cara cuando se presenten problemas, retrasos, o se deban tomar decisiones importantes. La realidad, abierta y honesta, es siempre la mejor herramienta para gestionar las expectativas de los interesados.

Objetivo 5: Mantener un equipo alegre y motivado

Para terminar, si ha todos los objetivos anteriores les suma, la idea de lograrlos con un equipo alegre y motivado, no podemos esperar otra cosa que el interés de volver a trabajar juntos en el siguiente proyecto. Y así es como su equipo deberá sentirse al final del proyecto. La satisfacción del equipo es crítica para el éxito del proyecto.

Mantenga a su equipo de trabajo contento, recompensando sus éxitos y reconociendo el esfuerzo. Asigne el trabajo garantizando que aquellos que tienen la responsabilidad de hacer algo, tienen las competencias para hacerlo. Actividades de construcción de equipo (team building) son necesarias para elevar la moral del equipo. Con un equipo motivado y alegre es posible lograr todo objetivo.

Estos son, Los 5 Objetivos Genéricos que debe establecer para cada proyecto.

Artículo publicado por Method123 en su lista de correo -yo me tomé el tiempo de “traducirlo”.