¿Trabajar en consultora, o en empresa tradicional?

En Reddit me encontré una pregunta interesante:

[…] llevo algo de tiempo como intern de TI en una empresa retail mexicana, aún no se si me van a dar una planta pero he recibido una oferta de parte de una consultora y quisiera preguntar por su consejo sobre cuales son las diferencias entre trabajar en una empresa no-tech y una consultora.

En una consultora te vas a exponer a resolver muchos problemas diferentes. Puede ser una buena oportunidad si lo que quieres es descubrir qué te gusta, o en qué tecnología te quieres especializar. Vas a aprender “a la mala”, porque ahí lo importante es entregar para que el cliente pague. Independientemente de si está bien o mal (técnicamente, en arquitectura, tecnología, etc), la prioridad es cubrir el compromiso contractual.

En una empresa “non-tech” es más relevante resolver problemas de negocio, que usar tal o cual tecnología. Muchas veces, esto termina viéndose como buscar cómo conectar un montón de herramientas de terceros a los sistemas internos. Transformaciones de datos, etc. Vas a aprender muchísimas cosas de negocio, pero tal vez no tantas de tecnología — o por lo menos no a la profundidad que querrías si lo que te interesa es el aspecto tecnológico. En esta situación considero importante que por lo menos te llame la atención el giro de la empresa. Si terminas en una financiera, y no te gustan las finanzas, va a ser muy difícil que le encuentres sentido a entender todos los términos de negocio que van a ser cruciales para que hagas un buen trabajo.

Ahora, puede haber empresas “non-tech” con cultura de desarrollo de software que te dan oportunidades de crecimiento profesional importantes. Para mí, ese es el sweet spot, y recomiendo trabajar en una si encuentras la oportunidad: empresas de producto. Hace unos años escribí:

Toda la diferencia entre el trabajo de producto vs. el de consultoría está en los incentivos que determinan el cómo se trabaja.

Hacer consultoría se trata de completar proyectos para un cliente. El objetivo es entregar a tiempo y cumplir con un contrato.

Si trabajas en consultoría, lo que importa es entregar en tiempo y forma, lo que significa que la calidad y exactitud técnica del desarrollo no es prioridad. Después de todo, hay una gran posibilidad de que una vez que se llegue a la meta, y el cliente esté satisfecho, no será necesario revisarlo ni mantenerlo a largo plazo. Se le resolvió el problema al cliente, se entregó a tiempo y con los requerimientos cumplidos, y ahora puedes pasarte a pensar en el siguiente proyecto sin voltear atrás.

Trabajar en desarrollo de producto se trata de resolver problemas para un usuario. El objetivo es agregar valor.

Al desarrollar un producto, lo que estás buscando es crear tecnología para resolverle un problema a tu usuario. Muy probablemente (si trabajas en un startup, por ejemplo) no habrá una guía para encontrar la forma óptima de agregar valor. Tendrás que experimentar, investigar, innovar. Pero más importante, trabajar en producto tiene la implicación de que el mismo equipo será el responsable de arreglar cualquier cosa que se rompa, y de saldar cualquier deuda técnica que se adquiera.