Escribir
en aislamiento es cómodo, pero suele ser el camino más rápido para
inyectar deuda técnica silenciosa en los cimientos de tu proyecto.
A
lo largo de mis más de 15 años diseñando y escalando plataformas, he
comprobado que el límite técnico de un sistema rara vez es el lenguaje.
El verdadero cuello de botella es la falta de retroalimentación
temprana.
Mentorizar equipos y debatir
enfoques en los meetups de nuestra comunidad me ha dejado una gran
lección: el crecimiento exponencial ocurre cuando te ves obligado a
justificar tu lógica frente a otros colegas.
Hacer
una revisión técnica va mucho más allá de cazar errores de sintaxis.
Implica trazar rutas de contingencia para anticipar cómo esa pieza de
software afectará la alta disponibilidad cuando la carga operativa se
multiplique.
Para documentar y
socializar estos procesos de refactorización colectiva, recopilé varios
de estos debates en un proyecto open source (https://github.com/pixelead0/aprendiendo-pythonCDMX).
A
quienes lideran áreas tecnológicas o participan activamente evaluando
pull requests, ¿cuál es ese anti-patrón de diseño que siguen encontrando
una y otra vez durante sus revisiones?
El desarrollo de software (al igual que la música, la escultura o la pintura) es una actividad creativa y, hasta si se quiere, artística. Cuando un músico escucha una melodía que acaba de componer o cuando un escultor retoca el último detalle de su obra maestra, está ante un logro personal, pero que fue hecho pensando en los demás. Está ante el fruto de su trabajo, que tuvo que realizar para pasar de una idea o modelo que estaba solo en su imaginación, a algo perceptible por los otros. Y ese logro causa una gran satisfacción. El desarrollo de software (al igual que la música, la escultura o la pintura) es una actividad creativa y, hasta si se quiere, artística. Es una actividad en la que una persona (el programador) debe plasmar una idea en un programa que alguien usará luego. Y es muy probable que esa idea sea algo totalmente novedoso, algo que nadie antes ha visto. Y ver esa idea traducida en software produce una sensación que únicamente un programador puede entender...
Comentarios