架构设计师是系统或产品线的设计责任人
1、是一个负责理解、管理、并最终确认和评估非功能性系统需求(如软件的可维护性、性能、复用性、可靠性、有效性和可测试性等),
2、给出开发规范;
3、搭建系统实现的核心构架,对整个软件架构、关键构件和接口进行总体设计;
4、并澄清关键技术细节的高级技术人员。
架构设计师是系统开发的主体角色,他们通过执行一系列活动来实施架构设计。
架构设计通过生成过程形成最终的产品架构,架构设计师的成果是创建架构。
优秀架构设计师具备的6种角色特质
一、作为技术领导者:
像一个导师,能够带领开发团队向同一个技术愿景前进,会仔细听取每个参与者的意见,通过与团队互动调整他们的愿景。
二、作为开发人员:
权衡理想的架构状态与软件的当前状态,了解系统构建方式及系统的约束,根据实际情况进行权衡选择
三、系统综合者:
为了让代码可运行,他们还需要了解代码,在生产环境中其他重要的质理属性,考虑部署过程、自动化测试、性能、安全和可支持性等 ,还要了解并满足不同利益相关者(技术支持、安全和运营人员)需求的解决方案
四、具备企业家思维:
所有技术选型相关的成本和收益,收集真实世界中有关短期和长期成本的信息,以及他们可能意识到到的好处,新技术,通过架构调研来了解工具在其环境中的相关性,这个工具所提供的价值,隐性成本,文档化,社区使用,工作带约束可能
的额外风险。
五、权衡策略思维与战术思维:
会持续关注可能有用的新技术、工具和方法,但不一定立即采用它们,技术采用往往需要长期的考量。在团队和组织层面寻求敏捷度和一致性之间的良好平衡。
六、良好的沟通:
有效的沟通是建立信息和影响团队以外成员的关键技能,不同群体使用不同的术语,
对外沟通:风险小,回报大,成本小和收益高
对内沟通:图表和小组讨论建立和完善技术愿景,并进行书面记录,架构决策日志或Wiki等 ,从而为将来留下可以追溯的历史。