This is a very interesting parable, covering the following topics:
- problems that emerge when decisions are made by people with partial understanding of the problem space and limited perspective (the manager who thinks only about the initial investment and not the ongoing cost, the shunting yard workers who don’t get access to the bigger picture and just do their job).
- the brilliance of applying composition of smaller components to build larger components that have the desired properties.
- the cost of introducing variability to the process and thus the mandate to reduce it as much as possible. The ‘competent programmer’ reduced variability by composing pairs of cars into components that were guaranteed to have a toilet in the center. Balance this with the vanguard method which demands that a system should have maximum ability to absorb variability.
Link: Edsger Dijkstra – A parable via www.cs.virginia.edu