《程序员》:与求伯君同行——珠海金山探营
(这条文章已经被阅读了次) 时间:2002年08月14日 08:42 来源:闫辉 原创-IT
与求伯君同行——珠海金山探营
踏上旅途
伴随着飞机的轰鸣声和擦地时的颤动,我悬在空中的心也慢慢的落了下来。走出机舱,双脚又重新踏上了土地,不同的是已经在中国的南方了。从北京到珠海,近2400公里的航程,求伯君每周都要往返,想必他已适应了这种工作方式。一下飞机,钻进白色的宝马车,求伯君的诺基亚手机便没有空闲的时刻。
“先停车,把我笔记本拿出来,有个人给我发了封重要的信件。”求伯君收到了一个短信息后说。
司机打开后备箱,取出富士通的笔记本,递给求伯君。“肯定是用GPRS上网!”我心里想。求伯君启动金山邮件,将手机的红外线接口对准了笔记本电脑,开始拨号。车轮在飞快的行驶,程序的滚动条也在不断向前滑动,但在85%的时候停住了。求伯君转回头,笑着说:“你瞧,GPRS也会掉线,但毕竟方便多了。”
到珠海的第一印象如果用一个字来表达,那就是绿!两旁都是橄榄树,草坪也修剪的整整齐齐,抬头就可以看到很多被绿色覆盖的山,后来听说珠海市长下过一条死命令,为了让市民抬头就能够看到山,不允许有过于高层的建筑阻碍人们的视野。
快到金山的时候,我指着路旁问:“这是珠江吗?”
“那是海,对面就是澳门了。”求伯君头也没有回,迅速的说道。
北京金山去过很多次,狭小的座位格子给我留下很深的印象,当然在寸土寸金的首都还可以理解。但珠海金山肯定没有这种烦恼,求伯君指着面前的六层大厦说:“这是公司买下的。除了六楼是方正公司之外,其他都是金山的员工。五楼是WPS研发团队,四楼是金山毒霸和第五事业部,三楼是行政管理,二楼是西山居,一楼是展览室、阅览室和餐厅。”求伯君一边走,一边介绍。所遇到的员工好像都非常习惯他这种的来去无踪的“大侠”风范,打声招呼便匆匆离去。在上楼梯的时候,我从窗口中看到大厦后面很大的一块空地。求伯君笑着说:“那是我们的足球场,下个月公司内部的‘金山杯’足球赛就要开始了,西山居已经连续两次赢得冠军,据说他们招聘的时候还要问对方会不会踢足球。”
厚积薄发——探WPS团队
WPS作为金山的起家产品,是倍受瞩目的,正因为如此,他们也承受着更大的压力。从求伯君到现在,已经历了3代开发团队,WPS也从简单的文字处理软件向完善的办公产品转型。在求伯君的引导下,我走上五楼,最显眼的是两个黑板上写满了要处理的程序Bug,不过大部分已经修改完成划掉了。开发进度表上密密麻麻的曲线好像在催促着开发人员尽快推出更完善的产品。在这里,我见到了WPS开发团队的主要负责人和开发骨干,有金山WPS事业部副总经理,被尊称为沈老师的沈家政,还有WPS技术总监万里和项目经理章立新等人。尽管这些人因为晚上加班,见面的时候显得有些疲惫,但当谈到WPS三个字的一瞬间,我看到几个人的目光亮了起来,头上杂乱无章的头发好像有一些更加直立起来。
“从去年发布WPS Office到今年的WPS 2002,产品功能提高了很多,更重要的是我们的开发更加规范了。尤其是WPS组通过CMM2认证,我们从中学到了很多项目管理的方法,研发人员也得到了很好的锻炼。过去有人说句话,就要加上一个功能,自从有了需求分析管理之后,即便是求总也要按照正规的途径提交建议并进行分析。以前所有的OEM版本都在同一个代码库中,只是靠条件语句进行编译不同的版本,容易产生很多问题。后来我们对库进行了大的修改,利用模块化和组件化解决了并行开发的问题。虽然现在WPS的代码量已经超过150万行,但我们感觉开发是越来越顺利了。”做为三朝元老,沈家政对WPS的发展最有发言权。
在加强开发管理的过程中,WPS小组也遭遇了一些障碍。他们开发了一套完整的Bug管理系统,但要起作用,需要在程序员的机器上安装一个插件。程序员只有得到授权之后,才允许修改代码。开始的时候,这种做法遭到了一些程序员的抵触,他们认为以前程序写起来随心所欲,没有这么受限制,现在加了防护影响了工作效率,有的人便偷偷的绕过这种机制直接去修改代码。为此,性情直率的万里还曾经冲到对方面前大声质问。谈到这些,万里一笑,“这个时候,我唱黑脸,沈老师就唱红脸,所有这些都是为了把我们的WPS做的更好。我们的Bug管理系统也升级到了3.0,功能更加完善,同时大家都认识到了这种管理带来的好处。”
去年政府采购WPS之后,市场上反馈来很多信息,这些信息让WPS的程序员对市场和产品有了更深的认识,以前总想做和别人不一样的东西,但慢慢的他们了解了最终用户的需求。兼容微软的文件格式和提供二次开发接口就是在这种情况下成为了新版本的主攻方向。章立新说:“我们集中了20多人的研发队伍,对微软的文件格式进行分析。以前微软的MSDN中有一些关于文件格式的描述,但MSDN的2000年版本后关于Office文件格式的资料就不再发布了,因此我们开始自己做基于二进制的代码分析。在这个过程中,我们借鉴了XML的想法,把文字等格式描述信息用中间层的形式进行,以后如果要支持其他的格式,我们只需要修改一方的格式就可以了。”
谈到二次开发接口的提供,万里感慨的谈到当时他在广州参加一次会议,有家系统集成商告诉他们,如果他们的产品能够整合到OA系统中,他会立刻购买一千套产品,因为同微软的Office相比,WPS有巨大的价格优势。“这些都是我们埋头写程序的时候所无法了解到的,有些功能很容易实现但我们没有提供,因为往往认为客户不需要。开发团队只有走出去才能发现原来很多问题是我们对客户了解不够。现在WPS提供了一套完整的API来给其他用户调用,可以通过OA系统控制WPS做任何事情。”
从求伯君满意的笑容中,你能感到WPS是一支走向成熟的,用行动来实现理想的团队。
初生牛犊不怕虎——探金山毒霸团队
自从金山加入杀毒软件市场的争夺之后,媒体上杀毒软件的口水大战便多了起来。而金山毒霸从它诞生的那一天起就注定成为被关注的焦点。你也一定在想,让金山吃杀毒软件这块肥肉的程序员是何等模样?
陈飞舟,金山毒霸的研发部经理,无论什么时候,脸上总是充满笑容,激情四射。从最初几个人到现在建立起来的几十人的开发队伍,陈飞舟煞费心血。金山毒霸的程序也从最早的版本不断完善,在推出测试版的同时,他们便开始考虑下一个版本的程序架构。陈飞舟说:“当时我们发现,采用MFC、VCL等类库的方式写程序存在很大的问题。往往是在我们最没有经验的时候,需要进行最关键底层的定义,这样一旦在开发过程中发现了不足,修改底层的工作量极大。后来在接触COM技术后,发现这种技术有很大的优势,在升级的时候只需考虑定义好接口就能方便的扩充,而且为以后跨平台打下了良好的基础。”
陈飞舟还给我介绍了毒霸研发部的两位软件工程师,一个是负责宏病毒查杀的孙国君,一个是负责金山毒霸个人版的李宇雄。“我们的团队中,这两个人是一老一小,孙国君曾经在二汽工作了7年,而李宇雄则是个高中毕业就到金山的技术天才。”
孙国君主要负责宏病毒的查杀,一谈到宏病毒,便有说不完的兴奋。“宏病毒和EXE病毒代码有很大的不同,EXE病毒本身就是机器码,只要找出感染和破坏特征代码就可以了。但宏病毒是基于VBA技术的,很多时候只是把病毒代码简单的增加或者减少某些字符就能产生变种。因此要真正了解宏病毒,就必须把宏转变为源代码进行分析。”当时孙国君花了很大力气研究源代码同编译过的宏有什么关系,很长一段时间没有任何收获。有一天,孙国君在半睡半醒之间,象凯库勒在梦中得到苯的分子结构一样,突然感觉宏病毒的代码格式和压缩格式很相似,于是陈飞舟把自己曾经搜集到的各种压缩格式资料给孙国君来对比。孙国君利用自己对VB很熟悉的特长,写了一些程序把源代码灌入Excel中进行比较,一个字节,一个位的对比。最终把压缩方法、压缩比、变通的方法都搞清楚了,毒霸开发也取得了突破。
采访中有件事情给我留下了深刻的印象,当谈到竞争对手时,陈飞舟对江民科技的CTO刘杰赞赏有嘉,认为他在杀毒技术方面非常有经验。而此前采访刘杰的时候,刘杰也曾夸奖陈飞舟的聪明。这时你会感觉,在这些真正扎根技术的程序员心中,公司间的炒作和攻击伎俩变得如此苍白。
游戏人生——探西山居
如果问金山那个部门的产品最多,肯定非西山居莫属。短短几年间,他们开发了《中关村启示录》、《中国民航》、《剑侠情缘》、《月影传说》等一系列产品。尽管某些游戏有重复之嫌,但在游戏市场大环境并不乐观的情况下,能够活下来本身就是一种胜利了。求伯君还曾经写出了《中国民航》这个游戏,但现在游戏开发的重担是压在了西山居总经理裘新的肩上。
走进西山居,我发现旁边的黑板上贴着一篇本刊的文章:《中国游戏开发启示录》,我想这可能是为数不多关注他们这群人的文章吧。带着几分得意,走进裘新的办公室。有了以前采访游戏开发的经历,聊起来还是有很多共同语言,从西山居的发展到未来产品的规划,裘新显得底气十足。不过裘新说上几句话,便去敲打键盘。坐在他对面,我还以为他在和别人聊天。
“你的坦克写的怎么样了?”求伯君闯了进来,我也随着求伯君把头探到裘新的显示器前。
“就要写好了!”裘新一边回答,一边解释:“这是为我们即将推出的剑侠情缘网络版做的测试程序,主要是为了测试服务器端能容纳的用户数。如果屏幕上能跑几万个坦克,那也可以支持几万个玩家同时在线,因为通过网络传输的数据包是很小的。”
裘新旁边的房门上写着“罗晓音”三个字,里面不时的传来游戏打斗的声音。我和求伯君走了进去,房间里的光线有些暗,在一台调音设备几乎占据了三分之二的桌面上,罗晓音正在聚精会神的玩一个3D游戏,键盘和鼠标配合着同各种怪物搏斗。求伯君介绍说:“罗晓音多才多艺,我们游戏中所有的音乐和音效都是他一个人写的,现在他在测试我们即将推出的第一个3D游戏《天王》,这个游戏还在E3大会上做过展示。”尽管罗晓音开始的时候很熟练的在屠戮各种怪兽,但最终被追的走投无路,只得叫来了游戏的策划才找到了出口。
金山形象我制造——探UI设计团队
四层,有一个装饰很有特色的房间。一面墙全部用麻片覆盖,上面还挂着由九个石英钟芯组成的大表。桌椅摆放的也颇具特色,倾斜的红书柜带着一种浪漫的气息,玻璃门上的黑白艺术肖像海报看起来很像是乐队的宣传画。这里是属于金山的UI(User Interface)设计团队的空间,四个小伙子就在这里勾画着金山每一个产品的色彩和线条。
作为部门经理,黎万强已经在金山工作了两年了。其他几个同事在网页设计、三维设计、图形绘画、动画制作等方面各怀绝技。刚刚坐下,黎万强拿出一套精致的茶具,沏上龙井茶,就播放起他们为产品宣传而做的三国演义的Flash动画,听着各自给人物的配音,大家笑了起来。
“UI设计在产品开发中很重要,如果外包给其他的设计公司去做并不恰当,因为只有自己的员工真正了解产品,才能以更负责的态度把它做好。而且UI设计有很多特色的东西,包括画一个简单的图标都要经过多道工序,产品部门会和我们专门的接口人员,负责协调每一个任务单。”尽管设计本身是一项比较主观的工作,但他们坚持一个原则,这就是站在用户的角度去考虑问题,包括色彩的搭配、使用习惯等。金山毒霸的下一代产品去掉了各种盘符的显示,对此,黎万强解释说:“对于这个产品,因为没有像Office那样事实上的标准,因此更多的是考虑如何方便用户的使用,我们在使用中发现,用户杀毒只是希望进行两个操作,并不会关心扫描哪个盘符或者目录,因此我们只保留了快速杀毒和全面杀毒两个最常用的按钮。”
UI设计团队
养在深闺待人识的第五团队
再次登上返京的班机,一边顺手拿起旁边的《珠海特区报》,发现报纸一页中有三处提到珠海金山公司,并配有大幅的照片。有些遗憾的是没有来得及采访神秘的第五团队,这是金山进入企业软件开发领域的保障,包括酒店管理软件在内的企业软件正在紧张的开发中,相信不久就可以看到金山在这方面的动作。