系统架构设计师角色要求精通促成系统工程的多个规程,并在分析和解决方案合成方面技术娴熟。系统架构设计师还必须善于启发式和归纳式推理(大部分系统体系结构所依赖的),以及对其他工程规程的演绎推理。系统架构设计师不只是地考虑解决方案的技术,还考虑许多其他问题,比如系统操作、性能、经济可行性、可维护性和后勤支持,以及有关这些问题的政治、技术、社会、财务和环境因素(及其他因素)。
系统架构设计师必须成熟有经验,使其能够完成对象分析和贸易研究以从多个解决方案中选择最优解决方案,能够在信息不完整或不明确时作出好的判断,并能够认识到“最好”通常是由政治、经济以及工程考虑支配的。
在处理由人员、硬件和软件组合的系统时,系统架构设计师需要对任何解决方案中由人员和硬件组件施加的物理限制和约束有很强的判断力。除了在系统工程方面的经验(以及对联合规程方面的知识,如操作调查和工程经济)之外,系统架构设计师在软件工程(由于它在现代系统中普遍存在)方面也要有坚实的基础以及以下素质:
- 在问题领域的经验和对需求的深入理解。该专业技能可以在系统体系结构团队中分摊。
- 领导品质,用以推动跨各团队的技术工作,在压力下制定关键决策,并坚持贯彻这些决策。为达到效果,系统架构设计师和项目经理必须紧密协作,前者领导技术事宜,后者领导管理事宜。系统架构设计师必须有权作出技术决策。
- 沟通技能,以赢得信任,进行说服、激励和指导。系统架构设计师不是通过职位拥有权利,而是因为有目共睹的能力和成绩。为了达到效果,系统架构设计师必须指挥项目团队、项目经理、顾客和用户团体,并管理团队。
- 面向目标和主动性,专注于成果。系统架构设计师是项目背后的技术驱动力,而不是顾问或梦想家。对于一名成功的系统架构设计师而言,其职业就是在压力和许多不确定情况下作出一系列次最佳(但通常不是非常次最佳)决策。只有那些能够专注于需做之事的人才会在这种环境中获得成功。
系统架构设计师角色具有系统设计人员的技能,但前者的技能重点是战略性的,并不详细。
系统架构设计师与软件设计人员的关系
这两个角色有很多相似点;实际上对于那些因规模或复杂程度而被看作“系统”开发、但仍是大型的或完整的软件项目来说,这两个角色是合为一体的。 然而,通常情况下,系统架构设计师比软件设计人员的支持范围大。 系统架构设计师必须对付物理上强加的约束,这些约束在软件更易适应的领域中不存在。但是,正是软件的灵活性使得体系结构演进具有可能的道路,这在以前是无法设想的。因此,软件设计人员和系统架构设计师之间并不是严格的从属关系:从软件体系结构上考虑的反馈可能对系统的体系结构有深远的影响;否认这一点将要承担潜在的次最佳系统体系结构的风险,这些体系结构基于软件体系结构可从需求的分配(由系统架构设计师完成)派生到计算平台这一简单的概念。但是以下说法也是正确的:在系统架构设计师和软件设计人员的团队中,系统架构设计师角色的职责要求系统架构设计师是团队中的佼佼者,因为系统是最终产品。