He vuelto a releer este libro que me gusta bastante y me he dado cuenta de que todavía no había escrito una reseña, así que quería escribir este artículo contando mis impresiones sobre el libro.
The Software Craftsman: Professionalism, Pragmatism, Pride de Sandro Mancuso
es un libro que me gusta mucho, es de muy fácil lectura.
Creo que es un libro todo desarrollador de software debería leer ya que enfoca el trabajo de este sector desde un punto de vista diferente a la forma tradicional hasta el momento de su publicación en 2014.
¿Quién es Sandro Mancuso?
Sandro Mancuso es un artesano del software (como se define en la web de Codurance), fundador de la comunidad Software Craftsmanship de Londres.
Sandro comenzó su carrera profesional en 1996. Ha trabajado para diferentes empresas y es uno de los fundadores de Codurance.
Sandro tiene mucha experiencia ayudanfo a empresas a mejorar sus procesos de negocio aplicando la ideología de la artesanía del software y las prácticas de programación extrema. Sandro es reconocido internacionalmente y con frecuencia habla en conferencias en todo el mundo.
Acuño la metodología Interaction Driven Design que tiene similitudes con Clean Architecture.
Resumen del libro
No es un libro técnico donde vayas a ver código. Es un libro que trata sobre la profesión y de cómo pasar de un desarrollo orientado a solucionar errores hacia otro orientado a buen diseño, TDD, Extremme Programming y metodologías ágiles.
Habla sobre lo que considera erroneo en el sector como el concepto de senior en algunas empresas, como deberían comportar los desarrolladores para obtener formas más modernas de trabajar.
Sandro fomenta la idea de que los desarrolladores deben verse a sí mismos como artesanos y un oficio para toda la vida. Al igual que los artesanos, que se pasan la vida mejorando a sí mismos y a su trabajo, los desarrolladores siempre deben esforzarse por lograr una mejora continua.
Los artesanos disfrutan perfeccionando sus habilidades, mejorando, hablando y compartiendo sus conocimientos, entre otros.
Sandro indica que los artesanos deben sentirse orgullosos de su trabajo. No producen trabajos de mala calidad, ya que siempre se esfuerzan por dar lo mejor de sí mismos cuando están elaborando.
También aborda esta profesionalidad desde el punto de vista del trato con los clientes. Sandro cuenta que un buen artesano del software no tiene una buena relación con sus clientes por el hecho de hacer todo lo que se les pide.
El trabajo de un artesado del software como especialista es asesorar a clientes, entendiendo cuales son sus necesidados, y proponer soluciones alternaivas o debatir las propuestas por los clientes con el objetivo de los proyectos cubrán lo mejor posible sus necesidades.
Los artesanos se esfuerzan por ofrecer no solo software que funcione, sino también software bien diseñado, codificado y probado no por satisfación personal sino porque a largo plazo será un menor coste para sus clientes ya que tendrán menos fallos y serán más económicos de mantener.
Sandro comenta que cuando no se dan estas circunstancias de colaboración entre desarrolladores y cliente, al final se convierte en un trabajo tipo fabrica donde aparece la frustración en clientes, empresa y desarrolladores.
Después de explicar lo anterior, Mancuso brinda orientación sobre cómo los desarrolladores pueden mejorarse y convertirse gradualmente en verdaderos maestros de su oficio.
También dedica una parte del libro sobre aplicar prágmatismo y no ser dogmáticos. Así como también el mito de que el Software Crafmenships es caro y lento.
Trata el tema del recruitment indicando que esta roto y explica como se puede atraer talento, asi como errores más comunes en todo el proceso desde ofertas de trabajo, entrevistas etc..
Para los desarrolladores, este libro trata sobre por qué y cómo ser un artesano del software; para otros profesionales de la industria, muestra por qué los desarrolladores se han convertido en un punto clave en el éxito de cualquier negocio y cómo crear relaciones muy exitosas con ellos.
Conclusiones
Me siento identificado con lo que se cuenta en el libro respecto al enfoque del desarrollo de software con la metafora de la artesanía, mejora continua y difrutar de nuestro trabajo que es para toda la vida.
Como con todo en la vida las interpretaciones son libres y algunas personas interpretan del movimiento crafmanship que hay que tener siempre un código perfecto y que no puede salir a producción hasta que lo esté.
Por otro lado interpretan también que siempre hay que estar estudiando para mejorar cada día, cada semana, cada mes, cada año.
Yo no lo enfoco de esta forma sino que lo veo desde un punto de vista a largo plazo.
Para mi la tendencía general de código tiene que ser a la mejora contínua y no al olvido una vez esta en producción, al igual que la mejora de conocimiento a través de la formación intento que sea contínua porque me gusta mucho aprender y mejorar pero siempre con tranquilidad y con vista a largo plazo, para mi lo primero es disfrutar de mi familia.
Sin duda recomiendo este libro tanto para desarrolladores que está empezando como para programadores con experiencia e incluso para gente que no sea técnica pero que trabaje en el negocio del desarrollo de software como recursos humanos, empresarios etc..
The Software Craftsman: Professionalism, Pragmatism, Pride
Acabo con una frase de Robert. C. Martin (Uncle Bob) describiendo el libro:
“This book is an encyclopedia on the behavior, attributes, and structure of an organization striving to grow in professionalism and adhere to the principles of Software Craftsmanship.”