¿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 CV. 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 artículo)

¿Qué cambiaría si yo entregara un trabajo de mejor calidad?

Esa pregunta es indispensable para generar mejores relaciones con los clientes y crear software de calidad. 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.

Está equivocada. Se queda corta. 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. Ya basta de sentarse a "tirar" código, por que es lo que toca o porque por eso nos pagan.

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 todos los proyectos de software no terminados en el mundo nos reclaman algo. Agile, DevOps, Cloud y otras tecnologías y metodologías no son suficiente: nos 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:

Conclusión

Toma un momento para pensar ¿qué pasaría si el día de mañana todos en el equipo tuvieran la pasión y el respeto por hacer las cosas bien? ¿Qué cambiaría? ¿Qué tan bueno sería el proyecto?

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