Software architecture is rapidly being recognized as a distinct, important, and evolving discipline in the field of software engineering. This paper explores the unique approaches and characteristics of the successful software architect. After defining software architecture as starting with the organizational structure of a software system, the author goes on to identify guiding principles behind architectural decisions: mitigate unbounded complexity; manage functional requirements; communicate effectively with developers, senior managers, chief executives, project managers, and customers; embrace leadership; pay attention to nonfunctional requirements; and bring a well-stocked toolkit that includes patterns and idioms, frameworks, and best practices.
The paper is well written and well organized, with relevant examples, figures, quotes, and literature references. More detail on three design efforts that are mentioned at the beginning and end of the paper would have been helpful in convincing any skeptics of the efficacy of software architecture in improving software design, development, and evolution. The paper is an easy read that will generally reaffirm the feelings of believers in software architecture, and give others something to think about.