架构真意:企业级应用架构设计方法论与实践
上QQ阅读APP看书,第一时间看更新

1.2.1 架构师的职责

在整个IT产业中,架构师是定义最模糊的一个角色,不同的公司对架构师的职责定义都是不一样的。有的公司,架构师趋向于业务分析;有的公司,架构师趋向于技术落地;而另一些公司,架构师趋向于战略规划。总结起来,架构师的职责包含以下几个方面。

(1)架构师是介于需求与研发中间的人

需求人员平时思考的都是业务的问题,譬如做财务的思考财务的问题,做税务的思考税务的问题,做金融的思考金融的问题;研发人员平时思考的则是技术的问题,譬如这段代码怎么写,那个地方应当采用什么技术。因此,需求人员和研发人员的思维存在巨大的鸿沟,如果他们不能相互理解,将给项目带来巨大的风险。

曾经有一个需求和研发打架的视频火遍全网,需求想让手机壳随着屏幕变换颜色,研发觉得需求在无理取闹。为此,他们就打起来了。

从这个例子不难看出,在项目中非常需要架构师从中进行协调。架构师往往在自己所在的行业经历了多年的信息化建设,对业务以及业务痛点的理解可能比需求人员还深刻,又有多年的技术功底,能够很好地将需求落实到软件设计上。从这里我们可以看出企业对架构师的要求:既要技术好,又要懂业务。

技术好这个前提架构师通常可以满足,但怎么才能懂业务呢?这需要架构师在每个项目中都有意识地去理解业务。项目做多了,业务经验多了,自然就懂业务了。因此,要成为一个合格的架构师,就需要多思考、多学习,有丰富的项目经验。

(2)架构师是统领全局的将军

项目越大,架构师就越重要。在大型项目中,有很多人、很多角色要参与进来。这时,他们怎么配合,怎么相互协作,按照怎样的统一标准去设计开发系统,将变得非常重要,而所有这些都需要架构师来统领。这里有一个疑问:架构师与项目经理都在统领全局,那么他们的区别在哪里?

在软件公司里,项目经理属于管理岗,架构师属于技术岗,这就决定了他们职责分工的不同。项目经理关注的是软件之外的人的因素,比如任务怎么分工、进度怎么把控、人员怎么调配等;架构师关注的都是软件之内的设计问题,比如采用什么技术、怎么分层分模块、怎么制订技术规范等。项目经理往往处理怎么跟人打交道,相对外向;架构师思考的是软件设计本身,相对内向。所以,有些团队在项目初期,可能项目经理和架构师是同一个人,但当项目进展到一定阶段后,架构师和项目经理就不能由一人兼任了,否则最后哪项工作都做不好。

(3)架构师要作为“技术大牛”攻克技术难题

架构师代表着团队最高的技术水平,是公司最值得信赖的技术骨干,因此架构师还要作为“技术大牛”去攻克软件项目中的技术难题。很多时候,如果某个问题连架构师都解决不了,那可能就没有人能解决了。所以架构师必须有一种“不吃不喝也要解决问题”的狠劲,一种“见山开路,见河搭桥”的精神,去攻克技术难题。

但是,一个人的精力有限,因此架构师不一定精通所有技术的所有细节。在攻克技术难题的过程中,架构师也不是一个人在战斗,而是带领一个团队。架构师往往起到指引方向的作用,如制订明确的技术方向、落实主要的设计思路,而更多的细节是架构团队各个成员去具体实现。

(4)架构师作为战略规划师去规划未来战略

有些架构师不需要帮助客户制订解决方案,也不用进行各种技术攻关,但拥有无比强大的战略眼光,能帮助企业进行技术规划,制订未来的技术发展方向。这样的架构师被称为“企业架构师”,他往往是企业的首席架构师或CTO。

根据具体侧重点,我们可以将架构师分为以下几种不同的类型:

·解决方案架构师,侧重于沟通客户,理解业务,为客户制订技术解决方案;

·系统架构师,能力更加均衡,负责从项目的需求分析到技术落地的全流程;

·平台架构师,更侧重于技术,将技术难题封装成开发平台,支撑业务系统;

·企业架构师,从具体项目中独立出来,更侧重于规划未来的技术战略。