Tengo un doctorado en investigación de operaciones. Me gusta la codificación y me gustaría vender algoritmos de optimización a las empresas. Sólo sé codificar en Matlab. ¿Cuál es tu consejo para que mis conocimientos sean comercializables?

Recientemente comencé a desarrollar modelos de decisión MIP con una consultoría de planificación de activos. Lamentablemente, los algoritmos de venta no suelen funcionar.

Lo que sigue es mi comprensión del panorama empresarial de OR en términos generales. Pensé mucho en esto cuando empecé a buscar trabajo y me encantaría que mis pensamientos se vieran desafiados por esto.

El aspecto de OR que encontré fue el que menos se enfatizó en mi grado es recopilar, administrar y validar datos de entrada. Si bien no es algo que necesariamente deba hacer usted mismo, termina dictando qué tipo de modelo de negocio funcionará como profesional de quirófano, ya sea solo o como parte de una empresa.


La opción 1 es ser un consultor por su cuenta, no como parte de una empresa más grande.

Esto funciona mejor si eres conocido como el experto líder en un área en particular. Muchos investigadores en OR hacen esto, convirtiendo sus intereses de investigación en empresas de consultoría técnica, mientras que la universidad les brinda una plataforma estable para continuar trabajando cuando el trabajo comercial se hace más delgado.

Sin embargo, si eres un generalista, es raro que este tipo de trabajo implique solo OR.

Los clientes que no comprenden la toma de decisiones basada en la optimización / los datos son, por lo general, los que son poco estrictos con la administración de datos. Estas compañías verán el mayor (porcentaje) de retornos en la planificación óptima, pero también suelen ser las compañías cuyos procesos de toma de decisiones son menos sistemáticos.

Esto tiene sentido cuando lo piensa: las compañías que no entienden cómo pueden poner sus datos a funcionar, probablemente no harán mucho esfuerzo para almacenarlo.

Como ejemplo, una empresa de ingeniería en la que hice pasantías gastó cientos de miles en una encuesta de pozo de inspección para un ayuntamiento (profundidad, elevación, diámetro) y luego registró la información en formato .pdf, con escaneos de informes de encuestas manuscritas. ¿En qué estado crees que está su base de datos? ¿Confiarías en los datos que contiene?

Esto dificulta el rockeo y la aplicación O directamente a los problemas que tienen estas empresas. En la mayoría de los casos, necesitará ayudarlos a obtener su información en orden primero, O bien puede ser el último paso en su camino hacia la mejora del proceso.

Esta es la razón por la que los enfoques relativamente simples se utilizan tan a menudo en consultoría: el verdadero servicio que ofrecen las compañías de consultoría no es su enfoque inteligente, sino la mano de obra y las habilidades para ayudar a sus clientes a mejorar sus procesos de negocios.

Es posible consultar directamente con empresas como esta como un individuo, pero a menudo las soluciones que produce terminarán muy a la medida, y pasará gran parte de su tiempo organizando las aportaciones en lugar de trabajar en los aspectos centrales O del problema. Mire a Geoff Leyland como un ejemplo de alguien que hace esto para ganarse la vida.

Por otro lado, las empresas con las habilidades internas para administrar bien sus datos también tienden a emplearlos bien por su cuenta, lo que significa que el rendimiento de su esfuerzo será menor en comparación con su status quo.

Un pequeño porcentaje de retorno todavía puede ser muy valioso para las grandes empresas. Sin embargo, las compañías más grandes tienden a ser menos receptivas y más adversas al riesgo, y es posible que no quieran contratar a un consultor individual en un proyecto que afecte el despliegue de una gran cantidad de dinero.

Los procesos de adquisición en estas grandes empresas a menudo requieren cosas como la cantidad de personal X, o los ingresos de Y, como una forma de mitigar este tipo de riesgo, mientras que potencialmente puede sortear esto al asociarse con otras compañías para vender su solución, es mucho Gastos generales organizativos y legales.

Las empresas más pequeñas como esta tienden a buscar ayuda para problemas específicos, y las universidades tienen una gran ventaja de visibilidad sobre los consultores individuales. Una vez más, realizable, pero complicado.


La opción 2 es ser parte de una empresa que asume más procesos que solo optimización.

Hay consultorías, donde podrá trabajar como OO general en una variedad de problemas, mientras que otras personas ayudan con los aspectos de gestión de datos, pero es probable que deba realizar otro tipo de trabajo cuando sus habilidades de especialista no estén disponibles. no es necesario

El otro tipo es que las empresas son como Derceto: tienen la optimización / OR en el núcleo de un producto más estrecho y, por lo tanto, tienen roles dedicados que solo hacen OR. Este tipo de rol también puede existir como parte de una compañía más grande; por ejemplo, la programación de vuelos es un problema central para una aerolínea que usualmente tienen equipos dedicados para esto.


La opción 3 es iniciar una empresa en torno a un problema que está mejor situado para resolver, aunque las nuevas empresas son un hervidero de peces. O está destinado a ser la menor de tus preocupaciones aquí, a menos que te asocies con un cofundador fantástico que posea el lado comercial de las cosas. Arriesgado y desafiante, pero potencialmente muy gratificante.

Pregunta general …

Hay pocos ángulos a considerar, veo varios enfoques:

1) buscar primero un mercado accesible
¿Cuáles son tus objetivos potenciales? ¿Ya puede identificar algunos sectores y aplicaciones de alto retorno de la inversión? Seleccione uno para comenzar, idealmente a través de conocidos, colegas, contactos académicos … La red es importante a menos que sea bueno para hacer contactos y convencer a las personas.

¿Sabe o puede contactar a un especialista Lean / Six Sigma? ¿Tiene entradas en segmentos de mercado / sectores a través de sus contactos (familiares, amigos, academia)?

2) ¿Lo haces todo solo o en equipo?
¿Ya has probado implementaciones de la vida real en otros idiomas? Dependiendo del tamaño de los datos con los que esté tratando, es posible que deba tratar rápidamente con el código de repetición que no le divierta tanto. ¿Ha considerado asociarse con otro desarrollador o una empresa? Puede pasar gran parte de su tiempo codificando conectores, utilizando herramientas ETL, transformando y limpiando datos, integrándose con el sistema de TI existente del cliente, ¿está listo para hacerlo en plazos razonables?

Si el éxito rápido no es su objetivo final, familiarícese con un lenguaje general (Java, Python) y sus bibliotecas relacionadas con su campo. Aprende las herramientas de ETL en esos idiomas. Aprender los conceptos básicos de DB. Diviértase con los sistemas distribuidos si el tamaño de los datos lo requiere (Scala, Spark, Hadoop, …) pero puede llevarle algunos años más (o meses si está dotado).

3) enfoque pragmático
Sé de dos empresas,

uno que comenzó con hojas de cálculo y barebones que cabrían en una maleta, voló a África y ofreció análisis rápido por un precio inmejorable para sus clientes. IBM no pudo competir. Luego cambiaron a un ETL y ahora están desarrollando su propio Big Data ETL para soportar sus complejos algoritmos analíticos. Son altamente exitosos, creciendo exponencialmente desde hace 4 años.

El otro que conozco, un spin-off universitario, comenzó con un sistema de organización de plantas altamente especializado basado en algoritmos genéticos. Luchan por generar ingresos, aunque su solución puede disminuir los gastos operativos hasta en un 40% en plantas de producción más pequeñas. Gastan mucho tiempo y dinero en encontrar a sus clientes, pasar por el proceso de aceptación, negociación de contratos, discusión de precios y otros, ya que comercializan su solución como un producto y no como un servicio.

Supongo que sus competencias son aplicables a un amplio espectro, su primer contrato no tiene que ejecutarse en otro idioma que no sea R, siempre y cuando le brinde valor rápidamente a su cliente (sea pragmático y no idealista, ¡vaya por las frutas de bajo rendimiento!) , pero trate de encontrar clientes con menos carga burocrática si va solo (mercados emergentes: EMEA, LATAM, pequeñas empresas, …). De lo contrario, podría terminar gastando su tiempo en lanzamientos de ventas, reuniones, documentación de cumplimiento y negociaciones que probablemente no sean su pasatiempo favorito.

Una vez que haya tenido sus primeros clientes, puede comenzar a pensar en esquemas de precios. Dejaré este tema para otras discusiones.

Espero que esto ayude

Vendemos soluciones de software para visualizar, cuantificar y optimizar diseños de instalaciones como los descritos por Stanislas Rusinsky.

1. Esto es muy difícil de vender software ya que el usuario final tiene poco tiempo para decir sobre el presupuesto disponible. Tenemos usuarios finales que saltan sobre el asiento, pero sus gerentes no les permiten comprar la solución.

2. El trabajo de mercadeo y ventas lleva tiempo en construirse: tome asiento y comience a enumerar las características de sus algoritmos, haga que sea atractivo, cree un PDF y publíquelo en su sitio web. ¿Cuánto tiempo crees que necesitas?

3. encontrar al usuario final de algoritmos es una pesadilla: apuntar a una compañía, apuntar a un equipo, apuntar a una persona y orar para que tenga una necesidad

4. Reunir al equipo para abordar cada caja de 9 de la Cadena de Valor de Porter y ejecutarla es un arte (La Cadena de Valor)

5. ¿Qué tecnologías? Como dijo Opeyemi Adelusi, céntrese en las soluciones empresariales y diría que este no es el primer problema. el primero es la Extracción-Transformación-Carga (ETL) de los datos provenientes del ERP, MES, solución personalizada que se encuentra en el lugar del cliente. Entonces puedes enfocarte en el techno.
¡Asegúrese de que tendrá que aprender los modelos de datos de Microsoft Dynamics, SAP, Baan … y no sobrevivirá solo con Matlab!

6. Big Data y sus propiedades Velocidad, Volumen, Variedad y Valor (VVVV) son un señuelo porque la CALIDAD de los datos es bastante pobre en la industria por muy buenas razones: nos centramos en la producción y pocas personas son responsables para mantener los datos actualizados de manera oportuna.
¿Por qué demonios tendrías el mejor algoritmo manipulando datos de baja calidad?
¿Cuál es la respuesta, el uso de heurísticas y datos de baja calidad para realizar sus cálculos? Esto no significa que estés equivocado.

Básicamente, únase a un equipo que ya está implementando algoritmos y, como lo ha dicho Stanislas Rusinsky , cree un desafío empresarial sin respuesta e intente agregar algo a una solución ya existente. Es decir, AMIA Systems, descarga la versión completa.

Hola,

C ++ se usa muy a menudo para los algoritmos de optimización, debido a los cálculos pesados, pero a veces se prefiere JAVA debido al desarrollo más rápido / menos experiencia necesaria. Le recomendaría aprender uno de estos idiomas, y probablemente Python también, ya que es muy útil para crear un prototipo y procesar los datos. Además, si tiene que aprender por sí mismo, no comience con C ++.

Creo que la optimización no es algo que pueda hacer en forma independiente, así que busque empresas grandes que tengan problemas complejos para resolver (logística, por ejemplo) o empresas especializadas en brindar soluciones de optimización a las empresas.

Debería estar más presente en los sitios web, los foros y las páginas de medios sociales donde están presentes los reclutadores de empresas, los cazadores de cabezas y el personal clave que toma las decisiones de contratación, como LinkedIn.

En el blog PayScale’s Career News, hay numerosos artículos escritos sobre la importancia de LinkedIn cuando se trata de la búsqueda de empleo y las pasantías también. Hay consejos sobre cómo escribir un currículum y entrevistas también.

Como Opeyemi Adelusi, te sugiero que aprendas uno de esos idiomas.

Creo que especialmente python es una apuesta segura. No solo será relativamente fácil para usted (porque proviene de un fondo en matlab), sino que también es extremadamente fácil integrar un módulo de python en una aplicación web. La mayoría de las compañías que producen software están produciendo aplicaciones web en estos días.

Sin embargo, creo que aprender a crear software modular y reutilizable es más importante que cualquier otro idioma.

Realmente no puedo responder sobre lo que se necesita para hacer que los algoritmos sean comercializables para las empresas. Desde su comentario “Sólo sé codificar en Matlab”, supongo que está preguntando qué idioma debe aprender para que su conocimiento sea más aceptable. Yo diría que cualquier lenguaje que descienda de C debería servir: C ++, C # o Java.

Aprender: Java, Python, C ++.

Las soluciones empresariales emplean al menos uno de esos.