Prawo Gall'a

Czy znasz prawo Gall’a?

Podczas przeglądania internetów po raz kolejny wpadło mi w oko prawo Gall’a, które brzmi następująco (przytaczam w oryginale):

A complex system that works is invariably found to have evolved from a simple system that worked. A complex system designed from scratch never works and cannot be patched up to make it work. You have to start over with a working simple system.

– John Gall (Systemantics: How Systems Really Work and How They Fail)

Za każdym razem jak czytam stwierdzenie to mam uśmiech na twarzy i już wyjaśniam dlaczego….

W mojej karierze IT pracowałem dla dużej korporacji, która wymyśliła zaawansowany system z niezliczoną ilością konfiguracji. Ów korporacja była centralą przygotowującą system dla wielu swoich jednostek. System tworzyliśmy przez wiele miesięcy. Jak przyszło do testów przez właściwych klientów to się zaczęła litania:

  • a to nie działa tak jak powinno
  • a my nie rozumiemy, jak to skonfigurować
  • a to w ogóle nie pasuje do naszych realiów
  • a to, a tamto….

Postanowiłem wziąć popcorn i obserować co się dalej wydarzy. Minęły lata, a system dalej jest nie wdrożony.

Od tamtej pory jestem zwolennikiem dostarczania prostych rozwiązań i rozwijania ich w krótkich, iteracyjnych Sprintach. Podobną metodykę stosuję podczas inżynierowania kodu.

Andrew Hunt podsumował to następująco:

Simple rules produce complex behavior.
Complex rules produce stupid behavior.

– Andrew Hunt, 37 Signals

About the author

piotr.filipowicz

View all posts