programador de software industrial

¿Cómo debería ser un programador de software industrial?

Escrito por

Esther Claravalls

Categoría

Introducción

Tanto si eres emprendedor, responsable técnico, desarrollador o docente te interesa conocer cuales son las cualidades ideales que debe tener un programador de software industrial para crear un buen equipo de desarrollo.

Como verás, no es tarea fácil y son muchos los factores que intervienen, pero con las pautas que te propongo, espero que tu tasa de éxito aumente.

Lo Que No Funciona

A la hora de crear tu equipo de desarrollo, necesitarás conocer cuales son las cualidades ideales que debes buscar en un programador de software industrial.

El software industrial es una de las áreas de la ingeniería industrial más difíciles de hacer funcionar por sus características intrínsecas ya que, como su nombre indica, combina dos mundos algo dispares: la industria y la informática. Esta combinación hace que muchas de las metodologías válidas para la informática no lo sean para la industria y viceversa.

La idea de tomar a tus técnicos de automatización y hacerles aprender un lenguaje de programación no sirve. ¿Cuál de los cientos de lenguajes de programación elegirás? ¿Qué pasa con las bases de datos, las metodologías de gestión del software, las pruebas unitarias, la documentación a generar, …?

Mujer dudando

Puedes pensar en hacerlo al revés: incluir un equipo de informáticos. Tampoco te funcionará. Probablemente no sabrán que es un transportador, ni un bus de campo, ni siquiera habrán visto en su vida un autómata.

La Naturaleza De Las Soluciones De Software Industrial

Dejando de lado las nuevas tecnologías que se puedan introducir con la Industria 4.0, la realidad es que hay una extensa cantidad de soluciones “típicas” que se basan en el mismo principio:

  1. Recoger datos de uno o varios autómatas
  2. Registrar/obtener datos de la base de datos
  3. Procesar toda la información
  4. Registrar/obtener datos de la base de datos
  5. Enviar respuesta (si procede) al autómata.

Simple, ¿verdad? Entonces, ¿dónde está la ciencia y el misterio?

Pues está en que debes saber de autómatas, redes y buses de campo, comunicaciones, protocolos y seguridad industrial.

Está en que debes saber diseñar y desarrollar bases de datos, aplicaciones de escritorio, aplicaciones web, sistema de informes, de indicadores y tableros de mando. Que debes saber de usabilidad y experiencia de usuario (UX/UI).

Está en que el programa o programas tienen que ser robustos para que no paren la producción y sean capaces de funcionar las 24 horas del día, los 365 días del año.

Aquí no vale arreglar las cosas reiniciando el programa o el equipo. ¡Se pierde producción!

Está en saber diseñar el programa para que en caso de incidencia o avería se pueda resolver en el mínimo tiempo posible, donde tiempo significa segundos o minutos dependiendo de cuál sea el tiempo de ciclo de la producción.

Está en diseñar aplicaciones de usuario que permitan resolver todas las incidencias posibles sin necesidad de tener que recurrir a la consola de programación del autómata.

Está en asegurar la consistencia de la información. Si tu sistema no es fiable, es difícil de usar o no es estable, dejará de utilizarse más rápido de lo que te imaginas y lo siguiente que dejarán de usar, serán tus servicios. Pero seamos positivos, eso no va a pasar y lo sabes.

¿Cómo Construyo Mi Equipo De Desarrollo?

El perfil que se necesita para el desarrollo de soluciones de software industrial es muy difícil de encontrar y, hasta me atrevería a decir que no existe en el mercado, a menos que trates de quitárselo a la competencia a golpe de talonario.

Esto implica que construir tu equipo significará invertir tiempo y dinero en su formación, no sólo técnica, sino también en la cultura del cliente y en la metodología a utilizar.

Fíjate que he dicho invertir y no gastar, porque realmente es una inversión. Tu equipo será el mayor tesoro que tendrás en tu negocio, tu mejor activo. Recuerda que no tienes productos para vender, tienes soluciones a medida y éstas sólo se consiguen si detrás hay personas.

A lo largo de estos años he visto como empresas de éxito se iban al traste por perder su equipo humano y eso no quieres que te pase a ti, ¿verdad?

Los consejos que yo te puedo dar no dejan de ser una orientación basada en mi experiencia (y en la de otros del mismo sector) que nunca podrán garantizarte el éxito, ya que la cultura de la empresa la creas tú mismo con tu estilo de dirección.

No sé si todavía hay empresarios que piensan que lo más importante para contratar a una persona son sus conocimientos técnicos. Supongo que tienes claro que es imposible conocer todas las tecnologías existentes en la actualidad y más teniendo en cuenta que cada día surgen de nuevas. Eso te lleva, de forma irremediable, a tener que dirigir tu mirada a las actitudes necesarias para desarrollar este trabajo con éxito y dejar que las aptitudes se adquieran con el día a día.

Backend vs Frontend

Antes de hablar de las características de un programador de software industrial, quiero comentarte un aspecto importante que afecta a los desarrollos.

Básicamente vas a tener 2 tipos de desarrollos:

  • los procesos
  • las aplicaciones de usuario.

Esto no es más que lo que en el mundo web se conoce como Backend y Frontend.

Históricamente, ha habido una cierta tendencia a valorar (y remunerar) más a los programadores de backend que a los de frontend, apelando a la dificultad. Te adelanto que yo no estoy de acuerdo con esa línea de pensamiento y te cuento porqué.

A lo largo de los años he visto fracasar soluciones con un backend excelente y sin rival porque la aplicación no fue capaz de adaptarse al lenguaje del cliente, intentando imponer una jerga técnica que nada tenía que ver con su proceso productivo. Esta situación hace que el cliente sólo vea un sistema muy complejo y que tenga la sensación de dependencia y de impotencia frente a éste.

Moraleja:

Por complejo que sea el sistema, éste tiene que ser fácil de mantener y entendible por el usuario.

Con ello te quiero decir que de nada sirve tener el backend más maravilloso del mundo si el frontend es horrible y no se adapta al lenguaje y a las necesidades del cliente. Por el contrario, de nada sirve tener el frontend más fantástico del mundo si el backend no hace lo que tiene que hacer.

Hay empresas que ponen a los técnicos inexpertos en el frontend y a los expertos en el backend. Créeme, esto es un error.

El determinar si un programador es bueno para backend o frontend no es una cuestión de experiencia, ni de edad, ni siquiera de género, es una cuestión de pensamiento lógico versus pensamiento creativo, hemisferio derecho versus hemisferio izquierdo.

frontend vs backend

Una curiosidad sobre la ilustración anterior: Kari Piippo, diseñador de profesión, exalta las características de una mente lógica, mientras que Steve Jobs, vinculado al mundo de la informática, exalta las bondades del diseño. Ambos entendieron la necesidad de combinar los dos mundos así que, si consigues que estos dos perfiles trabajen en equipo, los resultados serán espectaculares y tu éxito estará asegurado.

Cualidades De Un Programador De Software Industrial

Después de haber diseñado, desarrollado e implantado una importante cantidad de proyectos, tras haber montado y desmontado múltiples equipos, vas aprendiendo cuales son las características que deben tener los programadores de software industrial para que cada proyecto sea un éxito.

La lista puede ser tan larga como la carta a los Reyes Magos, pero debes tener en cuenta que cuanto más pides, más deberás pagar por ello y más difícil de encontrar será. Esto es como cuando te compras un coche, cuantos más extras pides, más asciende el precio. Pero lo que está claro es que hay una versión básica (lo que entendemos por coche) que te permite desplazarte de un lugar a otro.

A la hora de definir el perfil de tu equipo, deberás empezar por definir la versión básica, es decir, las aptitudes y actitudes mínimas que convierten a la persona en un buen candidato. Luego añádele los extras y paga por ellos.

Dicho esto, pasemos a analizar las cualidades que deberán tener los miembros de tu equipo de software industrial. Según Larry Wall, creador del lenguaje Perl, todo buen programador debe tener las siguientes cualidades:

Pereza. Es la cualidad que te hace realizar un gran esfuerzo para reducir el total del gasto energético. Te hace escribir programas que ahorran trabajo y que otras personas encuentran útiles, y documentar lo que escribes para no tener que responder muchas preguntas sobre él.

Impaciencia. La ira que se siente cuando el ordenador se está volviendo perezoso te hace escribir programas que, no solo reaccionan a tus necesidades, sino que se anticipan a ellas, o al menos lo pretenden.

Soberbia. La soberbia y el orgullo desmesurado es la cualidad que te hace escribir y mantener programas de los cuales otras personas no puedan decir nunca cosas negativas ni encontrar ningún fallo.

Sea cual sea el perfil del programador (backend o frontend) vas a necesitar que sean ordenados, metódicos y meticulosos para que la calidad de su trabajo quede garantizada, pero, además, deberían contar con las siguientes cualidades:

Resiliencia. Durante las fases de puesta en marcha y puesta en servicio necesitarán resiliencia para hacer frente al estrés, afrontar las dificultades y ser capaz de tomar decisiones inteligentes y rápidas.

Simplicidad. Los problemas tienen muchas posibles soluciones, pero siempre es mejor optar por la más simple, siguiendo el principio KISS (Keep It Simple Stupid!)

Proactividad, Iniciativa y Dinamismo. Son cualidades muy necesarias en obra para anticiparse a los problemas y controlar situaciones.

La Pasión y la Curiosidad son las cualidades que les harán mantenerse al día de los cambios tecnológicos y subirse a la rueda de la mejora continua.

Comunicación y Sociabilidad. Al contrario de lo que mucha gente piensa, el programador no puede ser solitario y hermético. Debe trabajar en equipo y eso significa compartir conocimientos, saber transmitir información de manera clara y concisa y saber comunicarse con otras personas que no pertenecen a su área tecnológica. Obviamente, cuando está programando necesita concentración y algunos de ellos lo logran escuchando música para evadirse de los ruidos del entorno.

Por último y no menos importante, la persona debe abrazar la movilidad como una condición sine qua non. Este trabajo te obliga a viajar y eso, para mí, es un valor añadido, pero también arruina tu vida social. Cuando le preguntas a alguien si le gusta viajar, casi siempre obtienes una respuesta afirmativa, pero cuando le matizas que puede que tenga que viajar el día que se casa su amigo, o que no podrá seguir siendo entrenador del equipo infantil de no sé qué deporte, las cosas ya no son tan fantásticas. Pon especial atención a este aspecto porque es una de las cuestiones principales que causan Burnout (síndrome del trabajador quemado) y, en consecuencia, pérdida de talento.

Espero que el contenido te sea útil, ya seas programador de software industrial en búsqueda de empleo como si eres responsable de la creación de un equipo de desarrollo.

Si crees que puede ayudar a otros, no olvides compartirlo en redes sociales.

SoftInd Tool Box

¿Dispuesto a rentabilizar tu negocio?

"

Al suscribirte también me estás autorizando a enviarte contenidos sobre software industrial de tu interés. Respeto tu privacidad y no hago spam. Conoce mi Política de Privacidad . 🙂

Los secretos del Software Industrial

Únete a Nuestra Comunidad

Colaboración

Accede al grupo privado de facebook y empieza a compartir conocimiento con otros empresarios como tú.

Sumérgete en el Blog

Pin It on Pinterest

Share This
Software Industrial Logo

¿Listo para hacer el cambio?

Únete al clan y accede a recursos, guías y tutoriales sólo para suscriptores

¡Bienvenido! Revisa tu correo para obtener las instrucciones de acceso