Friday, November 27, 2009

Chapter 2: System Architecture












Chapter 2: System Architecture



Architecture, Design and ‘Goodness of Fit’



Christopher Alexander is an architect from the world of bricks, steel and concrete who has inspired much of the patterns work in the computer industry. One of the cornerstones of his work on architectural patterns is the consideration given to the forces that are at work in the system being considered. A force is a consideration or concern that ‘pulls’ the design in a particular direction, perhaps towards better performance or greater simplicity. Often these forces are in tension with each other, or add an extra level of complexity to the problem being addressed, and so they need to be resolved – we need to find a design or architecture that somehow gives good performance and yet is also simple, at least as far as is possible. Resolving these forces is the role of the architect.


In talking about the role of the architect in resolving forces, Alexander gives an example of how forces interact in the ‘simple design problem’ of choosing the materials to be used in the mass production of ‘any simple household object like a vacuum cleaner’ [Alexander 1964].[1]



Alexander draws something similar to Figure 2.1, which illustrates the tensions between the desirable characteristics for a vacuum cleaner. These characteristics are self-explanatory except for ‘jointing’ which refers to the ability to fit the parts together and fix them in place. Assuming that the chosen design for the vacuum cleaner implements its basic function (vacuuming), there are still a number of choices and trade-offs, such as:




  • Do we choose a simple set of materials (because they are easy to source and work with) or do we choose the best materials for the job, trading off simplicity against performance?




  • Do we choose the best materials for the job or do we pick a set that are easy to fit together, trading off performance against jointing?




  • Do we choose the cheapest set of materials, which may result in a vacuum cleaner that is not simple, not performant, and is hard to fit together?








Figure 2.1: Interaction of forces in choosing materials for a vacuum cleaner.

As the diagram shows, however, not every force represents a trade-off. There is a positive force between jointing and simplicity:




  • If a simpler set of materials is chosen, the job of fitting them together becomes easier.




  • If more emphasis is placed on the ease of jointing, a simpler set of materials is likely to be chosen.




Whilst this is generally true, jointing and simplicity are still different characteristics and have to be balanced separately. For example, the wide use of a single material that is very hard to join, even to itself, improves simplicity and improves jointing in the sense that there is only one jointing problem to solve, but we are left with one very hard jointing problem. Given each of these general forces, there are still detailed trade-offs to be made.


Having discussed these kinds of trade-off, Alexander goes on to talk about ‘goodness of fit’. Given all the possible trade-offs that can be made between the four variables considered here, there must be one that optimally balances the forces. However, what is optimal depends on the unique type of vacuum cleaner being built. For a high-end product, we may choose to sacrifice economy over performance but still strive for simplicity and ease of jointing (because the cleaner has to be mass-produced). For a ‘cheap and cheerful’ cleaner, economy is the primary force. For every object being designed there is a context that defines what is meant by optimal in this unique case.






[1]No, ‘Mr Dyson the vacuum cleaner man’ isn't any relation of Paul Dyson, just in case you were thinking of asking.












No comments: