SciELO - Scientific Electronic Library Online

 
vol.10 suppl.1Detección del volumen del líquido Cefalorraquídeo a través de imágenes de Resonancia MagnéticaAlgoritmos Evolutivos con Estimación de Distribución Celulares índice de autoresíndice de materiabúsqueda de artículos
Home Pagelista alfabética de revistas  

Servicios Personalizados

Revista

Articulo

Indicadores

  • No hay articulos citadosCitado por SciELO

Links relacionados

  • No hay articulos similaresSimilares en SciELO

Compartir


Revista Cubana de Ciencias Informáticas

versión On-line ISSN 2227-1899

Rev cuba cienc informat vol.10  supl.1 La Habana  2016

 

ARTÍCULO ORIGINAL

 

Elección entre una metodología ágil y tradicional basado en técnicas de soft computing

 

Choice between an agile and traditional methodology based on soft computing techniques

 

 

Crêspo Boaventura José1*,Esteban Peña Herrera2, Pascual Verdecia Vicet3, Yulia Fustiel Alvarez3

1Instituto Superior Politécnico de Songo, Tete, Mozambique. cjose@uci.cu
2Autor Independiente de software. Saenz y Oleas N17-22, Quito, Ecuador
3Laboratorio de Investigaciones en Gestión de Proyectos, Universidad de las Ciencias Informáticas, Carretera a San Antonio de los Baños Km 2 ½, Boyeros, La Habana, Cuba, Tel (53) (7) 8358283, CP: 19370. {pverdecia, yfustiel}@uci.cu

*Autor para la correspondencia: boaventurajose.jose35@gmail.com

 

 


RESUMEN

Desarrollar proyectos de software con alta calidad del producto final, de bajo costo, mínimo de esfuerzo y entrega en tiempo, depende en gran medida de las actividades que conllevan a su construcción, donde la selección de la metodología adecuada juega un papel clave para el éxito del proyecto. La diversidad de los proyectos de software existentes, las habilidades que los evaluadores tienen de manejar la incertidumbre y la ambigüedad en la evaluación de los contextos sobre ellos, agregan un elevado nivel de subjetividad en el análisis de la información para la toma de decisión sobre la metodología a usar para los proyectos. En este trabajo se presenta un modelo para la toma de decisiones en escenarios de evaluación y selección entre las metodologías de desarrollo de software ágil o formal, donde existe imprecisión en el análisis de la información por parte de los expertos basado en técnicas de soft computing.

Palabras clave: Ambigüedad, incertidumbre, selección de metodología de software, soft computing, toma de decisión.


ABSTRACT

Developing software projects with high quality in the final product, low costs, minimal effort and on time delivery depends largely on the activities that involve its construction, where the selection of the appropriate methodology plays a key role for success of the project. The diversity of software projects, the skills that evaluators must have to deal with uncertainty and ambiguity in assessing contexts over them, add a high level of subjectivity in the analysis of information for decision making on the methodology to be used. This paper presents a decision-making model based on techniques of soft computing for scenarios evaluation and selection of agile or formal development methodologies, where the experts find imprecision in the information analysis.

Key words: Ambiguity, uncertainty, software selection methodology, soft computing, decision making


 

 

INTRODUCCIÓN

El desarrollo del software ha cambiado las prácticas del día a día de la sociedad, está presente en muchas áreas de interés de las personas: ingeniería, bancos, industria, medicina, ámbito científico, gobierno y en las empresas en general.

Desarrollar un software es una tarea compleja, y si no se utiliza por parte del equipo de trabajo una metodología para su construcción desde la fase inicial, aumenta la probabilidad de obtener un resultado que no satisfaga las expectativas de los clientes y usuarios finales.

La selección de la metodología adecuada para desarrollar determinado proyecto es clave para el éxito del mismo, ya que se llevarían a cabo actividades requeridas de acuerdo las características específicas del proyecto y su entorno.

En la actualidad hay dos grupos de metodologías para el desarrollo de software. Primero se crearon las metodologías tradicionales, que establecen un rigor en el proceso de desarrollo de software, dándole importancia al seguimiento y la planificación predictiva, herramientas, documentación extensiva y negociación contractual. Luego surgen las metodologías ágiles como reacción de la filosofía utilizada en las metodologías tradicionales. Los métodos ágiles están basados en entregas frecuentes de versiones de software funcionales, con mayor relevancia a la planificación adaptativa, colaboración con el cliente y respuestas ante los cambios inherentes al desarrollo de software.

A pesar de la existencia de estos dos grupos de metodologías para el desarrollo de software de calidad, que cumpla con el tiempo y el presupuesto, aún se manifiestan problemas en el desarrollo de software. Según el estudio realizado por The Standish Group en el 2015, se evidencia que apenas el 29% de los proyectos ejecutados en el mismo año terminaron con éxito, el 52% han sido renegociados y el 19% fracasaron en su totalidad.
Uno de los problemas asociados al proceso de desarrollo de software son los métodos a aplicar para la construcción del mismo. En ocasiones resulta en: débil nivel de rendimiento y eficiencia del personal asignado al desarrollo, desajuste de los plazos y costes previstos en la planificación entre otros factores.

La elección de una metodología es un aspecto que no ha sido tratado de manera adecuada, sobre todo en el ámbito de las metodologías tradicionales, y en el caso de las ágiles no existe un criterio unificado. (Gómez, 2010). Según refiere (Velázquez, y otros, 2012), en la mayoría de los proyectos de software actuales, la selección de la metodología a utilizar parece un acto de fe, en lugar de una evaluación de alternativas técnicas, costos, beneficios, condiciones y riegos asociados. Y esta práctica puede resultar en pérdida de tiempo ejecutando tareas irrelevantes de ejecución.

En general, la toma de decisión sobre qué metodología utilizar se realiza con la participación de expertos, con percepciones y habilidades distintas, lo que fomenta la ambigüedad, subjetividad en la evaluación de los contextos e insuficiencia en el procesamiento de términos lingüísticos de los evaluadores.

A partir de esta problemática, el presente trabajo tiene como objetivo desarrollar un modelo para la toma de decisiones en escenarios de evaluación y selección entre las metodologías de desarrollo de software ágil o formal, donde haya presencia de imprecisión en el análisis de la información por parte de los expertos basado en técnicas de soft computing.

 

MATERIALES Y MÉTODOS

La formalización del proceso de desarrollo se define como un marco de referencia denominado ciclo de desarrollo del software o ciclo de vida del desarrollo de software el cual se encuentra especificado en la ISO 12207.

Se puede describir como ciclo de vida del desarrollo de software el período de tiempo que comienza con la decisión de desarrollar un producto software y finaliza cuando se ha entregado este. (Gallegos y Ortiz, 2011).  Este ciclo, por lo general incluye una fase de requisitos, fase de diseño, fase de implementación, fase de prueba, y a veces, fase de instalación y aceptación. (ISO 12207, 2004)

Estas fases se descomponen en tareas que deben ser complementadas para obtener un producto de software, cada una de las cuales puede ser abordada y resuelta de múltiples maneras, con distintas herramientas y utilizando distintas técnicas.

Es necesario saber, además, cuándo se puede dar por concluida una tarea, quién debe realizarla, en qué orden deben ejecutarse, la documentación a utilizar para llevarlas a cabo y qué se obtendrá como resultado final. Se trata de detalles organizativos, una forma de hacer con rigurosidad y normas el desarrollo del producto.

Las metodologías imponen un proceso disciplinado sobre el desarrollo de software con el objetivo de hacerlo más predecible y eficiente, donde predecir no significa perder la capacidad adaptativa, no significa evitar la introducción de cambios en los requisitos, ni evitar que nuevos requisitos surjan sino definir un camino reproducible para obtener resultados confiables. Definen, además, una representación que permite facilitar la manipulación de modelos, la comunicación e intercambio de información entre todas las partes involucradas en la construcción de un sistema. (Gacitúa, 2003)

Según (Gabardini, 2004), los proyectos exitosos son aquellos que son administrados siguiendo una serie de procesos que permiten organizar y luego controlar el proyecto, considerando válido destacar que aquellos procesos que no sigan estos lineamientos corren un alto riesgo de fracasar. Además, es necesario destacar que los métodos son importantes, pero no se debe perder de vista que el éxito del proyecto depende más de la comunicación efectiva con los interesados, el manejo de las expectativas, el valor generado para el negocio y las personas que participan en el proyecto.

Hoy en día existen numerosas propuestas metodológicas que inciden en distintas dimensiones del proceso de desarrollo. Un ejemplo de ellas son las propuestas de metodología de desarrollo de software tradicionales, centradas específicamente en el control del proceso.

En febrero del 2001, en una reunión celebrada en Utah en los EEUU comienza a emplearse el término ágil para caracterizar las metodologías ágiles. En esa reunión un grupo de 17 expertos esbozaron los valores y principios que deberían permitir a los equipos desarrollar software rápidamente y respondiendo a los cambios que puedan surgir a lo largo del proyecto, se pretendía ofrecer una alternativa a los procesos de desarrollo de software tradicionales. Surge entonces la Alianza Ágil, una organización, sin ánimo de lucro, dedicada a promover los conceptos relacionados con el desarrollo ágil de software y ayudar a las organizaciones para que adopten dichos conceptos.

Las metodologías tradicionales están pensadas para el uso exhaustivo de la documentación durante todo el ciclo del proyecto mientras que, las metodologías ágiles ponen vital importancia en la capacidad de respuesta a los cambios, la confianza en las habilidades del equipo y mantener una buena relación con el cliente.

A pesar de que aportan una elevada simplificación, las metodologías ágiles no renuncian a las prácticas esenciales para asegurar la calidad del producto. (Palacio, 2006)

Entre las metodologías ágiles las más populares se encuentran: SCRUM, Programación Extremao Extreme Programming, conocida comúnmente por sus siglas en inglés XP, Cristal, Métodos de Desarrollo de Sistemas Dinámicos en inglés Dynamic Systems Development Method o DSDM, Microsoft Solution Framework, por sus siglas en inglés MSF y Open Unified Process o OpenUP.

Parámetros para elección entre una metodología ágil y formal

Para seleccionar la metodología tradicional o ágil se necesita analizar y medir diversos factores y riesgos asociados al escenario en causa, en el presente trabajo se propone evaluar los siguientes criterios de calidad (Tabla 1) propuesto por Boehm y Turner.

Luego de haber comprendido cada criterio de calidad se puede diagramar los criterios como se muestra a continuación. Figura 1

f01

El gráfico sirve para decidir si se necesita una metodología ágil o una metodología tradicional. Mientras más cerca esté el área de los criterios del proyecto al centro del gráfico quiere decir que para el proyecto es más adecuado utilizar una metodología ágil y mientras más lejos del centro se encuentre significa que se necesita de una metodología tradicional o formal para el desarrollo del proyecto.

La toma de decisiones y computación con palabras

Toma de decisiones

La toma de decisión es una actividad que está presente en todas las áreas de la gestión empresarial, se llama así a las primeras etapas en la resolución de un problema. De una manera u otra, la toma de decisión conlleva al análisis de información, búsqueda de posibles soluciones, selección de una de estas, aplicarla y evaluar el resultado de su aplicación. (Arza Pérez, 2012)

Tomar una decisión es elegir entre dos o más alternativas existentes aquella que mejor se ajuste al contexto en análisis y que además ofrece mayores probabilidades de éxito sobre determinado problema. Tal decisión implica asumir todos los riesgos, consecuencias negativas o beneficios asociados a la alternativa escogida.

En general un problema de toma de decisiones cumple con los siguientes pasos (Piñero Pérez, 2015):
1. Definir el problema de toma de decisiones.
2. Analizar el problema e identificar alternativas de solución (X1, X2… Xn).
3. Establecer criterios de evaluación (O1, O2… Om).
4. Seleccionar K expertos (K > 2).
5. Evaluar alternativas.
6. Ordenar y seleccionar la mejor alternativa.
7. Implementarla y hacer el seguimiento.

La selección de la metodología de desarrollo de software a introducir en una organización o a un proyecto también se puede considerar una de las situaciones de toma de decisión en la gestión empresarial, ya que se analiza información de diferente naturaleza, cuantitativa y cualitativa a fin de seleccionar la que resulte apropiada para el producto que pretende construir.

La computación con palabras

Generalmente se trabaja en entornos cuantitativos en que la información de los expertos se representa en valores numéricos que están expuestos a imprecisión o ambigüedad sobre el contexto en análisis.
Hay una necesidad de aplicar técnicas que permitan a los decisores el tratamiento de las ambigüedades, imprecisiones resultantes en el proceso de análisis de la información por parte de los evaluadores. Es por eso que surgieron técnicas que permitan una mayor aproximación al modo de pensar de los decisores. (Pérez-Teruel, 2014)

La computación con palabras, denominado en inglés Computing with Words (CWW) es una metodología en la que los objetos de la computación son palabras o frases definidas en un lenguaje natural en lugar de números. (Felix-Benjamín, Calero-Muel, Renier, & Bello-Pérez, 2015)

La computación con palabras permite un aumento en la interpretación de las preferencias expresas por los evaluadores, proporcionando resultados lingüísticos que sean fácilmente interpretables. Para ello, se propone que se represente la información a través de valores lingüísticos y se opere sobre ellos a través del modelo lingüístico basado en 2-tuplas.

En la presente investigación se utiliza el modelo lingüístico basado en 2-tuplas, una técnica de computación con palabra que permite operar en un dominio de expresión lingüístico, ganándose precisión en los resultados.

Propuesta

Definición del marco para la evaluación

Como paso inicial, se debe comenzar por la definición de los que participarán como evaluadores en el proceso. Esta selección debe hacerse de entre los miembros del equipo de expertos quienes cuentan con criterio para poder decidir sobre las preguntas a realizarse.

En el marco de evaluación, se identifican a los evaluadores como el conjunto E={e1,e2,....,en} sobre los criterios representados como el conjunto C={c1,c2,....,cn}. Donde cada elemento del conjunto representa directamente un criterio.

Para que los evaluadores puedan expresar con facilidad su percepción y conocimiento, es necesario que dispongan de un conjunto apropiado de descriptores lingüísticos. Un aspecto muy importante que es necesario analizar con el fin de establecer la descripción de una variable lingüística es la granularidad de la incertidumbre (Bonissone, y otros, 2013).

Recogida de las preferencias de los especialistas

Para la recogida de la información, se utiliza la técnica de encuesta. Este instrumento es diseñado definiéndose una pregunta por cada criterio de evaluación y se le solicita al evaluador que emita su valoración utilizando la escala CBTL (conjunto básico de términos lingüísticos) que se mostrará más adelante. Esto va a facilitar el procesamiento de la información.

Es importante además que los evaluadores conozcan previamente en qué consiste el método de evaluación y el objetivo de su aplicación.

Transformación de los criterios de los expertos a 2-tuplas lingüísticas

El modelado lingüístico difuso basado en 2-tuplas (Herrera, 2000) es un tipo de modelado lingüístico difuso que permite reducir la pérdida de información que habitualmente se produce en los modelados lingüísticos difusos clásicos. Esta pérdida de información, que provoca una falta de precisión en los resultados, se debe al propio modelo de representación puesto que opera con valores discretos sobre un universo de discurso continuo. La principal ventaja del modelo computacional lingüístico basado en 2-tuplas, es que permite realizar procesos de computación con palabras de forma sencilla y, además, sin pérdida de información.

 

RESULTADOS Y DISCUSIÓN

El empleo del método fue validado a partir de dos experimentos:

Experimento 1: Se selecciona como parte de la muestra para la aplicación de la propuesta, la implantación de la nueva versión de sistema GESPRO v.16 .05 en el Laboratorio de Investigaciones en Gestión de Proyectos de la Universidad de Ciencias Informáticas.

Resultados del experimento 1

Las técnicas de computación con palabras fueron aplicadas en los siguientes pasos:

1 - Se define un CBTL para la evaluación de los criterios con los siguientes términos: CBTL = {ninguno (N), muy bajo (MB), bajo (B), medio (M), alto (A), muy alto (MA), perfecto (P)}.

2 - Los expertos evalúan cada criterio usando alguno de los términos lingüísticos ver tabla 2.

t02

3 - Se transforma las preferencias de los expertos en conjuntos borrosos basados en la variable lingüística de la figura 2.

f02

4 - Siguiendo el modelo 2-tuplas de computación con palabras se agregan las evaluaciones de los expertos consolidando las mismas por cada criterio a evaluar. Ver ecuación 1.

fo01

5 - Finalmente se procede a analizar los resultados (Tabla 3).

t03

Después de obtener los resultados se llega a la conclusión que los criterios con menor evaluación son Experiencia del personal, Dinamismo, Criticidad, y el criterio con mayor evaluación es Cultura.

Al utilizar la Figura 1 para diagramar los resultados obtenidos de los criterios tenemos como resultado que este proyecto debería utilizar una metodología formal, tal como muestra la figura 3.

f03

Experimento 2: Se selecciona como parte de la muestra para la aplicación de la propuesta, la creación del Sistema de Control de los Recursos humanos para la empresa KFC Ecuador.

Resultados del experimento 2

Los resultados sumariados de los expertos se pueden ver en la tabla 4.

t04

Después de obtener los resultados se llega a la conclusión que los criterios con menor evaluación son Cantidad de personal y Criticidad, y el criterio con mayor evaluación es Experiencia del personal.

Al utilizar la Figura 1 para diagramar los resultados obtenidos de los criterios tenemos como resultado que este proyecto debería utilizar una metodología ágil, tal como muestra la figura 4.

f04

 

CONCLUSIONES

La selección de la metodología a introducir en una organización para el desarrollo de diferentes tipos de proyectos o programas de proyectos no pude ser hecha de forma empírica o por la popularidad de determinado grupo de metodologías, pues, esa práctica puede afectar en la calidad del producto a desarrollar, en el tiempo de desarrollo, y en el costo del mismo. Cada programa de proyectos o determinado proyecto se va ajustando al tipo de metodología de desarrollo de acuerdo a condiciones existentes y el entorno organizacional. Hoy puede ser factible utilizar una metodología, pero en el futuro la organización pude estar más bien preparada para aplicar otro tipo de metodología para el mismo tipo de proyecto.

Con la aplicación de la propuesta los directores y administradores de proyectos cuentan con una herramienta para tomar decisiones basadas en las técnicas de computación con palabras. Los resultados finales de este análisis cualitativo mejoran la precisión en la evaluación de las tres variables fundamentales de un proyecto: tiempo, costo y calidad.

 

REFERENCIAS BIBLIOGRÁFICAS

12207, I. (2004). ISO/IEC 12207, Tecnologías de la información: procesos del ciclo de vida del software. 2004. www.iso.org/iso/home.htm. 2004.

Boeras Velázquez, M; Cabrera Barroso, L. Aplicando el método de Boehm y Turner. Revista Cubana de Ciencias Informáticas (RCCI). 2012. Vol. 5.

Bonissone, P., et.  A Fuzzy Sets Based Linguistic Approach: Theory and Applications. 12th Conference on Winter Simulation. 2013.

Canós, J. H. (2003). Metodologías Ágiles en el Desarrollo de Software.2003.

Cervantes. (2015). Método de evaluación de composición de equipos de proyectos de desarrollo de software. La Habana.

Díaz, M. I. (2012). La incertidumbre y la ingeniería de software.

Felix-Benjamín, Calero-Muel, C., R. E.-G., & Bello-Pérez, R. (2015). Aplicación de la computación con palabras en la evaluación del impacto de la capacitación Dyna, vol. 82. Medellín: Universidad Nacional de Colombia Medellín, Colombia.

FUNDESYRAM. (2011). La Fundación para el Desarrollo Socio Económico Y Restauración Ambiental Proceso para tomar decisiones. San Salvador.

Gabardini. (2004). Balanceo de Metodologías Orientadas al Plan y Ágiles. Herramientas para la Selección y Adaptación;. PMI Global Congress.

Gacitúa, R. A. (2003.). Métodos de desarrollo de software: El desafío pendiente de la estandarización.

Gómez, T. (2010). Criterios de selección de metodologías de desarrollo de software.

Herrera, F. a. (2000). A 2-Tuple Fuzzy Linguistic Representation Model for Computing with Words. Fuzzy Systems, IEEE Transactions on 8(6): 746-752.

Karina Pérez-Teruel, M. L.-V.-S. Computación con palabras en la toma de decisiones mediante mapas cognitivos difusos. Revista Cubana de Ciencias Informáticas. 2014.  Vol. 8, No. 2:19-34.

Beck, K.; Beedle, M., et al. Manifiesto por el Desarrollo Ágil de Software. [en línea]. [Consultado el: 15 de octubre de 2016] 664-678 p. Disponible en: http://agilemanifesto.org/ .

Arza Pérez, L.;  E. Y, et al. El empleo de métodos de toma de decisión y técnicas de soft computing en la selección de personal. Revista Cubana de Ciencias Informáticas (RCCI). 2012. Vol. 6.

Palacio, J. (2006). Gestión de proyectos ágil: conceptos básicos.

Patricio Letelier, M. C. (2006). Métodologías ágiles para el desarrollo de software: eXtreme Programming (XP). Universidad Politécnica de Valencia.

Piñero Pérez, Pedro Y. Programa de maestría en gestión de proyectos. Universidad de las Ciencias informáticas. 2015.

Hastie S., Wojewoda, S. Standish Group 2015 Chaos Report. [Consultado el: 01 de septiembre de 2016]. Disponible en: https://www.infoq.com/articles/standish-chaos-2015.

 

 

Recibido: 15/06/2016
Aceptado: 10/10/2016

Creative Commons License Todo el contenido de esta revista, excepto dónde está identificado, está bajo una Licencia Creative Commons