ingenieria analitica

¿Interesado en Ingeniería Analítica? Esto es lo que puede esperar.

La nueva «superpotencia» analítica está en todas partes. Pero, ¿quién debe hacer la transición? ¿Y cómo?

Hace unos años, Michael Kaminsky fue a Recursos Humanos para tratar de convencer a su empleador de que creara un nuevo puesto. Un paso clave en el proceso de inteligencia comercial era perderse rutinariamente en las grietas y necesitaban formalizar la propiedad.

Aquí estaba el problema: el equipo de análisis que lideraba Kaminsky iría al lado de la ingeniería de datos y necesitaba apoyo para construir canalizaciones para cualquier pregunta de BI en la que estuvieran trabajando. Pero la ingeniería de datos tenía sus propias prioridades (muy diferentes). Se centró en preocupaciones de infraestructura más grandes en torno a la ingesta y el almacenamiento. Cuando Kaminsky se acercaba a la ingeniería de datos para, por ejemplo, construir un mejor modelo de valor de por vida del cliente, chocaba contra un muro de resistencia. 

“Dirían, ‘No quiero hacer eso. No haré eso.’ Y no lo harían”, dijo.

Kaminsky sospechaba que su experiencia no era única. “Creo que hay muchos foros donde eso es cierto”, dijo. “Hay un equipo de ingeniería de datos a cargo de una canalización de Kafka, moviendo datos de producción del punto A al punto B, y no están interesados ​​y no quieren trabajar en nada que involucre la lógica comercial”.

Kaminsky consiguió su deseo. El título del nuevo rol, ingeniero de análisis, aún no se usaba mucho, pero era la elección correcta. Habló de los conocimientos de desarrollo de software requeridos por el trabajo y subrayó que su enfoque era el análisis, no las plataformas de transmisión de datos.


¿Qué es la ingeniería analítica?

La ingeniería de análisis se refiere al rol o conjunto de habilidades dedicadas a transformar datos en conjuntos de datos limpios y confiables para el análisis y aplicar las mejores prácticas de ingeniería de software, como el control de versiones y la integración continua, al código de análisis y las canalizaciones de datos.

En el mundo más amplio, el rol continúa evolucionando y varía un poco según la organización, pero, en términos generales, los ingenieros analíticos son responsables de transformar los datos en conjuntos de datos limpios y precisos para que los utilicen los analistas de datos u otros usuarios finales. Eso también significa aplicar las mejores prácticas de ingeniería de software al código utilizado para construir y alimentar esos conjuntos de datos. Así como los desarrolladores administran los cambios en el código fuente a través de un repositorio centralizado, también lo hacen los ingenieros analíticos para el código analítico.

Hoy en día, la ingeniería analítica se usa mucho. (Kaminsky desempeñó un papel, ayudando a concretar el concepto en una publicación de blog popular de 2019 ). El rol ha proliferado en muchas empresas y ha generado un debate significativo en los círculos de datos, donde ha sido defendido como un «superpoder » transformador y preocupado como un preludio potencial. a enfatizar demasiado las habilidades técnicas.

Al mismo tiempo, los recursos no han seguido el ritmo del crecimiento del rol. Una opción es el curso autoguiado que ofrece dbt, una de las herramientas fundamentales en ingeniería analítica. (Dbt se usa para transformar datos. Es un editor de texto de línea de comandos que compila el código en SQL y luego lo ejecuta en el almacén de datos). También está el proyecto de la tienda Jaffle y el curso dbt «desde cero» de Udemy . Aún así, el ecosistema no es robusto en comparación con el de la codificación o la ciencia de datos.

Eso llevó a Kaminsky y Claire Carroll, quienes también ayudaron a definir e incorporar el rol mientras trabajaban como gerente de la comunidad e ingeniero analítico en dbt Labs, a lanzar Analytics Engineering Club, un nuevo programa de mejora de ocho semanas para enseñar el conjunto de habilidades requerido.

Esto es lo que su experiencia en la configuración de la ingeniería analítica y la creación de uno de sus primeros recursos educativos importantes puede decirles a las personas que sienten curiosidad por hacer la transición. 

Analytics se parece cada vez más a la ingeniería de software

Como se mencionó, la ingeniería analítica aún está tomando forma. Por ejemplo, Holistics Blog señaló que la visión de Carroll difiere ligeramente de cómo Spotify implementó el rol. Pero una característica común en todos los ámbitos tiene que ver con las herramientas. Junto con dbt, las plataformas de almacenamiento como Snowflake y BigQuery, las herramientas de ingestión como Fivetran y Stitch, y las plataformas de BI como Looker, Mode y Chartio llegaron a penetrar en la «pila de datos moderna». Juntos, cambiaron la naturaleza de las funciones de datos en muchas organizaciones.

Dbt democratizó la transformación de datos para los analistas, que ya no tenían que depender de los ingenieros de datos centrados en Kafka, a veces malhumorados, del ejemplo de Kaminsky para encabezar las canalizaciones. Al ser una herramienta de línea de comandos, también enfatizó aún más la codificación.

A medida que el análisis comienza a parecerse más a la ingeniería de software, la necesidad de comprender las pautas de ingeniería establecidas se vuelve más importante. Carroll señaló en una publicación de mayo que su equipo requería que las personas verificaran sus consultas SQL en los repositorios de git para administrar los cambios de código, y señaló que «hay mucho terreno entre escribir en una web [entorno de desarrollo integrado] y dominar el control de versiones».

«Si está creando software de producción y no tiene experiencia en ingeniería de software, hay muchas maneras de dispararse en el pie… porque no está utilizando las mejores prácticas con las que la mayoría de los ingenieros de software están familiarizados», dijo. Kaminsky.

Por eso es importante que aquellos interesados ​​en la ingeniería analítica se sientan cómodos con cosas como el control de versiones y la navegación de línea de comandos. Esos también son en lo que los estudiantes de AEC se enfocarán primero: «cosas básicas que muchos ingenieros de software dan por sentado y que [los recién llegados] encuentran increíblemente intimidantes», dijo Kaminsky.

Otras mejores prácticas de software que los ingenieros analíticos deben conocer en última instancia incluyen pruebas unitarias y pruebas de integración. Así como los ingenieros de software prueban pequeñas secciones o unidades de código, los ingenieros analíticos deben asegurarse de que las transformaciones de datos individuales se comporten como se espera. Y al igual que sus contrapartes de software que verifican que las integraciones de componentes individuales funcionen juntas como un todo, los ingenieros de análisis se asegurarán de que cualquier nueva tabla o transformación funcione bien con el resto de una canalización de datos.

Estos, junto con la documentación y el monitoreo optimizados, son las «barreras protectoras» de mejores prácticas que evitan que las actualizaciones descarrilen las canalizaciones y, si algo sale mal, permiten que los equipos se retiren a versiones más antiguas y seguras, como los ingenieros de análisis de Nubank, Ariane Hoffenberg y João Pedro escribió en una publicación reciente.

Relacionado: 5 comandos de Git que no reciben suficiente publicidad

Espere un acceso limitado a los recursos y la tecnología

El acceso puede ser un desafío para aquellos que intentan hacer la transición a la ingeniería analítica. Es posible que incluso las personas dentro de un equipo de datos no puedan adquirir conocimientos importantes internamente debido a la velocidad y la estructura de las operaciones.

“Siempre hay gente que quiere números e informes en una empresa, y estás en un estado tan defensivo y reactivo, que a veces no tienes la oportunidad de dar un paso atrás y aprender a hacer las cosas de la manera correcta. – dijo Carroll.

Las personas que intentan realizar las tareas que haría un ingeniero de análisis (obtener conjuntos de datos impecables para los analistas, ejecutar el control de versiones y la integración continua en el código de análisis) generalmente no tienen muchos mentores con los que interactuar, a diferencia, por ejemplo, de los equipos de ingeniería de software. , que suelen tener bancos más profundos y varios colaboradores de alto nivel.

“Los equipos son muy pequeños, si es que existen. … Muchas veces, los ingenieros analíticos realmente lo descubren por sí mismos en el sistema de producción”, dijo Kaminsky. “Y realmente no hay nadie en la organización que pueda responder una pregunta”.

Pero aquellos que tienen que buscar fuera de su empleador para ser competentes también deben evitar los recursos que dependen de conjuntos de datos limpios artificialmente. Es importante encontrar datos de una manera más realista de lo que los estudiantes suelen ver en los bootcamps: piense en datos desordenados, en varias tablas diferentes, en BigQuery; datos no limpios, en una sola tabla y archivos CSV. 

“Tendrá que hacer una cierta cantidad de transformación, pensar en los datos, cómo están estructurados y cómo eso se relaciona con la pregunta que está tratando de responder”, dijo Kaminsky sobre los conjuntos de datos que los estudiantes encontrarán en AEC.

¿Quién debería convertirse en ingeniero analítico?

Ni Kaminsky ni Carroll llegaron a la ingeniería analítica como desarrolladores de software, ya que pasaron al rol de ciencia de datos y análisis de datos, respectivamente. Ese parece ser el camino tomado por muchos, lo que puede ser lo mejor. 

“Hay beneficios que se derivan de tener antecedentes no relacionados con la ingeniería”, dijo Kaminsky. “Creo que muchas de estas personas aportan perspectivas comerciales realmente sólidas y una gran capacidad para trabajar con datos”.

En su publicación de 2019 que ayudó a definir la ingeniería analítica, Carroll ofreció una serie de preguntas que ilustraban el tipo de problemas que preocupan a los ingenieros analíticos. Incluyeron consideraciones como cómo responder a más preguntas de inteligencia empresarial con menos tablas y cómo hacer que las convenciones de nomenclatura para las tablas sean lo más directas y comprensibles posible.

En otras palabras, los ingenieros analíticos son personas que realmente se preocupan por optimizar la transformación de datos y preparar conjuntos de datos de la manera más eficiente posible. Las mejores prácticas de ingeniería de software pueden (y deben) aprenderse, pero una curiosidad innata sobre ese tipo de desafíos es probablemente más importante.

Por supuesto, las personas con un interés natural en la ingeniería de software a menudo se encuentran a la deriva hacia este ámbito. Mitchell Silverman, un ingeniero analítico de Spotify, le dijo a Dataform que sus ingenieros analíticos tienden a ser personas que «solían ser analistas o científicos de datos que, por cualquier motivo, terminaron metiéndose más en la ingeniería de software y haciendo algún trabajo de back-end, y con el tiempo han construido mejorar el conjunto de habilidades”.

Pero incluso alguien que inicialmente desconfíe de esos aspectos más técnicos puede tener éxito, como “un analista que sabe cómo escribir el SQL para responder a una pregunta como ‘¿Cuál es mi ingreso mensual?’ pero se siente intimidado por la línea de comandos o git”, como escribió Carroll en una publicación de blog reciente.

Al mismo tiempo, las personas que buscan hacer la transición a la ingeniería analítica deben tratar de trabajar en conjunto con su empleador para determinar si es una buena opción y establecer mejor ese conocimiento en su trabajo. Se alentará a los estudiantes de AEC, por ejemplo, a trabajar con sus empleadores para instalar los programas necesarios en sus tiendas, «para que puedan mapear continuamente a su propio entorno de trabajo», dijo Kaminsky.

¿Cuáles son algunas señales de que su equipo de datos podría beneficiarse al agregar uno o más ingenieros analíticos? Considere la salida y el tamaño. Si los informes de inteligencia comercial o el «análisis profundo» rutinariamente demoran más de lo previsto, eso es una indicación, dijo Andrés Recalde, director de datos y análisis de Banza, en una charla a fines del año pasado.

Aún así, si no se espera que un equipo de datos crezca hasta un tamaño en el que tenga sentido una especialización significativa, eso puede no ser suficiente para necesitar un equipo de ingeniería de análisis. Sin embargo, podría tener sentido para una organización mediana o empresarial que tiene más de 10 personas enfocadas en los datos, dijo.

Relacionado: Data Fabric: lo que necesita saber sobre el próximo gran avance

¿Rol o Habilidad?

Por supuesto, si una organización está luchando con informes lentos o desordenados, aún necesita establecer sus bases de calidad de datos, independientemente del tamaño del equipo. Entonces, ya sea que una empresa considere la ingeniería analítica como un rol o simplemente como una competencia, aún debe pensar mucho sobre cómo garantizar la calidad del código para todas sus canalizaciones.

Los ingenieros de análisis tienden a administrar los diccionarios de datos y ayudan a reforzar los estándares de ingeniería de software en todo el equipo de datos. Cuanto más alguien pueda concentrarse en esa especialización, más fuertes se vuelven los efectos posteriores. Eso podría ser un punto a favor de un rol de ingeniería de análisis dedicado.

“El salario de los analistas y científicos de datos sigue aumentando, así que si puede contratar a una persona que pueda hacer que todo su equipo de cinco a 10 analistas o científicos de datos sea mucho más efectivo al incorporar una perspectiva de ingeniería de software a las herramientas que están creando se paga solo, por lo general”, dijo Kaminsky.

Aún así, mucho más depende de si el trabajo se hace o no que de qué sombrero cae. 

“No creo que importe mucho si se trata de un título de ingeniero de datos o de ingeniero de análisis, o quién está haciendo el trabajo, pero es importante reconocer que alguien debe hacerlo”, dijo Kaminsky.