Project Management Institute

Integración del PMBOK al RUP para proyectos de desarrollo de software en el sector financiero

Integrating PMBOK and RUP when developing software projects in the financial sector

Consultor TI, AVATAR SAC – IBM Business Partner

Resumen

Ante la actual problemática de que más de 70% de los proyectos de implementación de tecnologías de información fracasa, surge la necesidad de contar con un adecuado proceso de desarrollo de software y una metodología de gestión de proyectos que garantice la correcta ejecución del mismo, respetando las restricciones de tiempo, alcance y costo inherentes a todo proyecto.

En este artículo presentamos un caso de éxito de aplicación conjunta de la metodología PMBOK y el RUP en un proyecto de desarrollo de software de una empresa del sector financiero. Esta experiencia ha permitido recolectar buenas prácticas así como lecciones aprendidas ayudando a gestionar con efectividad un proceso de desarrollo de software según los estándares del PMI.

Introducción

Muchas organizaciones desean que los proyectos de desarrollo de software que requieren implementar sean exitosos, razón por la cual se encuentran implementando mecanismos que les permitan alcanzar estos objetivos. Se realizó un análisis exhaustivo de qué es lo que hace fallar a los proyectos de desarrollo de software. Los resultados mostraron que las fallas más importantes radican en la falta de una adecuada metodología de gestión de proyectos enfocada a la industria de desarrollo de software.

En este artículo se describen los mecanismos de integración entre el Project Management Body of Knowledge (PMI, 2004) y el Proceso Unificado de Desarrollo de Software (RUP, 2007) para la exitosa ejecución de proyectos intensivos en desarrollo de software. El Proceso Unificado de Desarrollo de Software (RUP) presenta un enfoque prescriptivo para estandarizar las mejores prácticas de la ingeniería de software, mientras que los Fundamentos de Dirección de Proyectos (Project Management Body of Knowledge, o PMBOK) ofrecen un enfoque descriptivo para estandarizar las mejores prácticas de la gestión de proyectos en un entorno global. La integración de estas dos metodologías de una manera sinérgica asegura la implementación de mejores prácticas, tanto en la ejecución de las actividades del proyecto como en su gestión y supervisión.

El artículo se encuentra estructurado del modo siguiente. En la primera sección se tratan los problemas que presentan los proyectos de desarrollo de software. En la segunda sección se presenta un análisis de la gestión de proyectos de software en el que se detallan la metodología RUP, su ciclo de vida y la disciplina de gestión de proyectos del RUP. En la tercera sección se presenta la integración de la metodología RUP al PMBOK enfatizando los principales entregables de tal correspondencia. En la cuarta sección se presenta un caso de éxito de aplicación de la integración de estas metodologías al manejo efectivo de un proyecto de desarrollo de software. Por último se presentan las conclusiones.

Problemas en los proyectos de desarrollo de software

Desde hace muchos años los proyectos de desarrollo de software se enfrentan a muchos problemas que la mayoría de las veces los han llevado a fracasar (Schwalbe, 2007). En el año 1994 el Standish Group (Standish Group's, 1994) analizó tal problemática en su reconocido informe de Chaos, realizando entrevistas a 365 directores ejecutivos de tecnologías de información provenientes de prestigiosas compañías, con un total de 8360 aplicaciones. De todas las aplicaciones se extrajeron diversos criterios para saber cómo un proyecto termina en forma exitosa o fallida en relación con lo planificado y presupuestado al momento de su concepción. Los resultados que se obtuvieron en este informe fueron los siguientes: sólo 16,2% de los proyectos TI fueron exitosos, terminando según lo planificado y presupuestado; 31,1% de los proyectos TI fueron cancelados antes de terminar; y 52,7% de los proyectos TI costaron el 189% de su estimación original.

Según Kappelman et al. (2006) y el Standish Group (1994), entre las causas del fracaso de los proyectos de desarrollo de software se encuentran la falta de involucramiento del usuario, la falta de apoyo de la alta gerencia, el carácter difuso de los objetivos de negocio, la inexperiencia de los gerentes de proyecto, la presencia de hitos de larga duración y de requerimientos no administrados, la inexperiencia del personal y las insuficiencias del planeamiento. El informe Chaos de 2004 (Standish Group's, 2004) manifiesta que en los Estados Unidos se gastan más de 250 billones de dólares cada año en cerca de 175.000 proyectos de aplicaciones de tecnologías de la información. Indica, además, que el costo promedio de un proyecto en una compañía grande es de aproximadamente 2,3 millones de dólares; en una compañía mediana, de 1,3 millones de dólares, y de 0,4 millones en una pequeña empresa. No obstante, muchos de estos proyectos fallan en sus resultados. Sin embargo, en el año 2006 el análisis devolvió resultados mejores: 35% de los proyectos TI fueron exitosos, terminando según lo planificado y presupuestado; 19% de los proyectos TI fueron cancelados antes de terminar y 46% de los proyectos TI costaron 41% más que su estimación original (SDTimes, 2007).

Gráfico 1

Gráfico 1

A partir del gráfico anterior se puede observar que el grado de éxito de los proyectos de desarrollo de software ha aumentado considerablemente. Esto se debe a tres razones fundamentales: la mejora de la gestión de proyectos, la utilización de una metodología de desarrollo de software iterativa y la explotación de la infraestructura web. La división de los proyectos en fases que los tornan más pequeños para manejar es de considerable ayuda, ya que todos los requerimientos del proyecto se pueden manejar mejor siguiendo un proceso iterativo. Esto, de la mano con una buena y cada vez mejor gestión de proyectos, asegura que los proyectos de desarrollo de software puedan incrementar su grado de éxito con el pasar de los años. No hay que dejar de lado también que la aparición de la web juega un papel bastante importante, ya que con ella se pueden obtener resultados cada vez más rápidos y consultar sobre diversos temas que acontecen en los proyectos de desarrollo de software.

El proceso de desarrollo unificado (RUP)

Introducción

El proceso de desarrollo unificado es un proceso de ingeniería de software que proporciona un enfoque disciplinado para asignar tareas y responsabilidades dentro de una organización de desarrollo de software. Su objetivo es garantizar la producción de software de alta calidad que satisfaga las necesidades de sus usuarios finales, dentro de un cronograma y un presupuesto previsibles (RUP, 2007)

Muchas de las mejores prácticas modernas de la industria de desarrollo de software son aplicadas por el proceso de desarrollo unificado. Ellas encajan perfectamente en una variedad de tipos de proyectos y organizaciones. El despliegue de estas buenas prácticas ofrece a los equipos de desarrollo de software una serie de ventajas clave, dándoles las directrices, los modelos y las herramientas necesarios para sacar el máximo provecho en la implementación de un proyecto de desarrollo de software.

El RUP se fundamenta en seis mejores prácticas: el desarrollo iterativo, la administración de requerimientos, el uso de arquitectura basada en componentes, el modelamiento visual, la verificación continua de la calidad y la administración del cambio. Estas seis mejores prácticas orientan el modelo y con ellas se pretende solucionar muchos de los problemas asociados al software. En el gráfico 2a podemos observar la aplicación de estas mejores prácticas con herramientas probadas de la industria.

Gráfico 2

Gráfico 2

La implementación de estas mejores prácticas ha sido probada con éxito. Dado que actualmente las organizaciones poseen y demandan sistemas de software cada vez más sofisticados, no es posible definir secuencialmente todo el problema que se plantea, el diseño de toda la solución, la construcción del software y la prueba del producto final. Por tal motivo, se requiere trabajar con un enfoque iterativo cuya ventaja reside en una mayor comprensión del problema a través de sucesivas mejoras, y en el crecimiento incremental de una solución cada vez mayor a través de múltiples iteraciones. El gráfico 2b muestra de qué modo, iteración por iteración, se va construyendo el producto de software final pasando en cada una de ellas por todas etapas de desarrollo de software mencionadas. Para mayor detalle, véase RUP (2007).

Principales fases y disciplinas

Desde la perspectiva de la gestión, el ciclo de vida del software del proceso unificado de desarrollo (RUP) se descompone en cuatro fases secuenciales: inicio, elaboración, construcción y transición. Cada una de ellas concluye con el cumplimiento de un objetivo principal; así, cada fase es esencialmente un período de tiempo entre dos objetivos importantes. Al final de cada fase se lleva a cabo una valoración para determinar si los objetivos de la fase se han alcanzado. Una valoración satisfactoria permite que el proyecto continúe a la fase siguiente. No todas las fases son idénticas en términos de planificación y esfuerzo, aunque esto varía considerablemente dependiendo del proyecto. El gráfico 3a muestra las principales fases del proceso unificado de desarrollo con sus principales objetivos.

Fases del RUP con sus principales objetivos b) Fases de RUP

Gráfico 3 – a) Fases del RUP con sus principales objetivos b) Fases de RUP

No todas las fases son idénticas en términos de cronograma y esfuerzo, sino que varían considerablemente dependiendo del tipo de proyecto. En el gráfico 3b podemos observar cada una de las fases de RUP distribuidas según el esfuerzo que toman a lo largo del tiempo.

El proceso de desarrollo unificado se descompone en nueve disciplinas que tienen mayor o menor relevancia según la fase del proyecto en que nos encontremos. En el gráfico 4a podemos observar la intensidad con que cada disciplina está presente a lo largo del ciclo de vida de un proyecto de desarrollo de software. Por ejemplo, en iteraciones tempranas se invierte más tiempo en requerimientos y en iteraciones finales se invierte más tiempo en implementación. Como podemos observar, también la disciplina de gestión de proyectos se encuentra presente con la misma intensidad durante todo el ciclo de vida del proyecto, por lo cual esto será un tema a tratar en la siguiente sección.

Disciplinas de RUP b) Estructura del RUP

Gráfico 4 – a) Disciplinas de RUP b) Estructura del RUP

El proceso de desarrollo unificado se descompone en nueve disciplinas que tienen mayor o menor relevancia según la fase del proyecto donde nos encontremos. En el gráfico 4a podemos observar la intensidad con que cada disciplina está presente a lo largo del ciclo de vida de un proyecto de desarrollo de software. Como podemos observar en el gráfico 4a, la disciplina de gestión de proyectos se encuentra presente con la misma intensidad durante todo el ciclo de vida del proyecto, por lo cual esto será tema a tratar en la siguiente sección. El gráfico 4b grafica los roles, artefactos y actividades y otros elementos complementarios del RUP (RUP, 2007).

La disciplina de gestión

El RUP define la gestión de proyectos de software como el arte de equilibrar objetivos, administrar riesgos y superar restricciones para entregar un producto que cumpla con las necesidades de los clientes y usuarios. De las disciplinas señaladas anteriormente (Gráfico 4a), las de mayor interés son las que se relacionan con la Dirección de Proyectos (PM, por sus siglas en inglés).

La disciplina de gestión de proyectos del RUP provee un marco para la gestión de proyectos orientados al desarrollo de software; guías prácticas para la planificación, la dirección de personal, la ejecución, el monitoreo y la supervisión de proyectos; y un marco para la gestión de riesgos. Esta disciplina está enfocada principalmente en los aspectos más importantes de un proceso de desarrollo iterativo: gestionar los riesgos; planificar un proyecto iterativo, en todo su ciclo de vida y para cada una de las iteraciones en particular; supervisar el progreso y las métricas del proyecto.

Integración del PMBOK al proceso de desarrollo unificado

La utilización de un esquema para la gestión de proyectos de desarrollo de software permite que un proyecto siga la cultura y las prácticas esperadas de la organización y opere de la mejor manera para poder dar apoyo a la organización y sus propósitos (Wysocki y McGary, 2003). Una metodología adecuada para la gestión de proyectos de desarrollo de software debe proveer a los administradores de proyectos de la organización de una perspectiva del modelo de gestión de proyectos y de las metodologías presentes en el mismo.

En este sentido, el solo hecho de utilizar una metodología eficiente para proyectos de desarrollo software como el RUP no es suficiente, ya que el RUP carece de los siguientes temas de gestión de proyectos: administración de recursos humanos (contrataciones, capacitación, entrenamiento), administración de adquisiciones y contrataciones (con proveedores y clientes), administración de costos, administración del alcance del proyecto (el RUP se enfoca más en el alcance del producto o del software), análisis cuantitativo de riesgos y planeamiento y ubicación de recursos para su tratamiento, entre otras técnicas (Phillips, 2004; Charvat, 2003; Ravindranath, 2007).

En cambio, estas técnicas sí son abordadas por el PMBOK, que posee un marco para la gestión de proyectos en el cual cada área del conocimiento está en constante evolución en lo que se refiere a sus técnicas, métodos y aplicación. Ello hace que la gestión de proyectos esté en un proceso de mejora permanente. El PMBOK no prescribe un ciclo de vida específico para los proyectos; sólo señala que el ciclo de vida de un proyecto se puede dividir en fases, de acuerdo con su alcance y dominio de aplicación. En el cuadro 1 se comparan ambas metodologías:

PMBOK RUP
Cualquier tipo de Proyecto Especifico Proyectos de Desarrollo de Software
Cubre todos los aspectos de la Gestión de Proyectos Cubre algunos aspectos de la Gestión de Proyectos
Descriptivo Prescript™
Solo prácticas de qestión de proyectos Prácticas para desarrollo de software que incluye qestión de proyectos
Fases dependientes del dominio Fases e Iteraciones específicas para desarrollo de software

Cuadro 1 – Diferencias entre la gestión de proyectos del PMBOK y el RUP

Es por las razones anteriormente expuestas que es necesario utilizar un modelo eficiente para la gestión de proyectos de desarrollo de software. Esto se consigue utilizando conjuntamente la metodología del RUP y el PMBOK, con lo cual los proyectos de desarrollo de software se podrán manejar exitosamente y se mitigará tanto como sea posible el número de riesgos que podrían acontecer.

El marco del PMBOK para la gestión de proyectos debería de ser implementado dentro de cada iteración de un proyecto RUP. Esto significa que en cada iteración del RUP se debería realizar cada uno de los cinco procesos de gestión de proyectos del PMBOK (inicio, planificación, ejecución, monitoreo y control, y cierre), por lo cual se incorporarán al PMBOK las mejores prácticas del RUP descritas como roles, actividades y artefactos. En el gráfico 5 se muestra cómo se realiza la integración del PMBOK al RUP. Para más detalles consúltese Charbonneau (2004).

Integración del PMBOK al RUP

Gráfico 5 – Integración del PMBOK al RUP

Correspondencia entre los principales entregables del PMBOK y el RUP

En el cuadro 2 se muestra la relación que debería haber entre los procesos del PMBOK y las disciplinas del RUP para que los proyectos de desarrollo de software sean exitosos. En el presente artículo sólo se han presentado las principales relaciones; para revisar el tema con más detalle, véase Charbonneau (2004).

Integración del PMBOK al RUP

Cuadro 2 – Integración del PMBOK al RUP

Caso de aplicación práctica en el sector financiero

Ante la gran demanda de las organizaciones financieras de contar con sistemas de información cada vez más grandes y de que sus proyectos de desarrollo de software para satisfacer esta demanda sean exitosos, surgió la necesidad de aplicar los conceptos mostrados en el presente artículo. Es por eso que se pretende mostrar cómo se realizó la correspondencia para un proyecto de desarrollo de software en una reconocida empresa del sector financiero de nuestro país.

Entregables PMBOK por fases del RUP

Fase inicial
  • Acta de constitución del proyecto
  • Documento de alcance y WBS
  • Plan de proyecto inicial (plan de gestión de alcance, plan de gestión del tiempo, plan de gestión del costo, plan de gestión de la calidad, plan de gestión del riesgo)
Elaboración y construcción
  • Actualización del plan de proyecto, la hoja de costos y riesgos, y el cronograma de trabajo
Transición:
  • Entrega del producto de software construido y la documentación terminada
  • Cierre formal del contrato
  • Almacenamiento de lecciones aprendidas
  • Disposición de las personas que conforman el proyecto

Cabe destacar aquí que el planeamiento del proyecto se fue refinando en cada iteración, así como también se fue actualizando toda la documentación requerida. El resultado de cada iteración fue tomado como entrada de la siguiente iteración, y así sucesivamente hasta tener todos los entregables. En este punto fue muy importante la recopilación de las lecciones aprendidas, las cuales nos ayudaron a planear y a realizar mejoras en la siguiente iteración. Para medir el avance de las tareas del proyecto se utilizó la técnica 50/100 y a lo largo de todo el proyecto se tomaron métricas para ir midiendo el rendimiento de cada fase del proyecto.

Para asegurar la calidad del producto de software se utilizaron técnicas de aseguramiento de la calidad en todas las etapas del proyecto. Ellas consistieron en revisiones continuas de código fuente y artefactos generados en cada iteración (documentos generados en cada fase del RUP) así como en revisiones y seguimientos de las tareas realizadas por los arquitectos, los líderes técnicos y los analistas. También en la parte de control de calidad del código fuente de la aplicación se utilizaron pruebas unitarias y de sistemas.

El proyecto de desarrollo de software tuvo una duración total de once meses, debido a que se realizaron varios controles de cambios. Cabe destacar que la planificación inicial del proyecto se estimó en diez meses, por lo cual podemos resaltar que mediante la aplicación de las metodologías RUP y PMBOK se puede gerenciar eficientemente un proyecto de desarrollo de software en el sector financiero.

Conclusiones

Es importante que nuestros clientes entiendan las ventajas del proceso iterativo incremental y las ventajas de una metodología formal de gestión de proyectos y, en especial, que entiendan que para manejar efectivamente proyectos de desarrollo de software se debería seguir un modelo que incluya las metodologías del RUP y el PMBOK.

Es necesario también que las personas que practican la gerencia de proyectos comprendan la importancia de utilizar una metodología iterativa incremental de gestión de proyectos y que ello les sirva para poder gerenciar adecuadamente proyectos de desarrollo de software en general.

Referencias

Charbonneau, S. (2004) Software Project Management – A Mapping between RUP and the PMBOK. IBM Software Corporation.

Charvat, J. (2003) Project Management Methodologies: Selecting, Implementing, and Supporting Methodologies and Processes for Projects Hoboken, NY: John Wiley & Sons, Inc.

Kappelman, L., McKeeman, R & Zhang, L. (200, Fall) Early Warning Signs of IT Project Failure: the dominant dozen. Information Systems Management; Otoño, 23 :(4) ABI/INFORM Global, p. 31.

Phillips, J. (2004) PMP Project Management Professional Study Guide. McGraw-Hill.

PMI, (2004) A Guide to the Project Management Body of Knowledge (PMBOK® Guide) – Tercera edición. Newtown Square, PA: Project Management Institute.

Ravindranath, P. (2007) Applied Software Risk Management: A guide for Software Project Manager. Boca Raton, FL: Auerbach.

RUP (2007) Rational Unified Process v.7.0. IBM Corporation.

Schwalbe, K. (2007) Project Management, Information Technology, Quinta edición. Thomson Course Technolgy.

SDTimes (2007) SDTimes Software Developing, en http://www.sdtimes.com/content/article.aspx?ArticleID=30247

Standish Group's (1994) The Chaos Report 1994, Extreme CHAOS, summary, en http://www.standishgroup.com. Obtenido el 30-08-07.

Standish Group's, (2004) The Chaos Report 2004, Extreme CHAOS, summary, en http://www.standishgroup.com/, Obtenido el 30-08-07.

Wysocki, R. y McGary R. (2003) Effective Project Management, Tercera edición. John Wiley & Sons, Inc.

This material has been reproduced with the permission of the copyright owner. Unauthorized reproduction of this material is strictly prohibited. For permission to reproduce this material, please contact PMI or any listed author.

© 2008, Fernando Torres
Originally published as a part of 2008 PMI Global Congress Proceedings – São Paulo, Brazil

Advertisement

Advertisement

Related Content

  • PM Network

    Zimbabwe se adelanta

    Zimbabwe ha debido afrontar más de su parte en cuanto a desafíos, incluso antes de la pandemia. Su moneda había colapsado y la inflación se había elevado a más de 700%.

  • PM Network

    El futuro está en la femtech

    By Hermans, Amanda La tecnología de la atención de salud adaptada para las mujeres —denominada femtech— se está popularizando y los analistas prevén un mayor aumento de los proyectos

  • PM Network

    Por el buen camino

    PM Network consulta a la comunidad de gestión de proyectos sobre cómo corregir los malos hábitos en el equipo.

  • PM Network

    Encrucijada

    El mundo tiene un problema de estacionamiento. Aunque nadie está seguro de cuántos espacios de estacionamiento existen, se estima que solo Estados Unidos posee entre 105 millones y 2.000 millones de…

  • PM Network

    Propósito único

    En su misión permanente de transformar la manera en que se fabrica el calzado atlético, el laboratorio de I+D Futurecraft de Adidas ha producido innovaciones que han abarcado desde una planta…

Advertisement