民主的时代,我们需要架构师吗

      我们常听说总工,架构师。
     参加工作十余年来,今天可以下一下结论,就是总工,或者架构师,是拖团队后腿的角色,已经不适合民主时代要求。也许在国外,根本没有这个职位。我看过网易公开课的航天系统工程学,的确是这样。里面只有向下思考实现的系统工程师,没有什么总工。也许管预算的可以称为总工。对了,那是在70年代。阿波罗时代,也许有个精神领袖:冯.布劳恩(但看看登月的书,也是非常民主的,最后的方案,不是布劳恩要的,因为布劳恩有更远的计划,要上火星,而上火星,则必须在地外出发,所以布劳恩大力支持二步方案,就是先在地球上方建好基地,再登月)。70年代,完全是民主的时代。航天飞机就是这样一个“奇迹".

     比如,前些年,我在我们公司研发体系,从软到硬,到结构,到白盒测试,我们有项目经理,有总工,但总工只关注一些协议或是他知道的东西。而这么庞大的团队,保持一致升级的是,是一套叫主信息库的excel文档,里面有非常详细的内容。

   

    而我的确比较幸运,参与其中,负责开发这套自动化解析的工具。当然,这个思想,在我开始编写这套工具之前就有了,但的确是我开始编写的。因为客观来说,在03年,解析那么复杂的excel,不是所有人都能整出来,我不太乎到外胡吹这事(现在不太了解了)。后来有幸成为网管部分的子项目经理。从更广的角度,观查了整个研发、测试、外场体系动态演进的过程。


比如,一个IP结点,由:
    {
        ipType
        ipAddress
            ipv4
            ipv6
    }

     当然,最终汇总的结果是几万行,每一行相当于一个数据库中的field.我们有一套类传于snmp mib的oid,为每个叶子设定唯一ID。所以,我们的基础数据叫MIB。

     然后是命令层,这些参数被封装到一个个状态无关的函数,就象数据库表的存储过程,或函数。
     然后织装成为命令树,
     然后成为对象层。一些通用操作,在这里对用户进行屏蔽。每一个对象,我们尽可能减少对用户呈现的信息。
     然后,有表示层,展现给用户。
     也有GUI层。

这一切都是自动的,除GUI的图元,要手工画出,但大部也,也是全自动。当时我们用的是SVG。


所谓自动,就是程序不清楚他在干什么。就像人的一个脑细胞它也不清楚自己在做什么。但却组成了有精神层面需求的human being.


然后,有一系列工具,完成这种自动化解析的工作,
要输出许多方面的信息:

1. 嵌入式平台的C代码。
2. 初始建立数据库工具
3. 初值文件。
4. 等等。

然后,这个主信息库,会被以解析后的格式,存入所有相关软件的相关部分,就象我们人体每个细胞都带着DNA(当然有的细胞没有核)。

最后搭建的庞大的分布式系统,每个个体,可以在有一定版本差异的情况下协同工作。版本兼容,虽然只有几个字,但真正理解工程学的人,知道这有多重要。

整个过程,没有一个人,对整个系统了如指掌。是靠民主和群体的力量。


excel的主信息库,是由几十人,甚至几百人共同完成的。比如FPGA,DSP,底层协议,高层协议,等等等。


当然,那一系列Excel解析工具,也是背后的功勋。既使在我们公司内部,了解这套工具的人,也非常少。这些工具,也是一年一年不断的加强和完善的。

我们有一个工具,叫初值文件编辑器,后面会提到。有一次,有一个同事,打电话问我,关于这个工具,为什么能解析所有版本的初值文件,我当时有点吃惊,因为原来大多数同事,根本没有感觉到我们有这样一个庞大的体系在后面,所以我给他讲了一下,我们研发部那么多同事,如果没有一个纲领性文件,如何能齐步走呢。从他的语气里知道,他非常吃惊——他可能一直以为我们在摸瞎乎呢。



      当时之所以,采用EXCEL,是因为,别的工具,目前还达不到。比如一些UML工具,属性不能无限护展。
而我们一个属性叶子,要描述数十种信息(现在可能更多了)。每个叶子,也需要有唯一的ID,这些UML工具,是难以实现的。

另外,Excel便于人查看,这也是UML工具难以做到的。

而且excel,可以说人生来就会用,不需要专门的培训。这比起所谓的那些工具,要好不知道多少倍。唉,有点讽剌。看看在IT界,天天推陈出新,可真正有用的有多少呢?人机交互,目前还是在excel的水准上。


当然,有许多人和团队要尝试进行改进,但到目前为止,我们还受制于“综合球力”,我们不得不面对一个有限制的世界。

然而,即使如此,我们也达到了预期:

1. 集合了全团队的力量,而不是依赖于某个所谓的根本不可能存在的总工,或是架构师。也许有人会说,你这套框架,Excel每一列

的含义,不就是架构吗?当然,也许吧,然而,我们工具,绝大多数部分,都是VB6所写的。他们的工资与普通员工差不多。因为这

些线下的工具,不太需要多线程和效率,我们发布的东西,都是这些工具的输出,里面把效率都提到最高了。


2. 如上所述,为公司省了钱。
3. 可以快速升级。全系统,可以在几小时内,完成升级。如果知道以前手工升级是多少时间,那一定会大吃一惊——三个月。而且,接口正确性要测三个月——而且,还是有错误。
4. 减少了错误,本来需要大量测试的接口,现在变成了可信的部分。本来是大家要不断扯皮的接口,现在变成了一个内部的单元。
5. 版本的追溯成为可能。同时,使得所谓的decay,代码的腐烂减到最小。

6. 这可能是最重要一点,是以上的基石:那套解析工具里面,80%以上的代码是在检查各种人为错误。可不要小看这件事,一个取值范围错误,可能让一个网络崩溃。



当然,总结,就是大大结快了效率。因为整个团队不需要等所谓的总工明白了每一个细节之后再行动。这种情况,真是泛滥啊。当总工每天逼着你给他讲明白你所有的细节时,你真的是欲哭无泪啊——不是我不想告诉他,一方面是因为我也不懂,搞技术的人都知道,能做出来你水平只能是1,能讲出来是10啊。可我们技术人员,不是谁都能到10的水平。另一方面,总工都是混吃混喝的,他哪能整明白啊?他唯一会的就是到项目经理那去告状,让人哭笑不得——等总工整明白,黄瓜菜早凉了。


而且,由于,每个系统都带着DNA,那么,可以通过版本兼容的升级,不断地修正自身的BUG。不断地evolution.

当然,这个兼容体系中,管理软件,比较复杂,需要携带几乎几年内所有的版本,而嵌入式端,则简单得多,一般就带两个或三个就可以了。用于升级失败时,自动回退。

初值配置文件,也是一个有利的特性,我们的整个网络各节点,可以在家里全都配置好,等施工完成上电后,自动下发。

今天只是简单写一下。里面还有许许多多的技术,才能支持我们这么庞大的体系运行,比如性能处理的自动计算,告警处理,自动化的命令行,自动生存命令手册,等等。

还有就是自动化的图形化显示(监视和 topo)程序,是最复杂的部分之一,难点之一,就是当底层的小变化,放大到最上层时,可能带来的影响。

总之,以目前的社会,人们还迷恋于什么牛人,什么总工,是可悲的。
记得以前看过一本书,叫《没有指挥的乐队》,我相信,在软件行业,这不是梦想。

事实上, 美国的F-35,已经实现了这一点。他们不需要什么总工,却一年多就定了全部硬件。因为他们有全套的仿真系统。这一年之中,不知道试过了多少种设计。

任重而道远。希望国人奋发,不要固步自封。我们应当象系统一相思考,象细胞一样生存。永做脚踏实地的系统工程师,不要夸夸其谈,自诩为什么伟大的架构师。




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值