Вы находитесь на странице: 1из 5

Modelos de Ciclo de Vida de Desarrollo de Software en el

Contexto de la Industria Colombiana de Software


Hugo F. Arboleda Jiménez. MSc. Docente-Investigador, Facultad de Ingenierías, Universidad de
San Buenaventura Cali.
Magíster Ingeniería de Sistemas y Computación, Universidad de los Andes, 2002.
Ingeniero de Sistemas Universidad del Valle, 1999.

1 INTRODUCCIÓN modelos propuestos de acuerdo al contexto


enmarcado, y a las métricas mantenidas,
La evolución de la disciplina de ingeniería
ayudan a mejorar la calidad de los productos
de software ha traído consigo propuestas
de software desarrollados.
diferentes para mejorar los resultados del
proceso de construcción. Las metodologías 2 MODELOS DE DESARROLLO DE
tradicionales haciendo énfasis en la SOFTWARE
planeación, y las metodologías ágiles
2.1 Metodologías tradicionales
haciendo énfasis en la adaptabilidad del
proceso, delinean las principales propuestas Las metodologías tradicionales se
presentes en la literatura. De manera caracterizan por exponer procesos basados
paralela, el tema de modelos para el en planeación exhaustiva. Esta planeación se
mejoramiento de los procesos de desarrollo realiza esperando que el resultado de cada
ocupa un lugar importante en la búsqueda de proceso sea determinístico y predecible. La
la metodología adecuada para producir experiencia ha mostrado que, como
software de calidad en cualquier contexto de consecuencia de las características del
desarrollo. De una u otra forma, las software, los resultados de los procesos no
características de los proyectos de software son siempre predecibles y sobre todo, es
hacen necesario seguir prácticas específicas difícil predecir desde el comienzo del
para optimizar los resultados de los proyecto cada
desarrollos. Este artículo presenta en
contexto las generalidades del estado actual Modelos de Ciclo de Vida de Desarrollo de
de evolución de los modelos de ciclo de vida Software en el Contexto de la Industria
de desarrollo de software. Luego, se hace Colombiana de Software
una reflexión de la importancia de las Hugo F. Arboleda Jiménez. MSc. Docente-
características de cada proyecto al momento Investigador, Facultad de Ingenierías,
de escoger el modelo de desarrollo a seguir. Universidad de San Buenaventura Cali.
La clasificación de los proyectos de software
de acuerdo a sus características específicas, Magíster Ingeniería de Sistemas y
es útil para enmarcar contextos de desarrollo Computación, Universidad de los Andes,
para los cuales prácticas particulares de 2002.
proceso resulten en mayor probabilidad de Ingeniero de Sistemas Universidad del
éxito. De igual forma, la adaptabilidad de los Valle, 1999.
resultado. Sin embargo, es posible por Grupos de desarrollo han experimentado
medio de la recolección y estudio de soluciones que basan su fundamento en la
métricas de desarrollo lograr realizar adaptabilidad de los procesos de desarrollo,
estimaciones acertadas en contextos de en lugar de seguir esperando lograr
desarrollo repetibles. Remontándose a la resultados predecibles de un proceso que no
historia, el modelo de cascada fue uno de los evoluciona. Esta comunidad de
primeros modelos de ciclo de vida (MCV) desarrolladores e investigadores han
que formalizó un conjunto de procesos de nombrado su trabajo bajo lo que conocemos
desarrollo de software. Este MCV describe como metodologías ágiles. Las metodologías
un orden secuencial en la ejecución de los ágiles como puede entenderse mal, no están
procesos asociados. El modelo espiral se en contra de administrar procesos de
postuló como una alternativa al modelo de desarrollo. Por el contrario promueve la
cascada. La ventaja de este modelo radica en formalización de procesos adaptables. La
el perfeccionamiento de las soluciones compilación de los principios y valores que
encontradas con cada ciclo de desarrollo, en resaltan las metodologías ágiles fue
términos de dar respuesta a los formalizada en el manifiesto para el
requerimientos inicialmente analizados. El desarrollo de software ágil. Este documento
modelo de cascada y el modelo espiral desarrollado por los representantes de cada
suponen, de manera general, que los una de las metodologías que en el momento
requerimientos del cliente no cambian se presentaban como ágiles, logra resumir en
radicalmente en el transcurso del desarrollo un conjunto de ideas las prácticas que una
del sistema. Por otro lado, la realización de metodología de este estilo debe llevar a
prototipos es una herramienta en la que se cabo. Como característica fundamental, la
apoyan diferentes MCV. Un prototipo debe habilidad de responder al cambio es la
tener el objetivo de mostrar al cliente o a la principal característica de las metodologías
gerencia del proyecto el resultado que se ágiles. XP, una de las más difundidas, es
obtendrá de la implementación de cada uno una metodología de desarrollo de software
de los requerimientos del cliente una vez ágil que define pocas reglas y pocas
terminado el desarrollo. Con los prototipos prácticas. XP promueve la adaptabilidad de
se tiene la posibilidad de obtener los procesos de desarrollo basándose en los
retroalimentación de manera temprana. La principios y prácticas que presenta. Quienes
solución a algunos de los problemas trabajan usando XP deben seguir procesos
presentados por las metodologías disciplinados, pero más que eso, deben
tradicionales se logra con una gran combinar la disciplina con la adaptabilidad
evolución del modelo espiral. El proceso necesaria del proceso.
unificado propone la elaboración de varios
Las metodologías de Cristal se basan en el
ciclos de desarrollo, donde cada uno finaliza
principio de que tipos diferentes de
con la entrega al cliente de un producto
proyectos requieren tipos diferentes de
terminado. Este se enmarca entre los
metodologías. La metodología escogida
conocidos modelos iterativo-incremental.
debe depender de dos factores: el número de
2.2 Metodologías ágiles personas en el proyecto, y las consecuencias
de los errores. Conforme al principio de las
metodologías ágiles, Scrum recalca la
imposibilidad de encontrar procesos Los primeros desarrollos de software en
definidos y repetibles cuando no existen Colombia iniciaron de manera artesanal.
problemas, personas, ni ambientes definidos Incrementalmente, y con la llegada de
y repetibles. nuevas tecnología, plataformas de
desarrollo, y programas de formación
2.3 ¿Metodologías ágiles o metodologías
superior bien estructurados, se inició un
tradicionales?
proceso de mejoramiento de procesos entre
En las metodologías tradicionales el los que se incluye el tema de la planeación y
principal problema es que nunca se logra seguimiento de los proyectos de software.
planear bien el esfuerzo requerido para El modelo de cascada fue en ese entonces, y
seguir la metodología. Pero entonces, si tal vez lo sigue siendo, el modelo más usado
logramos definir métricas que apoyen la por los desarrolladores de software que
estimación de las actividades de desarrollo, recién constituyen sus empresas de
muchas prácticas de metodologías desarrollo. Modelos de desarrollo sin alto
tradicionales podrían ser apropiadas. El no nivel de complejidad como el espiral, o el
poder predecir siempre los resultados de orientado a prototipos, siguen siendo los
cada proceso no significa que estamos frente más usados. Sin embargo, estos modelos
a una disciplina de azar. Lo que significa es siguen siendo interpretados en algunos casos
que estamos frente a la necesidad de de manera errónea. Es el caso de equipos de
adaptación de los procesos de desarrollo que desarrollo que por tener ciclos de desarrollo
son llevados por parte de los equipos que iterativo y/o incremental, aseguran seguir un
desarrollan software. Tener metodologías modelo espiral, sin realizar un análisis de
diferentes para aplicar de acuerdo con el riesgo bien soportado. Igual pasa con el uso
proyecto que se desarrolle resulta una idea de los prototipos. Estos se usan como
interesante. Estas metodologías pueden
herramienta de avance, sin hacer entender al
involucrar prácticas tanto de metodologías
cliente el objetivo de validación de
ágiles como de metodologías tradicionales.
requerimientos, y/o especificación de
De esta manera podríamos tener una
borradores de interfaz. Un problema paralelo
metodología por cada proyecto, la
radica en que muchos de los ingenieros de
problemática sería definir cada una de las
desarrollo de software no tienen claro qué
prácticas, y en el momento preciso definir
modelo de desarrollo siguen al interior de
parámetros para saber cual usar. Es
sus equipos. Así, problemas “normales”
importante tener en cuenta que el uso de un
adjuntos a un modelo de ciclo de vida de
método ágil no es para todos. Sin embargo,
desarrollo los toman por sorpresa, pudiendo
una de las principales ventajas de los
ser evitados haciendo un análisis del modelo
métodos ágiles es su peso inicialmente
adecuado para el proyecto particular Uno de
ligero y por eso las personas que no estén
los temas más abordados en la industria del
acostumbradas a seguir procesos encuentran
software Colombiano es el tema de
estas metodologías bastante agradables.
planeación y seguimiento de proyectos. Con
3 MODELOS DE DESARROLLO EN LA este tema viene adjunto el tema de la
INDUSTRIA DEL SOFTWARE definición de modelos de ciclo de vida de
COLOMBIANO desarrollo. Sin embargo, normalmente el
tema se ha abordado desde una perspectiva
tradicional de planeación de proyectos, sin vida exitoso en un contexto, no
hacer énfasis en las características propias necesariamente lo es en otro contexto. Por
de los proyectos de software. Es por esta ejemplo, ante el surgimiento de los Parques
razón que los modelos de desarrollo siguen Tecnológicos que incluyen empresas de
esquemas tradicionales, con poco o ningún desarrollo de software, se debe tomar en
énfasis en la adaptación al cambio y la cuenta las características propias del
estimación basada en datos históricos de contexto de un grupo de jóvenes
desarrollo. Gran parte de las empresas de emprendedores sin altos recursos para
software que tienen esquemas de oficinas de realizar inversión, con necesidad de poner en
proyectos, o usan metodologías de el mercado en relativo poco tiempo un
planeación guiadas por el Instituto de software altamente funcional de excelente
Gerencia de Proyectos de Estados Unidos calidad. Un conjunto de preguntas que
(PMI) siguen esquemas tradicionales donde surgen ante la necesidad de redefinir el
los procesos de soporte de desarrollo de modelo de desarrollo que un equipo sigue en
software son poco tomados en cuenta, un momento determinado, con el fin de
generalmente por lo poco entendidos. Es el mejorar los resultados en términos de un
caso de la Administración de conjunto de
Requerimientos. De igual forma, aunque los
atributos como pueden ser la calidad del
planes del proyecto sean administrados, en
software y la precisión de los planes
muchas ocasiones no son impactados frente
realizados, podrían ser las siguientes: 1.
a los cambios que surgen en el desarrollo del
Cómo evaluar mis proceso de desarrollo? 2.
día a día. Así, parte de la solución no está en
Cómo identificar el conjunto de
la búsqueda de realizar planes perfectos de
características que rodean mis desarrollos, e
desarrollo, sino en la búsqueda de estrategias
impactan de manera significativa los
que permitan realizar ajustes a los planes
resultados de mi equipo? 3. Cómo identificar
definidos desde el inicio. En eso hacen
el conjunto de prácticas adecuadas para
énfasis las metodologías ágiles.
incluir en un nuevo modelo de ciclo de vida
4 CÚAL ES EL CAMINO A SEGUIR? de desarrollo? La respuesta a estas preguntas
se enmarca en el tema de Mejoramiento de
Antes de definir el modelo de ciclo de vida
Procesos de Software (SPI). En este tema se
de desarrollo a seguir en una iteración de un
encuentra por ejemplo la propuesta realizada
proyecto dentro de una empresa en el
por el Instituto de Ingeniería de Software
contexto colombiano, se debe entender los
con su trabajo sobre IDEAL y CMMI. Sin
fundamentos básicos, con pros y contras, de
embargo, al igual que para los procesos de
seguir un modelo determinado. Esto incluye
desarrollo, las prácticas requeridas para
como primera medida, realizar un estudio de
mejorar un proceso de software dependen
las prácticas que se van a poner en ejecución
altamente del contexto donde se mejoran los
dentro de un proyecto. Los modelos híbridos
procesos. Por ejemplo, no es igual mejorar
(tradicionales y ágiles) deben ser
los procesos al interior de equipos con alta
estructurados teniendo en cuenta las
rotación, y gran número de participantes,
características propias del proyecto. Esto
que mejorarlos en un equipo pequeño y
incluye las propias características del
estable. Para el caso del contexto
contexto colombiano. Un modelo de ciclo de
colombiano, tomando como objetivo las
pequeñas y medianas empresas, una buena modelo de desarrollo, se debe tener en
estrategia es evaluar los procesos frente a un cuenta el marco de referencia con el cual se
marco de referencia como puede ser CMMI evaluó el proceso actual, y las características
en cada una de sus áreas de proceso. Luego identificadas. Así, de manera incremental, se
de tener una evaluación inicial del estado incorporan prácticas en un orden que se
actual de los procesos, y definir lo que se defina como prioritario al interior del equipo
puede llamar una línea base de procesos, se para minimizar los impactos negativos de
debe realizar un plan de mejoramiento características del equipo identificadas, en
basado en las características del equipo de los proyectos de desarrollo. Algo que
desarrollo. Un buen ejercicio para identificar siempre se debe tener en cuenta es la
estas características es realizar un árbol de definición de métricas desde el inicio de
problemas como el presentado en la figura 1. mejoramiento, que permitan medir la mejora
Por medio de este tipo de esquemas, se una vez impactados los procesos. A estas
pueden identificar características que de métricas se les conoce como indicadores de
alguna manera no se tomaban en cuenta. gestión del mejoramiento de procesos.

Figura 1. Árbol de problemas para la


identificación de características propias de
un contexto.
Alta rotación del equipo
Jerarquías impuestas
Desmotivación Oportunidades del mercado
Bajo nivel de productividad
No existencia de procesos livianos para
adaptar
Fuga de conocimiento
Incremento del costo en comunicación
Adaptación continua de equipo al proceso
Incremento de documentación para soportar
rotación
Fuga de conocimiento

Finalmente, para identificar las prácticas


precisas que se deben incluir en el nuevo

Вам также может понравиться