¿A quién le interesa un libro en la era del formato breve y espectacular?. Yo creo que debe haber gente por ahí.
Esta introducción para decir que, en principio, voy a empezar una serie de posteos semanales contándoles sobre este gran libro, que es para mí, el ABC de entender el desarrollo de software y salir de la típica analogía “hacer software es como hacer una casa“, “hacer software es como construir un puente“, porque puede que hayan un par de diferencias.
Sin más preámbulo:
“The Nature of Software Development”, en español, “La Naturaleza del Desarrollo de Software“, de Ron Jeffries, un señor copado que es el creador de la metodología Extreme Programming (XP) de desarrollo de software y uno de los 17 firmantes originales del Manifiesto Ágil. Si no sabés que es todo esto, por ahora ni te preocupes, alcanza con entender que Ron la tiene bastante clara, mucha experiencia y nos puede ayudar a aprender y desaprender cosas. Esta es su web, por si querés chusmear en que anda.
Bueno, empecemos. Primero, aclarar que iré escribiendo con y sobre las ideas del autor, citándolo o por momentos parafraseándolo, y también agregando mi propia mirada.
El libro tiene dos partes, la primera se llama “El Ciclo de Valor“ (desde ahora voy a traducir según mi criterio los títulos, y cuando no pueda haré spanglish) y la segunda, “Notas y Ensayos”. En total son 22 capítulos que intentaré abordar de aquí en más.
En esta edición de Capturas Erráticas voy a contarles un poco del prefacio y la introducción.
Y que mejor que citar al autor para comenzar:
Por favor, tomá estos pensamientos y usalos para encontrar tu propio sentido de simplicidad entre todo el caos. ¡Buena suerte! - Ron Jeffries
Prefacio
Si hay algo en lo que seguro coincidimos con Ron es en querer hacer las cosas simples (o eso uno esperaría de alguien quién no quiere complicarse la vida). El libro trata principalmente sobre ideas para encontrar algo que él llama “simplicidad esencial” a la hora de realizar la actividad compleja que conlleva construir software.
La cosa más importante a tener en cuenta sobre esto es, que es un mapa de alto nivel que nos puede ayudar a mantener las cosas simples y no un manual de recetas mágicas, como muchas veces el mercado de marketing tirapostas nos ha querido vender o nosotrxs mismos estamos tentadxs a creer después de descubrir algunas ideas o técnicas que nos resultaron muy buenas.
Casi siempre hay que estudiar, practicar y dar toda una gran vuelta para llegar a lo simple, tomar lo que nos sirve y desechar el hype.
Introducción
Construir software es complicado, Ron lo compara con caminar sobre lava, y piensa lo que tal vez muchas veces vos también pensaste: “Tiene que haber una mejor manera“. Para poder caminar sobre lava necesitamos construir caminos, y no alcanza con que sean algunos parches en los que vayamos saltando mientras gritamos, el desafío parece ser encontrar un camino completo que evite que nos quememos. Esta analogía da para mucho, pero voy a hacer el esfuerzo por quedarme en el desarrollo, porque el vínculo con encontrar formas saludables de vida trabajando en la industria del software todavía sigo persiguiéndolo.
Retomando la idea, no podemos construir ese camino sobre lava si primero no entendemos cómo es ese camino. Entenderlo mejor probablemente nos ayude a desarrollar un mejor proyecto y por lo pronto a intentarlo.
Ese camino natural (así lo llama el autor) a construir se basa en la simple noción de poner foco en entregar valor temprano y frecuente. Inserte aquí flashbacks de guerra:
Pero Ron tiene un punto, creeme. Si hay un camino más o menos seguro también por momentos vamos a desviarnos de él, es un hecho. Aceptarlo creo que es un buen paso para mejorar. Digamos que hacer un diagrama Gantt con tareas encadenadas por un año llena de dependencias con personas, presupuestos y requerimientos (por más control de riesgos que tenga) en un mundo tan cambiante nos da una hermosa sensación de control, pero no parecería ir en la dirección de aceptar la realidad.
El camino natural que él propone les sirve a lxs usuarixs finales, porque les entrega valor más pronto, al negocio, porque le brinda un retorno de inversión más pronto, y principalmente, porque les provee información rápidamente para ajustar su dirección. También al management, porque les dice qué cosas realmente están pasando, y a lxs desarrolladorxs porque entre otras cosas, la transparencia les hace el trabajo más fácil.
No me voy a detener en el uso de la palabra “natural” para nombrar este camino porque me puedo ir por las ramas. Pero sí me parece importante destacar la idea de tener información real y ser transparentes entre el management y los equipos de desarrollo para hacer más saludable el trabajo de todo el mundo. Lo que pasa entre el management de nivel medio y el management superior ya es otra cosa y creo que necesita un poco más de tiempo para pensarlo bajo estas premisas.
Pero cerremos esta edición pensando en la simpleza, que creo, es el hilo conductor que recorre todo el libro:
Simple != fácil
Simple no es sinónimo de fácil. Y muchas veces por querer hacer algo fácil nos terminamos complicando en el corto plazo inclusive.
El camino de lo simple requiere que pensemos, aprendamos y cambiemos aunque sea un poquito. Y también, porqué no, que aceptemos el error, lo inesperado.
Entregar valor temprano y frecuente requiere que el usuario acepte que pueden haber errores. Y muchas veces es algo que no podemos aceptar o permitirnos...
Claro, pero tal vez aceptando que habrá errores podemos utilizar algunas prácticas que nos ayuden a minimizarlos