Elementos clave en la Externalización del Desarrollo Software
Descárgalo en PDF
Mª Carmen García, Roberto Santa Escolástica y Javier Garzás
1. Introducción
Según los últimos datos publicados (Asimelec, 2009) el sector TIC español obtuvo un volumen de negocio de 77.431,5 millones de euros durante el 2008. En concreto, el mercado de software informático obtuvo unos ingresos de 2.985,7 millones de euros, y el mercado de servicios informáticos 10.554,8 millones de euros , con un crecimiento del 7,9% y un 7,1% respectivamente respecto al año anterior. Con la evolución del sector, la complejidad tecnológica del software y la necesidad de disponer de especialistas, la externalización del desarrollo software ha sufrido un fuerte crecimiento, siendo su utilización cada vez más frecuente.
En concreto, en España existe la conciencia de ser un país receptor de la externalización de desarrollos. Según (Asimelec, 2009), el outsourcing supone el mayor segmento del mercado de servicios informáticos, alcanzando en 2008 los 4.192,3 millones de euros.
Este crecimiento se debe a que la externalización permite reducir los costes de producción, contando con proveedores que proporcionen mano de obra, materiales o infraestructuras a un coste menor. Sin embargo, en numerosas ocasiones las soluciones adquiridas a través de la externalización fracasan, debido a que los usuarios de externalización no realizan una correcta gestión de proveedores. En los proyectos externalizados, se obtienen los índices más altos de defectos, retrasos en la entrega, insatisfacción del cliente, etc.
En muchas investigaciones realizadas sobre la externalización (Klepper, 1995; McFarlan et al., 1995) se reconoce la importancia de dirigir y gestionar la relación entre el cliente y el proveedor. Debido a esto, muchas organizaciones están implantando modelos de calidad, especialmente modelos de mejora de procesos, como pueden ser ISO/IEC 12207 (ISO, 2008) o el modelo CMMI-DEV (Chrissis et al., 2006), o más específicos como CMMI-ACQ (Gallagher et al., 2007), eSCM-CL (Hefley and Loesche, 2006) o eSCM-SP (Hyder et al., 2006). Además existen otras normas que pueden aplicarse durante el proceso de gestión de la externalización, como el proceso de evaluación ISO/IEC 15504 (ISO, 2004) y otras relativas al proceso de medición, como ISO/IEC 15939 (ISO, 2007).
El objetivo de este artículo es ayudar a las empresas que comienzan a externalizar el desarrollo software a conocer los elementos clave que deben aplicar para gestionar la relación de su proveedor y los diferentes elementos desarrollados por la ingeniería del software en este campo. Así, el artículo se centrará en el software y no en otras áreas que abarca la externalización (Hardware, Hosting, etc.).
2. Elementos clave que componen la relación cliente-proveedor en el desarrollo software
Después de realizar un exhaustivo estudio de las diferentes propuestas (Chen and Sorenson, 2008; Hargreaves et al., 2004; Hawthorne and Perry, 2005; Herbsleb et al., 2001; Honig and Prasad, 2007; Nguyen et al., 2006; Oza et al., 2004; Pardo et al., 2009; Yalaho et al., 2005) que definen un correcto marco de relación entre clientes y proveedores de desarrollo software, los elementos identificados son los siguientes:
- Contrato de servicio: acuerdo formal entre el proveedor del servicio y el cliente. Debe recoger al menos, el objeto (actividad que realizará el proveedor durante la vigencia del contrato), las responsabilidades para gestionar el proceso, descripción de los productos que se esperan recibir y cómo se esperan recibir, el control de calidad que se realizará, y el plan de contingencia.
- Acuerdo de nivel de servicio (SLA):conjunto definido de medidas de rendimiento mínimo usadas para aceptar como válidos los servicios prestados (Piattini et al., 2008). Está formado por:
- Indicador de nivel de servicio (INS):proporcionan una medida de calidad objetiva sobre la efectividad del servicio. La forma de asegurar el cumplimiento del SLA es a través del análisis de estos indicadores. Es necesario como mínimo un INS por servicio, aunque puede haber más de uno para medir las distintas actividades que componen un servicio. Algunos ejemplos de indicadores de nivel de servicio son:
- Desviación respecto a la planificación.
- Número de incidencias detectadas durante la fase de pruebas de validación.
- Impacto de las incidencias de las pruebas.
- Número de incidencias detectadas durante las inspecciones.
- Número de incidencias encontradas en los entregables intermedios.
- Penalización:definida para regular la falta del cumplimiento de los niveles de servicio. Algunas propuestas desarrolladas incluyen, en el cálculo de las penalizaciones, un conjunto de parámetros de forma que se asegure la consistencia de los resultados obtenidos. Entre los parámetros más utilizados se encuentran:
- umbrales, que se corresponden con intervalos del valor del indicador que permite asociarle un grado de aceptación, por ejemplo: óptimo, adecuado, no aceptable.
- coeficientes multiplicativos, que ponderan la importancia del indicador.
- coeficientes de bonificación o penalización, que indican si el resultado del indicador se corresponde con una bonificación o una penalización.
- Indicador de nivel de servicio (INS):proporcionan una medida de calidad objetiva sobre la efectividad del servicio. La forma de asegurar el cumplimiento del SLA es a través del análisis de estos indicadores. Es necesario como mínimo un INS por servicio, aunque puede haber más de uno para medir las distintas actividades que componen un servicio. Algunos ejemplos de indicadores de nivel de servicio son:
- Proceso de externalización acorde a un modelo de procesos de referencia: Definir un proceso de gestión de la externalización implica utilizar modelos de procesos de referencia, que contienen prácticas probadas y efectivas para la mejora del proceso.
Existen varias propuestas enfocadas al proceso de gestión de la externalización, algunas de ellas de carácter general que contemplan la externalización entre sus procesos, como ISO/IEC 12207 (ISO, 2008) o CMMI-DEV (Chrissis et al., 2006); y algunas específicas, como CMMI-ACQ (SEI, 2007) o eSCM (Hefley and Loesche, 2006; Hyder et al., 2006). Además, existen otras normas que pueden aplicarse durante el proceso de gestión de la externalización, relacionadas con el proceso de evaluación como ISO/IEC 15504 (ISO, 2004) o relacionadas con el proceso de medición, como ISO/IEC 15939 (ISO, 2007).
Estos modelos de procesos también detallan ejemplos de indicadores y métricas que ayuden a las organizaciones a seleccionar, definir e implementar sus propios indicadores de proceso. Entre los modelos que incluyen métricas relativas al proceso, destacan CMMI-DEV (Chrissis et al., 2006), CMMI-ACQ (SEI, 2007) o COBIT (IT Governance Institute, 2007). Algunos ejemplos de indicadores de proceso pueden ser el número de cambios realizados en los requisitos para el proveedor, la desviación en costo y tiempo respecto a lo acordado con el proveedor, el número de evaluaciones de seguimiento del proveedor completadas (planificadas vs. reales) o el número de actividades de validación realizadas (planificadas vs. reales).
- Modelo de calidad de producto:Consiste en una serie de características y una relación entre las mismas para conformar la base para especificar requisitos de calidad y la evaluación de la mima. Entre los modelos de calidad destacan ISO/IEC 9126 (ISO, 2001) o ISO/IEC 25000 (ISO, 2005).
- Indicadores de producto: pueden implicar el uso como referencia de modelos de calidad del producto y modelos de evaluación de la calidad, donde se detallan ejemplos de indicadores y métricas que ayudan a las organizaciones a seleccionar, definir e implementar sus propios indicadores de producto.
Entre los modelos que incluyen métricas relativas al producto, destacan ISO/IEC 9126 (ISO, 2001), ISO/IEC 25000 (ISO, 2005) o TMMI (TMMi Foundation, 2009).
Algunos ejemplos de producto pueden ser el porcentaje de código comentado, el porcentaje de complejidad ciclomática, la cobertura de pruebas o la densidad de defectos.
- Indicadores de producto: pueden implicar el uso como referencia de modelos de calidad del producto y modelos de evaluación de la calidad, donde se detallan ejemplos de indicadores y métricas que ayudan a las organizaciones a seleccionar, definir e implementar sus propios indicadores de producto.
- Formación acorde a un modelo de procesos de certificación: para establecer e implantar un modelo de gestión de externalización, es necesario que las personas encargadas de gestionar las externalizaciones tengan los conocimientos de uno o más modelos de certificación existentes (CMMI, CISA, CSQE).
3. Ejemplos
A continuación se muestran ejemplos de cálculo de bonificaciones o penalizaciones para algunos indicadores para la externalización. Para su cálculo, se han definido los siguientes parámetros:
| Nombre | Descripción |
| T | Importe total del proyecto o servicio. |
| Pmx | Penalización máxima. Tanto por ciento de penalización sobre T (no debería ser superior al 100%). |
| INDnn | Nombre del indicador a medir. |
| SUB_INDnn | Nombre del subindicador a medir. Para el cálculo de la penalización, el valor del subindicador se representa con el nombre SUBm. |
| Peso | Peso del indicador. Coeficiente multiplicativo que pondera la importancia del indicador frente al resto o la importancia del valor de la métrica del indicador, es decir, su valor puede ser fijo por indicador o variable según el intervalo de valores de las métricas. |
| Cbp | Coeficiente de bonificación o penalización. Coeficiente multiplicativo que pondera la importancia del valor de la métrica del indicador según el intervalo de valores de dicha métrica. Tendrá un valor negativo en caso de bonificación y positivo en caso de penalización. |
- Indicador: Incidencias detectadas durante la fase de pruebas de validación. El objetivo de este indicador es monitorizar la calidad de las pruebas de validación contabilizando las pruebas que aparezcan. Para el cálculo de la penalización se utiliza la siguiente fórmula:
Penalización = Pmx • T • Peso • Cbp
La elección del peso se realiza en función del tamaño del proyecto y del número de personas involucradas, mientras que la elección del coeficiente de penalización se realiza en función del número de incidencias.
Tamaño del proyecto Peso Valores de referencia (Peso) Hasta x personas menos de p meses
1,80 Entre x e y personas menos de q meses 1,40 Más de y personas menos de r meses 1,00
Incidencias detectadas en el proyecto durante la fase de pruebas Cbp Valores de referencia (Cbp) Menos de v incidencias
-0,10 Entre v y w incidencias 0,00 Entre w y x incidencias 0,50 Más de x incidencias 1,00
Tanto el peso del indicador como el coeficiente de bonificación o penalización deben ser asignados por la organización en función de sus objetivos de negocio, pudiendo basarse en los valores aportados por la columna “Valores de referencia”.
- Indicador: certificaciones y cursos obtenidos por el personal aportado por el suministrador en el transcurso del proyecto. El objetivo de este indicador es evaluar el grado de formación del personal asignado al proyecto aportado por el administrador. Para el cálculo de la penalización se utiliza la siguiente fórmula:
Penalización = Pmx • T • Peso • Cbp
La elección del peso y del coeficiente de penalización se realiza en función del número de certificaciones o cursos obtenidos por el personal aportado por el suministrador.
Número de certificaciones y cursos obtenidos por el personal aportado Peso Valores de referencia (Peso) Más de dos certificaciones o cursos
1,00 2 certificaciones o cursos 1,00 1 certificación o curso 1,00 0 certificaciones o cursos 1,00
Número de certificaciones y cursos obtenidos por el personal aportado Cbp Valores de referencia (Cbp) Más de dos certificaciones o cursos
-0,20 2 certificaciones o cursos -0,10 1 certificación o curso -0,05 0 certificaciones o cursos 0,00
De igual manera que en el ejemplo anterior, el peso del indicador como el coeficiente de bonificación o penalización deben ser asignados por la organización en función de sus objetivos de negocio, pudiendo basarse en los valores aportados por la columna “Valores de referencia”.
4. Referencias
- Asimelec. 2009. Informe 2009 del sector TIC en España (http://www.asimelec.es/media/File/Asimelec/publicaciones/INFORME%20TIC.pdf).
- Chen X, Sorenson PG. A QoS-based service acquisition model for IS services; 2008; Leipzig, Germany. ACM. p 41–46.
- Chrissis MB, Konrad M, Shrum S. 2006. CMMI: Guidelines for Process Integration and Product Improvement 2nd Edition ed: Addison-Wesley Professional.
- Gallagher BP, Phillips M, Richter KJ, Shrum S. 2007. CMMI-ACQ: Guidelines for Improving the Acquisition of Products and Services. Addisson-wesley Proffessional. 539 p.
- Hargreaves E, Damian D, Lanubile F, Chisan J. Global software development: building a research community; 2004. ACM. p 1–5.
- Hawthorne MJ, Perry DE. Software engineering education in the era of outsourcing, distributed development, and open source software: challenges and opportunities; 2005; St. Louis, MO, USA. ACM. p 643–644.
- Hefley B, Loesche E. 2006. The eSourcing Capability Model for Client Organizations (eSCM-CL) v1.1 (http://itsqc.cmu.edu/models/escm-cl/index.asp).
- Herbsleb JD, Mockus A, Finholt TA, Grinter RE. An empirical study of global software development: distance and speed; 2001; Toronto, Ontario, Canada. IEEE Computer Society. p 81–90.
- Honig WL, Prasad T. A classroom outsourcing experience for software engineering learning; 2007; Dundee, Scotland. ACM. p 181–185.
- Hyder E, Paulk M, Heston K. 2006. The eSourcing Capability Model for Service Providers (eSCM-SP) v2. (http://itsqc.cmu.edu/models/escm-sp/index.asp).
- ISO. 2001. Software Product Evaluation–Quality Characteristics and Guidelines for their Use. ISO/IEC Standard 9126. International Organization for Standarization.
- ISO. 2004. ISO/IEC 15504-2:2003, Information technology— Process assessment — Part 2: Performing an assessment. International Standards Organization. Ginebra, Suiza.
- ISO. 2005. ISO/IEC 25000 Software and system engineering – Software product Quality Requirements and Evaluation (SQuaRE) –Guide to SQuaRE. International Organization for Standarization. Ginebra, Suiza.
- ISO. 2007. ISO/IEC 15939: Systems and software engineering — Measurement process. International Software Organization.
- ISO. 2008. ISO/IEC 12207:2008. Systems and software engineering – Software life cycle processes. International Organization for Standarization. Ginebra, Suiza.
- IT Governance Institute. 2007. Cobit 4.1. ISACA. 196 p.
- Klepper R. 1995. The Management of Partnering Development in I/S Outsourcing Journal of Information Technology. 10:249-258.
- McFarlan, Warren F., Nolan RL. 1995. How to Manage and IT Outsourcing Alliance. Sloan Management Review 36:9-23.
- Nguyen PT, Babar MA, Verner JM. Critical factors in establishing and maintaining trust in software outsourcing relationships; 2006; Shanghai, China. ACM. p 624–627.
- Oza N, Hall T, Rainer A, Grey S. Critical factors in software outsourcing: a pilot study; 2004; Newport Beach, CA, USA. ACM. p 67–71.
- Pardo C, Pino FJ, García F, Piattini M. Homogenización de marcos en ambientes de mejora de procesos multimarco; 2009 Abril 13-17; Medellín, Colombia. p 153-166.
- Piattini M, Peso Ed, Peso Md. 2008. Auditoría de Tecnologías y Sistemas de Información. Ra-Ma.
- SEI. 2007. CMMI for Acquisition, Version 1.2. (http://www.sei.cmu.edu/pub/documents/07.reports/07tr017.pdf).
- TMMi Foundation. 2009. Test Maturity Model Integration (TMMi) Versión 2.0 (http://www.tmmifoundation.org/downloads/tmmi/TMMi%20Framework.pdf).
- Yalaho A, Nahar N, Timo K, Wu C. A conceptual process framework for IT-supported international outsourcing of software production; 2005; Hong Kong. IEEE Press. p 13–13.
