TechLecturas

A Philosophy of Software Design - Capítulos 1 y 2


Listen Later

Buenaaaaasss


Hacemos doblete esta vez con los dos primeros capítulos del libro:

  • Introducción
  • La naturaleza de la complejidad

¿De qué hablaremos?


John Ousterhout abre el libro con una declaración de amor al software: programar es una de las actividades más creativas de la historia humana. Sin fricción física, sin límites del mundo real. Si lo puedes visualizar, lo puedes construir.

Pero hay un enemigo silencioso: la complejidad. Y no nace de un gran error, sino de mil pequeñas decisiones que nadie tomó en serio.

John la define como todo aquello que hace un sistema difícil de entender y modificar. Y se manifiesta de tres formas:

  • Amplificación del cambio: tocas algo pequeño y tienes que modificar veinte sitios distintos.
  • Carga cognitiva: para hacer cualquier cosa, primero necesitas tener media base de código en la cabeza.
  • Unknown unknowns: ni siquiera sabes lo que no sabes. Y solo lo descubres cuando aparece el bug.

Las causas raíz son dos: las dependencias —cuando nada puede entenderse de forma aislada— y la oscuridad —cuando la información importante no es obvia—. ¿Una variable que se llama tiempo? ¿En segundos? ¿Minutos? ¿Horas? Eso es oscuridad.

Y lo más peligroso de todo: la complejidad es incremental. Nadie la crea de golpe. Se acumula. Cada pequeña concesión parece inocente, pero sumadas te inundan.

La solución que propone John es casi filosófica: tolerancia cero. Como la teoría de la ventana rota. Si dejas que se acumule, acelera. Si la contienes desde el principio, el sistema se mantiene sano.

...more
View all episodesView all episodes
Download on the App Store

TechLecturasBy TechLecturas


More shows like TechLecturas

View all
Kapital by Joan Tubau

Kapital

11 Listeners