¿Qué es la artesanía de software?

¿Qué es la artesanía de software?
Photo by SwapnIl Dwivedi / Unsplash

Hace unos días leía una entrada en una revista digital sobre el porcentaje de proyectos de desarrollo que fracasaban en el mundo y es alarmante. Hablaban de casi un 90% de fracaso (te dejo este enlace similar) No puedo más que preguntarme ¿cómo puede ser tan alto el porcentaje? ¿será acaso que la falta de conocimiento o ética profesional sea la causante de esto? Esa ética que te dice que no aceptes un trabajo porque no tienes la mínima idea de lo que piden. Es esa voz que te dice que no mientas en tu C.V. Si escuchas ésta voz y la callas, estás afectando en gran manera la vida diaria de los demás (ya lo hablamos anteriormente en otro post)

¿Qué cambiaría si yo entregara un trabajo de mejor calidad? Generando mejores relaciones con los clientes y además creando buen software. De eso trata precisamente la artesanía del software. Antes que ahonde un poco más en el tema, te comparto la definición según la wikipedia y el porqué está equivocada:

is an approach to software development that emphasizes the coding skills of the software developers.

Y no sólo está equivocada. Se queda corta y sin duda ejemplificaría más a un desarrollador de software cualquiera, que a un artesano pues este último se mete de lleno en un camino para trabajar con personas (maestros) más experimentados, a veces viajando de ciudad en ciudad para trabajar con nuevos maestros y por lo tanto, conociendo nuevas herramientas y técnicas: mejorando su oficio, hasta el punto de convertirse él mismo en un maestro.

Suena muy medieval, como si fuéramos herreros buscando la mejor aleación del reino. Pero es precisamente la analogía que necesitamos. Debemos de tener la misma pasión y respeto por lo que hacemos que aquellos herreros. Encontrar nuevos lugares para aprender, y mientras buscamos la maestría de nuestro oficio ofrecer el mejor servicio y herramientas que podamos crear y no solo sentarse a "tirar" código, por que es lo que toca o porque por eso pagan la nómina.

Blacksmith is an artist making pieces of ironwork
Photo by Malcolm Lightbody / Unsplash

De eso trata la artesanía de software; de ser profesional, ético, de entregar herramientas y servicios de calidad y estar orgulloso de ello. Te diría que es más una filosofía (incluso una forma de vida) que un conocimiento técnico.

Claramente el porcentaje de proyectos que no han terminado correctamente nos reclama algo más, agile (o cualquier otra metodología de administración de proyectos) no es suficiente: nos hace falta ser profesionales. No me mal entiendas, las habilidades de codificación son importantes, pero para llegar a buen término un proyecto no solo basta generar código limpio, usar TDD y/o que el código sea eficiente. Esto va más allá. Es tener una pasión (y si no pasión, al menos respeto) por lo que haces para seguir mejorando y ofrecer mejores soluciones (técnicas y no técnicas) en tu presente y futuro como profesional del software.

¿Donde puedo aprender más?

Existen varios libros para conocer más sobre el tema:

Como último comentario, pensemos ¿qué pasaría si el día de mañana todos en mi equipo tuvieran la pasión y el respeto de hacer lo que esté en sus manos para formarse, y por ende, terminar satisfactoriamente nuestro proyecto?

Ahí te la dejo, una reflexión más filosófica que técnica.