viernes, 9 de abril de 2021

Data Engineer vs Data Scientist

Si, hace mucho tiempo (varios meses) que no escribo una entrada para este blog de Idea Falaz, aquí en esta entrada quiero compartir algo que me encuentro aprendiendo de gran utilidad para el rol que actualmente desempeño laboramente como Data Engineer. Aquí aprovecho hacer una aclaración y es que voy a compartir mi opinión y sólo una pequeña parte de lo que he podido aprender y evidenciar, no es un hecho tácito y me gustaría conocer la opionión de otras personas con respecto al tema. (escribiendo esta entrada me alejé un poco de la parte técnica, voy a escribir otra entrada para la parte técnica)

Primero quiero comentar algunas de las dificultades que se me han presentado durante el desarrollo de algunos proyectos.

Un panorama difuso entre Data Scientist y Data Engineer; esto es algo a lo que me enfrenté en los últimos 2 años. En la industria del software no existía y aún no existe (con algunas excepciones) una distinción o claridad en cuanto al role y funciones que debe cumplir una persona dedicada al Data Scientist ó Data Engineer, es más, hay personas y empresas que todavía tienen la idea errónea de que el Data Scientist es toda una profesión en la cual se le delega como funciones tódo el trabajo y esfuerzo que se debe realizar como Data Engineer, ésto es un gran error tanto para una empresa de la industria del software como para las personas que están construyendo un perfil profesional en este tipo de industria, al final esto puede ser contraproducente, para ambas partes.

Al momento de escribir esta entrada no me considero un Senior ni mucho un Luminary como Software Developer, pero considero que tengo la suficiente experiencia para determinar que soy un mid-senior, con esto en mente y a raíz de la premisa del anterior parrafo, consultando con amigos que han estado relacionados tanto directamente como inderectamente con la industria del software y después de leer varios artículos y blog posts, encontré una zona común en cuanto a las diferencias más evidentes entre el Data Scientist y Data Engineer, esto me ayudó mucho a tener un panorama un poco más claro en cuanto a cuáles son mis intereses, como también definir profesionalmente mis skills y cómo integrarme a un gran equipo interdisiplinario dedicado a la industria del software con proyectos Big Data.


Data Engineer vs Data Scientist

Responsabilidades de un Data Engineer

Empezando a definir de forma general, el Data Engineer es alguien quien desarrolla, construye, prueba y mantiene arquitecturas como bases de datos y sistemas a gran escala. Los Ingenieros de Datos operan con datos "Crudos", estos datos casi siempre, pero que en la vida real es siempre, contienen errores ya sea humanos, provenientes de máquinas o instrumentos. Los datos puede ser no válidos o contener registros sospechosos, esto se debe a que los datos no tienen un formato o contienen códigos específicos de un sistema.

Los Ingenieros de Datos necesitan recomendar, ademas deben implementar formas de mejorar la confiabilidad, eficiencia y calidad de los datos. Para hacer esto, los Ingenieros de Datos necesitan emplear una gran variedad de lenguajes y herramientas para operar en conjunto o tratar de buscar nuevas oportunidades de adquirir nuevos datos desde otros sistemas adecuados para el sistema en específico, estos datos pueden convertise en información para que posteriormente sean procesados por los Data Scientists.

Los Ingenieros de Datos deben asegurar que la arquitectura implementada sea soportada con los requisitos de los Científicos de Datos, Stackholders y el tipo de negocio a la cual sea aplicada.

Al final de este proceso el equipo de Ingenieros de Datos deben generar conjuntos de datos que deben poner a disposicion de los Científicos de Datos para el posterior modelamientos de datos, mineria de datos y producción.


Responsabilidades de un Data Scientist

Empezando a definir de forma general, el Data Scientist obtiene los datos del Data Ingeneer que son inicialmente limpiados y manipulados para poder ser operados en un flujo de trabajo de forma tal que el Científico de Datos puedan usar estos datos para desarrollar sofisticados métodos y procesos que hacen parte de modelos predictivos o descriptivos.

Los cientificos de datos necesitan tener acceso a las preguntas propuestas por la industria o el negocio en particular, para dar respuestas a estas preguntas se requiere que los Data Scientist tengan a su disposicion grandes volumenes de datos tanto de fuentes internas de la misma organización como también de fuentes externas a la organización, uno de los objetivos principales en este proceso consiste en identificar patrones en los datos.

Encontrar patrones en los datos incurre en generar un análisis para la adquisición de información que responda o no a las preguntas propuestas, deben tener habilidades para presentar informes a los stakeholders de forma clara sin tanto tecnicismo, una vez los stakeholders dan un parte de aceptación se debe asegurar que el trabajo realizado se pueda automatizar generando informes de forma recurrente ya sea diariamente, mensualmente o cada año.


¿Y ahora qué?

Bueno, pues aquí algo importante a tener en cuenta, tanto Data Engineer como Data Scientist, deberían trabajar coordinadamente, no son cómo el agua y el aciete, deben tener objetivos claros definidos al inicio de un proyecto, dado que el flujo de los procesos deben/están integrados en ambas partes.

En la vida real existen muchos inconvenientes dado que las teconologías usadas son muy variadas, en algunos casos tenemos Data Scientist expertos usando tecnologias como R, RStudio son muy buenos en eso pero carecen de conocimientos en Python y Jupyter Notebooks, contrario a algunos Data Engineers que son expertos usando estas tecnologías.

Este es un punto a tener en cuenta, la parte técnica podría convertirse en un cuello de botella en el flujo natural de los datos, en algunos proyectos he tenido la experiencia de vivir esto, por lo que buscando opciones de herramientas que permitan ambos mundos, Data Engineers y los Data Scientist, me encontré con una herramienta que actualmente me encuentro aprendiendo y espero compartir en otra entrada algunas razones por las cuales me parece interesante aprender y a tener en cuenta en futuros trabajos, esta herramienta se llama Kedro, desarrollada por el equipo de Quantum Black Labs, son lideres en la industria de los datos.



1 comentario: