对于系统架构师角色,有些公司是不设立的。这个让本人非常惊讶,也就时常会对比回想华为的系统架构师岗位是怎么一回事、有哪些作用?
此处聊以笔记。
一、先说一下华为大致的软件开发阶段。作为背景介绍。
研发部门拿到需求之后,研发部门的设计主要分为如下三个级别。
(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发现阶段和成本的关系图: