Saturday, August 29, 2009

Thoughts on Beautiful Architecture ch. 1 - What is Architecture?

This initial chapter focus on the overview of software architecture. It is interesting that the authors state that "architecture is a subset of design" especially since I have come across the question on architecture vs. design multiple time and still don't have a clear-cut answer to it. The statement certainly make sense intuitively as I often imagine software architecture as the high-level design focusing on inter-component structures with the goal to fulfill all user requirements.

The chapter also asks the question on who to make architectural decisions. This strikes me as the typical question on top-down vs. bottom-up. The book seems to suggest an architect should do it to preserve conceptual integrity. No doubt the end product of the top-down approach will be more consistent to the original blueprint. However, does it mean that it must be a better product? I think the Agile programming methodology in contrast can be seen as a more bottom-up approach and many would argue it is much more flexible in meeting ever-changing requirements. Also, taking an example in biology, all complex biological beings are a congregation of individual cells which at one point of the time are individual uni-cell organisms that then evolve to corporate and to co-exist together. There is not a master plan and the only driving force is to constantly adapt to the new requirements (to survive in constantly changing environment). Yet don't all come out pretty well?

From the short story at the end of the chapter, the authors seem to say that an architect should still code, to get his or her hand dirty. I agree with the authors and I think this is the best prevention for an architect becoming idealist and elitist.

No comments:

Post a Comment