29 November 2010

Recurring architectural decisions

A lot of academic (and industrial) research is looking at architectural decisions. One of the ideas pursued is that by capturing and managing this type of information it can be reused. I guess in practice it means that if you need to make a similar decision in the future you can look at what you decided the last time. I myself also saw this as an appealing idea. But today it struck me that we really don't have recurring decisions when we work as architects at Volvo. I think that if we had there would no be any need of an architect at all.

What we do have is a long succession of architectural decisions, each with a new set of prerequisites. The task as an architect is to be able to extrapolate from what has been done previously and still maintain some sort of conceptual integrity. To preserve the "feel" or "vision" of the architecture while still fulfilling necessary functional and quality requirements (including cost) and operate within the constraints given by for example our organisation and what is available/possible form suppliers.


Chris 'Buzz' O'Neil said...

This is a great piece...I was challenged today to defend why a 20yr old architecture/code base was not simply ported to a vehicle design launching in 4 years. As you say, there are new prerequisites or in our parlance, we have new use cases.

An architecture is an embodiment of a process that begins with a definition of problem domain presented by marketing and it ends with a solution domain solved by engineering. The decomposition of the architecture for reuse needs to therefore be filtered by the context of the technology, engineering process and core competencies on hand at the time of the architecture derivation.

Ulrik said...

I could not have said it better myself.
Unfortunately it is usually sensitive to make these kinds of examples public, but I think they are important. Both as lessons learned for us involved and to educate various project stakeholder so that they better know what is reasonable to expect the next time.