当我还是一个刚入行的软件工程师的时候,我每天忙碌于代码,输入的是各种需求,输出的是各种功能模块。当时,我心中的大局观是我输出的模块能被他人很方便的调用,能与其他人合作得愉快,能为产品做好我负责的那部分。

当我成为一名高级软件工程师的时候,我沉浸于对语言的细节研究,对面向对象方法论的深入思考,对设计思维的训练。输入的不再是零散的需求,而是一个软件的整体需求,输出的是概要设计和核心模块,我指导着同事完成模块的实现,然后对其进行组合,并在此过程中不断的修正当初的设计。当时,我心中的大局观是要用精巧的设计做出可靠、健壮、易维护、易扩展的软件产品。

当我承担了架构师的职责的时候,我不再用前两种角色的大局观来工作,我在寻找架构师的大局观。
对于产品级的架构师,他的大局观应该是协助产品经理规划产品,界定产品的范围,确定基本架构,组织开发团队高效的高质量的完成产品开发,通过各种技术管理手段保障软件架构随着生命周期一同演化,从而完成产品的技术实现。

对于部门级的架构师,他的大局观应该是协调部门中多产品的技术范畴,规划部门的基础技术架构,培训开发人员的技术技能,组建并保障技术团队的梯队化发展。

对于公司级的架构师,他的大局观应该是确保公司技术方向的正确性,探索未来的技术发展路线,在行业中巩固公司的技术地位,将技术转化为公司的核心竞争力。
总之,大局观需要的是全局而长远的考虑,站在更高的立场来分析问题解决问题。大者,站得高看得远,局者,抓住重点和根本,不争一地之失。此即我认为的架构师的大局观。