Sunteți pe pagina 1din 6

Modelos de Ciclo de Vida de Desarrollo de Software en el Contexto de la Industria Colombiana de Software

Hugo F. Arboleda Jimnez. MSc.


Docente-Investigador, Facultad de Ingenieras, Universidad de San Buenaventura Cali. Magster Ingeniera de Sistemas y Computacin, Universidad de los Andes, 2002. Ingeniero de Sistemas Universidad del Valle, 1999.

1 INTRODUCCIN La evolucin de la disciplina de ingeniera de software ha trado consigo propuestas diferentes para mejorar los resultados del proceso de construccin. Las metodologas tradicionales haciendo nfasis en la planeacin, y las metodologas giles haciendo nfasis en la adaptabilidad del proceso, delinean las principales propuestas presentes en la literatura. De manera paralela, el tema de modelos para el mejoramiento de los procesos de desarrollo ocupa un lugar importante en la bsqueda de la metodologa adecuada para producir software de calidad en cualquier contexto de desarrollo. De una u otra forma, las caractersticas de los proyectos de software hacen necesario seguir prcticas especficas para optimizar los resultados de los desarrollos. Este artculo presenta en contexto las generalidades del estado actual de evolucin de los modelos de ciclo de vida de desarrollo de software. Luego, se hace una reflexin de la importancia de las caractersticas de cada proyecto al momento de escoger el modelo de desarrollo a seguir. La clasificacin de los proyectos de software de acuerdo a sus caractersticas especficas, es til para enmarcar contextos de desarrollo para los cuales prcticas particulares de proceso resulten en mayor probabilidad de xito. De igual forma, la adaptabilidad de los modelos propuestos de acuerdo al contexto enmarcado, y a las mtricas mantenidas, ayudan a mejorar la calidad de los productos de software desarrollados.

2 MODELOS DE DESARROLLO DE SOFTWARE 2.1 Metodologas tradicionales Las metodologas tradicionales se caracterizan por exponer procesos basados en planeacin exhaustiva. Esta planeacin se realiza esperando que el resultado de cada proceso sea determinstico y predecible. La experiencia ha mostrado que, como consecuencia de las caractersticas del software, los resultados de los procesos no son siempre predecibles y sobre todo, es difcil predecir desde el comienzo del proyecto cada

resultado. Sin embargo, es posible por medio de la recoleccin y estudio de mtricas de desarrollo lograr realizar estimaciones acertadas en contextos de desarrollo repetibles. Remontndose a la historia, el modelo de cascada fue uno de los primeros modelos de ciclo de vida (MCV) que formaliz un conjunto de procesos de desarrollo de software. Este MCV describe un orden secuencial en la ejecucin de los procesos asociados. El modelo espiral se postul como una alternativa al modelo de cascada. La ventaja de este modelo radica en el perfeccionamiento de las soluciones encontradas con cada ciclo de desarrollo, en trminos de dar respuesta a los requerimientos inicialmente analizados. El modelo de cascada y el modelo espiral suponen, de manera general, que los requerimientos del cliente no cambian radicalmente en el transcurso del desarrollo del sistema. Por otro lado, la realizacin de prototipos es una herramienta en la que se apoyan diferentes MCV. Un prototipo debe tener el objetivo de mostrar al cliente o a la gerencia del proyecto el resultado que se obtendr de la implementacin de cada uno de los requerimientos del cliente una vez terminado el desarrollo. Con los prototipos se tiene la posibilidad de obtener retroalimentacin de manera temprana. La solucin a algunos de los problemas presentados por las metodologas tradicionales se logra con una gran evolucin del modelo espiral. El proceso unificado propone la elaboracin de varios ciclos de desarrollo, donde cada uno finaliza con la entrega al cliente de un producto terminado. Este se enmarca entre los conocidos modelos iterativo-incremental. 2.2 Metodologas giles Grupos de desarrollo han experimentado soluciones que basan su fundamento en la adaptabilidad de los procesos de desarrollo, en lugar de seguir esperando lograr resultados predecibles de un proceso que no evoluciona. Esta comunidad de desarrolladores e investigadores han nombrado su trabajo bajo lo que conocemos como metodologas giles. Las metodologas giles como puede entenderse mal, no estn en contra de administrar procesos de desarrollo. Por el contrario promueve la formalizacin de procesos adaptables. La compilacin de los principios y valores que resaltan las metodologas giles fue formalizada en el manifiesto para el desarrollo de software gil. Este documento desarrollado por los representantes de cada una de las metodologas que en el momento se presentaban como giles, logra resumir en un conjunto de ideas las prcticas que una metodologa de este estilo debe llevar a cabo. Como caracterstica fundamental, la habilidad de responder al cambio es la principal caracterstica de las metodologas giles. XP, una de las ms difundidas, es una metodologa de desarrollo de software gil que define pocas reglas y pocas prcticas. XP promueve la adaptabilidad de los procesos de desarrollo basndose en los principios y prcticas que presenta. Quienes trabajan usando XP deben seguir procesos disciplinados, pero ms que eso, deben combinar la disciplina con la adaptabilidad necesaria del proceso.

Las metodologas de Cristal se basan en el principio de que tipos diferentes de proyectos requieren tipos diferentes de metodologas. La metodologa escogida debe depender de dos factores: el nmero de personas en el proyecto, y las consecuencias de los errores. Conforme al principio de las metodologas giles, Scrum recalca la imposibilidad de encontrar procesos definidos y repetibles cuando no existen problemas, personas, ni ambientes definidos y repetibles. 2.3 Metodologas giles o metodologas tradicionales? En las metodologas tradicionales el principal problema es que nunca se logra planear bien el esfuerzo requerido para seguir la metodologa. Pero entonces, si logramos definir mtricas que apoyen la estimacin de las actividades de desarrollo, muchas prcticas de metodologas tradicionales podran ser apropiadas. El no poder predecir siempre los resultados de cada proceso no significa que estamos frente a una disciplina de azar. Lo que significa es que estamos frente a la necesidad de adaptacin de los procesos de desarrollo que son llevados por parte de los equipos que desarrollan software. Tener metodologas diferentes para aplicar de acuerdo con el proyecto que se desarrolle resulta una idea interesante. Estas metodologas pueden involucrar prcticas tanto de metodologas giles como de metodologas tradicionales. De esta manera podramos tener una metodologa por cada proyecto, la problemtica sera definir cada una de las prcticas, y en el momento preciso definir parmetros para saber cual usar. Es importante tener en cuenta que el uso de un mtodo gil no es para todos. Sin embargo, una de las principales ventajas de los mtodos giles es su peso inicialmente ligero y por eso las personas que no estn acostumbradas a seguir procesos encuentran estas metodologas bastante agradables.

3 MODELOS DE DESARROLLO EN LA INDUSTRIA DEL SOFTWARE COLOMBIANO Los primeros desarrollos de software en Colombia iniciaron de manera artesanal. Incrementalmente, y con la llegada de nuevas tecnologa, plataformas de desarrollo, y programas de formacin superior bien estructurados, se inici un proceso de mejoramiento de procesos entre los que se incluye el tema de la planeacin y seguimiento de los proyectos de software. El modelo de cascada fue en ese entonces, y tal vez lo sigue siendo, el modelo ms usado por los desarrolladores de software que recin constituyen sus empresas de desarrollo. Modelos de desarrollo sin alto nivel de complejidad como el espiral, o el orientado a prototipos, siguen siendo los ms usados. Sin embargo, estos modelos siguen siendo interpretados en algunos casos de manera errnea. Es el caso de equipos de desarrollo que por tener ciclos de desarrollo iterativo y/o incremental, aseguran seguir un modelo espiral, sin realizar un anlisis de riesgo bien soportado. Igual pasa con el uso de los prototipos. Estos se usan como

herramienta de avance, sin hacer entender al cliente el objetivo de validacin de requerimientos, y/o especificacin de borradores de interfaz. Un problema paralelo radica en que muchos de los ingenieros de desarrollo de software no tienen claro qu modelo de desarrollo siguen al interior de sus equipos. As, problemas normales adjuntos a un modelo de ciclo de vida de desarrollo los toman por sorpresa, pudiendo ser evitados haciendo un anlisis del modelo adecuado para el proyecto particular Uno de los temas ms abordados en la industria del software Colombiano es el tema de planeacin y seguimiento de proyectos. Con este tema viene adjunto el tema de la definicin de modelos de ciclo de vida de desarrollo. Sin embargo, normalmente el tema se ha abordado desde una perspectiva tradicional de planeacin de proyectos, sin hacer nfasis en las caractersticas propias de los proyectos de software. Es por esta razn que los modelos de desarrollo siguen esquemas tradicionales, con poco o ningn nfasis en la adaptacin al cambio y la estimacin basada en datos histricos de desarrollo. Gran parte de las empresas de software que tienen esquemas de oficinas de proyectos, o usan metodologas de planeacin guiadas por el Instituto de Gerencia de Proyectos de Estados Unidos (PMI) siguen esquemas tradicionales donde los procesos de soporte de desarrollo de software son poco tomados en cuenta, generalmente por lo poco entendidos. Es el caso de la Administracin de Requerimientos. De igual forma, aunque los planes del proyecto sean administrados, en muchas ocasiones no son impactados frente a los cambios que surgen en el desarrollo del da a da. As, parte de la solucin no est en la bsqueda de realizar planes perfectos de desarrollo, sino en la bsqueda de estrategias que permitan realizar ajustes a los planes definidos desde el inicio. En eso hacen nfasis las metodologas giles.

4 CAL ES EL CAMINO A SEGUIR? Antes de definir el modelo de ciclo de vida de desarrollo a seguir en una iteracin de un proyecto dentro de una empresa en el contexto colombiano, se debe entender los fundamentos bsicos, con pros y contras, de seguir un modelo determinado. Esto incluye como primera medida, realizar un estudio de las prcticas que se van a poner en ejecucin dentro de un proyecto. Los modelos hbridos (tradicionales y giles) deben ser estructurados teniendo en cuenta las caractersticas propias del proyecto. Esto incluye las propias caractersticas del contexto colombiano. Un modelo de ciclo de vida exitoso en un contexto, no necesariamente lo es en otro contexto. Por ejemplo, ante el surgimiento de los Parques Tecnolgicos que incluyen empresas de desarrollo de software, se debe tomar en cuenta las caractersticas propias del contexto de un grupo de jvenes emprendedores sin altos recursos para realizar inversin, con necesidad de poner en el mercado en relativo poco tiempo un software altamente funcional de excelente calidad. Un conjunto de preguntas que surgen ante la necesidad de redefinir el modelo de desarrollo que un equipo sigue en un momento determinado, con el fin de mejorar los resultados en trminos de un conjunto de

atributos como pueden ser la calidad del software y la precisin de los planes realizados, podran ser las siguientes: 1. Cmo evaluar mis proceso de desarrollo? 2. Cmo identificar el conjunto de caractersticas que rodean mis desarrollos, e impactan de manera significativa los resultados de mi equipo? 3. Cmo identificar el conjunto de prcticas adecuadas para incluir en un nuevo modelo de ciclo de vida de desarrollo? La respuesta a estas preguntas se enmarca en el tema de Mejoramiento de Procesos de Software (SPI). En este tema se encuentra por ejemplo la propuesta realizada por el Instituto de Ingeniera de Software con su trabajo sobre IDEAL y CMMI. Sin embargo, al igual que para los procesos de desarrollo, las prcticas requeridas para mejorar un proceso de software dependen altamente del contexto donde se mejoran los procesos. Por ejemplo, no es igual mejorar los procesos al interior de equipos con alta rotacin, y gran nmero de participantes, que mejorarlos en un equipo pequeo y estable. Para el caso del contexto colombiano, tomando como objetivo las pequeas y medianas empresas, una buena estrategia es evaluar los procesos frente a un marco de referencia como puede ser CMMI en cada una de sus reas de proceso. Luego de tener una evaluacin inicial del estado actual de los procesos, y definir lo que se puede llamar una lnea base de procesos, se debe realizar un plan de mejoramiento basado en las caractersticas del equipo de desarrollo. Un buen ejercicio para identificar estas caractersticas es realizar un rbol de problemas como el presentado en la figura 1. Por medio de este tipo de esquemas, se pueden identificar caractersticas que de alguna manera no se tomaban en cuenta.
Fuga de conocimiento Incremento de documentacin para soportar rotacin

Adaptacin continua de equipo al Incremento del costo en comunicacin proceso Fuga de conocimiento Bajo nivel de productividad

No existencia de livianos Alta rotacin procesos para adaptar del equipo Desmotivacin Oportunidades del mercado

Jerarquas impuestas Figura 1. rbol de problemas para la identificacin de caractersticas propias de un contexto.

Finalmente, para identificar las prcticas precisas que se deben incluir en el nuevo modelo de desarrollo, se debe tener en cuenta el marco de referencia con el cual se evalu el proceso actual, y las caractersticas identificadas. As, de manera incremental, se incorporan prcticas en un orden que se defina como prioritario al interior del equipo para minimizar los impactos negativos de caractersticas del equipo identificadas, en los proyectos de desarrollo. Algo que siempre se debe tener en cuenta es la definicin de mtricas desde el inicio de mejoramiento, que permitan medir la mejora una vez impactados los procesos. A estas mtricas se les conoce como indicadores de gestin del mejoramiento de procesos.

S-ar putea să vă placă și