Un proyecto es un conjunto de actividades relacionadas que utilizan recursos para cumplir con un objetivo deseado dentro de un plazo de tiempo delimitado.
Las actividades son las tareas que deben realizarse para el cumplimiento del objetivo, mientras que los recursos son los elementos requeridos para cumplir cada tarea.
Todo proyecto tiene limitantes que pueden ser de orden económico, técnico, operativo, de recursos humanos, etc.
Características de un proyecto
Decimos que un proyecto es exitoso cuando
Al mismo tiempo, consideramos al proyecto un fracaso cuando
Los factores que influyen en el fracaso de un proyecto son múltiples e ilimitados, pudiendo resumirse los más frecuentes en proyectos de software en:
Un estudio realizado por la consultora internacional «Accenture», analizado por el especialista John Avellanet, reveló algunas cifras alarmantes.
En la actualidad, la ingeniería de software ofrece diferentes técnicas para el logro del éxito de un proyecto.
Los proyectos son realizados por personas, por lo tanto:
Gestión de Proyectos
La gestión de proyectos es la disciplina encargada de organizar y administrar recursos para poder llevar a cabo los proyectos, cumpliendo con las restricciones pactadas.
La administración del proyecto es una tarea compleja que involucra una gran cantidad de variables originadas en el resultado deseado, único producto del proyecto. Estas variables se generan de manera indirecta y no siempre están correctamente identificadas.
El origen de la gestión de proyectos, como lo conocemos actualmente, puede ser situado en los años 50, donde se desarrollaron algunas técnicas matemáticas que comenzaron a aplicarse.
Los modelos matemáticos denominados PERT (Program Evaluation and Review Technique, o Técnica para Evaluar y Revisar Programas) y CPM (Critical Path Method, o Método de Ruta Crítica) son aun vigentes y muy utilizados.
El método PERT fue desarrollado por la Armada de los Estados Unidos en 1957, para controlar los tiempos de ejecución de los proyectos aeroespaciales.
Se lo utilizó en el «plan Polaris», proyecto de desarrollo de de misiles llevado a cabo entre la Armada de Estados Unidos y la empresa Lockheed Corporation.
Desde entonces, este método sigue siendo implementado por ambas corporaciones; y es muy difundido como herramienta valida de gestión.
El método CPM, en cambio, tiene origen civil. Fue desarrollado también en 1957, en Estados Unidos, por un centro de investigación de operaciones financiado por las firmas Dupont y Remington Rand, buscando el control y optimización de los costos mediante la planificación y programación adecuadas de las actividades que componen cada proyecto.
Se sigue utilizando y perfeccionando esta técnica, porque busca optimizar los costos a través de mejoras en el planeamiento.
Para la misma época, se comenzaron a aplicar nuevas técnicas, como herramientas de gestión de costos y de control de calidad; técnicas que estaban madurando en el mismo momento de la economía de post guerra.
En 1969, en Estados Unidos, se crea el Proyect Management Institute (PMI – http://www.pmi.org) para difundir y mejorar las técnicas de gestión de proyectos, con la intención de ofrecer apoyo a la industria.
De manera paralela, en Europa se crea la International Proyect Managment Association (IPMA – http://ipma.ch).
Actualmente es PMI es quien establece los estándares internacionales que se aplican en gestión de proyectos de software.
Nuevo Escenario
Las técnicas, herramientas y tecnologías de gestión de proyectos cambiaron definitivamente la industria y la manera de gerenciar y controlar a las empresas, a partir de los años setentas.
La posibilidad de nuevos productos, los adelantos tecnológicos de producción, la velocidad financiera en los nuevos negocios, hicieron necesario que las metodologías de gestión de proyectos pasaran a ser mas dinámicas.
Las diferencias entre las técnicas predictivas de los años cincuenta y las modernas pasaron a ser más notorias. Se comenzaron a necesitar técnicas mas dinámicas; situación que se termina de manifestar en la industria del software.
La incertidumbre, cada vez mayor como consecuencia de la velocidad, no posibilita los desarrollos en donde la previsión y el planeamiento inicial sean lo más importante, debido a que estos deben ser desechados continuamente al igual que el esfuerzo en análisis y diseño.
En este nuevo escenario competitivo, las variables más importantes pasan a ser
Es decir; las técnicas de gestión de proyectos de software, en la actualidad, deben ser adaptables, ágiles, inmediatas y económicas.
Las empresas y sus requisitos impredecibles
Podemos afirmar en la actualidad que los sistemas empresariales tienen requisitos cambiantes.
Reformas fiscales, ajustes inflacionarios, cambio de equipamientos, crisis, crecimiento repentino, nuevos socios, expansión, contracción, endeudamiento, etc.
Lo único constante para todos los sistemas empresariales es que su entorno es dinámico y los sistema requieren ajustarse inmediatamente.
Ante esta situación, uno de los peores escenarios es el desconocimiento de la posibilidad de cambio. La idea de creer que los requisitos no cambiaran, hará que estos sean verdaderamente estáticos. Gradualmente los procedimientos sistematizados se alejarán de la realidad; situación que termina en una crisis cuando se requiere tomar una decisión y el software es completamente ajeno a la realidad de la gerencia.
Cambio de razonamiento
Partiendo de que es imposible hacer estimaciones certeras y definitivas para los requisitos del sistema de una empresa, de sus procesos, actividades, problemas y estrategias de resoluciones, debemos pensar en técnicas que nos permitan salvar este inconveniente.
Aquí es donde entran en escena las «metodologías ágiles». Son diferentes estrategias de ingeniería de sistemas de información que promueven:
Se trata de convivir con la idea de que no existe un producto final. Son versiones en constante mejora. La anticipación y la adaptación se erigen entonces como los pilares de este nuevo enfoque. Los proyectos deben liderarse anticipando los cambios y adaptándose a nuevos escenarios, de manera gradual y constante. La gestión ágil intenta responder ante los nuevos cuatro pilares de la industria:
Dar un mayor valor al producto es fundamental en ambientes competitivos, y este factor se encuentra compuesto por la innovación y la flexibilidad.
Las prácticas que se necesitan para innovar permanentemente y de manera flexible, cosa que se permita adaptarse a cualquier cambio de entorno, se caracterizan por:
El desarrollo ágil de soluciones empresariales basadas en valor, tiempo, fiabilidad y agilidad, es un proceso iterativo que presenta, en mayor o menor medida, las fases de desarrollo que mencionamos a continuación.
Concepto
A partir de los requerimientos del sistema y mediante la interacción y participación del equipo, se desarrolla la visión de la solución. Se define el alcance inicial y se determina el equipo que lo llevará a cabo.
El «alcance» (o dominio del problema) es la suma total de todos los objetivos y sus requisitos. Este alcance es lo que decimos que cambia a lo largo del proceso. Sin embargo, en la mayoría de los métodos de estimación, al alcance se lo considera estático o constante; cosa que no se ve reflejada en la realidad.
Especulación
Esta fase permite que el equipo realice distintos avances sobre las posibles soluciones y sus limitaciones. Esta fase se repite continuamente a lo largo del desarrollo, con la ventaja de que en cada iteración, los conocimientos del equipo sobre el negocio aumentan. En esta etapa se llevan a cabo las siguientes tareas:
Exploración
En la fase de exploración todos los integrantes del equipo desarrollan sus tareas, mientras puedan aparecer inconvenientes que son atendidos también de forma inmediata. El objetivo de la fase es el incremento de funcionalidad propuesto en la etapa anterior.
Revisión
Con la finalización de la ejecución de las tareas se alcanza el producto real. Una versión del sistema que debe ser utilizado y comparado con la propuesta inicial. En base de los objetivos alcanzados y propuestos se fijan las nuevas metas.
Cierre
Se llega al fin de la iteración y se implementa el sistema, el cual puede seguir siendo desarrollado con las mismas técnicas.
De acuerdo a estas características y fases de desarrollo, podemos pensar que el desarrollo y la gestión ágil pueden adaptarse mejor a ambientes complejos y cambiantes.
Además de todos los elementos que han impactado en el desarrollo de software, tradicionalmente se han utilizado pautas que no siempre son reales, denominadas mitos del desarrollo ortodoxo.
La creencia de estos mitos (hay muchos mas) ofrece el marco de trabajo ideal para seguir utilizando metodologías tradicionales, dejando de lado las técnicas ágiles, pero de los contextos de cambios es que surgieron estas metodologías ágiles, que hasta hoy en día se siguen expandiendo y asentando.