AutorAida Hernández Ramos / aida.hernandez@cmg.jovenclub.cu

Resumen:

El presente artículo tiene objetivo explicar cómo llevar a cabo un Proceso de Mejora de Desarrollo de Software para elevar la Calidad del Software en cualquier Empresa de esta rama, a través del Modelo de Madurez de Capacidad Integrado (CMMI). El problema radica en que existen riesgos que atentan contra el éxito de dicho proceso, de ahí la importancia de mitigar estos riesgos para de esta manera lograr mayor calidad en sus productos de software, disminuyendo sus tiempos y costos de desarrollo. Se presenta un estudio de los aspectos relacionados con la Calidad, Proceso, el Proceso de Mejora de Software, y Calidad de Software. Basado en el estudio se define el modelo a aplicar, para cumplir con el objetivo general de la investigación de aplicar un Proceso de Mejora de Desarrollo de Software que mejore la Calidad del Software en las Empresas.

Summary:

This article is intended to explain how to perform a Software Development Improvement Process with the aim of improving software quality in any company of this branch, through Maturity Model Integrated Capacity (MMIC). The problem is that there are risks that threaten the success of this process, hence the importance of mitigating these risks to thereby achieve higher quality of software products, reducing their development time and costs. A study of the aspects related to Quality, Process, Process Improvement Software, and Software Quality is presented. Based on the study the model to apply is defined to accomplish the general objective of the research to apply a Process of Improvement Software Development to improve Software Quality in Enterprises.

Palabras claves: Calidad, Proceso, Calidad del software, Proceso de Mejora de Software, empresas

Keywords: quality, process, quality of software product, Software Process Improvement, Enterprises

Introducción:

El desarrollo tecnológico especialmente de las Tecnologías de la Información y la Comunicación (TIC) ha tomado gran auge en la actualidad, el cual se impone cada día a la sociedad industrial. La incorporación de la misma en todos los procesos productivos ha facilitado la inserción de mercados globales, donde la intensa competencia obliga a reducir costos y ajustarse de manera casi inmediata a las cambiantes condiciones del mercado.

Esto implica que las empresas deben ser más eficaces y eficientes para poder seguir compitiendo en esta nueva sociedad de la información, donde se cuenta cada vez con menos fronteras comerciales, más competencia, donde los clientes exigen más y mejores servicios que satisfagan sus necesidades. La alternativa utilizada para lograr estos retos es la aplicación de Procesos de Mejora.

La industria del software no escapa de la necesidad de llevar a cabo los Procesos de Mejora de Software. Hoy día se requiere que el desarrollo y evolución de software logre productos que respondan a los requerimientos crecientes en ambientes tecnológicos cambiantes, con procesos bien definidos, predecibles y en condiciones de ser permanentemente mejorados.

Por estas razones, muchas organizaciones han decidido invertir en mejorar sus procesos de desarrollo y evolución de software, obteniendo como resultado inmediato un excelente retorno al lograr mayor calidad en sus productos, disminuyendo sus tiempos y costos de desarrollo.

De ahí la importancia de los Procesos de Mejora de Software, sin embargo, según estudios realizados el índice de fracasos en la implementación de estos procesos es de aproximadamente un 70 %, manifestándose principalmente en fallas como:

  • Comunicación poco efectiva por parte de los gestores de proyectos o dentro de los mismos equipos de desarrollo de software. La comunicación debe fluir en todas direcciones, es decir la información debe ser transversal a toda la organización pues de lo contrario se pone en riesgo el éxito del proyecto.
  • Poca comprensión de los equipos de desarrollo de los verdaderos objetivos y alcances de los procesos de mejora, esto los puede hacer sentir desmotivados, pues existen cambios organizacionales que para el equipo de desarrollo pueden ser bastante incómodos.
  • Falta de una cultura organizacional, influyendo negativamente en la organización ya que impide su mejoramiento continuo y la comunicación entre los equipos de desarrollo.

Tomando en consideración lo anteriormente expuesto, se plantea el siguiente objetivo general aplicar un Proceso de Mejora de Desarrollo de Software para mejorar la Calidad del Software en las Empresas dedicadas a esta rama.

Desarrollo:

Para llevar a cabo esta investigación se utilizaron los siguientes métodos científicos de investigación:

Teóricos:

  • Analítico-Sintético.
  • Inducción-Deducción.
  • Histórico-Lógico.

Empíricos:

  • Observación.

A continuación una panorámica general acerca del estado del arte a nivel mundial sobre temas relacionados con la Calidad, Proceso, Calidad del Software y Procesos de Mejora de Desarrollo de Software. Por último se definen el CMMI como modelo para mejorar los procesos de software.

Calidad de Software

El término calidad es muy difundido en la actualidad y expresa la idea de excelencia. Se dice que un producto o servicio es de calidad cuando satisface las necesidades y expectativas del cliente y responde a algunos parámetros como: seguridad, fiabilidad y respuesta ante un fallo en el producto o servicio.

La norma ISO 8402:1994, define la calidad como: «un conjunto de características de una entidad que le confiere la aptitud para satisfacer las necesidades establecidas y las implícitas” .

Según la norma ISO 9000:2000, la calidad es: «la capacidad de un conjunto de características intrínsecas para satisfacer requisitos”.

Todos estos autores han contribuido a la conformación del concepto de calidad, sin embargo la definición más completa es la emitida por John M. Groocok pues ve la calidad no sólo como un producto con ciertas características, sino que refleja la idea de que éste se enfoque en lo que el cliente necesite y desea.

Antecedentes y definición de la Calidad del Software

El concepto de calidad ha evolucionado fuertemente a lo largo del siglo XX. De ahí la necesidad de estudiar las diferentes etapas por las que ha transitado este concepto y de esta forma conocer cómo se ha desarrollado en relación con la Calidad de Software.

El concepto se ha trasformado hasta convertirse en una forma de gestión, que introduce el concepto de mejora continua en las organizaciones involucrando a las personas y procesos. Las cuatro etapas de la calidad son:

  • Inspección.
  • Control Estadístico.
  • Aseguramiento de la calidad.
  • Administración de la calidad total.

Estas etapas han sido muy importantes para la industria del software, sobre todo la última porque considera aspectos como: mejora continua, enfoque al cliente y participación total de la organización, como vitales para el logro de un producto con calidad, capaz de competir en el mercado.

En la industria del software se pueden evidenciar necesidades de satisfacer al cliente con productos o servicios de software y para lograrlo el camino más factible es a través del logro de la Calidad del Software.

La definición de la Calidad del Software según la IEEE, Std. 610-1990, es “el grado con el que un sistema, componente o proceso cumple los requerimientos especificados y las necesidades o expectativas del cliente o usuario”.

Una definición muy completa, clara y afín con esta investigación es la dada por Pressman: “Concordancia del software producido con los requerimientos explícitamente establecidos, con los estándares de desarrollo prefijados y con los requerimientos implícitos no establecidos formalmente, que desea el usuario” .

De los temas tratados se puede inferir que es de gran importancia lograr una cultura de calidad en todos los sectores empresariales y la industria del software no es la excepción, para lograrlo ha decidido apostar a la Mejora de Procesos involucrando a todos sus miembros, con el propósito de elevar su calidad en la producción de software.

Proceso de Mejora de Software

Como se vio anteriormente, los Procesos de Mejora constituyen una alternativa para elevar la Calidad del Software, sobre sus principales conceptos y antecedentes se realiza un estudio en esta sección.

Concepto de proceso

Un proceso es una serie de actividades relacionadas entre sí que convierten insumos en productos (cambiando el estado de las entidades de negocios pertinentes).

Un proceso implica el uso de los recursos de una organización, para obtener algo de valor. Así, ningún producto puede fabricarse y ningún servicio puede suministrarse sin un proceso, y ningún proceso puede existir sin un producto o servicio”.

Los procesos constituyen uno de los principales problemas dentro de las organizaciones productoras de software, que impiden el incremento de la productividad y la calidad, de ahí la necesidad de trazar estrategias para mejorarlos.

Concepto de mejora

La palabra mejora está vigente en diferentes esferas de la vida, sobre todo en ambientes empresariales donde ha dejado de ser una opción para convertirse en una imperiosa necesidad.

Mejora proviene del verbo mejorar que implica cambiar, El Diccionario Enciclopédico define mejora como:

Acción o efecto de mejorar”.

Cambio hecho en una cosa, por lo que resulta mejorada”.

Según el diccionario de la Real Academia Española (RAE), mejora es:

Medra, adelantamiento o mejora de algo”.

Haciendo un análisis de los significados enunciados y adaptándolos a la presente investigación, se define que mejora no es más que mejorar algo haciéndolo pasar a un estado superior.

Muchas organizaciones entre ellas las productoras de software, se han dado cuenta de que no basta con incrementar su productividad, sino que es necesario lograr productos con calidad, pues la competencia en el mercado es cada vez mayor, preocupación que contribuyó al surgimiento de la iniciativa de mejorar los procesos como una solución a esto.

Antecedentes y definición de Proceso de Mejora de Software

A mediados de los 80 (siglo XX) los procesos de desarrollo y mantenimiento del software eran con frecuencia imprevisibles, y la garantía de funcionamiento y calidad del software desiguales. En general, los problemas principales presentados por los productos de software parecen ser en gran parte, debido a problemas de proceso .

Muchas organizaciones productoras de software se han dado cuenta de esto y han encaminado sus esfuerzos a mejorar sus procesos y así lograr productos de mayor calidad y mejores servicios para poder satisfacer las necesidades de clientes cada vez más exigentes.

La mejora del Proceso Software es un mecanismo de mejora continua de la calidad. Se puede utilizar para elevar capacidad de los contratistas, para auditar desarrollos de software interno y para planificar la estrategia de ingeniería del software de la empresa”.

En esencia, la Mejora del Proceso es simple, consiste en aplicar las prácticas que proporcionan buenos resultados y cambiar o eliminar las prácticas que causan problemas.

Es innegable el valor que tiene la Mejora del Proceso, pues según estudios realizados muchas empresas implicadas en la mejora del Proceso Software, han logrado reducir los costos de producción, mejorar la calidad del producto y ajustarse a las necesidades de los clientes. Otros beneficios han sido lograr un entorno de trabajo más estable, una reducción de la tasa de rotación del personal y una mejora en las relaciones de trabajo con los clientes.

En fin son múltiples los beneficios que se pueden obtener al llevar a cabo una Mejora de Procesos, por esto se necesita que los grupos encargados de llevarlo a cabo se sientan comprometidos, para lograr el éxito de la misma. Otro factor clave para obtener un desarrollo exitoso de la iniciativa de mejora son la serie de modelos creados para guiar, facilitar y asegurar el programa de mejora.

CMMI como modelo para la Mejora de Procesos

Uno de los modelos de mejora de procesos más usados en las organizaciones es el CMMI, por sus resultados es el que se propone en la presente investigación para llevar a cabo un Proceso de Mejora de Software en las Empresas.

El CMMI, es un modelo que ayuda a: integrar las funciones de la organización, conducir la mejora de los procesos, proporciona una guía de calidad de los procesos y puntos de referencia para la evaluación de estos. El propósito del modelo es proveer una guía para mejorar los procesos de la organización y la capacidad para gestionar el desarrollo, la adquisición y el mantenimiento de productos y servicios.

Este modelo consta de cinco niveles de madurez que clasifican a la organización, estos niveles sirven para conocer la madurez de los procesos que se realizan para producir software.

Los niveles de madurez de una organización en CMMI son: Inicial, Gestionado, Definido, Gestionado cuantitativamente y Optimizado. Cada nivel comprende un conjunto de áreas de proceso, estas cubren desde el desarrollo de los productos y de los servicios hasta el mantenimiento de los mismos. Independientemente de la disciplina a cual esté enfocada la organización, las áreas de proceso se subdividen en grupos distintos los cuales dependen de cada representación ya sea la continua o por etapas.

Al implantar un Proceso de Mejora usando CMMI como modelo existen riesgos que pueden afectar el desarrollo del proceso, de ahí la importancia de conocerlos y aplicar medidas para mitigarlos.

Riesgos en la implantación del Proceso de Mejora de Software

Los procesos de Mejora en el Desarrollo de Software, trae cambios muy profundos en las organizaciones que desean implementar estos modelos, los administradores o jefes de proyectos deben asumir estas transformaciones oportunamente, para evitar catástrofes que incluso pueden llevar a la frustración en la implementación de modelos de mejora.

Para que un Proceso de Mejora de desarrollo del software tenga éxito, se requiere que los encargados de llevarlo a cabo estén dispuestos y preparados para asumir los cambios que estos modelos traen para las organizaciones.

Dos tercios de los proyectos de mejora no concluyen con éxito tras una evaluación formal (18), pues existen riesgos que pueden conducir al fracaso de estas iniciativas.

El diccionario de la RAE, define riesgo como: “Contingencia o proximidad de un daño”. Adaptando este concepto a la investigación se define riesgo como, la probabilidad de que una amenaza de daño llegue a convertirse en un desastre.

Entre los riesgos que atentan contra la implantación exitosa de Procesos de Mejora se encuentran:

  • Comunicación poco efectiva por parte de los gestores de proyectos o dentro de los mismos equipos de desarrollo de software. La comunicación debe fluir en todas direcciones, es decir la información debe ser transversal a toda la organización pues de lo contrario se pone en riesgo el éxito del proyecto.
  • Poca comprensión de los equipos de desarrollo de los verdaderos objetivos y alcances de los procesos de mejora, esto los puede hacer sentir desmotivados, pues existen cambios organizacionales que para el equipo de desarrollo pueden ser bastante incómodos.
  • Problema de “entendimiento” entre las partes involucradas que conllevan al fracaso del proceso.
  • Las contradicciones técnicas de los modelos CMM/CMMI pueden llevar, sino son previstas con anticipación, al fracaso de los proyectos de implementación.
  • Falta de una cultura organizacional, lo que incide negativamente en la organización pues esta sin cultura es como un grupo de personas que no pueden comunicarse entre sí.
  • La creencia de que el software se puede mejorar sólo con estándares, métricas y buenas prácticas, puede hacer fracasar la iniciativa de mejora.

El análisis de los riesgos mencionados evidencia como los principales esfuerzos de mejorar el proceso de desarrollo de software puedan desvanecerse, dejando a los empleados de la empresa agotados, frustrados y más enraizados que nunca con las formas de trabajo del pasado.

Hoy día la inadecuada manipulación y disponibilidad de la información, ha dado origen a algunos de estos riesgos, lo cual ha traído consigo que las organizaciones decidan hacer grandes esfuerzos y agoten todos sus recursos en función de gestionar correctamente la información dentro del Proceso de Mejora de Software.

Conclusiones:

Con la realización de esta investigación se puede afirmar que con la aplicación de un Proceso de Mejora de Software, como se planteó en el objetivo inicialmente, se puede elevar la Calidad del Software, reportando varios beneficios:

  • Aumento de la calidad de los productos de software.
  • Incremento de la comunicación entre gestores de proyectos o dentro de los mismos equipos de desarrollo de software
  • Mayor compresión de los verdaderos objetivos y alcances de los procesos de mejora.
  • Logro de una cultura organizacional.
  • Aumento de los beneficios económicos.
  • Mitigación de los riesgos que pueden llevar al fracaso del proceso.

Referencias Bibliográficas:

  • Española, Real Academia. Diccionario De la Lengua Española. España: ESPASA, 2001. 1003 .
  • Cuevas Agustín, Gonzalo. Gestión del proceso software. España: Ramón Areces, 2003. 447.
  • Desde ISO 9001 hacia CMMI,pasos para la mejora de los procesos y métricas. Armas Andrade, Rolando, Chamorro Gómez, Arturo y Montes Beobide, Maite. 2007, RPM-AEMES, Vol. 4. 18-25.
  • Introducción a la Calidad del Software. López Echeverry, Ana María, Cabrera, Cesar y Valencia Ayala, Luz Estela. Pereira : s.n., 2007, Scientia et Technica, Vol. 1. 18-25.
  • tecnalia, ESI (European Software Institute). Motivación para la mejora de proceso basada en CMMI. [En línea] 2007. adictosaltrabajo.com/tutoriales/cmmiOverview/CMMI_Overview.pdf.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *