La necesidad de saber programar para un profesional del dato
Febrero de 2022 El debate sobre si es necesario saber programar para un profesional del dato lo podrÃamos asimilar al de si es más importante la teorÃa o la práctica. Desde nuestro punto de vista, la teorÃa sin práctica nos arrojarÃa irremediablemente a la rutina, mientras que la práctica sin teorÃa acabarÃa presentando una realidad utópica, tal como avanzaba Kant en 1793: «La práctica sin teorÃa es ciega y la teorÃa sin práctica es estéril». Anticipamos, por tanto, una respuesta con solución salomónica.Junto al dilema de la teórica frente a la experiencia, se plantea la duda sobre cuán ancha debe ser la base de conocimientos de un profesional del análisis de datos. ¿Debe ser tan ancha que abarque todos los conocimientos relacionados con la actividad de análisis de datos, aunque sean tangenciales o pudieran ser reemplazados por utilidades, o algunas actividades deben dejar su hueco a una mayor especialización en los conocimientos centrales del análisis de datos? Es un debate que trata fundamentalmente sobre la transversalidad frente a la especialización.
¿Qué es un profesional del dato?
De acuerdo con la estructuración de las actividades profesionales y los itinerarios formativos relacionados con los datos, podemos distinguir cinco perfiles:
- Analista de negocio o analista de datos.
- CientÃfico de datos.
- Ingeniero de datos.
- Arquitecto de datos.
- Director de datos o CDO por sus siglas en inglés (chief data officer).
Para los ingenieros de datos y los arquitectos de datos los conocimientos de programación son imprescindibles en la medida que sus actividades están ligadas fundamentalmente con la ingesta, exploración, limpieza y transformación y procesamiento de los datos. Son además los responsables de diseñar las estructuras y procesos que deben facilitar el acceso a los datos por parte del resto de profesionales.
Para las actividades de transformación y procesamiento, análisis y visualización de datos que realizan los cientÃficos de datos -entre otras, la identificación de datos relevantes a partir de bases de datos, internas o externas, estructuradas y no estructuradas, y el desarrollo de modelos analÃticos basados en programación estadÃstica y aprendizaje automático-, son imprescindibles los conocimientos de programación a fin de desarrollar estas tareas de forma efectiva y eficiente, pero, especialmente, para poder desarrollar modelos de análisis novedosos e innovadores.
Al margen de esta reflexión dejarÃamos al director de datos ya que, como responsable máximo de los datos de una empresa, tanto en el ámbito tecnológico como en su aplicación al negocio, incluyendo la seguridad, no parece que la actividad de programación deba estar entre sus prioridades, al menos si hablamos de empresas en las que existe la posibilidad de aplicar una amplia segregación de funciones, aunque por su formación de base en ingenierÃa o matemáticas sea una competencia que conozca.
Por tanto, la respuesta a la pregunta formulada quedarÃa centrada en si la programación debe ser una competencia básica del analista de negocio o analista de datos, toda vez que su principal función en la empresa es interpretar el conocimiento que se esconde en los datos, transformar al análisis de datos en planes de acción, a fin de elaborar estrategias de negocio y de respuesta para promover la transformación digital de las relaciones de la empresa con sus clientes (go digital), aprovechando las tendencias o propensiones de los consumidores y los cambios en los patrones de consumo, o para facilitar la transformación digital interna (be digital), optimizando y automatizando/robotizando los procesos productivos. En este sentido, el analista de negocio o analista de datos también se convierte en un guÃa u orientador para el cientÃfico de datos.
¿Programar o no programar?
Existen innumerables beneficios de aprender a programar entre los que cabrÃa mencionar los que tienen que ver con ampliar los horizontes de una carrera profesional. No obstante, para un analista de datos cuyas perspectivas son interesantes y exitosas, habrÃa que presentarlos en términos de mayor comprensión de los razonamientos lógicos que se esconden tras los programas que elaboran los cientÃficos de datos u otros profesionales, las mayores posibilidades de creación y, por tanto, de obtener reputación, asà como de capitalizar los derechos de autor o la independencia de los otros eslabones de la cadena anterior, en particular, del cientÃfico de datos.
Pero frente a las motivaciones mencionadas, serÃa necesario presentar una tendencia global que va a la contra: No Code / Low Code. La revista Forbes definió en 2020 el No Code / Low Code como la tendencia más disruptiva de 2021. La esencia de esta tendencia es la aparición de una nueva categorÃa de profesionales dedicados a ensamblar software en lugar de desarrollar código al estilo de las piezas de un Lego. Lo que Forbes denominó un programador ciudadano (citizen developer) que, con una formación mÃnima o nula en codificación, podrÃa crear nuevas capacidades de software.
Las llamadas BigTech asà como otras tecnológicas, incluso organizaciones sin ánimo de lucro, están introduciendo sus plataformas de diseño de aplicaciones y webs, tanto para público adulto y profesional como para público infantil: Appsheet (Google), Caspio, Code.org (Microsft), Honeycode (Amazon), Kalipso Studio (Sysdev), Kissflow Low Code, MailerLite, MyGet, Outgrow, Power Apps (Microsft), Retool, Scratch (MIT, Fantional Scence Fundation, Siegel Family Endowment y LEGO Foundation), Strikingly, Webflow, Ycode, Zapier0030895 son algunos ejemplos de esta nueva tendencia global.
Además, en el ámbito del dato, existen diversas plataformas, ofrecidas tanto por grandes tecnológicas como por startups de nicho, que ofrecen soluciones No Code / Low Code para extraer, analizar o modelar datos: Google Cloud AutoML, DataRobot, Octoparse, Graphext o expert.ai.
No pensemos, en cualquier caso, que este movimiento No Code / Low Code va dirigido exclusivamente a usuarios (el mencionado programador ciudadano) que no tienen conocimientos en programación y que buscan introducirse en las ventajas de la economÃa digital y el uso de los datos sin la ayuda de un programador tradicional, sino también para los profesionales del desarrollo de aplicaciones que buscan plataformas más eficientes, productivas, con bajos tiempos de respuesta y elásticas.
Parece, por tanto, que el camino ideal no serÃa ni afirmar ni rechazar el enunciado de la pregunta sino establecer una categorÃa intermedia, una combinación de lo mejor de ambos mundos, que serÃa la del profesional del dato-programador ciudadano (citizen developer data profesional).
No obstante, para ser un ensamblador efectivo es necesario entender la lógica y las reglas que hay detrás del diseño que se está realizando, lo que inclina un poco la balanza de esta solución salomónica hacia el conocimiento de las metodologÃas o técnicas básicas de programación.
El punto de equilibrio óptimo
En conclusión, parece que tiene sentido que los cientÃficos de datos, cuya función principal es la extracción de conocimiento a través de los datos (patrones de comportamiento, hábitos de consumo, tendencias de cambio, etc.) mediante la construcción de algoritmos que faciliten la extracción y organización de la información, se nutra de capacidades y conocimientos matemáticos, estadÃsticos y de programación. Mientras que los analistas de negocio o analistas de datos -cuya función principal es la interpretación del conocimiento que se esconden en los datos para diseñar estrategias de negocio y estrategias de respuesta dentro de una empresa-, se pueden nutrir también de conocimientos estadÃsticos y de programación, pero sobre todo de capacidades de resolución de problemas, anticipación de soluciones de orientación al resultado y, si es posible, del conocimiento del sector económico en el que desarrolle su actividad y/o de sus procesos de producción, si bien, la capacidad de adaptación a cualquier sector serÃa una capacidad igualmente bien valorada.
En este sentido, en nuestra opinión, el punto de equilibrio serÃa un analista de negocio o analista de datos con capacidad de manejar las plataformas de programación No Code / Low Code para aplicarlas con éxito a proponer estrategias de negocio y de respuesta que permitan crear valor para su empresa, en lugar de poseer conocimientos profundos de programación.
Por otro lado, la capacidad de utilizar las mencionadas plataformas de programación permitirÃa compatibilizar una elevada especialización dentro de la cadena de valor, enfocarse a la elaboración de estrategias, con una razonable transversalidad que fortalecerÃa el valor y la carrera profesional de este profesional.
Para finalizar, nos gustarÃa señalar que Forbes estimó que en los próximos años en torno al 65% de los nuevos desarrollos se realizarán con tecnologÃas No Code / Low Code, por lo que es muy posible que esta nueva categorÃa profesional tenga también un futuro prometedor.
En definitiva, parece sensato requerir conocimientos de programación para profesionales del dato cuyas funciones tengan que ver con el procesamiento, transformación y análisis del dato en sentido amplio (ingenieros de datos, arquitectos de datos y cientÃficos de datos). Mientras que, para los analistas de negocio o analistas de datos, también profesionales del dato pero cuya función principal es utilizar el dato para impulsar acciones dentro de su empresa, estos conocimientos serÃan complementarios o se podrÃa sustituir eficazmente por las utilidades que ofrecen las plataformas de programación No Code / Low Code.
BibliografÃa
The Most Disruptive Trend Of 2021: No Code / Low Code. Revista Forbes. 24 de noviembre de 2020. - Dahr V (2012). Data Science and Prediction.
- Kant, I (2002). TeorÃa y Práctica. Editorial Tecnos, del original Kant, I. (1793). Ãœber den Gemeinspruch: Das mag in der Theorie richtig sein, taugt aber nicht für die Praxis.