11.0 Gestión de proyectos en cascada frente a cíclica (parte 4): ciclo de vida y resultados del proyecto

Métodos de gestión de proyectos cíclicos #

Debido a los problemas discutidos anteriormente, en los últimos años se han desarrollado una variedad de técnicas alternativas de gestión de proyectos. Estas técnicas son especialmente adecuadas para iniciativas de desarrollo de tecnología de la información.

Gestión cíclica de proyectos es un método para lograr el objetivo del proyecto a través de una serie de ciclos breves y secuenciales. Cada ciclo es breve, idealmente dura menos de un mes. Cada ciclo completa una parte del proyecto. Cada ciclo incluye análisis, diseño, implementación y pruebas. Esto es significativamente diferente del enfoque en cascada, en el que cada una de estas tareas ocurre en su propia fase distinta. Además, el enfoque en cascada especifica un número limitado de momentos distintos para el concepto, el diseño, la implementación y las pruebas. Esto sucede muchas veces seguidas en el enfoque cíclico.

Comprensión Software de gestión de proyectos Ciclo #

Se implementan varios componentes de software a lo largo de los ciclos, que por lo tanto son autónomos. Cada ciclo se evalúa una vez completado. Si surgen necesidades nuevas o alternativas para el proyecto como resultado de una mayor comprensión, las actividades de los ciclos futuros se ajustan para incluirlas.

Un ciclo comienza con el establecimiento o modificación de un horario. A continuación, se evalúan las necesidades de producción del ciclo. Se desarrolla, codifica y valida un diseño. Después de eso, ocurre la evaluación y, en ciertos casos, se implementa el nuevo programa. A continuación, puede comenzar el siguiente ciclo para completar los componentes posteriores del proyecto. (Para una discusión más detallada de las técnicas cíclicas y sus distinciones, ver, por ejemplo, Kroll, 2004; Chromatic, 2003; Stapleton, 2002.)

Los siguientes son los principales beneficios de utilizar el método cíclico:

  • Mejora de la calidad del producto y la implementación de la funcionalidad;
  • Mejora de la calidad del producto y la implementación de la funcionalidad;
  • Estimaciones de tiempo y costos más realistas;
  • Menos tensión en el equipo del proyecto;
  • Mejor calidad.

Los capítulos anteriores muestran lo difícil o imposible que es definir adecuadamente las capacidades requeridas en las primeras fases de un proyecto. Las técnicas cíclicas implementan la funcionalidad requerida en una serie de breves ciclos. Cada ciclo no solo investiga, sino que también diseña, implementa y prueba una pequeña parte de la funcionalidad requerida. La rápida sucesión de diseño, ejecución y pruebas es fundamental para la mejora de la calidad. Como resultado, los equipos están en condiciones de realizar cambios. Si un diseño no funciona en la realidad, se hace evidente a lo largo del ciclo, lo que permite modificaciones. Además, este tipo de operación permite a los consumidores solicitar cambios.

Mantener la calidad #

Otra razón por la que la gestión cíclica de proyectos mejora la calidad es que cada ciclo requiere una intensa cooperación entre el cliente, los diseñadores y los programadores. Un equipo multidisciplinario desarrolla y ejecuta soluciones en conjunto. El cliente se dedica principalmente al inicio, al desarrollo de requisitos; a continuación, los diseñadores crean un diseño y, por último, los programadores crean el software. El líder del proyecto actúa como enlace entre todas las diferentes partes y es responsable de garantizar que la información proporcionada se entregue al destinatario apropiado. En realidad, muchos programadores y diseñadores nunca se encuentran con el cliente, que solo reaparece durante el proceso de desarrollo del software.

Las técnicas cíclicas de gestión de proyectos son especialmente adecuadas para proyectos en los que el objetivo final no puede definirse claramente de antemano, como las iniciativas artísticas o de investigación. Trabajar en ciclos con un equipo diverso que incluye usuarios finales permite al equipo determinar el verdadero propósito del proyecto y la mejor manera de lograrlo. Cada ciclo ofrece una oportunidad de reflexión y corrección.

Se define un objetivo de antemano para los proyectos en cascada. La reflexión sobre el objetivo inicial es menos probable. El objetivo inicialmente formado nunca se realiza (completamente), y ni la meta originalmente concebida ni la realizada es probable que sea precisamente lo que se pretendía.

Por último, los métodos de gestión de proyectos cíclicos proporcionan resultados superiores ya que el cliente realiza las pruebas de aceptación. Además, la calidad se mejora al incluir pruebas como criterio para la funcionalidad de alto rendimiento desde el principio. Por lo tanto, los programadores deben crear «pruebas fallidas» (o pruebas unitarias) antes de escribir su código. Solo se considera aceptable el código que pasa la prueba fallida.

Pruebas consistentes #

El trabajo orientado a las pruebas exige que los programadores demuestren que el nuevo código está libre de errores antes de escribirlo. Lo hacen creando una prueba (prueba fallida) que identificará cualquier defecto potencial antes de comenzar a codificar. Considere el caso en el que se debe desarrollar un software para determinar la cantidad adecuada de cambio que se recibirá de una máquina de dulces. Para empezar, se debe verificar la presencia de una función capaz de provocar cambios. Esta función puede denominarse «dar cambio». Se podría ejecutar una prueba simple y revelaría que la función ‘dar cambio’ aún no existe. La prueba pasará si el programador crea la función pero aún no le proporciona ninguna sustancia.

El siguiente paso es determinar si la máquina devuelve la cantidad correcta de dinero cuando se compra un artículo. Inserte sesenta centavos en la máquina y compre un artículo de cincuenta centavos. La prueba fallará ya que la función permanece vacía. Después de eso, el programador escribe el código. Especifica en la función ‘dar cambio’ que la cantidad de cambio a devolver es igual a la cantidad de dinero puesta en la máquina, menos el costo del caramelo seleccionado. La prueba debería pasar ahora con éxito. Este procedimiento debe repetirse para cada componente del programa.

No solo el código debe probarse técnicamente; las funciones también deben probarse (es decir, pruebas de aceptación). Antes de comenzar a codificar, el cliente establece los criterios bajo los cuales se pueden aprobar las capacidades a desarrollar (por ejemplo, qué tan rápido debe reaccionar una computadora a una determinada acción del usuario). Antes de eso, definir los criterios bajo los cuales se puede aprobar la capacidad adicional resultó muy complejo y requiere mucho tiempo. No obstante, la participación activa de los consumidores en las pruebas es fundamental para el éxito del proyecto.

Estimaciones de tiempo y dinero #

La comprensión de las funciones a implementar no está predeterminada al inicio de un proyecto cíclico. Se da la cantidad de tiempo disponible. Se llega a acuerdos sobre la dirección del proyecto ya lo largo del proceso se establece lo que realmente se requiere, es beneficioso y factible en cuanto al programa a crear. Debido a que las funciones a implementar no son objetivos fijados, los proyectos cíclicos minimizan el peligro de que las horas requeridas, y por lo tanto el dinero, se salgan de control. Para evitar este escenario, se utiliza el tiempo disponible como punto de partida, y se establece lo razonable de anticipar en ese tiempo a lo largo del proceso.

Además, las técnicas de gestión cíclica de proyectos son considerablemente más agradables para el equipo del proyecto. El equipo hace todo lo que puede dentro del marco de tiempo asignado, pero no se le presiona para cumplir plazos irrazonables ni para operar con un presupuesto insuficiente.

Además, las técnicas cíclicas simplifican la administración de proveedores extranjeros. Con el enfoque en cascada, un proyecto puede depender de un solo proveedor hasta que se complete el proyecto, independientemente del desempeño del proveedor. Teóricamente es factible celebrar nuevos acuerdos para cada ciclo o incluso para que cada componente se suministre bajo una técnica de trabajo cíclica y, si es necesario, cambiar de proveedor.