软件架构师,工作职责是在一个软件项目开发过程中,将客户的需求转换为规范的开发计划及文本,并制定这个项目的总体架构,指导整个开发团队完成这个计划。主导系统全局分析设计与实施、负责软件架构和关键技术决策的人员。软件架构师应能迅速抓住问题要害,并做出合理的关键决定的能力,具备战略性和前瞻性思维能力,善于把握全局,能够在更高抽象级别上进行思考。
架构师的主要任务不是从事具体的软件程序的编写,而是从事更高层次的开发构架工作。他必须对开发技术非常了解,并且需要有良好的组织管理能力。
软件架构师的工作:首先需要快速的定位和识别出需要解决的问题,这是架构的起始。这个能力也基本上决定了架构师的水平。定位和识别问题的目的是确定问题的主体、内容和边界。然后就是作出相应的调整,虽然在识别出是谁的问题之后,在大部分情况下,问题都迎刃而解,不需要做额外的动作,但是很多时候问题的产生都是因为沟通的误解,或者主观上有很多不必要的利益诉求导致的。但是总还有一部分确实是有问题的,需要做调整——架构的切分。架构的切分是对相关利益人的的调整,涉及到利益,这就需要明确切分的原则:必须在连续时间内发生的一个活动,不能切分;切分出来的部分的负责人,对这个部分的权利和义务必须是对等的;切分出来的部分,不应该超出一个自然人的负载;切分是内部活动,内部无任怎么切,对整个系统的外部应该是透明的;确保我们不能违反人性,因为维护自己的利益,是每个人的本性。只有权利和义务对等才能做到这一点。架构切分的输出实际上就是一个系统的模型,切分的结果最终都会体现在组织架构上。
总之,软件架构师的主要任务就是规划与系统架构层次相关的事务,评估可能的风险与成本,并有效运用有限的人力、物力资源满足系统层次的需求。优秀的软件架构师是保证软件系统强大生命力的核心人物。
参考:
https://baike.baidu.com/item/%E8%BD%AF%E4%BB%B6%E6%9E%B6%E6%9E%84%E5%B8%88/3476994?fr=aladdin
https://www.infoq.cn/article/an-informal-discussion-on-architecture-part04