‘Insourcing’ mejor que ‘outsourcing’

El viernes estuve en los Cursos de Verano de la Universidad Pública de Navarra, hablando sobre Team System y como puede influir en la calidad de software que desarrollamos. Tuve el placer de comer con Jesús Villadangos Alonso, profesor de la Universidad, y entre los numerosos temas de conversación que tratamos, durante la amena comida, salió el outsourcing. Luego, al llegar a casa y leer Geeks.ms vi que mi vecino de blog, Gustavo Vélez, había escrito sobre éste tema  y ya no pude resistirlo, tengo que dar mi opinión, para que quede constancia por escrito, pues intuyo que es un tema que cada vez se va a comentar más y más. Y es que en éste tema, como en otros relacionados con el mundo del software, Europa se mueve a rebufo de los Estados Unidos y hay olas que surgen en el otro lado del charco, se toman su tiempo en cruzarlo, y llegan a Europa, sin que aquí hayamos aprendido nada. Una de las grandes preocupaciones de la industria del software en Estados Unidos en los últimos años ha sido el outsourcing. Hay blogs llenos de consideraciones de programadores llamando al proteccionismo, de consultores prometiendo mejoras económicas fabulosas. Conste que los argumentos en contra del outsourcing basados en la ética de las empresas o en sus obligaciones morales, en el proteccionismo y en otras consideraciones de esa índole no me valen. Tenemos que aceptar que somos jugadores (o quizás peones) de la economía global y que lo mismo merece un puesto de trabajo un indio, que un europeo, que un africano.


Hemos de reconocer que la idea en si es atractiva. Llevemos nuestra producción a lugares donde la mano de obra sea más barata, y así conseguiremos ahorros de costes. La industria del automóvil, espejo por excelencia de otras industrias, lo está haciendo con éxito, no con tanto como se esperaba pero si con un balance global positivo. Es fácil, en teoría, el producto se diseña en nuestros cuarteles generales de Europa y luego un grupo de bien entrenados y educados programadores indios lleva a cabo la implementación. El problema que se obvia, es que construir software no es como construir coches, o confeccionar zapatillas. Cuando hablamos de software, el diseño no es una fase que termine en un momento del proyecto y no se retome. Cada vez más y más profesionales y más metodologías están comprendiendo que el proceso de diseño en el software es continuo. Por eso, cada vez se pone más hincapié en involucrar al cliente, en mostrarle continuamente lo que ya tenemos implementado para poder llegar conocer, mediante el ‘feedback’ que proporciona éste proceso, qué diseño de la solución cubre sus necesidades. Al contrario que cuando diseñamos coches o zapatillas, en los proyectos de software es el cliente quien tiene toda la información sobre sus necesidades y, el problema, es que a veces no es capaz de expresarlas hasta que tiene un sistema ejecutable delante. Se puede ‘imponer’ una moda en camisetas o zapatillas, pero no se pueden imponer necesidades a nuestros clientes. Es falso que podamos, con éxito, especificar completamente un proyecto de software, que nuestros analistas lo diseñen y que un equipo de fuera lo implemente. Sin duda vamos a obtener ahorros de coste, pero a costa de perder totalmente la posibilidad de involucrar al cliente en el proyecto. Y las estadísticas dicen, que después de tener un ‘sponsor’ claro del proyecto, involucrar al cliente es el principal factor para que los proyectos triunfen. El problema principal es, que quienes toman la decisión de seguir el camino del outsourcing no conocen que cada línea de código que se escribe en un programa supone tomar una decisión de diseño. Suelen ser economistas o gestores, que entienden de dinero, no de software.


Otro factor por el que el outsourcing no es interesante desde mi punto de vista, es que los que aprenden son otros. Cada vez que trabajas en la implementación de un sistema, por trivial que sea, aprendes algo, y ese conocimiento adquirido es algo que te va a ayudar en proyectos futuros. A las empresas siempre se nos llena la boca cuando hablamos de know how, pero se nos olvida que el know how, sólo nace de la experiencia, de la formación y de la capacidad para retener a nuestro personal. Llevar a cabo proyectos de software no es sólo una manera de ganarse la vida, sino también una excelente manera de aprender para poder abarcar proyectos futuros y poder seguir en el juego de ganarnos la vida. Sin ese proceso de aprendizaje de las empresas, es también muy difícil que se den las condiciones necesarias para que se produzca la innovación. Y todos los proyectos de desarrollo de software que triunfan son innovadores, en uno u otro sentido. A las empresas se les paga por el valor que añaden a los productos o servicios, las empresas que desarrollan software tienen muy difícil añadir valor sin ser innovadoras, éste es, a mi modo de ver, el principal motivo por el que las herramientas 4GL no han triunfado, no dejan campo a la innovación. Por eso, seguimos usando compiladores de propósito general, porque nos permiten hacer cosas que otros no han hecho antes, usar nuestro know how para innovar y añadir valor a nuestros desarrollos. Si quereís ahondar en la importancia de el aprendizaje de las empresas y la importancia de retener al personal, Peopleware, de Tom de Marco y Timothy Lister es una excelente lectura.


La industria del software debe cambiar. Es claro que esta corriente es imparable. Debemos aceptar que aunque es una ingeniería, no es una ingeniería como las demás, como bien explica Edsger W. Dijkstra, puesto tiene una componente de creatividad y diseño continuo que otras no tienen. Debemos empezar a preocuparnos por incorporar capacidad de aprendizaje a nuestras empresas. Debemos empezar a pensar en el ‘insourcing’, en lograr que empresas que tienen mayor conocimiento que nosotros vengan a trabajar a nuestras instalaciones, para que nuestros empleados tenga la posibilidad de aprender. En lugar de preocuparnos por ahorrar costes, la preocupación principal debe ser aportar valor a nuestros clientes y que nuestra empresa aprenda. Si dejamos que actividades claves para nuestro negocio las realicen segundas empresas, vamos a describir que las empresas que hacían ‘nuestro trabajo’ han aprendido y ahora son nuestros competidores.


También tendemos a obviar que un factor vital en el desarrollo de software, la comunicación. La comunicación fluida es una precondición necesaria para que los proyectos de desarrollo de software lleguen a buen puerto. Y sin duda no es un factor que facilite la comunicación, que mientras nuestros ingenieros duermen los de la otra empresa estén trabajando y viceversa. Gustavo ya ha descubierto que sin buena comunicación las cosas no se hacen como a uno le gusta, y esto es especialmente preocupante para empresas con estandares de excelencia altos. Ahora Gustavo está viviendo con un modelos de objetos que no cumple con sus estandares, seguro que exigentes, de calidad. Esto no hubiese pasado con una buena comunicación. Otra faceta relacionada con esto que tendemos a pasar por alto, es que el outsourcing, rebaja unos costes, pero introduce otros nuevos relacionados en gran medida con estas dificultades de comunicación y de gestión del proyecto, puesto que aunque no tengamos que desarrollar aún tenemos que gestionar muchos aspectos del proyecto y esta gestión además va a ser más compleja y por lo tanto más costosa en terminos economicos. Tampoco que dos empresas con agendas e intereses, en una relación cliente proveedor y que quizás vayan a competir en otros proyectos, es algo que favorece el clima de comunicación y colaboración necesario para llevar a cabo un proyecto. Una vez más creo que introducir en nuestra empresa conocimiento y personal que pueda colaborar con el proyecto y no simplemente actuar como un proveedor, es una postura que a medio plazo da mejores resultados. Una vez más el camino que veo es el ‘insourcing’.


Sin duda, no todo han sido fracasos con el outsourcing en el software. Pero, que empresas como Oracle, muevan sus proyectos a la India, no es un espejo en el que la pequeña o mediana empresa se pueda mirar. Oracle ha movido proyectos completos, incluso divisiones completas, eso no es outsourcing. Al menos no en el sentido en el que estoy comentando en éste post.

7 comentarios sobre “‘Insourcing’ mejor que ‘outsourcing’”

  1. Una aclaración, no se si estarán bien utilizados o no, los ‘palabros’ pero consnte que outsourcing, lo utilizo con el significado de mover fuera de nuestra empresa (a otro país o a otra empresa) actividades que son propias de su negocio principal.

    Insourcing lo utilizo con el significado de traer personas a nuestra empresa o proyecto, al lugar concreto donde se desarrolla, que tienen conocimientos claves y diferenciadores sobre nuestro negocio y la capacidad de transmitirnoslos. No es los mimso que la subcontratación donde el factor diferencial es solo el precio.

  2. Hola Rodrigo,
    Excelente análisis, y estoy de acuerdo contigo en muchos aspectos, excepto en uno, que para mi es muy importante: conocimiento es universal y tiene que ser compartido con todo el mundo.
    Lo que comentas de «… outsourcing no es interesante desde mi punto de vista, (por)que los que aprenden son otros…» es una idea que no comparto. Si cada persona mantuviera sus conocimientos para si mismo, nunca habríamos evolucionado como «seres humanos» como lo hemos hecho hasta ahora. La idea de sitios como el que yo mantengo (http://www.gavd.net/servers) con información sobre SharePoint, es precisamente esa: compartir la información que yo tengo o puedo adquirir con las personas que no la tienen. Por otro lado, entre mas personas tienen un determinado conocimiento de algo, a mas personas se le ocurrirán nuevas e innovativas formas de hacer cosas, y todos aprenderemos un poquito mas cada vez.
    Y, finalmente, no quiero ni pensar en el momento en que tenga que tener miedo a alguien que sepa mas que yo. Como dice el poema («Desiderata», del tiempo de viejos hippies, como yo), «…for always there will be greater and lesser persons than yourself…», y si alguien puede hacer algo mejor que yo, estaré contento de aprender de ella/el…
    Un saludo cordial,
    Gustavo

  3. Me parece muy interesante este blog! Hace poco leí un reportaje sobre el mismo tema en un portal colombiano dedicado a proveer información electoral y sobre los candidatos en Colombia, especialmente lo relacionado con las elecciones 2010 en Colombia y con los candidatos al congreso y a la presidencia.

Deja un comentario

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