Resumen
El episodio habla de buenas prácticas para desarrollar proyectos de Data Science en equipo: escribir código legible, reproducible y versionado. Los anfitriones cuentan experiencias reales de traspasos de código desordenado, de presión por entregar rápido y de proyectos que murieron por no ser mantenibles. Presentan su "Manifiesto de Programación", con valores (código resiliente, que facilita el traspaso, eficiente, flexible, listo para producción, que genera valor) y técnicas esenciales (nombres descriptivos, estructura de carpetas común, comentarios, secciones, funciones, librerías existentes, scripts modulares con input/output, evitar notebooks, IDE y control de versiones). Concluyen que hay que pedir tiempo al negocio, estimar con un factor de 2x a 3x, y recordar que el código lo leerá otra persona, por lo que hay que escribirlo con respeto.
Capítulos
- 00:00IntroPresentan el tema: buenas prácticas para proyectos de Data Science y trabajo en equipo, y la deuda técnica que suele subestimarse. Cuentan casos de heredar código ajeno inmodificable ("espagueti"), la anécdota de un team building donde 10 de 10 tenían cosas pendientes y ninguno pensaba corregirlas, la presión del negocio por entregar rápido y la importancia de saber decir que no o pedir más tiempo. Muestran un meme del jefe con paraguas frente al jefe con embudo.
- 09:35Clean CodeRecomiendan los videos de Robert C. Martin ("Uncle Bob", coautor del manifiesto ágil; serie de unas 10 horas, con un primer episodio introductorio de una hora). Defienden los nombres claros de variables para no necesitar comentarios, debaten si los comentarios se desactualizan (incluido el caso de Copilot generando código desde comentarios), y recomiendan usar rutas relativas al proyecto y no cambiar el directorio de trabajo. Un invitado cuenta su código de magíster sin control de versiones, con un nombre de archivo sin sentido.
- 17:09Valores de nuestro Manifiesto de ProgramaciónExplican que crearon un manifiesto inspirado en el manifiesto ágil, con valores y técnicas. Valores: el código es resiliente y robusto (ejemplo de procesos en Excel con pasos que solo conocía una persona), facilita traspaso y continuidad, es eficiente (usar librerías, funciones, evitar hardcodear, no reinventar la rueda), permite usar distintas herramientas y lenguajes (mezclan Python y R, mencionan Julia, y el riesgo de quedar atado a plataformas como SAS), permite pasar a producción fácilmente, sigue una cultura común, tiene estructura flexible y genera valor a la empresa. Incluyen la idea de una bitácora de análisis y cuentan el caso de un modelo en R que tardaba cada vez más al crecer los datos (hasta 30 millones de registros) y terminó muriendo. Discuten cómo estimar tiempos (regla 2x, 80/20 entre escribir y validar, incertidumbre, tener los datos a mano) y piden "dame tiempo" al negocio.
- 58:27Técnicas escenciales de nuestro Manifiesto de ProgramaciónTécnicas esenciales: nombres descriptivos (evitar i, j, k, aux, comida1/comida2; preferir legibilidad a micro-optimizaciones), estructura de carpetas común (data, docs, funciones, modelos, insights, pipelines, procesos, ambientes virtuales, reportes, sandbox, tests), comentarios que expliquen el porqué y no el qué, secciones en los scripts, uso de TODO en el IDE, funciones que hacen una sola cosa con nombres de verbo, librerías preexistentes, y scripts modulares con input y output (flujo de datos), usado en una hackatón. Critican los notebooks (metadatos, mal diff en git, código mezclado con output) y sugieren scripts `.py` con celdas `# %%`. Recomiendan conocer el IDE y muestran un historial de git con versiones, hitos y rollback, junto con commits significativos, tags y ramas (mencionan MLflow).
- 01:34:00CierreResumen de lo hablado: código legible, reproducible y versionado, valores y técnicas esenciales del manifiesto. Mensaje final: el código lo leerá otra persona, así que hay que escribirlo con respeto y hacerlo bien. Agradecen y se despiden hasta la próxima semana.