Hace ya más de 15 años de la redacción del manifiesto ágil. Desconozco si en aquel entonces un grupo tan importante de desarrolladores de software estarían al tanto que en ese instante arrojaban una piedra sobre el inmenso lago de la gestión del desarrollo de software produciendo gigantescas olas que cambiarían por completo la forma como trabajaríamos en el futuro. En aquel momento llegaron a la siguiente conclusión:

Manifiesto por el Desarrollo Ágil de Software

Estamos descubriendo formas mejores de desarrollar software tanto por nuestra propia experiencia como ayudando a terceros. A través de este trabajo hemos aprendido a valorar:

  • Individuos e interacciones sobre procesos y herramientas
  • Software funcionando sobre documentación extensiva
  • Colaboración con el cliente sobre negociación contractual
  • Respuesta ante el cambio sobre seguir un plan

Esto es, aunque valoramos los elementos de la derecha, valoramos más los de la izquierda.

https://www.agilemanifesto.org/iso/es/

Durante muchos años este manifiesto nos ha puesto a reflexionar en cómo entregar valor de la mejor forma posible y, como era de esperarse, una vez alcanzada la maestría en el buen arte de la agilidad, surgieron nuevas inquietudes; ¿es posible entregar software de calidad?, ¿se ven los equipos nutridos por el aporte de comunidades de desarrollo?, ¿es posible crear equipo con el cliente compartiendo una visión?, ¿tenemos puesto el foco realmente en el aporte de valor?,…

Como es habitual en el desarrollo de software, muchas de las organizaciones y procesos se basan en metáforas, y casualmente durante los últimos años diversas personas se han cuestionado si la Ingeniería es la metáfora correcta para acometer proyectos que cambian de requisitos frecuentemente, que son ejecutados por equipos pequeños y que entregan valor iterativamente. Tal vez la imagen de un ingeniero no sea la más adecuada en este entorno más ágil, más pequeño, más cercano. Más bien parece asemejarse a la imagen de un Artesano.

Artesanía de software

Un artesano es una persona que no solo crea algo de la nada a partir de materiales de su elección, sino que además incorpora una parte de sí mismo en lo que hace. Un buen artesano se toma el tiempo y el esfuerzo necesarios para hacer algo de calidad, que vale la pena tener y que todavía funcionará después de entregado el trabajo. La buena artesanía es sinónimo de productos de calidad.

El artesano cree que el desarrollo de software es un oficio. Esto es importante porque no todo el mundo cree esto. Un artesano se enorgullece de su trabajo, por luchar por hacer el mejor trabajo que pueda. El artesano de software cree que la escritura de un buen software requiere habilidad y atención. Que el software no es algo que se puede fabricar ni puede ser entregado más rápido mediante la simple adición de más personas.

Un artesano de software es alguien que practica el oficio del software, ejerciendo su oficio, siempre con el objetivo de ser más hábil, para producir un mejor software.

La barrera de ser un artesano debe ser baja. Es por ello que cualquier persona que escribe código en cualquier forma o modalidad debe sentirse libre de llamarse a sí mismo artesano. Los ideales de la artesanía se persiguen con una buena dosis de pragmatismo, pero el aprendizaje de las habilidades para convertirse en un buen programador necesita tiempo y experiencia.

La metáfora del artesano

Hay tradicionalmente 3 etapas de la artesanía;

  1. Aprendiz; aquel que desea alcanzar la maestría a través de la práctica constante del oficio
  2. Jornalero; el artesano que ejerce su oficio y está en contacto con diversos mentores perfeccionando su profesión
  3. Maestro; aquel que ofrece guía a otros artesanos a través de su propia experiencia sobre el buen oficio del desarrollo de software.

No importa en qué etapa se esté, siempre y cuando se practique el oficio del software, se es un artesano.

Eventualmente esta óptica se convirtió en complemento a un entorno ágil y es en el año 2009 cuando un grupo de personas deciden redactar el manifiesto artesano:

Como aspirantes a artesanos del software estamos elevando el listón del desarrollo de software profesional mediante la práctica y ayudando a otros a aprender el oficio. A través de este trabajo hemos llegado a valorar no solo:

  • Que el software funcione, sino también que el software esté bien elaborado.
  • Responder al cambio, sino también añadir constantemente valor.
  • A las personas y las interacciones, sino también a una comunidad de profesionales.
  • La colaboración con el cliente, sino también asociaciones productivas.

Es decir, en la búsqueda de los elementos de la izquierda hemos encontrado indispensables también los elementos de la derecha.

https://manifesto.softwarecraftsmanship.org/

Con todo esto, la artesanía no entra en conflicto con al agilidad, sino que la nutre, la evoluciona y sirve de recordatorio a la excelencia del desarrollo de software diciendo que la práctica y el conocimiento deben ir de la mano para una entrega de valor constante y de alta calidad.