Avoid building systems if you can!
A feew weeks before @werner mentioned an interesting book “Systemantics: how systems work and especially how they fail” by John Gall. The book seems to be out of print but I found a used copy on Amazon.
The main point of the book is: Systems in general work poorly or not at all. Avoid building systems if you can!
The problem of systems according to John Gall is that (1) a new system generates new problems, and these problems are bigger than the original problem. Systems (2) tend to grow (e.g. the anual growht of a bureaucratic system is ~6% per annum). (3) Complex systems can not be predicted and produce unexpected outcomes. (4) The system does not do what it says it is doing. (5) Systems get abused. (6) A complex system can fail in an infinite number of ways. (7) looses systems last longer and work better.
There is one example in the book that demonstrates the theory quiet good: how can a community deal with garbage.
There is one simple solution: community members care about their garbage on their own. At the beginning they might throw their garbage in front of their houses bu they will soon realize that this causes some problems. So they will adapt to find a better place. It’s quiet unlikely that they will all choose the same place because people tend to use the shortest path. So there will be some piles of rubbish around the community. Community members will soon realize that if they reduce the amount of garbage they produce the problem becomes smaller and so they will find ways to reduce garbage…
There is one system solution: The community establishes a garbage collection. Every two weeks the community members put their garbage in front of their houses and someone will pick it up. That’s how the system was intended to behave. But to have this system work the community needs a truck and workers. The truck will break. Workers will be sick. Workers will strike. Community members will start to look down on the workers because they just remove their garbage. Producing garbage will become more easy for the community members because someone else cares about it. So the amount of garbage will increase. You may see that this system has a tendency to grow.
Applys to software?
I asked myself if this theory applies to software as well. I came to the conclusion it does. I wonder how you think?