R. Chavarria's Blog

Proud of developing software, proud of being an Engineer

The Software Craftsman

de Sandro Mancuso

Por qué lo he leído

Me encanta programar, me encanta escribir software, escribir código. Me encanta resolver problemas, puzles. Me encanta la tecnología. Y me encanta hacer las cosas bien, poner cariño en lo que hago. La ideología de Software Craftsmanship va de todo esto. Y me gusta la metáfora. Mi padre es carpintero, artesano, y me gustaría poner el mismo cuidado en mi trabajo que él pone en el suyo. La excelencia técnica es lo que más me gusta del desarrollo software.

Qué esperaba

Me esperaba un libro donde se hablara de buenas prácticas, de ningún lenguaje de programación en particular, si no de todos en general. De qué significa ser un artesano, de dedicar tu vida a una profesión, de hacer lo que te gusta, de pasión, de profesionalidad.

Esperaba consejos sobre qué hacer, qué no hacer, a quién considerar un modelo. ¿Una guía paso a paso de cómo ser considerado un craftsman? Nooo, pero sí muchas acciones que me acercaría a ello.

Qué encontré

Todo eso y más. Aparte de todo lo esperado, Sandro tiene muchísimas batallitas que contar. No solamente encontré conceptos ampliamente aceptados, también encontré multitud de experiencias personales de una persona que ha trabajado y trabaja muy duro para hacer de la profesión una profesión mucho mejor.

Un capítulo interesantísimo es el que trata sobre la historia del Software Craftsmanship.

Conclusiones

Sandro ha escrito un libro espectacular y soberbio. El libro cubre el concepto de Craftsmanship de arriba a abajo y está ejemplificado con experiencias personales. El libro está recomendado por muchísimo profesionales muy valorados en la industria del software, y con razón. Es un placer leerlo.

De acuerdo, el tema me interesa, y me apasiona, así que yo encuentro normal que el libro me haya encantado. Lo recomendaría a todos aquellos que estén preocupados por escribir software de calidad, para aquellos que les preocupe los aspectos técnicos del desarrollo del software.

Qué he aprendido

Escribir temas técnicos en tu blog ayudarán a quien venga después de ti. Porque encontrarán los conceptos descritos con los mismos ojos que tienen ellos ahora. Incluso si programadores más experimentados han escrito sobre el tema anteriormente, siempre merece la pena escribir sobre lo que estamos aprendiendo en este momento.

Es muy fácil decir que un software está muy mal escrito. Es más fácil quejarse, o incluso reírse del autor. Pero la pregunta es: eres lo suficientemente bueno como para hacerlo mejor?

¿Qué motiva al trabajor del conocimiento? Autonomía, maestría y propósito.

Frases que me gustaría recordar

Sin excelencia técnica, cualquier proyecto software será una experiencia dolorosa, frustrantte y cara.

Las metodologías ágiles ayudan a las empresas a hacer lo correcto, mientras que Software Craftsmanship ayuda a los programadores y empresas a hacer las cosas de la forma correcta.

Software Craftsmanship es poner toda la responsabilidad, profesionalidad, pragmatismo y orgullo de vuelta al desarrollo de software.

Descubrimiento deliberado: hay que intentar expandir el conocimiento que tenemos en lo que estemos trabajando, aunque creamos que lo conocemos siempre habrá algún asunto que podemos explorar. Debemos exponernos constantemente a situaciones donde podamos aprender algo nuevo acerca del contexto en el que estamos.

Incluso teniendo tiempo, algunos programadores deciden no automatizar sus tests. Esto es ser egocéntrico. Sólo piensa en sus tareas, no en el resto de la gente involucrada en el proyecto y todo el tiempo que les consumirá no tener tests.

Un código limpio y mantenible permite a los programadores ir rápido y reducir las probabilidades de introducir bugs.

¿Qué motiva al trabajor del conocimiento? Autonomía, maestría y propósito.

En lugar de decir a los demás qué hacer, los software craftsmen se sientan y trabajan con otros desarrolladores, compartiendo su conocimiento, experiencia y pasión. Los software craftsman están deseando compartir las cosas que hacen para mejorar ellos mismos.

Ser buenos en lo que hacemos, ser capaces de comunicarlo claramente, y lo más importante, ser capaces de generar confianza, son habilidades esenciales para cualquier desarrollador que esté dispuesto a liderar cambios.

Lo que distingue a grandes programadores de los mediocres es cómo hacen que el software funcione, no si el software funciona o no, si no el cómo.

Sobre craftsmanship y pragmatismo: TDD no hace que los programadores vayan más lentos. Escribir el código no es el cuello de botella. Lo que sí que lo es es aprender y dominar una nueva habilidad, práctica o tecnología.

No tengas miedo de ser viejo y seguir programando. No tengas miedo de hacer lo que te gusta.

Para muchos programadores, buscar un trabajo es solo una forma de vender sus habilidades al mejor postor. Para profesionales que están interesados en una carrera larga y próspera, un trabajo es algo más que eso. Es una inversión constante en sus carreras. Aparte de las cosas por las que se nos paga, deberíamos invertir toda nuestra dedicación, pasión, compromiso y conocimiento que adquirimos fuera del trabajo en hacer nuestro actual entorno de trabajo un lugar mejor.

Recursos relacionados

Comments