The Art and Practice of Software Architecture
I'd like to share my thoughts with you, the reader, on architecture and software development. Of course, I encourage feedback especially when you disagree or feel I left something out of a particular topic.
Software architectures are conjured up in the minds of software architects. But what forces are at play? What kernels of knowledge must either enter or be engrained in the architect’s mind in order for the architect to produce a coherent, viable architecture? Exactly what is software architecture? Isn’t software architecture the same as design? If design and architecture are the same, then why is there always a big deal made about architecture? If architecture is indeed different from design, then how is it different? Finally, what makes architecture so important?
Well, it’s safe to say that software architecture is not magic though I am willing to bet that there are more than a few architects out there who wish it were. To get to the real answers to the questions posed above, one must understand the forces of architectural influence. As these influences tend to work both for and against an architect as he or she begins to envision what will become the center piece, the touchstone if you will, of an entire ecosystem of software components that influence not only the near term but also exert influences that persist well beyond the existence of any particular system.