¡Basta ya de software Holy Wars!

Apr 29 2023
Avancemos y mejoremos en la entrega de software funcional que satisfaga, tal vez incluso deleite, a nuestros clientes. Resulta que los cristianos, judíos y musulmanes adoran al mismo dios.

Avancemos y mejoremos en la entrega de software funcional que satisfaga, tal vez incluso deleite, a nuestros clientes.

Foto de Lyman Hansel Gerona en Unsplash

Resulta que los cristianos, judíos y musulmanes adoran al mismo dios. Donde discrepan es en el detalle de lo que desayuna ese dios y cuál es su política sobre barbas y días festivos.

Verá, también resulta que los "artesanos de software", los "ingenieros de software" y los "desarrolladores de software ágiles" también adoran al mismo dios. Simplemente no estamos de acuerdo en los detalles más finos de cómo nuestro dios espera que logremos exactamente los mismos resultados por los que todos parecemos estar de acuerdo en que deberíamos esforzarnos.

No hay desacuerdo en que el mandamiento principal de nuestro dios mutuo es que no escribirás el software que tu cliente no quería.

Tampoco estamos en desacuerdo en que necesitaremos iterar para converger en el software más útil y usable.

También estamos de acuerdo en que las pruebas deben realizarse lo antes posible y con la mayor frecuencia posible si queremos evitar perder la mayor parte de nuestro tiempo corrigiendo errores que se deslizaron por la red.

De hecho, en todos los aspectos importantes, estamos de acuerdo en todo. (Bueno, cualquiera cuya opinión importe está de acuerdo, de todos modos).

En lo que no estamos de acuerdo es en si deberíamos llamarlos “casos de uso” o “historias de usuarios”, y si deberíamos escribir nuestras pruebas primero o escribirlas después del código, o si deberíamos reservar tiempo para practicar deliberadamente estas habilidades o si debemos unirnos a un organismo profesional acreditado y certificarnos en ellos. Etcétera.

Las creencias subyacentes, los cimientos de lo que hacemos y por qué lo hacemos, se han mantenido sin cambios durante décadas. El Antiguo Testamento del desarrollo de software es un texto religioso compartido entre cualquiera que lo haga bien.

En caso de que necesite un recordatorio, aquí están los Diez Mandamientos del Desarrollo de Software:

  1. No escribirás software que tu cliente no quería
  2. Iterarás tus soluciones, indefinidamente si es necesario
  3. Probarás temprano y con frecuencia
  4. Deberá administrar las versiones y configuraciones de su software, incluso cuando trabaje solo
  5. No saltarás directamente a escribir código si no has pensado un poco en el diseño
  6. No escribirás código que sea difícil de cambiar
  7. No integrará ni liberará código no probado
  8. No crearás interfaces de usuario que sean difíciles de usar
  9. Tratarás los requisitos funcionales y no funcionales por igual
  10. Deberás automatizar tareas repetidas y compartir código repetido

Cada uno de nuestros mandamientos implica una disciplina, con su propio conjunto de habilidades, sus propias prácticas, sus propios estándares y su propio cuerpo de conocimientos. Puede que no estemos de acuerdo con los detalles de cómo seguir exactamente cada mandamiento, pero fundamentalmente, en el fondo, todos estamos adorando al mismo dios.

Entonces, ¡basta ya de Guerras Santas! Avancemos y mejoremos en la entrega de software funcional que satisfaga, tal vez incluso deleite, a nuestros clientes.