CronometroSos un programador. Eso signifca que tenés una presión tremenda por trabajar rápido. Hay fechas que cumplir. Hay bugs que arreglar antes de la gran demo. Hay calendarios productivos a los que llegar. Y tu trabajo depende de cuán rápido vayas y qué tan confiable seas para cumplir las planificaciones. Y esto significa que tenés que tomar atajos, compromisos, ser rápido y desprolijo.

Que estupidez.

Si, me escucharon. ¡Que estupidez! No existe el "rápido y desprolijo" en el software. La desprolijidad significa lentitud. La desprolijdad es la muerte.

El código malo hace que todos sean lentos. Vos lo sabes. Yo lo sé. Alguna vez, todos nos vimos retrasados por mal código. Nos volvimos lentos con mal código que escribimos hace un mes, hace dos semanas, incluso ayer. En el software hay una cosa seguro: si escribimos código malo, vamos a ir lento. Y si el código es muy malo, es probable que directamente nos detengamos.

La única forma de ir rápido es trabajar bien.

Y esto es simple sentido común. Podría citar frase tras frase al respecto. Cualquier cosa que vale la pena hacer, vale la pena hacerla bien. Un lugar para cada cosa, y cada cosa en su lugar. Lento y constante ganan la carrera. Y así, y así. Tenemos siglos de sabiduría que nos dicen que apurarse es mala idea. Y sin embargo, cuando la fecha se acerca...

La habilidad de los profesionales es su capacidad para tener intención. Los profesionales no se apuran. Los profesionales comprenden el valor de la prolijidad y la disciplina. Los profesionales no escriben mal código - nunca.

Equipo tras equipo caen en la tentación de apresurar las cosas en su código. Equipo tras equipo usaron largas horas de sobreesfuerzo en un intento de llegar con su producto al mercado. Y equipo tras equipo destruyeron los proyectos en el intento. Los equipos que empiezan a empiezan a apresurarse y hacer milagros, a menudo terminan arrastrándose en lentitud después de unos meses. Su código está tan mezclado, tan confuso, tan acoplado, que nadie puede hacer un cambio sin romper otro ocho módulos. Nadie puede tocar un módulo sin tener que tocar otros veinte. Y cada cambio introduce un nuevo efecto secundario impredecible, junto con más bugs. Las estimaciones se estiran de días a meses. El equipo se paraliza en una lentitud mortal. Los gerentes se vuelven locos, y los desarrolladores comienzan a buscar trabajos nuevos.

¿Y qué pueden hacer los líderes? Pueden gritar y gritar sobre que "hay que ir más rápido". Pueden apresurar más las fechas, para causar una sensación de urgencia. Pero al final, lo único que resulta es contratar más programadores. E incluso esto no funciona siempre, porque las nuevas personas van a terminar agregando más problemas por encima del problema viejo. En poco tiempo, el equipo volvió a estar lento, en una marcha continua e inexorable hacia la Productividad Cero.

¿Y quien es el responsable del desastre? Los programadores. Vos. Yo. Nos apresuramos. Hicimos lio. No mantuvimos la prolijidad. No actuamos profesionalmente.

Si queremos ser profesionales, si amamos esta profesión, entonces no debemos apresurarnos. Debemos mantener prolijo al código. Tan prolijo que casi no necesite comentarios.

Traducido de Speed kills, por Uncle Bob.

Inspiración.

"Si tú tienes una manzana y yo tengo una manzana e intercambiamos las manzanas, entonces tanto tú como yo seguiremos teniendo una manzana cada uno. Pero si tú tienes una idea y yo tengo una idea, e intercambiamos las ideas, entonces ambos tendremos dos ideas"

Bernard Shaw