SciELO - Scientific Electronic Library Online

 
vol.21 número1Análisis de la calidad de la energía en un centro de cómputosDesarrollando sistemas de información centrados en la calidad de datos índice de autoresíndice de assuntospesquisa de artigos
Home Pagelista alfabética de periódicos  

Serviços Personalizados

Journal

Artigo

Indicadores

Links relacionados

Compartilhar


Ingeniare. Revista chilena de ingeniería

versão On-line ISSN 0718-3305

Ingeniare. Rev. chil. ing. vol.21 no.1 Arica abr. 2013

http://dx.doi.org/10.4067/S0718-33052013000100005 

Ingeniare. Revista chilena de ingeniería, vol. 21 N° 1, 2013, pp. 41-53

ARTÍCULOS

 

Taxonomía de riesgos de outsourcing de software

Software outsourcing risk taxonomy

 

Gloria Piedad Gasca-Hurtado1 Bell Manrique Losada1

 

1Facultad de Ingeniería. Universidad de Medellín. Cra. 87 N. 30-65 Belén Los Alpes. Medellín, Colombia. E-mail: gpgasca@udem.edu.co; bmanrique@udem.edu.co


RESUMEN

Para las organizaciones la estrategia de outsourcing de software (OS) se ha constituido en una alternativa estratégica de reducción de costos y mejora de la calidad de software. Sin embargo, la complejidad de la gestión de este tipo de proyectos aumenta, debido a la relación de actores diferentes (cliente y proveedor), de la cual depende en gran medida el éxito de estos proyectos. Identificar, analizar y gestionar los riesgos que afectan este tipo de proyectos, son buenas prácticas que se pueden llevar a cabo para establecer indicadores de gestión claves para el éxito de los proyectos. Es por esta razón que el objetivo de este trabajo es diseñar una taxonomía de riesgos de OS, es decir, una estructura de clasificación jerárquica de riesgos basada en los proyectos de OS que facilite la identificación de riesgos, que contribuya a la realización de un análisis de riesgos ágil y preciso, para su posterior gestión a lo largo de todo el proceso de OS. La taxonomía que se propone ha sido validada en un caso de estudio correspondiente a un proyecto de compra de software preelaborado. Los resultados se muestran en la última parte de este trabajo y se analiza la forma como dichos resultados impacta el proyecto en el cual fue implementada la taxonomía y su utilidad en el refinamiento de los procesos organizacionales de la empresa, a partir de las lecciones aprendidas.

Palabras clave: Gestión de riesgos, outsourcing de software, taxonomía, mejora de procesos, ingeniería de software.


ABSTRACT

In recent years, the software outsourcing (SO) strategy for organizations has become a useful and important alternative, as well as SO projects. SO projects have many complexities due to several factors affecting management. These complexities and importance of SO require that successfull projects meet a parameter set: budget, cost, schedule, among others. This requirement can be met through the implementation of methods and techniques of risk management (RM). RM is a process to prevent problems, establish actions to follow, and monitor the project to ensure success. Likewise, it is considered a key process in making decisions about risks. In this paper, we present a proposal for the risks identification related to software outsourcing process. Risk identification is the basic activity on which rests the success of RM process. Our proposal is a risk taxonomy of SO, consisting in a hierarchical classification structure based on the RM of SO projects. The taxonomy was validated in a study case: Project of pre-developed software acquisition. The results have been useful for the organization and for the refinement of the proposal, thanks to lessons learned.

Keywords: Risk management, software outsourcing, taxonomy, process improvement, software engineering.


INTRODUCCIÓN

Hoy por hoy las Tecnologías de Información (TI) son el gran activo bajo los cuales se sostienen todas las organizaciones. Sin embargo, existe un fenómeno de cambios imparables de las TI. Este fenómeno exige que se establezcan mecanismos claros para la gestión de las TI. Es por tal motivo que grandes instituciones impulsan, desarrollan y diseñan modelos de gestión como PMBOK [1], CMMI [2], y PRINCE2 [3].

Dentro de las TI existe actualmente una tendencia creciente que establecen las organizaciones con el fin de mejorar la forma de obtener respuesta a sus necesidades. Esta tendencia está dada por la estrategia de outsourcing de software.

Actualmente las organizaciones han incrementado el uso de la externalización (del inglés outsourcing), subcontratación o adquisición (para este trabajo son términos indistintos y que se enunciará a partir de ahora como Outsourcing de Software -OS-) de productos o servicios. Este incremento hace que exista una disminución en el desarrollo interno (in-house) de soluciones informáticas que requieren día a día dichas organizaciones [4] y aumente la subcontratación de dichas soluciones por organizaciones externas. Por soluciones entendemos componentes software, sistemas de información, parte de un componente software, entre otros [5].

Es tal la importancia que cobra el OS hoy por hoy [6], que existen propuestas muy importantes enfocadas exclusivamente a este proceso [7]. Estas propuestas están siempre haciendo énfasis en la importancia de seleccionar, adecuadamente, los procesos claves para la gestión de proyectos de OS, dentro de los cuales está la gestión de riesgos.

La gestión de riesgos (GR) para proyectos de outsourcing es un proceso capaz de ofrecer grandes alternativas de solución a varias amenazas que presentan los proyectos de outsourcing, principalmente caracterizados por carencias en la gestión de los mismos. Para lograr obtener información suficiente es necesario construir un proceso de gestión de riesgos GR consistente, que determine el éxito del proyecto de outsourcing. Por su aporte significativo a lo largo de la ejecución de un proyecto de SO, es indispensable tener en cuenta varios aspectos:

a)      Basar la gestión del proyecto de outsourcing en estándares y modelos altamente reconocidos (CMMI-ACQ [8], eSCM-CL [9-10], PMBOK [1], PRINCE2 [3]).
b)      Implementar técnicas y métodos para la selección de procesos claves que contribuyan al éxito del proyecto de outsourcing.
c)      Adaptar y aplicar técnicas y métodos adecuados para cada uno de los procesos seleccionados, con el fin de facilitar los procesos, actividades, fases o pasos de dichos procesos.
d)      Alcanzar un alto conocimiento del entorno, tanto del proyecto como de la organización, para la adaptación adecuada de los modelos, técnicas y métodos seleccionados y/o utilizados.

En este sentido, este trabajo pretende hacer una propuesta para facilitar el arduo trabajo al que se enfrentan las organizaciones cuando gestionan los proyectos de SO, específicamente en el momento de hacer la identificación de riesgos que posteriormente deben ser gestionados. Este aspecto de la GR es vital, por cuanto es determinante para tomar decisiones frente a: los posibles problemas que puede afrontar el proyecto desde el inicio, el seguimiento adecuado de los problemas antes y después de que ocurran, la toma de decisiones para disminuir o sumir determinados riesgos que pueden convertirse en problemas, determinación de acciones a seguir para mitigar o contener los riesgos en el momento adecuado, entre otros aspectos determinantes del éxito o fracaso de un proyecto outsourcing.

La construcción de esta propuesta se hace teniendo en cuenta un método para la construcción de una taxonomía de riesgos (MECT) [11]. Asimismo, está enfocada a determinar una clasificación de riesgos de OS. Esta clasificación ha sido estructurada como una taxonomía en razón a que se ha generado a partir un método en el cual se estudia el enfoque particular, se determinan los criterios y la tipología de problemas frecuentes en proyectos de outsourcing tan importantes como los que se reportan en el U.S. Government Accountability Office (U.S. GAO).

Esta propuesta es la base fundamental bajo la cual se determina una técnica de identificación de riesgos. La técnica está basada en preguntas y en una guía de identificación de riesgos. Como consecuencia, se presenta la taxonomía por medio de la cual se espera la generación de un catálogo de preguntas para identificar riesgos y la guía que haga fácil su utilización.

La estructura de este artículo es como sigue: en el segundo apartado se realiza una revisión de literatura. En el tercer apartado se muestra una taxonomía de riesgos de gran impacto y utilidad para el desarrollo de software. En el cuarto apartado se presenta la taxonomía de riesgos, propuesta para el proceso de OS. Finalmente, se muestran los resultados de la aplicación de la taxonomía y las conclusiones de toda la investigación.

REVISIÓN DE LITERATURA

Con el fin de llevar a cabo los pasos concretos para construir la taxonomía propuesta, se estableció un método. Uno de los pasos más importantes en la construcción de la taxonomía es la revisión de literatura. Esta revisión permite establecer aspectos relevantes para el establecimiento del contexto, entorno, contenido y estructura principal de la taxonomía de riesgos para el proceso de outsourcing de software.

A partir de los aspectos mencionados, es recomendable hacer una delimitación del área de estudio. El área de estudio de la propuesta que se pretende realizar está enmarcada dentro de la disciplina de outsourcing, más específicamente bajo estos criterios:

a)      Tendencia creciente de las organizaciones a externalizar la compra de software, por medio de estrategias como el outsourcing.
b)      Altos niveles de proyectos de outsourcing con porcentajes elevados de fracaso, causados principalmente por deficiencias en los procesos de gestión del proyecto [8].

A partir de los aspectos mencionados, la revisión de literatura que propone el método generó la siguiente síntesis. Esta revisión está recomendada como un paso importante para determinar el primer nivel que estructura la taxonomía y la relación que guardará entre este nivel y los subniveles que la componen.

Revisión de fuentes de información
Una revisión de literatura requiere la organización y definición de las diferentes fuentes de información que pueden ser utilizadas. En este caso, se clasificaron las fuentes de acuerdo a los siguientes tipos:

• Fuentes personales: relativas a conocimientos individuales, tanto del equipo de trabajo como de profesionales del área de estudio.
• Fuentes documentales: relativas a documentos e información obtenida a lo largo del desarrollo de una investigación. Para este caso fue indispensable el proceso de revisión sistemática que se llevó a cabo previamente [12]. Además, se llevó a cabo una revisión de fuentes de información formales como el caso de informes como: CHAOS REPORT [13-14] y GAO. Esta revisión se presenta en la Tabla 1.
• Taxonomías y clasificaciones existentes: esta fuente de información permite tener un antecedente clave para el establecimiento de un trabajo a partir de propuestas validadas. A raíz de una revisión de este tipo de fuentes, se encontraron investigaciones relacionadas con la ingeniería de software.

Tabla 1. Revisión de literatura de informes GAO.

Una de éstas, es la propuesta de identificación de riesgos basada en una taxonomía. Esta propuesta la hacen Carr, Konda, Monarch, Ulrich y Walker [20], como un método que facilita realizar este proceso de identificación de riesgos en proyectos de desarrollo de software. Esta propuesta fue la primera aproximación publicada a partir de la taxonomía de riesgos en desarrollo de software por el Software Engineering Institute (SEI). Se basa en dos componentes: un cuestionario y la descripción del proceso de aplicación. El cuestionario se basa en preguntas organizadas bajo los tres niveles de los riesgos: clase, elemento y atributo, que permitirá obtener los riesgos que potencialmente afectarán el producto software a desarrollar. El proceso de aplicación describe detalladamente la forma como el cuestionario puede ser usado en forma práctica y eficiente. Este método ha sido propuesto a partir de la vasta experiencia de los autores y pruebas realizadas en campo bajo ciertas condiciones [20].

Otra propuesta es una taxonomía de riesgos para el desarrollo de aplicaciones software científicas de ingeniería, presentada por Kendall, Post, Carver, Henderson y Fisher [21]. Esta propuesta pretende aportar a la GR en proyectos de computación de alto rendimiento en donde el proceso es difícil, complicado y algunas veces incierto. Además de las causas de riesgos asociados a los proyectos tradicionales, los proyectos científicos pueden sufrir consecuencias de riesgos asociados a: complejidad y amplitud del código desarrollado; diferencias en la formación de los miembros del equipo de desarrollo del producto; comportamiento emergente de características o fenómenos físicos del producto, entre otros. Esta taxonomía propuesta organiza las fuentes de riesgos en el desarrollo de aplicaciones científicas alrededor de tres aspectos: el ciclo de desarrollo, el ambiente de desarrollo y el entorno de programación [21].

Además, se conoce una taxonomía de requisitos relacionados con la seguridad presentada por Firesmith [15], que especifica las cantidades mínimas aceptables de los requisitos de seguridad para componentes arquitectónicos y restricciones de seguridad. Esta propuesta intenta direccionar los problemas asociados a la falta de taxonomías de seguridad claras, como un aporte hacia la definición de un modelo de calidad [22]. También se ha encontrado una propuesta relacionada con la Taxonomía Unificada de Fallos Accidentales en el desarrollo de Software crítico de López [16], descrita como un aporte hacia: la comprensión de los fallos de software y sus orígenes; el análisis completo y sistemático del software; la búsqueda de soluciones tolerantes a fallos, y así como la construcción de productos más fiables y seguros [23].

Estas iniciativas demuestran que, a pesar de que el OS es una estrategia relativamente antigua [24-25], su formalización se encuentra en un estado inicial, pues hay una carencia de taxonomías de riesgos que faciliten la categorización de problemas comunes que ponen en riesgo el éxito de los proyectos de OS.

Además de las iniciativas estudiadas antes, se ha hecho una revisión de estándares y modelos de alto reconocimiento internacional. Estas fuentes de información han sido revisadas con el fin de determinar consistentemente la clasificación que se propone en esta taxonomía y sus relaciones entre los niveles que la componen. Los aspectos importantes que se han tenido en cuenta de los modelos y estándares revisados, se muestran en la Tabla 2.

Tabla 2. Revisión de estándares y modelos.

A partir de la revisión de literatura y el análisis de las fuentes de información presentados en este apartado, se estudia de manera particular una de las propuestas más cercanas sobre taxonomía de riesgos enfocada al desarrollo de software. Esta propuesta ha sido generada por el SEI y ha dado lugar a muchas otras técnicas de identificación de riesgos útiles para facilitar el arduo trabajo de gestionar los riesgos de un proyecto.

Por esta razón, se ha tenido en cuenta como base fundamental para el planteamiento de la estructura de la nueva taxonomía de riesgos enfocada al OS que se propone en este trabajo.

Taxonomía de riesgos de desarrollo de software
Esta propuesta describe un método para una identificación de riesgos sistemática a partir de una clasificación. Este método está asociado a los riesgos en el desarrollo de software. Es una propuesta que se valida a partir de su implementación en grandes proyectos de desarrollo de software del gobierno de Estados Unidos.

La experiencia en la implementación de esta propuesta ha permitido realizarle continuas mejoras, las cuales hacen que el método se constituya cada vez más en una gran ayuda para los proyectos de desarrollo de software [20].

Este método fue desarrollado originariamente por el SEI, por medio de la agrupación de diferentes fuentes de riesgos en varias categorías y proporcionando un cuestionario llamado TBQ (Taxonomy-Based Questionnaire) para realizar un proceso sistemático de identificación de riesgos.

Esta taxonomía sigue el tradicional ciclo de vida de desarrollo de software en cascada y proporciona un marco para organizar los datos y la información. Además, organiza los riesgos del desarrollo de software en tres niveles, como se muestra en la Figura 1. El nivel superior denominado clases, que se subdividen en elementos. Éstos, a su vez, se clasifican por atributos, siendo estos últimos los componentes más específicos de esta taxonomía.


Figura 1. Estructura taxonomía SEI.

Cada uno de estos componentes ha sido definido y descrito adecuadamente, de tal forma que el método de preguntas para identificación sistemática de riesgos corresponde a la estructura secuencial definida en la taxonomía.

La taxonomía de desarrollo de software propuesta por el SEI está organizada en tres principales clases:

• Ingeniería del Producto: Son los aspectos técnicos del trabajo realizado.
• Entorno de desarrollo: Son los métodos, procedimientos y herramientas utilizados en la producción del producto.
• Restricciones de programa: Son los factores contractuales, organizacionales y operacionales bajo los cuales se desarrolla el software, que por lo general están fuera de control de la gestión y dirección local.

Estas clases, a su vez, están subdivididas en elementos que se caracterizan por medio de atributos. Es decir, cumple la estructura general que se muestra en la Figura 1 [20]. A partir de esta referencia y teniendo en cuenta la revisión de literatura que se ha realizado y descrito antes, se elabora y construye de manera formal la propuesta de clasificación de riesgos para OS.

TAXONOMÍA DE RIESGOS PARA OS

La taxonomía de riesgos de outsourcing de software que se propone en este trabajo se lleva a cabo partir de una clasificación del proceso de OS y de la tipificación de problemas y/o fallos potenciales y causales de fracaso de los proyectos de outsourcing de software (véase Tabla 3).

Tabla 3. Estructura de la taxonomía.

Esta propuesta ha sido implementada en un proyecto de outsourcing de software. A partir de dicha implementación se han generado mejoras en la clasificación. Los resultados de la implementación se muestran en el siguiente apartado.

La Figura 2 presenta la estructura básica de la taxonomía de riesgos para el proceso de adquisición de software, mostrando dos de los tres niveles de la estructura.

1er Nivel
Está compuesto por tres elementos:
I. Acuerdos y contratación del proveedor
II. Entorno de desarrollo
III. Ingeniería de outsourcing

2do Nivel
Este nivel está compuesto por los niveles siguientes a cada uno de los elementos del nivel anterior. Numerados con la letras de forma consecutiva.

3er Nivel
Está compuesto por elementos que integran cada uno de los componentes del nivel anterior. Numerados con los números ordinales de forma consecutiva.


Figura 2. Estructura de árbol de la taxonomía.

En la Tabla 3 se muestra el listado de elementos que componen la taxonomía de riesgos de outsourcing de software. Este listado corresponde a cada uno de los niveles descritos antes.

Descripción de componentes de la taxonomía
A continuación se describe cada uno de los componentes de la taxonomía, clasificados por los niveles.

I. Acuerdos y contratación del proveedor
Hace referencia a las actividades de los procesos relacionados con contratación y gestiones para la contratación. Es decir, todos los procedimientos que se hacen desde el pliego de condiciones hasta las clausulas contractuales de contratación.

A. Ejecución de acuerdos: comprende los procedimientos o actividades relacionados con los acuerdos a los que se llega con el proveedor que afectan las cláusulas contractuales.
1. Rendimiento: medida que permite definir riesgos del progreso del proyecto de outsourcing por medio del análisis y la monitorización del calendario, el esfuerzo y presupuesto definidos de común acuerdo con el proveedor.
2. Gestión de revisiones: procedimientos que se llevan a cabo para las revisiones del proyecto de outsourcing respecto al control del mismo. Su carencia puede generar riesgos.
3. Identificación de problemas: definición y determinación de los problemas que puedan producirse o, en su defecto, al escalado de dicho inconveniente según los procesos de resolución de problemas de la organización.
4. Relación con el proveedor: aspectos relativos a métodos para mantener y establecer dichas relaciones claves con los proveedores, que pueden producir errores si no se establecen.
5. Monitorización de riesgos: mecanismos como técnicas y métodos por medio de los cuales se monitoricen los riesgos, que afectan negativamente al proyecto de outsourcing.

B. Monitorización de procesos: control de procesos capaces de prevenir problemas relacionados con la relación cliente-proveedor que afecte alianzas estratégicas y demás procesos del proyecto de outsourcing.
1. Procesos críticos: formalización y utilización de métodos para identificación de los problemas críticos para el proyecto de OS, potenciales de riesgos.
2. Monitorizaciones de procesos: existencia y formalización del proceso de monitorización como parte de la gestión del acuerdo que se está estableciendo con el proveedor.
3. Análisis de resultados: levantamiento, análisis y utilización de resultados de la información de las monitorizaciones para la toma de decisiones. La carencia del análisis de esta información evidentemente implica un riesgo para el proyecto.

C. Aceptación del producto adquirido: relativa a actividades que aseguran el cumplimiento de requisitos establecidos y aceptación del cliente ante el producto.
1. Resultados de validación: establecimiento de procedimientos relativos a la apropiada revisión de resultados de validación.
2. Resultados de verificación: establecimiento de procedimientos relativos a la apropiada revisión de resultados de verificación.
3. Requisitos contractuales: relativa al establecimiento de los procedimientos donde se establecen requisitos contractuales del proyecto.
4. Criterios de aceptación: hace referencia a la metodología o procedimiento y criterios que se definen para solución de discrepancias.

D. Gestión de facturación del proveedor: el objetivo de analizar el establecimiento clave de las condiciones para facturar el proyecto ante el proveedor.
1. Revisión de la factura: procedimientos para comprobar la respectiva revisión de documentos asociados al pago y compensación del proveedor.
2. Resolución de errores o inconvenientes: verificación de la existencia de inconvenientes con el proveedor en relación al pago o facturación.
3. Aprobación de la factura: relativo a la solución de inconvenientes, errores o problemas de facturación y pago.

E. Procedimiento: hace referencia a los procesos relacionados con el inicio, la formalización y la ejecución exitosa del proyecto, teniendo en cuenta el establecimiento de buenas relaciones con proveedores estratégicos.
1. Identificación de proveedores: comprobación de la identificación adecuada de proveedores potenciales para el desarrollo del proyecto.
2. Establecimiento del pliego de condiciones: análisis adecuado de requisitos y criterios de evaluación que permita identificar las mejores propuestas de los diferentes proveedores.
3. Revisión del pliego de condiciones: procedimiento de evaluación de los requisitos reales del producto que se necesita.
4. Distribución y mantenimiento del pliego de condiciones: procedimientos relacionados con la comprobación de que haya un buen entendimiento de los requisitos establecidos en el pliego de condiciones.

F. Selección de proveedores: hace referencia a las actividades relacionadas con la selección de proveedores según políticas y procedimientos establecidos.
1. Evaluación de propuestas: hace referencia a los problemas que se pueden presentar por la falta de la adecuada revisión de las propuestas.
2. Establecimiento de planes de negociación: definición e identificación de métodos para realizar negociaciones respecto a los planes del proyecto.
3. Selección del proveedor: hace referencia a la definición de actividades y características básicas de la selección del proveedor, su definición y cumplimiento.

G. Establecimiento del contrato: análisis de las actividades y pasos que se siguen para tener un contrato de acuerdo a los requisitos del cliente y según los acuerdos a los que se ha llegado con el proveedor.
1. Acuerdo: procedimiento y métodos que se han definido para concretar los acuerdos y negociaciones.
2. Contrato: procedimiento para establecer los aspectos contractuales que llevan a definir y firmar un contrato de outsourcing.

II. Entorno de desarrollo
Hace referencia a los procedimientos que se realizan para identificar, establecer y desarrollar las necesidades y/o requisitos del usuario/cliente para definir el producto que se va a comprar por medio de outsourcing. Se incluyen aspectos de gestión técnica del producto.

A. Requisitos del cliente: proceso iterativo para identificar y analizar requisitos del cliente, a lo largo de todo el proyecto de outsourcing.
1. Elicitación: análisis de necesidades de los elementos relacionados con el producto que se compra.
2. Priorización: métodos de verificación y validación de expectativas, restricciones y necesidades de implicados.

B. Requisitos contractuales: son requisitos de desarrollo desde el punto de vista operativo, es decir, con el pliego de condiciones para los posibles proveedores. Hacer parte del contrato.
1. Establecimiento: análisis de necesidades, expectativas, limitaciones e interfaces, no técnicas, de los implicados.
2. Asignación: procedimiento para asignar los requisitos contractuales a los entregables del proveedor.

C. Análisis y validación: relacionado con métodos que permiten determinar el impacto que tendrá el entorno operativo en la capacidad para satisfacer las necesidades, expectativas, limitaciones e interfaces de los implicados.
1. Establecimiento de escenarios: hace referencia a conceptos operacionales y escenarios para obtener las necesidades, el análisis y su refinamiento.
2. Análisis y comprobación: procedimiento de análisis de requisitos y su utilidad para detallarlos y precisarlos durante el ciclo de vida.
3. Validación: validación de requisitos desde el comienzo del proyecto de outsourcing.

D. Evaluación de la solución técnica: relacionado con la revisión del diseño, desarrollo e implementación de las soluciones asociadas a los requisitos.
1. Selección: procedimiento para escoger los elementos relativos a la solución técnica que se revisará o evaluará.
2. Análisis: proceso y métodos de análisis que se lleva a cabo para la evaluación de la solución técnica.
3. Ejecución: procedimiento de comprobación de desarrollo de las necesidades y los requisitos del usuario.

E. Gestión de interfaz: hace referencia al proceso de gestión que se establece para garantizar la compatibilidad y completitud de interfaces.
1. Selección: definición y establecimiento de actividades de selección de interfaces.
2. Gestión: procedimientos y métodos de comprobación de la coherencia de interfaces a lo largo del ciclo de vida del proyecto de outsourcing.

III. Ingeniería de outsourcing
Está relacionado con la validación y verificación del producto. Esta categoría ha sido clasificada con el fin relacionar los riesgos originados de la comprobación de que el producto software que se compra cumple con el uso previsto establecido dentro de su entorno y garantizar qué entregables definidos cumplen los requisitos especificados.

A. Procedimiento de validación: relativo a la comprobación de que el producto adquirido cumple con las especificaciones y requisitos establecidos.
1. Selección de productos: selección y definición de características de los productos claves y susceptibles a validación.
2. Entorno de validación: especificaciones requeridas para llevar a cabo la validación adecuada de los productos seleccionadas.
3. Procedimiento y criterios de validación: definición de criterios de validación concretos para los productos claves de validación.

B. Desarrollo de validación: establecimiento de actividades y pasos a seguir para llevar a cabo la validación concreta del proyecto de outsourcing.
1. Ejecución: establecimiento de las actividades y tareas concretas para hacer validación de productos seleccionados.
2. Análisis: métodos para analizar los resultados obtenidos a través de la ejecución de las actividades de validación establecidas.

C. Procedimiento de verificación: procedimiento de verificación de diferentes características que conllevan a la verificación del producto terminado.
1. Selección de productos: selección y definición de características de los productos claves y susceptibles a verificación.
2. Entorno de verificación: especificaciones requeridas para llevar a cabo la verificación adecuada de los productos seleccionadas.
3. Procedimiento y criterios de verificación: definición de criterios de verificación concretos para los productos claves de verificación

D. Desarrollo de revisiones: establecimiento de métodos de verificación como mecanismo eficaz para la eliminación de defectos.
1. Preparación: definición e identificación de elementos fundamentales para la ejecución y análisis de la revisión.
2. Ejecución: establecimiento, identificación y definición de actividades de ejecución de verificación.
3. Análisis: seguimiento de criterios establecidos para el análisis de datos de las revisión y definición de métodos de análisis para toma de decisión según resultados de las revisiones.

E. Productos de trabajo: ejecución del proceso de verificación y análisis de los resultados
1. Ejecución: actividades relacionadas con la forma en la que se lleva a cabo la verificación durante el proyecto de outsourcing.
2. Análisis: seguimiento de criterios establecidos para el análisis de datos de las revisión y definición de métodos de análisis para toma de decisión según resultados de las revisiones.

CASO DE ESTUDIO

Con el fin de llevar a cabo un refinamiento de la clasificación estructural, por medio de la taxonomía propuesta en este trabajo, se presentó a un equipo de personas encargadas de la gestión de riesgos en un proyecto para la compra de un producto software preelaborado.

El proyecto seleccionado es ejecutado en una institución de educación superior de Colombia, de carácter privado. Dentro del ámbito de la gestión de recursos informáticos, esta institución cuenta con el departamento de informática y sistemas. Este departamento tiene aproximadamente 30 personas para su desarrollo. A su cargo se encuentran los proyectos de OS y desarrollo de pequeñas aplicaciones particulares para el funcionamiento de la institución. Este tipo de proyectos se llevan a cabo a razón de 20 o más proyectos anuales, según los datos recogidos por la encuesta realizada con el equipo de gestión de riesgos.

Dado que dentro de la institución no existe un equipo dedicado al desarrollo interno de software, los proyectos informáticos que se llevan a cabo en mayor medida son de OS, aplicaciones, sistemas o componentes de sistemas.

Esta información indica la importancia que tienen en la organización los proyectos de outsourcing. Esto motiva a la implementación de la taxonomía propuesta.

Previo a la implementación de la taxonomía se define una línea base de la gestión de los proyectos de outsourcing en la organización. Esta línea base es el punto de partida para validar la taxonomía de riesgos propuesta y muestra una radiografía de la organización, donde se evidencia:

• Bajo nivel de cumplimiento de los proyectos de outsourcing de software y la alta tasa de fracasos. Dado a que tan solo el 2% de los proyectos cumplen con el calendario establecido y el 8% con el presupuesto estimado.
• Niveles muy bajos (8%) de cumplimiento de las ' principales actividades de gestión de riesgos.
• El 92% de los proyectos tienen definición y ' ejecución de algunos procesos de gestión de proyectos, frente a un 8% de proyectos de
outsourcing que tienen identificados los riesgos pero no tiene actividades de manejo ni control de los mismos.

Este análisis muestra un elevado fracaso de los proyectos de outsourcing, así como un nivel inferior en la implementación de estrategias de GR. Por estas razones, la organización expresa alto (99% de los encuestados) interés por mejorar procesos, específicamente relacionados con la compra de productos software. Este interés permite implementar la taxonomía propuesta, con el fin de apoyar a la organización en la mejora de los procesos y contribuir a disminuir el elevado fracaso de los proyectos de outsourcing mencionado.

Para implementar la taxonomía se estableció un procedimiento que se muestra en la Figura 3. Siguiendo este procedimiento, se obtuvieron resultados que demuestran una reducción del tiempo invertido para la identificación de riesgos hasta de un 53% debido a la utilidad de la taxonomía, en comparación con la dedicación de tiempo efectivo para la identificación de riesgos sin el uso de ella.


Figura 3. Procedimiento para implementación de taxonomía.

A partir de los riesgos identificados con el uso de la taxonomía, se obtuvo un listado de riesgos que se organizó en una plantilla y se le asignó una prioridad. Esta priorización permitió trabajar en el establecimiento de acciones de manejo de riesgos y planes de mitigación de los mismos, claves para controlar aspectos como calendario y presupuesto del proyecto.

Este procedimiento permitió finalizar el proyecto bajo un esquema iterativo de manejo de los riesgos por medio del uso de la taxonomía. El manejo de riesgos estuvo basado en la implementación de un seguimiento y control del caso de estudio a lo largo de las diferentes etapas de ejecución.

Además, con el fin de establecer la satisfacción del equipo de trabajo con respecto a la taxonomía, se propuso una encuesta al finalizar el caso de estudio. Los resultados de permitieron determinar que:

La totalidad de los participantes en el uso de la taxonomía tuvo un alto nivel de aprendizaje.
• La mayoría (98%) de los participantes obtuvieron un alto nivel de satisfacción.
• La totalidad de los encuestados aseguran que la taxonomía tiene un nivel muy alto de utilidad.
• La mayoría (98%) de los implicados en la implementación de la taxonomía coinciden en que tiene un nivel alto de facilidad de aplicación.
• La mayoría (98%) de los encuestados aseguran que recomendarían el uso de la taxonomía en otros proyectos de outsourcing de software.
• La totalidad de los implicados coinciden en asegurar que la facilidad de la taxonomía está limitada por la falta de automatización de la misma.

CONCLUSIONES

El proceso de gestión de riesgos es un proceso clave para la gestión de proyectos de outsourcing. Este proceso es capaz de identificar problemas antes de que ocurran y por lo tanto permite definir acciones a seguir para mitigar los posibles riegos más altos del proyecto. Esta característica de la GR lo hace un proceso capaz de contribuir positivamente en el éxito del proyecto de outsourcing y de la misma forma, la carencia de este proceso en la gestión del proyecto, eleva sustancialmente el porcentaje de fracaso.

Por su parte, la identificación de riesgos es la fase inicial del proceso de GR, por lo tanto es sobre la que recae el desarrollo adecuado o inadecuado del proceso.

Esto último motiva al planteamiento de un método que contribuya a agilizar el proceso de gestión de riesgos, enfatizando concretamente en la fase de identificación. Con esta propuesta se busca apoyar al equipo encargado de gestionar el proyecto y/o gestionar los riesgos, con el fin de facilitar y agilizar la compleja labor de identificar y establecer su adecuado tratamiento para proyectos de outsourcing.

Con el fin de refinar y validar la taxonomía de riesgos para proyectos de outsourcing, se implementó en un caso de estudio real. Este caso de estudio ha permitido comprobar su utilidad y deducir la importancia de desarrollar una aplicación que automatice la identificación de riesgos utilizando la taxonomía propuesta, actualmente una limitación de la propuesta que se hizo en este trabajo.

Debido al gran interés de la organización en la automatización de la taxonomía, desde el grupo de investigación al cual pertenece este trabajo se inicia una labor de desarrollo de un prototipo funcional. Con el prototipo se busca automatizar la taxonomía y maximizar los resultados obtenidos para la mejora del proceso de gestión de riesgos, en proyectos de outsourcing.

AGRADECIMIENTOS

Este trabajo se enmarca dentro de los resultados obtenidos en el proyecto de investigación 'Desarrollo de una Técnica de Identificación de Riesgos para el Proceso de Adquisición (Outsourcing) de Productos Software como parte de la Metodología de Gestión de Riesgos para Proyectos de Adquisición de Software', cofinanciado entre la Universidad de Medellín y la Cátedra de Mejora de Procesos de Software en el Espacio Iberoamericano-MPSEI de la Universidad Politécnica de Madrid.

 

REFERENCIAS

[1] IEEE Computer Society. "IEEE Guide Adoption of PMI Standard A Guide to the Project Management Body of Knowledge". PMBOK Guide. (IEEE Std. 1490-1998). 2004.         [ Links ]

[2] Software Engineering Institute. "CMMI for Development, Versión 1.2". Software Engineering Institute Carnegie Mellon, CMU/SEI-2006-TR-008. Agosto, 2006.         [ Links ]

[3 ] Office of Government Commerce. "Managing Successful Projects with PRINCE2". 2005.         [ Links ]

[4] O.J. Akomode, B. Lees and C. Irgens. "Constructing customised models and providing information to support IT outsourcing decisions". Logistic Information Management, Vol. 11, Issue 2, pp. 114-127. 1998.         [ Links ]

[5] G.P. Gasca Hurtado, V. Vega y J.A. Calvo-Manzano. "Identificación de Patrones de Proyectos de Adquisición del Software mediante la aplicación del método MECT". 7a Conferencia Ibérica de Sistemas y Tecnologías de Información CISTI' 2012, pp. 397-402. Madrid, España. Junio 2012.         [ Links ]

[6] J.A. Calvo-Manzano, G. Cuevas-Agustín, G.P. Gasca-Hurtado and T. San-Feliu. "State of the art for risk management in software acquisition". Vol. 34, Issue 4, pp. 1-10. July, 2009.         [ Links ]

[7] Y.D. Hofmann H.J. Misheler and S. Kyshner. "CMMI for Outsourcing Guidelines for Software, Systems, and IT Acquisition". March, 2007.         [ Links ]

[8] Software Engineering Institute. "CMMI for Acquisition, Version 1.2, CMMI-ACQ V1.2". CMU/SEI-2007-TR-017 ESC-TR-2007-017. 2007.         [ Links ]

[9] ITSqc Carnegie Mellon. "eSCM-CL v1.1, Part 1". 2006.         [ Links ]

[10] ITSqc Carnegie Mellon. "eSCM-CL v1.1, Part 2". 2006.         [ Links ]

[11] G.P. Gasca Hurtado. "Metodología para la gestión de riesgos de adquisición de software en pequeños entornos MEGRIAD". Tesis para optar al grado de Doctor. Lenguajes y sistemas informáticos e Ingeniería de software, Universidad Politécnica de Madrid. Madrid, España. 2010.         [ Links ]

[12] J.A. Calvo-Manzano, T. San Feliu y G. Cuevas-Agustín. "Revisión Sistemática para la Gestión de Riesgos en la Adquisición de Software". Actas 3a Conferencia Ibérica de Sistemas y Tecnologías de la Información. Vol. 1, pp. 321-334. Junio 2008.         [ Links ]

[13] The Standish Group International. "Chaos: A recipe for success". Mayo 1999.         [ Links ]

[14] The Standish Group International. "Chaos Report Summary". The Standish Group International, Inc., Boston. 2009.         [ Links ]

[15] United States Government Accountability Office. "Challenges in Aligning Space System Components". GAO, pp. 10-55. 2009.         [ Links ]

[16] United States Government Accountability Office. "Many Analyses of Alternatives Have Not Provided a Robust Assessment of Weapon System Options". GAO 09-665. 2009.         [ Links ]

[17] United States Government Accountability Office. "Opportunities Exist to Achieve Greater Commonality and Efficiencies among Unmanned Aircraft Systems". 2009.         [ Links ]

[18] United States Government Accountability Office. "Issues to be Considered for Army's Modernization of Combat Systems". 2009.         [ Links ]

[19] United States Government Accountability Office. "DOD Faces Substantial Challenges in Developing New Space Systems". 2009.         [ Links ]

[20] M.J. Carr, S. Konda, I. Monarch, C.F. Walker and F.C. Ulrich. "Taxonomy-Based Risk Identification". Software Engineering Institute. 1993.         [ Links ]

[21] R.P. Kendall, D.E. Post, J.C. Carver, D.B. Henderson and D.A. Fisher. "A Proposed Taxonomy for Software Development Risks for High-Performance Computing (HPC) Scientific/Engineering Applications". Software Engineering Institute, Carnegie Mellon. January, 2007.         [ Links ]

[22] D. Firesmith, "A Taxonomy of Security-Related Requirements". Software Engineering Institute. 2005.         [ Links ]

[23] P. López. "Taxonomía Unificada de Referencia de Fallos Accidentales de Software crítico". Tesis para optar al grado de Doctor. Lenguajes y sistemas informáticos e Ingeniería de software. Universidad Politécnica de Madrid. Madrid, España. 2005.         [ Links ]

[24] J.-N. Lee, M.Q. Huynh, R.C. Kwok and S.-M. Pi. "IT outsourcing evolution—: past, present, and future". Commun. ACM. Vol. 46, Issue 5, pp. 84-89. Mayo 2003.         [ Links ]

[25] J.-N. Lee, M.Q. Huynh, R.C. Kwok, S.-M. Pi. "The Evolution of Outsourcing Research: What is the Next Issue?". Proceedings of the 33rd Hawaii International Conference on System Sciences. Vol. 7, Issue 1, pp. 1-10. 2000.         [ Links ]

[26] International Organization for Standardization. "Systems and software engineering-Software life cycle processes, ISO/TEC 12207". 2008. ITSqC Carnegie Mellon. "Comparing the eSCM-CL and CMMI v1.1". 2005.         [ Links ]


Recibido 9 de febrero de 2012, aceptado 9 de noviembre de 2012

Creative Commons License Todo o conteúdo deste periódico, exceto onde está identificado, está licenciado sob uma Licença Creative Commons