Agile Architecture: Real World Problems, Abstractions and Generalizations

When designing architecture you have to be aware of the temptation to go into direction what I call generalizations.

As a real world problem we want to solve with an architecture is a not trivial one, we use abstractions (in form of the models) to describe it. Having this abstract problem modeled, we develop a solution, which is an abstract solution as it solves an abstract problem. After that we apply this abstract solution to the real world to get a real world solution to the real world problem we encounter at the start. This way of architectural work has been defined by Mary Shaw and depicted by George Fairbanks in his book as follows: