Javier Garzás

En los últimos años, la fabricación de software está siendo uno de los sectores de mayor crecimiento y representa, cada vez más, una de las principales actividades económicas tanto para los países desarrollados como para los que están en vías de desarrollo (Piattini and Garzás, 2007).

Con la evolución del sector, la complejidad tecnológica del software también está experimentando un crecimiento, dando lugar a la necesidad de disponer de especialistas, que cada vez suponen un mayor coste y dificultad para ser localizados. Por estos motivos, cada vez más las organizaciones del sector de las tecnologías de la información optan por el outsourcing con el fin de obtener competitividad y resultados tangibles. La externalización consiste en delegar a terceros ciertas actividades que no forman parte de sus habilidades principales y no son estratégicas para su negocio, permitiendo la concentración de los esfuerzos en las actividades esenciales (Ortega, 2007).

1. Crecimiento de la externalización

Diversos artículos como (Brandel, 2007) afirman que a pesar de que algunas organizaciones aún se oponen a las prácticas de externalización, la utilización de ellas es cada vez más frecuente. Según Gartner en un artículo publicado en CIO España (Cabanillas, 2008), el valor del mercado de la externalización a nivel mundial continúa creciendo de manera estable. Sus previsiones para el año 2008 apuntaban crecimientos medios del 8,1% para este negocio, un índice que indica que continuará la tendencia alcista del sector. Además, expertos en el sector de servicios (Muñoz, 2009) prevén que en 2009 la externalización siga creciendo.

Según el artículo (MKM, 2008), los datos del INE de 2006 muestran que el sector de empresas proveedoras de servicios de consultoría y suministro de software en España abarca 14.497 organizaciones, con una facturación global de 17.667 millones de euros, donde un 95% de estas compañías son PyMEs. En concreto, datos más recientes publicados en el citado artículo (Muñoz, 2009), se espera que el sector de los servicios TI cierre el año 2008 con una facturación de 9.528 millones de euros, un 9% más que el año anterior.

La razón principal de este crecimiento es que la externalización permite que las organizaciones puedan reducir considerablemente sus costes de producción contando con proveedores ubicados en otras regiones y que puedan proporcionar una mano de obra, materiales, infraestructuras, etc., a un coste considerablemente menor (Ramu, 2008). Entre los objetivos que buscan las organizaciones que externalizan se pueden destacar la reducción de costes, el proveer de personal cualificado, la presión de la competencia, incrementar la velocidad de mercado y tener acceso a nuevos mercados (Anthes, 2005; Brandel, 2007; Deloitte Consulting, 2005).

2. Problemas de la externalización

Sin embargo, en demasiadas ocasiones las soluciones adquiridas fracasan debido a que las organizaciones usuarias de externalización únicamente buscan una forma de reducir los costes y no poseen unas bases establecidas para una correcta gestión de los proveedores (CalidaddelSoftware, 2008; Deloitte Consulting, 2005). Gartner (Keiser, 2003) estima que la mitad de los proyectos externalizados en 2003 no cumplieron con las acuerdos fijados inicialmente.

Diversos estudios como el realizado por la Asociación de Técnicos en Informática en el ámbito español (ATI, 2008), continúan mostrando que el mercado está poco maduro en el control de calidad software. Más del 70% de los expertos encuestados consideraron que no existe una actitud de petición o exigencia de calidad por parte de las compañías usuarias de TI y que los fallos en los aplicativos no están todavía suficientemente penalizados por el mercado.

Los principales riesgos de no controlar y gestionar la calidad del desarrollo software externalizado pueden ser, entre otros, la pérdida del control de la construcción del software, la dependencia del proveedor, entregas recibidas fuera de plazo, el coste no se ajusta al presupuesto inicial, baja calidad del software generado, falta de visibilidad del proyecto y la falta de criterios para la aceptación de las entregas (Huang and Goo, 2009).

3. Gestión de la calidad de las externalizaciones

Por todas las razones comentadas anteriormente, el crecimiento de la externalización, los problemas de calidad que afectan a los productos software externalizados, y los riesgos asociados, es necesario gestionar la calidad de las externalizaciones, realizando la verificación y validación tanto del producto software generado por sus proveedores como del proceso seguido para el desarrollo del mismo.

3.1 Modelo

Para llevar a cabo esta verificación y validación, en primer lugar el cliente debe definir y establecer un proceso de gestión de la externalización. Para definir este proceso, existen varios modelos que guían a las organizaciones proporcionando un conjunto de buenas prácticas aplicables al ciclo de vida del software externalizado (proceso y producto), algunos de carácter general que contemplan la externalización en alguno de sus procesos, como la norma ISO/IEC 12207 (ISO, 2008) y el modelo CMMI-DEV (Chrissis et al., 2006), y algunas específicas como el modelo CMMI-ACQ (SEI, 2007). Además, existen otras normas que pueden aplicarse durante el proceso de gestión de la externalización, algunas relacionadas con el proceso de evaluación como ISO/IEC 15504 (ISO, 2004), y otras relativas al proceso de medición, como es ISO/IEC 15939 (ISO, 2007).

3.2. SLA Y KPI

Una vez definido el proceso, se deben establecer los acuerdos de nivel de servicio, también conocidos como SLA (Service Level Agreement). En los SLA se indican los servicios y productos que serán proporcionados al cliente y además, se fijan los niveles mínimos de calidad para cada uno de ellos. Para fijar los niveles mínimos de calidad se establecen métricas e indicadores para medir el rendimiento del proveedor y la calidad del producto software desarrollado, y un modelo de penalización conforme a estos indicadores.

Los indicadores son parámetros de control mediante los cuales la empresa cliente puede evaluar la calidad del proceso seguido por el proveedor (KPI), y la calidad del producto software desarrollado (indicadores de producto). Estos indicadores se calculan a partir de las mediciones de calidad recogidas durante el ciclo de vida del desarrollo del producto, datos facilitados, generalmente, por el proveedor en el caso de los KPI y calculados por el cliente en el caso de los indicadores de producto. Entre los KPI más comunes, se pueden destacar la desviación respecto a la planificación, incidencias detectadas durante la fase de pruebas de validación, incidencias detectadas durante las inspecciones, incidencias detectadas en entregables intermedios, y tiempo de resolución de incidencias. Entre los indicadores más comunes referentes al producto se pueden destacar el porcentaje de código duplicado, la densidad de complejidad ciclomática, la densidad de comentarios, y la cobertura de pruebas unitarias.

Con los indicadores definidos, el cliente debe establecer el modelo de penalización. Este modelo especifica las posibles penalizaciones o bonificaciones que se aplicarán al proveedor en función del valor que tomen los indicadores.

3.3. Tecnología

Por último, en línea con la verificación y validación de la calidad del producto software, es recomendable disponer de una infraestructura tecnológica que permita la automatización de la gestión de la calidad del desarrollo software externalizado. La infraestructura tecnológica debe estar formada principalmente por un entorno de medición para la obtención de métricas de calidad, un entorno de evaluación para la obtención de los indicadores de calidad del producto software, y adicionalmente, una serie de herramientas para apoyar la funcionalidad de la infraestructura (herramienta de gestión de la configuración, herramienta de gestión de incidencias, etc.).

En la actualidad, entre los entornos de medición existentes se pueden destacar: (Structure101) que permite medir la complejidad de la estructura de un software dado; (XRadar), una herramienta de código abierto orientada a sistemas Java que integra un conjunto de herramientas de software libre de las que se obtienen medidas como dependencias entre paquetes, tamaño del código, complejidad ó duplicaciones de código; (Sonar), una herramienta de control de la calidad distribuida bajo licencia GPL, cuyo propósito básico es juntar todas las herramientas utilizadas para integración continua bajo un mismo entorno que permita medir la calidad del desarrollo; y (KEMIS), formado por una infraestructura de medición para la obtención de métricas de calidad y una infraestructura de evaluación de la que se obtienen los indicadores de calidad del producto software. Cabe destacar que de los entornos comentados, únicamente KEMIS está alineado con las normas ISO/IEC 9126 e ISO/IEC 25000.

4. Conclusiones

Después de varios años llevando a cabo la externalización del desarrollo software, se ha podido observar que en multitud de ocasiones no se obtienen los objetivos deseados ya que el cliente no tiene la madurez suficiente y no dispone de unas bases establecidas para gestionar la calidad del software externalizado.

Para afrontar los problemas de calidad relativos a la externalización, las organizaciones deben realizar la verificación y validación del mismo, de forma que se tenga visibilidad de la calidad y se puedan aplicar las penalizaciones oportunas. Verificar y validar el desarrollo software externalizado incluye controlar el proceso seguido por el proveedor para desarrollar el producto (rendimiento del proveedor), y controlar el propio producto externalizado.

En este artículo se han presentado los aspectos principales que se deben tener en cuenta para verificar y validar el software externalizado, que incluye el proceso de gestión de la externalización, los acuerdos de nivel de servicio (SLA), y la infraestructura tecnológica de medición y evaluación.

5. Referencias

  • Anthes G. 2005. Reaching out – where IT will come from. Computerworld.
  • ATI. 2008. Estudios sobre la práctica de las pruebas de software en España.
  • Brandel M. 2007. Offshoring grows up. The next generation of outsourcing sees multishore arrangements being made with more nuanced and strategic goals. Computerworld
  • Cabanillas M. 2008. El mercado mundial de outsourcing crecerá un 8,1 por ciento este año, según Gartner. http://www.idg.es/cio/El_mercado_mundial_de_outsourcing_crecera_un_8,1_p/doc63624-economia.htm.
  • CalidaddelSoftware. 2008. La ingeniería de requisitos, clave del éxito del outsourcing. (http://www.calidaddelsoftware.com/modules.php?name=News&file=article&sid=277, visitado en Enero 2009).
  • Chrissis MB, Konrad M, Shrum S. 2006. CMMI: Guidelines for Process Integration and Product Improvement. 2nd Edition ed: Addison-Wesley Professional.
  • Deloitte Consulting. 2005. Calling a change in the outsourcing market: the reality for the world’s largest organizations.
  • Huang D, Goo J. Rescuing IT outsourcing: strategic use of service-level agreement; 2009. p 50-58.
  • ISO. 2004. ISO/IEC 15504-2:2003, Information technology— Process assessment — Part 2: Performing an assessment. International Standards Organization. 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.
  • Keiser G. 2003. Gartner Says Half Of Outsourcing Projects Doomed To Failure. (http://www.crn.com/it-channel/18822227, visitado en Marzo 2009). Techwebcom.
  • KEMIS. Web Site: http://www.iso25000.com, visitado en Marzo 2009.
  • MKM. 2008. La Asociación de Técnicos de Informática (ATI) tacha al mercado español de poco maduro aún en el Control de Calidad de los Aplicativos Software. (http://www.mkm-pi.com/mkmpi.php?article2882, visitado en Febrero 2009). Editorial MKM.
  • Muñoz F. 2009. Es momento del ‘outsourcing’. La externalización es el gran motor del crecimiento del sector de servicios TI. COMPUTERWORLD(1208):38-42.
  • Ortega JA. 2007. Nuevos modelos de global delivery: el nearshore. In: Piattini M, Garzás J, editors. Fábricas de software: Experiencias, tecnologías y organización: Ra-ma.
  • Piattini M, Garzás J. 2007. Fábricas de software: Experiencias, tecnologías y organización. Ra-ma.
  • Ramu G. 2008 In the Know. A BoK dedicated to quality in outsourcing is essential in today’s global marketplace Quality Progress:36-43.
  • SEI. 2007. CMMI for Acquisition, Version 1.2. (http://www.sei.cmu.edu/pub/documents/07.reports/07tr017.pdf, visitado en Febrero 2009).
  • Sonar. Web site: http://sonar.codehaus.org/, visitado en Febrero 2009.
  • Structure101. Web site: http://www.headwaysoftware.com/index.php, visitado en Febrero 2009).
  • XRadar. Web site: http://xradar.sourceforge.net/, visitado en Febrero 2009.