This is an initial posting to my software architecture logbook for SSW565 at Stevens Institute of Technology. The course is titled "Software Architecture and Component Based Design" and begins by examining what software architecture is. This has caused me to think about not what software architecture is but what a software architect is.
To me a software architect is someone who synthesizes the structure of a software system which serves to meet some operational need. The architect is involved up front usually at a high level and is ultimately responsible for the realization of the system. Interfaces with other software, hardware, and people systems need to be negotiated and coordinated by the architect. The architect must have a firm grasp of technology and its application to specific domain problems in addition to excellent communication skills. The point where program management meets technical work will be at the architect. The architect truly has one foot in the world of management and one foot in the world of technology.
The above definition removes some of the grandiose visions of elegant structures being constructed by technically astute software professionals. But draw an analogy to a building architect for a home. The homeowner communicates desires, needs, to the architect who in turn creates a structure. The architect communicates the structure back to the homeowner for approval then communicates, negotiates, and coordinates the structure out to contractors, inspectors, and utility companies. Here you can see that the software architect is very much like the traditional architect just working with a different medium.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment