修炼&修行:架构师的双修人生
我大学计算机专业毕业就顺理成章当了IT民工,一年之后,拿到了助理工程师职称证书(对,神州数码当时是国有控股海外上市的民营公司),顿觉自己成了有用之身,大有用武之地,传说中的高工就在不远处等着我,那时候还不知道什么是架构师。而今的技术圈里,硕士毕业就是中级工程师,毕业三五年的高级工程师充斥大大小小的互联网公司,架构师似乎才是高大上的代名词,毕竟不是每个公司都有研究员、领域专家、科学家的。
架构师跟工程师相比,有什么不同呢?在我看来,架构师没有什么特别之处,只是工程师在技术路径的进一步延伸。架构师,是系统规模越来越大,越来越复杂而衍生出的角色。许多公司里并没有固定的架构师职位,但具备了相应能力,获得了团队认可,在项目中承担了架构职责,你就是架构师!所以嘛,很多公司的架构师,也就是得给更高资历更高工资找个堂而皇之的理由吧……哈哈,不好意思真相了。当然,如果没有正式的架构师的头衔,出来找工作简历上非说自己是架构师,这就有点儿过了。互联网时代,有些公司,几个人做一个网站,几年下来,在公司里技术最牛了,自认首席架构师,问一个分库分表都卡壳的并不少见,这就是少了对自己和行业的觉察。
架构师的能力大,责任更大,我对架构师的职责定义如下:
以工程思维全面理解业务需求
基于模型和基础模式抽象简化
提出恰当可行的整体解决方案
在限定资源范围完成明确目标
满足业务需求且保证系统质量
在可预见的周期内具备扩展性
并在系统生命周期内持续演进
所以架构师要靠项目实践积累经验,并结合系统化的学习,提升自身能力。架构师很难培训,靠的是实战修炼,多数都是身经百战,方百炼成钢。工作中架构师就是技术方面负责人,遇到问题多数靠自己解决,也没人传帮带,所以架构师必须具备强悍的自学能力和毫不松懈的自我驱动力。
架构师责任心非常重要,因为架构方面工作往往处于重要但不紧急的尴尬境地,如果架构师在这方面自己不重视,那还怎么能做好呢?当然,要是只关注技术架构,不关注业务目标,就更不合格了,项目组、产品线的每一个成员都需要理解业务目标,并为之努力。
温伯格曾说:一个系统,就是对世界的一种看法。世界是什么样的?多元、有机、不断变化、并不完美。架构师从分析、理解到设计、搭建、维护系统,这个过程,创造出了一个小世界。而这个小小的世界,融合了架构师对大千世界的体悟和取舍,是每个架构师的智慧与汗水的结晶,已不仅仅是修炼,更是修行,而修行,无止境。
架构师,是一种别样的人生。
本文在InfoQ《架构师》电子期刊2016年第7期卷首语基础上有所修改。