华为之系统架构师作用的浅谈

转自:http://blog.csdn.net/qq_32246443/article/details/49407207

对于系统架构师角色,有些公司是不设立的。这个让本人非常惊讶,也就时常会对比回想华为的系统架构师岗位是怎么一回事、有哪些作用?

此处聊以笔记。

一、先说一下华为大致的软件开发阶段。作为背景介绍。
研发部门拿到需求之后,研发部门的设计主要分为如下三个级别。
(1)软件部门编写系统架构设计文档,主要是本系统划分为多少个模块、模块间如何协作等。该文档在review成熟没有问题之后存档,并指导下一级开发。
(2)软件部门接下来编写模块设计文档,主要是本模块的内部设计、对外接口设计等。同上要进行review,OK之后存档,用于指导下一级开发。
(3)软件部门接下来编写独立单元设计文档(由于华为采用敏捷开发,所以内部就叫做story设计),主要是一个story中的各个逻辑关系设计、接口设计等。(review要求一样,不再赘述)

二、好,接下来可以开始谈谈系统架构师(SE, System Engineer,下文简称SE)了。
(一)先说下范围,哪些部门有SE?只有软件部门有SE吗?
错,不但软件部门有SE,测试部门也有SE的。我就来说说测试SE。在上文说的系统架构设计阶段,测试SE就会参与review, 从测试角度去进行分析。
其好处是:由于软件同事做系统架构设计,不是从测试角度去做,所以测试SE往往会发现一些SW确实疏于考虑的问题。
这种设计上的bug,不用等到软件设计、开发完成之后,再通过测试出bug来弥补,否则太低效,也太贵了
这里想贴一张bug发现阶段和成本的关系图:

确实,bug发现的越晚,就越贵啊!

(所以有时候,这个SE岗位的缺失,似乎表面上减少了一个岗位的工资支出。但实质上看,是节约了成本、还是增加了成本呢?)

二、软件SE的主要职责。
软件SE主要独立负责(掌管)某一系统架构设计的完成。通过文档来承载。要在组内review 后无问题然后才可以存档和指导下一步开发(当然后期仍然可能会有些小的调整。对于无法预估的变化,这个神仙也做不到)。
第二步,组内各模块骨干做模块设计,这时一般SE也比较关键和忙碌。因为模块骨干会经常骚扰SE,有很多问题要询问SE,然后才能成功写完文档。
第三步,组内各成员对于story进行开发。需要完成story文档设计和review。然后进行开发。开发阶段会有很多编程具体问题,也要和SE频繁交流、代码review等。这里暂不赘述了。

三、SE还有一个职责,就是要负责“外部接口变更”的评审。
因为各个模块之间、各个组之间要分工和配合,这种分工一般是通过外部接口作为通道,来承载两边。所以软件上的外部接口是很重要的通道,也是不能随意改动的。
对于不得不进行“外部接口变更”的情况下,需要一个专业、有能力的团队和流程来进行审查,确保这种变更的质量。
研发内部有一个团队叫做“CCB” 即变更控制委员会 Change Control Board。一般是由各个领域的SE组成,在每周二(或者每周四,记不清了)专门进行CCB评审。评审前,提出接口变更的人,要先按照模板将自己的CCB描述写好,提前几天发给CCB的各位。
然后会上(一般是远程、多方的电话会议。因为各SE都各安天涯,往往不在一个城市)自己介绍一下变更内容,CCB大神们继续分析、交流。有的变更,会评审通过,那么就可以执行了(被影响的各组要被知会);有的变更未通过,那么是不能执行的。

当前先写到这里。

猜你喜欢

转载自blog.csdn.net/xiao5678yun/article/details/84110192