Compañías de Outsourcing vs Compañías de Producto: Similitudes y Diferencias

18 diciembre 2020
Por Denis Tsyplakov
Compañías de Outsourcing vs Compañías de Producto: Similitudes y Diferencias
¿Alguna vez te preguntaste cuáles son los puntos en común y los contrastes entre las empresas de TI que desarrollan su propio producto y aquellas que operan de forma subcontratada? En este artículo, detallaremos los principales factores que influyen en la comodidad del trabajo en ambos casos, así como sus ventajas y desventajas.

“Hace un tiempo, me pidieron que escribiera algunos párrafos sobre las diferencias entre las empresas de productos y las de outsourcing. Estos pocos párrafos finalmente se convirtieron en un artículo bastante largo, pero el título siguió siendo el mismo. Comparto con ustedes las conclusiones a las que he llegado”.

Falsa dicotomía

Antes que nada, vamos a aclarar que los detalles de cómo funciona un proyecto se notan mucho más desde el punto de vista del desarrollador que desde el modelo de negocio (outsourcing o producto propio). Por tanto, a la hora de responder a una oferta de trabajo, te recomendamos que tengas en cuenta cuál será la empresa o el proyecto específico, y no tanto su modelo de negocio.

ways

La división "subcontratación - producto propio" es bastante superficial. De hecho, hay muchos más tipos de empresas, por ejemplo: startups de productos (existen tantas que ni siquiera vamos a intentar nombrarlas), empresas maduras de productos (como JetBrains) o compañías en donde la TI no es el área principal de actividad (como los grandes bancos). En contraste, también existen otras que brindan a los clientes el servicio para desarrollar soluciones complejas, sin reubicar equipos y sin contratarlos "bajo proyecto". Y hay quienes crean productos de código abierto y ganan dinero adaptándolos a las necesidades del cliente. De hecho, existen tantos modelos de negocio que es imposible crear una lista clara y específica.

Sin embargo, es difícil distinguir entre los modelos comerciales de las empresas de productos. Vale la pena determinar qué consideramos un producto: digamos que IntelliJ IDEA o MS Office son, por supuesto, productos. Gmail es un servicio en línea, pero podemos llamarlo también un producto, por simplicidad. Microsoft Azure es un servicio en la nube, pero también un producto y un servicio de consultoría.

Además, en grandes empresas, un departamento puede subcontratar servicios a otra área, que desarrolla el mismo producto que vende la empresa.

warriors gif

Pero sí existe una clara división de empresas en producto y outsourcing en términos del mercado laboral.

Modelo de Negocio

Las empresas de outsourcing ofrecen servicios de desarrollo de software mediante la contratación de programadores por proyecto. Incluso se puede argumentar que, de hecho, estas compañías le “compran” sus servicios a los desarrolladores, reorganizan su tiempo de trabajo y lo venden a los clientes. De esta forma, la cantidad de horas de trabajo vendidas es, en mi opinión, uno de los factores más importantes que influyen en los ingresos de la compañía.

Si vamos un poco más allá, su facturación está directamente relacionada con la cantidad de programadores que trabajan allí. En este sentido, mientras que muchas empresas tratan a los recursos humanos con menos prioridad, otras, como DataArt, hacen grandes inversiones en la satisfacción y comodidad de sus empleados. Para los programadores, estas diferencias son aún más notorias cuando se pasan de un proyecto a otro.

Por su parte, las ganancias de las empresas de productos dependen de la venta de dicho producto, que son independientes del número de desarrolladores involucrados en la producción de soluciones de software. Si algo se vende bien, las condiciones laborales de los desarrolladores pueden ser muy buenos (o no, dependiendo de los dueños del negocio). Por el contrario, si se vende mal, no importa qué tan eficientemente trabaje el equipo, las condiciones de trabajo no serán satisfactorias. Además, para muchas de estas empresas, el software puede no ser su único producto, sino solo una actividad adicional que genera ganancias.

Por lo tanto, es importante diferenciar si la empresa vende tiempo de trabajo (o algo en lo que ese tiempo de trabajo está envuelto, como servicios de consultoría) o un producto. Sin embargo, me gustaría señalar que todo lo que diré a continuación solo es válido para las pequeñas y medianas empresas, ya que las más grandes, con decenas de miles de empleados, tienen sus propias reglas.

Salarios

Las empresas de outsourcing ofrecen ingresos que rondan el nivel medio del mercado. Por lo general, no pueden permitirse pagar muy por encima del promedio, ya que esto afectaría negativamente al negocio; pero tampoco pueden pagar menos de lo que exige el mercado, ya que la competencia fácilmente se llevaría a sus especialistas. En este sentido, el salario no varía más del 25% de una a otra.

En las empresas de producto, unas pocas personas pueden crear un producto que le permitirá a la organización ganar cientos de millones. Los salarios de los desarrolladores, especialmente para aquellos que son clave, pueden ser realmente altos, ya que no están determinados por motivos comerciales sino psicológicos, es decir, cuánto está dispuesto a pagar el empleador a los desarrolladores.

Pero la regla en ambos casos es simple: si pagas poco, la mayoría de los profesionales optarán por irse. Tal vez haya quienes no hagan nada, pero serán excepciones. Seamos sinceros: no existen muchos trabajos en los que no sea una prioridad para el empleador evitar costos innecesarios, como pagar un salario muy superior al promedio del mercado (si conocés alguno así, ¡quiero saberlo!).

Entrevistas de trabajo

El proceso de reclutamiento en las empresas de outsourcing es bastante estándar. Incluye una entrevista técnica para determinar el nivel de habilidades del candidato, en algunos casos una prueba de inglés, una con recursos humanos y, a menudo, una entrevista con el cliente. Todos estos pasos son algo así como un ritual.

En las empresas de producto, el proceso es idéntico, pero a menudo incluye también elementos específicos en función del negocio de la empresa y su cultura corporativa.

Jobs meme

Tecnologías de Software

Las empresas de outsourcing venden lo que necesita el mercado. Se centran en 10-15 elementos de la lista de las 20 tecnologías más populares, ya que es más probable que los clientes pregunten por ellas y será mucho más fácil concretar las ventas. Por eso, si estás interesado en Crystal, Elexir o Julia, te será más difícil encontrar un lugar en una empresa de outsourcing, aunque no es imposible.

Por su parte, las empresas de producto se centran en… el producto. El mundo moderno de las TI está organizado de tal manera que, desde el punto de vista del consumidor, los productos parecen idénticos y se pueden construir utilizando la mayoría de las tecnologías disponibles en el mercado. La única diferencia es la cantidad de problemas. ¿Servidor web Bash? Bueno. ¿Una GUI para Windows hecha en Perl? ¡No hay problema! ¿Controlador de dispositivo Python? Google muestra 34,700,000 páginas sobre este tema. Por tanto, el rango de tecnología desde el punto de vista de estas empresas puede ser mayor, aunque también puede que no haya cambiado en absoluto durante los últimos 20 años (ni planeen hacerlo).

Conocimientos y habilidades

Ahora analicemos una perspectiva ligeramente diferente: cuán profundos deben ser los conocimientos y las habilidades de los desarrolladores en ambos casos. Este aspecto es importante por dos razones: primero, cuando hacés lo que te gusta, estás ansioso por resolver problemas complejos. Pocas personas quieren escribir algoritmos c = a + b a lo largo de sus carreras. En segundo lugar, cuando, por una razón u otra, decidís cambiar de trabajo, el nuevo empleador estará interesado en saber qué tan avanzado es tu conocimiento de las tecnologías mencionadas en tu CV. Respuestas como "Sí, utilicé Java, pero no tengo idea de qué son los equivalentes y hashCode" no van a facilitar que te contraten para un proyecto serio.

Las organizaciones rara vez deciden subcontratar partes críticas del sistema. Si éste consta de 200 módulos que aplican la lógica y el núcleo empresarial, es poco probable que la creación de este último se delegue en una empresa de outsourcing (conozco casos de este tipo, pero son excepciones).

Las cosas son un poco diferentes en las empresas de productos. Si necesitás hacer un producto de alta calidad, vas a tener que realizar todas las tareas complejas bajo tu propio riesgo. Si realmente querés aplicar machine learning en una aplicación de reconocimiento facial, por ejemplo, probablemente encuentres algo adecuado. Solo recordá que, es posible que tengas que buscar una empresa de este tipo durante mucho tiempo y que tu deseo de trabajar con determinada tecnología puede deducirse (indirectamente) de tu salario.

Condiciones laborales

Considerando que pasamos 1/3 de nuestras vidas en el trabajo, vale la pena pasar este tiempo lo mejor posible. En la mayoría de los casos, las empresas de TI ofrecen buenas (y similares) condiciones de trabajo, aunque hay íconos que se destacan un poco más sobre el resto, como Google.

Las empresas de outsourcing intentan diferenciarse de sus competidores, es por eso que resulta imposible no darse cuenta de que la calidad de las oficinas aumenta cada año. Es un mecanismo simple: cuando una empresa da un paso adelante y mejora la comodidad de los empleados, todos los demás intentan igualarla. La última vez que cambié de trabajo, elegí DataArt después de mi primera visita a la oficina.

Por su parte, las empresas de productos suelen seguir tendencias más generales, aunque haya lugares más atractivos que otras, como Mojang. A veces, las oficinas en este tipo de compañías son también centros de producción, en los que no solo trabajan programadores, es por eso que recomiendo conocer bien todos los detalles.

Cultura corporativa

La cultura interna dentro de una empresa suele entenderse como un conjunto de normas, valores y comportamientos demostrados por la mayoría del equipo. Tiene la capacidad de puede brindar un gran apoyo a los empleados, o ser tóxica para ellos. Al tratarse de algo subjetivo, debido a que todas las personas tienen sus preferencias individuales, resulta difícil definir claramente qué es bueno y qué es malo, pero intentaré describir igualmente algunos aspectos clave.

Las empresas de outsourcing trabajan con cientos de clientes de diferentes países. Al vender servicios, tienen que funcionar como compañías multinacionales: a los clientes no les gusta trabajar con desarrolladores de una cultura que no comprenden en absoluto. Las empresas son diferentes, por supuesto, pero definitivamente todas tienen un enfoque internacional.

DataArt Corporate Culture Comic Strip

Las empresas de producto, en cambio, son mucho más diversas y su cultura interna está influenciada por el campo de actividad. Los fabricantes de juegos se diferencian mucho de las empresas petroleras, por ejemplo.

Management

El último aspecto importante, en mi opinión, son las cuestiones de management, que se pueden dividir en dos partes: gestión de proyectos y gestión a nivel de empresa. El estilo y enfoque para resolver problemas en ambas áreas tiene un impacto significativo en el trabajo diario de los programadores.

La metodología ágil se utiliza mucho en outsourcing. Combina diferentes enfoques, por lo que los detalles varían según la empresa e incluso los proyectos concretos, pero los elementos básicos (tickets, sprints, stand-ups) suelen ser similares. En la mayoría de los casos, el programador es un director de proyecto y no es un "jefe", sino un empleado con funciones complejas pero comprensibles. Situaciones como "Yo soy el jefe y vos no sos nadie" suele ser extremadamente atípica para una empresa de subcontratación.

En las empresas de producto, también la metodología Agile ha demostrado su eficacia, aunque la resistencia al cambio es alta y todavía encontraremos departamentos, sectores, más burocracia, etc. Esto da una imagen clara de la trayectoria profesional: de junior a gerente, pero me parece que en 2020 este no es el modelo más popular para el desarrollo profesional.

***

En conclusión, me gustaría enfatizar una vez más que solo he descrito tendencias generales. Me he encontrado con excepciones para cada uno de estos puntos, por lo que el principio fundamental a la hora de buscar trabajo debe ser comprender el modelo de negocio y la estrategia de la empresa.

Si el empleador busca programadores para sus clientes, vale la pena verificar quién es ese cliente y qué requiere el proyecto. Si una empresa está involucrada en el desarrollo de software y no "vende" desarrolladores, existe una alta probabilidad de que su conocimiento y experiencia sean más evaluados.

Lo importante es que siempre hay una opción, por lo que hay que tener en cuenta todos los factores para poder elegir el trabajo más adecuado para cada uno, no solo en términos de remuneración, sino también de acumulación de conocimientos, experiencia profesional y comodidad personal.