Saltar al contenido
Biblioteca GKUn lugar para las mentes curiosas
Español

Para que un sistema funcione a gran escala, hay que empezar en pequeño. La ley de Gall (Gall's Law)

Al crear un servicio nuevo, llega un momento en que uno quiere diseñar desde el principio un sistema perfecto con todas las funciones. Parece que sería mucho más eficiente diseñar y terminar de una sola vez la gestión de usuarios, los pagos, las recomendaciones y las estadísticas. Sin embargo, cuanto más grande es un proyecto al arrancar, más frecuente es que al final no funcione bien. La «ley de Gall» (Gall's Law) es la regla empírica que resume este fenómeno en una frase.

En pocas palabras, la ley de Gall establece que «todo sistema complejo que funciona bien ha evolucionado a partir de un sistema sencillo que ya funcionaba bien». John Gall, pediatra y escritor estadounidense, formuló este principio al estudiar cómo fallan los sistemas. Hoy se cita con frecuencia en el diseño de software y el desarrollo de productos.

En este material veremos, por orden, cómo surgió la ley de Gall, qué significan las tres frases que la componen, qué casos reales la ilustran y cómo aplicarla en la práctica.

Diagrama explicativo de la ley de Gall. En un sistema hipotético de inscripción a reuniones, primero se crea un flujo sencillo que permite inscribirse y consultar la lista de participantes. Después se añade la función de notificaciones y se vuelve a probar el flujo completo. La sencillez por sí sola no garantiza el éxito.
Diagrama que ilustra la ley de Gall mediante un sistema hipotético de inscripción a reuniones. Tomado de John Gall, Systemantics(1977), p. 52. Se trata de una regla empírica que no garantiza el éxito.

Cómo evolucionan los sistemas de lo sencillo a lo complejo

Un pediatra escribe sobre sistemas

En un consultorio luminoso de la década de 1970, un pediatra mayor con bata blanca escribe notas en un escritorio de madera junto a una carpeta vacía y un pequeño modelo de rueda dentada.

John Gall fue un pediatra que atendió a niños durante más de 40 años en Ann Arbor, en el estado estadounidense de Míchigan. También fue profesor clínico asociado de pediatría en la Universidad de Míchigan. Su trabajo se centraba en el desarrollo infantil y los problemas de conducta, pero también dedicó tiempo a recopilar casos para entender por qué los sistemas, grandes y pequeños, no funcionaban como se esperaba.

  • Primer libro (General Systemantics). En 1975 publicó los casos de fallos y las lecciones que había recopilado hasta entonces en un libro titulado «Sistemática general».
  • Reedición (Systemantics). 2 años después, en 1977, el libro volvió a publicarse con el título «Sistemática. Cómo funcionan los sistemas y, en especial, cómo fallan» y tuvo una amplia difusión.
  • Ediciones revisadas (The Systems Bible). En 1986 apareció la 2.ª edición, que casi duplicaba la extensión de la anterior. En 2002 salió la 3.ª edición con el título «La biblia de los sistemas».

El libro explicaba las propiedades de los sistemas con frases breves e ingeniosas, al estilo de la ley de Murphy o el principio de Peter. La más famosa acabaría conociéndose como «ley de Gall». En el libro, sin embargo, esa frase no llevaba tal nombre.


Las tres frases que componen la ley

Sobre una mesa clara se ven, de izquierda a derecha, una pequeña torre hecha con unos cuantos bloques de madera, una estructura algo mayor y un gran castillo de bloques construido a partir de la misma base.

La ley de Gall suele enunciarse como un solo principio, aunque el texto original consta de tres frases consecutivas.

(1) Todo sistema complejo que funciona bien tiene un punto de partida sencillo
Si se rastrea el origen de un sistema complejo que funciona bien, siempre se encuentra un sistema sencillo que ya funcionaba bien. La complejidad surge al incorporar cambios poco a poco sin dejar de mantener el sistema en funcionamiento.

(2) Un sistema que se construye complejo desde el principio tampoco se puede arreglar para que funcione
Gall afirmó que un sistema complejo diseñado desde cero y de una sola vez no funciona, y que ni los añadidos ni los parches pueden salvarlo. Esto se debe a que es imposible prever por completo cómo interactuarán sus partes. Cuando los componentes de un diseño que parecía perfecto sobre el papel empiezan a funcionar juntos, surgen conflictos imprevistos en muchos puntos a la vez.

(3) Hay que volver a empezar por algo sencillo
En ese caso, solo hay una solución. Hay que construir un nuevo sistema sencillo que funcione y volver a desarrollarlo a partir de ahí. Por mucho que cueste dejar atrás el esfuerzo ya invertido, al final se avanza más rápido si se vuelve a empezar en pequeño que si se insiste en un diseño enorme que no funciona.

Antes de esta frase, Gall introdujo una salvedad. Un sistema sencillo puede funcionar o fallar. La sencillez no garantiza el éxito. Gall señalaba que los sistemas complejos que funcionan bien partieron de algo sencillo.


Casos que ilustran la ley

En una pradera soleada, un árbol joven crece junto a un árbol grande de ramas extendidas.

La ley de Gall se difundió en el ámbito de las tecnologías de la información a medida que los diseñadores de sistemas empezaron a citarla. En 1981, el diseñador de sistemas Ken Orr fue uno de los primeros en dar a conocer esta frase. A partir de 1991, Grady Booch, referente del diseño orientado a objetos, la citó repetidamente en varios libros.

La World Wide Web empezó en pequeño y fue creciendo

La World Wide Web partió de una estructura muy sencilla que conectaba unos documentos con otros mediante enlaces. Al principio era una herramienta para que los investigadores compartieran materiales. Sobre esa base que ya funcionaba se fueron incorporando imágenes, búsquedas, compras y videos, hasta llegar al enorme sistema actual. El hecho de que sus posibles usos quedaran abiertos desde el principio permitió incorporar nuevas funciones con naturalidad.

Un estándar de gran alcance desde su diseño inicial

En cambio, muchas especificaciones técnicas complejas que pretendían abarcar todos los casos desde el principio no han logrado afianzarse en la práctica. CORBA, un estándar de objetos distribuidos que permite conectar programas distintos, suele citarse como ejemplo de un estándar que partió de una especificación muy extensa y no llegó a adoptarse ampliamente.


Cómo aplicar la ley de Gall en la práctica

En una oficina luminosa, un pequeño equipo de desarrollo se reúne frente a una pizarra blanca con notas adhesivas colocadas en filas cortas. Sus integrantes conversan mientras señalan la pantalla de una computadora portátil.

La ley de Gall encaja bien con el desarrollo ágil de software (Agile Software Development), que trabaja en ciclos cortos e introduce cambios frecuentes. En particular, la programación extrema (Extreme Programming) recomienda empezar por lo más sencillo e incorporar las funciones más adelante.

(1) Empezar por el producto completo más pequeño posible
Primero se lanza un producto mínimo que funcione de verdad de principio a fin, aunque tenga pocas funciones. Observar cómo reaccionan los usuarios y añadir solo lo necesario permite reducir el esfuerzo dedicado a diseños que no servirán.

(2) Mantener el sistema siempre en funcionamiento
Cada vez que se añade una función, se comprueba que el sistema siga funcionando correctamente. Hacer cambios pequeños y probarlos de inmediato también facilita encontrar la causa de los problemas, en comparación con introducir un cambio grande de una sola vez.

(3) Tener cuidado con los sistemas grandes construidos deprisa
Hoy las herramientas de programación con inteligencia artificial permiten construir sistemas grandes en un instante, pero ensamblarlos deprisa no evita los fallos que describió Gall. Cuanto mayor es la velocidad de desarrollo, más importante se vuelve el principio de empezar en pequeño.


La ley de Gall aconseja seguir un camino concreto para llegar a construir sistemas complejos. Un pequeño sistema que hoy funciona bien permite llegar más lejos que un diseño grande e impresionante.

El primer paso para construir un sistema sólido es empezar en pequeño, conseguir que funcione bien y ampliarlo paso a paso.

Guarda este artículo en PDF

Compra la edición en el idioma que has seleccionado del artículo que estás leyendo.

US$1.00
Idioma seleccionado: Español

US$1.00 · 1 artículo · 1 idioma

Una vez realizada la compra, puedes volver a descargar la edición que compraste iniciando sesión con la misma cuenta.

Ver una muestra del PDF ↗Puedes leer el artículo completo gratis. La muestra te permite ver la tipografía y la estructura del archivo.