- ¿Qué es una base de datos? - noviembre 7, 2020
- ¿Es la programación una profesión para ti? - septiembre 3, 2020
- Temporada 2020-2021 - julio 15, 2020
Introducción
En este post voy a tratar el tema del desarrollo global de software, en qué consiste, qué tipos hay y beneficios y riesgos. El objetivo del post es que entiendas un enfoque de desarrollo software que tiene mucha fuerza actualmene y por el que están apostando las grandes empresas.
La externalización de software puede considerarse como una manifestación más de las tendencias hacia la globalización y la introducción de nuevas tecnologías que propician la separación de las cadenas de producción de las empresas, acercándolas cada vez más con la de sus proveedores y clientes. A pesar de considerarse una tendencia, esta práctica no es nueva, empezó a utilizarse en torno a 1960 y 1970.
Anteriormente, la externalización se realizaba para la realización de trabajos para los cuales las empresas no estaban capacitadas internamente; hoy en día, es utilizada también para la realización de trabajos mediante los cuales se obtienen una serie de beneficios respecto a la realización interna de los mismos. Estos beneficios serán expuesto en los siguientes puntos.
En un primer momento, la utilización de la externalización de trabajos estaba relacionado únicamente con un sólo proyecto o producto, pero, en la actualidad, los acuerdos de externalización han alcanzado una complejidad mucho más elevada y están ligados a múltiples sistemas y proyectos; además, representan una gran transferencia de bienes, funciones y personas.
Mirando el mercado actual, el outsourcing es un fenómeno creciente y global en todas las empresas; sólo hay que mirar los datos y cifras de todas las empresas a nivel mundial.
¿Por qué externalizar?
La razones principales por las que muchas empresas deciden externalizar son las siguientes:
- Centrarse en temas estratégicos.
- Aumentar la flexibilidad.
- La externalización puede mejorar la calidad.
- Desprenderse de tareas rutinarias.
- Facilitar el acceso a la tecnología.
- Reducir el riesgo de obsolescencia.
- Ahorrar costes de personal.
- Tener alternativas al departamento informático interno.
- Ahorrar costes de tecnología.
- Unirse a la moda de empresas exitosas que externalizan.
Riesgos
La externalización, a pesar de ofrecer una serie de beneficios muy importantes para las organizaciones que deciden llevarla a cabo, conlleva asociados una serie de riesgos que deben de ser asumidos una vez se empieza el proceso. Son los siguientes:
- Cualificación del personal del proveedor.
- Falta de cumplimiento del proveedor con el contrato.
- Pérdida de conocimiento técnico.
- Incapacidad del proveedor de adaptarse a nuevas tecnologías.
- Aparición de costes ocultos.
- Relación poco clara entre costes y beneficios.
- Seguridad.
- Irreversibilidad de la decisión de externalizar.
- Problemas de personal.
- Posible oposición del personal del cliente.
Externalización de trabajos
Una de las primera preguntas que debe hacerse una empresa que desea externalizar algún tipo de trabajo es: ¿Qué puedo externalizar?. Los servicios de outsourcing pueden ser muy diversos, existiendo una amplia gama; por lo tanto, la empresa debe de saber qué tipo de outsourcing necesita y quiere contratar antes de dar por cerrado un contrato. El outsourcing que se contrate tiene que ser un servicio a medida, que incluya todas las operaciones para que el servicio contratado cubra todas las necesidades de la empresa.
En función de la amplitud de los servicios que se contraten, podemos hablar de dos tipos diferentes de outsourcing:
- Total: Se transfieren las infraestructuras y el personal al proveedor y se hace cargo de todas las fases de implementación y asume el riesgo de la propiedad de los recursos. La empresa cliente asume el riesgo asociado a la dependencia completa de un único proveedor.
- Selectivo: Con este tipo outsourcing se permite al cliente cubrir ciertas necesidades minimizando riesgos respecto al outsourcing total.
La razón más importante de recurrir al outsourcing es la de delegar la responsabilidad y preocupación de la administración operacional. Un punto clave, en toda empresa que quiera recurrir al outsourcing, es evitar no casarse con un único proveedor, ya que, puede convertir a la empresa en dependientes de él. Debido a esto, se tiene que tener en cuenta una serie de aspectos a la hora de contratar outsourcing para evitar esta dependencia:
- Proveedor con equipo compatible en software, hardware y procedimientos operativos.
- Asegurar el acceso a datos y software propio.
- Preparar un plan de contingencia.
Volviendo a la pregunta que hacíamos al principio, existe un proceso definido por Drtina, que resulta muy útil a la hora de identificar lo que podemos externalizar a un proveedor. En este proceso están definidos una serie de pasos con preguntas y respuestas, que permiten a la empresa, identificar aquellos procesos/actividades que pueden externalizar:
Una vez evaluado qué se puede externalizar en la empresa, es el momento de definir qué el tipo de escenario de externalización se desea.
Modelos de externalización
Introducción
Existen diferentes modelos de externalización que han utilizado las principales compañías y que, se diferencian entre sí por la distancia entre el propio cliente y el proveedor de la externalización.
En la imagen siguiente podemos ver las diferentes formas de externalización basadas en la distancia entre cliente y proveedor.
Offshore
El modelo Offshore es el tipo de externalización en el que la empresa cliente contrata a un proveedor de un país diferente al suyo para llevar a cabo ciertas funciones/proyectos de su propia empresa.
En este modelo de externalización, los husos horarios entre el cliente y el proveedor son completamente diferentes.
A la hora de realizar una externalización usando el modelo Offshore se deben evaluar los siguientes criterios:
- Diferencia salarial entre el país cliente y el país proveedor.
- Posibilidad de teletrabajo.
- El trabajo puede ser enviado por internet.
- Trabajo repetitivo.
- Trabajo con alto contenido de información.
- Trabajo fácil de realizar.
El mayor propulsor de este tipo de externalización ha sido la aparición de internet, ya que, permite interactuar en tiempo real con cualquier parte del mundo y poder realizar cualquier tipo de tarea que se pueda realizar con un ordenador.
La razón principal de llevar a cabo esta externalización es la reducción de costes por parte del cliente al externalizar a países donde la mano de obra es más barata que en el propio país de la compañía.
Nearshore
Nearshore es un modelo de externalización derivado de Offshore en el que la externalización se realiza a países vecinos con mismos husos horarios y con salarios inferiores al país de la compañía.
Los principales aspectos a la hora de realizar una externalización Nearshore son los siguientes:
- Proximidad.
- Afinidad cultural.
- Facilidad para hacer negocios.
- Huso horario similar o parecido.
- Lenguaje de comunicación.
- Reducción de costes.
Onshore
Onshore es un modelo de externalización derivado de Nearshore y que en algunas organizaciones utilizan indistintamente ya que, la diferencia principal radica en que los servicios de outsourcing en onshore se están prestando dentro del mismo pais.
Onsite
En este modelo de externalización el proveedor está prestando los servicios en las propias oficinas del cliente.
Global Delivery
El concepto de Global Delivery está asociado a empresas que prestan sus servicios a nivel mundial, tanto de consultoría como de prestación de servicios tecnológicos.
Estas empresas tienen distribuidos sus equipos por todo el mundo, lo que les permite poder responder antes a cualquier tipo de necesidad o peticiones de sus clientes.
El modelo de Global Delivery se basa en la reducción del riesgo operacional del proyecto/servicio, a la vez que reduce el coste asociado al mismo para los clientes.
En Global Delivery se adoptan cualquiera de los modelos expuestos en los puntos anteriores: Offshore, Nearshore, Onshore y Onsite.
Ventajas y desventajas
Independientemente del modelo de externalización elegido, todos los modelos comparten una serie de ventajas y desventajas propias al proceso de externalización.
Ventajas
- Nos podemos centrar en las actividades clave del negocio si externalizamos las tareas no estratégicas.
- Reducción de costes.
- En función de lo que se externalice, se pueden convertir costes fijos en variables.
- Mejoras en la productividad de actividades auxiliares/secundarias de la empresa.
- Optimización de procesos de negocio.
- Ahorro en problemas relacionados con la gestión.
- Al aplicar outsourcing se pueden atender nuevas necesidades o requerimientos para hacer crecer la empresa.
- Aumento productividad en todas las áreas de la empresa.
Desventajas
- En determinadas ocasiones la externalización puede resultar más caro que no realizarla.
- Gestión de la empresa proveedora.
- Vulnerabilidad de datos.
- Puede existir redundancia de tareas.
- La empresa proveedora puede quebrar o pase por dificultades serias que dificulten el desarrollo del outsourcing.
- Desmotivación empleados propios.
- Posibilidad de pérdida de control sobre el servicio/proyecto durante la externalización del mismo.
- Calidad del servicio prestado por la empresa proveedora si tienen un gran volumen de clientes.
- Malentendidos entre cliente y proveedor por temas de cumplimiento de contrato, calidad de servicio…
Resumen y conclusiones
Podemos decir que, el outsourcing, se ha convertido en una solución para todas las organizaciones mediante el cual obtienen una serie de beneficios que, si lo realizaran internamente, no obtendrían. Es muy importante que entiendas que externalizar el desarrollo de software es un proceso beneficioso para la empresa, aunque conlleve una serie de riesgos asociados.
En muchas empresas con equipos de desarrollo de software, la externalización de parte de los desarrollos se considera un fracaso en el seno del propio equipo de desarrollo. Desde mi punto de vista, la externalización debe de realizarse si los beneficios conseguidos no implican un perjuicio real en el equipo de desarrollo de software. Te pongo un ejemplo: supongamos que tenemos un equipo de 10 desarrolladores trabajando en diferentes líneas de negocio pero relacionadas con el mercado en el que trabajan. Supongamos ahora que hay que hacer un desarrollo de uso interno para registrar las visitas a la oficina y que permita reservar salas para reuniones. En ese caso, mi opinión es que esos desarrollos deben de externalizarse para no afectar a ninguna de las líneas de trabajo reales que se están llevando a cabo por el equipo en ese momento.
Espero que con este post teórico hayas podido aprender el fenómeno del GSD (Desarrollo Global de Software) y hayas adquirido una visión más orientada a la parte de gestión que técnica, pero relacionada completamente con el desarrollo de software.