No somos vulcanos

Muchas veces, en mis charlas de los últimos años, menciono esta frase “No somos vulcanos”. La comenté en el seminario que dimos con el bueno de Martín Salías en el MUG de Argentina:

Cómo programar y no morir en el intento

¿A qué me refiero con eso de “No somos vulcanos”?

A que somos humanos, y tenemos características que condicionan la forma en que hacemos software. Ejemplos.

Si fuéramos vulcanos, el cliente sabría lo que quiere casi desde el primer momento, o lo analizaríamos sin ambigüedades en unos momentos, al comienzo del desarrollo de un sistema.

Si fuéramos vulcanos, podríamos escribir el programa que necesitamos, desde el principio al final, sin necesidad de pruebas intermedias, o avances paso a paso.

Si fuéramos vulcanos, podríamos escribir y entender rutinas de decenas de líneas y docenas de parámetros. Podríamos manejar más de 5 o 9 cosas al mismo tiempo.

Si fuéramos vulcanos, al ver una nueva forma de hacer las cosas, solamente nos bastaría explicarla para que el equipo la adopte: sería la opción racional, y luego de una demostración lógica de su utilidad, la nueva práctica sería adoptada inmediatamente sin resistencia.

Si fuéramos vulcanos, no habría necesidad de ritos, como reuniones diarias, sino que haríamos lo que tenemos que hacer, sin mayor dificultad.

Si fuéramos vulcanos, encararíamos las tareas que lógicamente tenemos que encarar, cada día, en una secuencia que quedaría clara desde el principio, en vez de dar vueltas y vueltas, o desviarnos, o distraernos, intentando aplazar lo que no queremos hacer, o evitando las tareas que no nos interesan.

Si fuéramos vulcanos, todos tendríamos una clara idea de cuánto vamos a tardar en construir este software que tenemos entre manos.

Si fuéramos vulcanos, escribiríamos las pruebas de software, porque sabríamos de su valor a largo plazo, en vez de tener que escribirlas y correrlas rápidamente, para tener un “feedback” que sicológicamente nos ayuda a tener confianza en lo que estamos haciendo.

Si fuéramos vulcanos, no nos apoyaríamos tanto en las pruebas cuando cambiamos algo: al alterar algo del software, seríamos inmediatamente conscientes de los efectos laterales del cambio y detectaríamos al momento qué otras partes del sistema cambiar, para que todo siga funcionando como se espera.

Si fuéramos vulcanos, nos bastaría leer una vez una explicación de un patrón, para entender al punto su aplicación, intención y contexto.

Si fuéramos vulcanos, no tendríamos que partir el sistema en partes que fueran más manejables para nuestra mente humana.

Si fuéramos vulcanos, las APIs sólo tendrían versión 1.0, la única forma de armar esa API, de aquí a siempre.

Si fuéramos vulcanos, no habría distintos protocolos, aplicaciones clientes y servidores, distintos lenguajes SQL, dialectos de bases de datos, diferencias pequeñas en algo que debería ser implementando de una sola forma. Habría un solo formato de gráficos, otro único de video, y así.

Hasta me atrevería a decir que si fuéramos vulcanos, no haría falta SVN con historia, siempre iríamos avanzando, sin necesidad de volver atrás en algún momento.

Pero como somos humanos, necesitamos la ayuda de estrategias, prácticas, herramientas, y paciencia y voluntad y perseverancia, para llegar a construir software de una forma aceptable. Necesitamos de los ritos, como la reunión diara de standup en Scrum. Como somos vulcanos, no podemos imponer un cambio en una empresa o equipo, tenemos que ir produciendo el cambio de a poco, como escribía en Ser catalizador de cambios. Necesitamos de “soft skills” para manejar las relaciones con los demás, entendiendo no solamente las razones, sino también las emociones, miedos, ambiciones, alegrías y preferencias de los demás, en el día a día. Mucho de las disciplinas de XP, o Scrum, se deben a la naturaleza humana. Como el pair programming, que en Vulcano sería totalmente una pérdida de tiempo la mayor parte de las veces, acá refuerza la tarea, al ser dos humanos que se compensan en sus debilidades. En Vulcano, dos cabezas piensan igual que una, porque la lógica es la misma.

¿Se les ocurren otras diferencias con los vulcanos?

Nos leemos!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

This entry was posted in 10549, 3463. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>