La importancia de la humildad en el desarrollo de software

humbletoolsmith.com:

Con demasiada frecuencia, nos enteramos de un error de software importante. Los errores de las grandes empresas son noticia de primer nivel. Los errores de las pequeñas empresas parecen igual de comunes. Como programadores, todos estos errores nos cuestan tiempo y dinero. Sabemos que necesitamos mejorar, pero no sabemos cómo.

Como industria, hemos intentado resolver este problema con procesos y herramientas cada vez más complejos, y técnicas sofisticadas. Pero Edsger Dijkstra propuso una solución diferente y más sencilla.

Dijkstra fue uno de los pioneros del desarrollo de software. Realizó importantes contribuciones en compiladores, sistemas operativos y sistemas distribuidos. Pero no afirmó que los avances en estas áreas llevarían a un software más fiable. Pensó que lo que marcaría la diferencia más significativa era la humildad.

Así se aplica en la disciplina:

Para los desarrolladores, el consejo de Dijkstra de ser humildes se puede aplicar de muchas maneras. La aplicación más directa es escribir código lo más simple posible. Esto significa evitar trucos ingeniosos. Significa usar la abstracción para simplificar el código, no para complicarlo. La simplicidad mejora la mantenibilidad del código a lo largo de la vida de la aplicación.

Otra forma en que la humildad beneficia a los desarrolladores es que nos motiva a escribir. Hay un viejo proverbio chino que dice: «La tinta más pálida es más fiable que la memoria más poderosa». No debemos dar por sentado que recordaremos por qué tomamos una decisión de cierta manera meses después.

La humildad también nos ayuda a hacer preguntas cuando es necesario. Necesitamos reconocer cuándo nos atascamos intentando resolver un problema. En esas situaciones, debemos ser lo suficientemente humildes como para pedir ayuda, priorizando la necesidad de ofrecer una buena solución por encima de nuestro ego. Para los desarrolladores experimentados, esto puede significar estar dispuestos a pedir ayuda a desarrolladores con menos experiencia.