刘旭: 团队制造

类别:VC语言 点击:0 评论:0 推荐:

记者/闫辉

杀毒软件是一个特殊的市场,做杀毒软件的也是一群特殊的程序员。在用户看来,他们是计算机的保护神,在病毒制造者看来,他们是较量的对手。刘旭就是这样的人群中的一个,他单枪匹马开创了瑞星杀毒软件时代,曾被列为中关村“程序五杰”之一。
现在,刘旭已经基本上脱离了软件开发,专注的是公司的整体运营。瑞星杀毒软件2002版中已经没有了一行刘旭的代码,所有系列产品完全由瑞星研发部完成。或许您会感兴趣于由刘旭一个人到团队开发的转变过程在瑞星是如何实现的?刘旭是如何看待这种转变?我们同样怀着对这些问题的关注采访了刘旭。

《程序员》:谢谢您接受我们的采访。请问在您开发杀毒软件过程中,什么时候意识到了团队开发的必要性?

刘旭:在瑞星成立研发部之前,基本上是我一个人进行杀毒软件的开发。那个时候我身兼数职,既是总经理、总工程师,同时也是底层的程序员,这种多角色工作状态也持续了相当长的时间。在那段时间里,我白天当总经理,晚上回去抓病毒,主要是针对恶性病毒,集中精力熬通宵。在那种情况下,身体的确有些吃不消了。
杀毒软件是一项工作量巨大,同时技术含量也很高的工作。单单技术方面的牵涉就非常广,没有人敢说在每一方面都非常了解,就算是各方面都厉害,在同一时间也只能做一件事情。所以当时只能集中精力做基于Win9x平台的单机版产品,对WinNT系统还没有监控功能,此外也没有精力推出象邮件监控、内存监控、磁盘保护等方面的产品。我也认识到国际发展趋势,基于多平台、多系统的企业级产品也是非常有潜力的发展方向,但当时已经心有余而力不足了。
基于各方面的原因,我认为团队开发是瑞星必须要走的一条路,如果瑞星不走出这一步,就永远只能做小软件,做小公司。

《程序员》:听说在成立研发部之后,您把自己杀毒软件的源代码完全交给团队,您是如何看待的呢?

刘旭:到了1999年的下半年,公司业务有了比较大的好转,于是开始组建研发部。我真正完全脱离开发应该说是2000年的下半年,上半年我还参与研发的一部分工作。也就是说,从开始转变到过渡完成我们花了一年多的时间。现在我只是在研发部的软件功能设计会议上参与制订方向。
很多小公司在成长的过程中都会遇到这样的问题,公司的核心技术就掌握在一两个人手中。在公司发展到一定程度的时候,核心技术人员可能抱着自己的技术不放,认为这是自己立足的根本。但我认为:计算机技术的发展是非常快的,所把握的东西有可能很快就被淘汰掉。而且总把握自己的东西不放,即使成立了开发团队,下面的人想发挥自己的创造力也是很难的,这样做对公司整体的发展不利。所以在瑞星的研发部成立一两个月之后,我把所有的源代码都给了研发部。
这点说起来容易,但做起来很难。因为在这个过程中,有可能泄漏机密技术,甚至产生出自己的竞争对手。所以,首先要信任这个团队。而且我认为一个公司到相对成熟的时候,品牌的作用和用户的忠诚度也是很重要的,技术问题在公司的运作中只是一个层面,而不是全部。
现在我们回过头来看,这次转变还是比较顺利和成功的。因为在转变之前,我们有充足的准备,意识到这个转变中可能存在的困难。如果没有心理准备的话,一旦遇到问题和挫折,可能就放弃了。因此,对于同样希望进行这种向团队开发转变的软件公司,领导人必须下定决心。
《程序员》:在瑞星转向团队开发的过程中,遇到了哪些困难?如何解决的呢?

刘旭:因为杀病毒软件是一个特殊的产品,不断出现的病毒使得用户要求有很强的延续性,不象其他类型的软件在版本更新之前的这段时间,用户还可以继续使用旧的版本。所以我们采用双轨并进的方式,开发团队的工作分两条线并行:一方面继续维护、完善和更新老版本的程序,一方面重新编写新的引擎和版本,也就是我们现在推出的2002版,这是一个软着陆的过程。
由于我写代码的习惯和风格不好,程序中没有一行注释,这些程序给其他人看的时候,还是有些困难的。所以在开始阶段我和研发部经常沟通、交流,对于比较紧急和难于解决的病毒,我还要亲自上阵,但解决问题时我不是埋头在自己房间中做,而是示范给研发部。以前大家只是看到我的程序,但现在亲眼看到解决问题的方法和思路,所以效果很好。总之,有了充足的准备,再加上某些方面的把握,整个转变过程还是波澜不惊的。
现在,我可以自豪的说,经过开发部差不多两年的工作,新版杀毒软件中已经见不到我的一行代码了,但好的杀毒软件思想已被继承了下来。

《程序员》:应该说这次转变也是人与人之间的技术交接,那您在用人方面有哪些体会?

刘旭:我觉得,首先就是要能够找到合适的开发带队人,瑞星在这方面深有体会。我们现在的开发部经理谈文明以前在新加坡著名的IT企业上市公司工作了3年,当时也在做底层的驱动开发,能力很强,而且有丰富的项目组织经验。在近3年时间里,谈经理已经成功地带起了一支将近50人的研发队伍,继承了很多病毒研究方面的思想精髓,并融入了研发部集体的智慧,使瑞星的软件越做越好。
另外就是对研发部、对人才的重视,不拘一格用人才。我们这里有个做未知病毒分析的程序员,是南京商学院去年毕业的,他虽然学的是管理,但对杀毒方面非常爱好。最初他找工作的时候,去的是另外一个杀毒软件公司,当时他用自己的软件把硬盘锁了,并放言“如果有人能够解开,我就走人。”对方没有解密,但也受不了他的狂傲,让他走人了。可以说那个公司失去了一个很好的人才。但是到瑞星之后,我们非常重视,甚至安排他就在自己住的地方工作,而他也不负众望,半年之后就出成果了。
当然团队开发的核心是团结。聪明才智很重要,但如果不能融入到这个团队中去,也是不可取的,甚至可能会带坏一批人。我们公司也曾经有这样的员工,能力非常强,但敬业精神和团结意识很差,能糊弄过去就糊弄。研发部经理为了开除他,提了三次要求,被我否决了两次。因为我还是希望通过沟通来改变他,但没有效果。虽然感觉很可惜,但必须要那样做。
很多优秀的人凑在一起,大家相互交流的过程中就会碰撞出火花,再加上一定的补充和完善,最终可以形成一个非常有创意的想法。但把一个人封闭起来,或者每个人都各自为政,不相互融合的话,效果要差很多。所以可以这样讲,个人到团队会产生一个量变。
《程序员》:现在的杀毒版本同您以前单枪匹马的时候相比,取得了哪些进步呢?

刘旭:可以说,现在瑞星杀毒软件的技术水平比我当时高了一大截,其中很多功劳要归功于我们现在的开发团队。
首先产品线大大拓宽了。现在我们有单机版、网络版、Unix系列(SUN和IBM的服务器系列)、Linux系列、邮件服务器系列、Novell的版本等等,还有个人防火墙软件。当时我写的瑞星杀毒版本的代码量应该不到10万行,现在每个产品都有数十万行,而且是全部重新写的。如果没有团队开发,是不可想象的。而且他们还写了很多工具来辅助病毒的查杀。比如很多病毒是变形的,如果手工解密的话就要花费很多的时间,因此写了一些反汇编的解密病毒工具,使工作效率大大提高。
正是在团队的力量下,我们攻克了很多难关,比如查杀染毒的共享冲突文件,就是靠几个人的力量花了半年是时间用SoftICE来跟踪研究,最终搞清楚了Windows环境下判定共享冲突的机制,然后绕开这种安全机制来查杀病毒。还有Dos下面支持NTFS格式,就是要在微软不公开技术细节的情况下破解这种保存格式,这是与我当初破译Word宏病毒的原理是一样的。还有远程安装、自动升级、分布式统一杀毒、移动控制台等都是集体智慧长时间作战的结晶,也是个人作坊式企业所无法想象的。

《程序员》:您现在负责公司的整体运营,可以说已经成功地从开发转型到了管理,您认为,做开发和做管理哪个更辛苦呢?

刘旭:我觉得做开发和做管理都很累。对于年轻人来说,做开发的过程中可能有更多的乐趣。不过我认为,管理和开发有一定的相似之处,比如程序解决一个问题可以通过不同的途径,做管理也是可以通过不同的方法,尤其是在做方案的时候。

《程序员》:做为资深的杀毒软件专家,请您谈谈未来杀毒软件技术的发展趋势?

刘旭:我觉得主要有几个方面可能会是杀毒软件技术的发展趋势和产生挑战的地方,而且我们也在进行某些方面的研发工作。
1、如何在宽带网中防范病毒。随着宽带的迅速发展,如何尽快识别和查杀网络病毒就是一个方向。现在的技术是否能够适应未来的发展,这会是一个新的课题。在这方面,我们也在和哈工大共同研究。
2、移动设备上的病毒查杀技术。比如手机PDA,数字家电。这些智能设备有可能为病毒的又一个温床。
3、如何处理病毒和黑客程序的结合趋势,也就是如何将杀毒和系统安全结合起来,这也是需要钻研的课题。
4、杀毒软件跨领域的技术发展,比如杀毒技术能不能借鉴医学和人体免疫系统的工作模式,这些方面发展的空间都是非常巨大,需要探索的。

《程序员》:我们杂志有很多对杀毒软件领域有兴趣的读者,希望以后能够从事杀毒软件的研发,对他们您有什么建议呢?

刘旭:对于有志于从事杀毒软件开发的爱好者,可以看一些现在防杀病毒的技术书籍。病毒查杀需要对系统的底层有很好的了解,通过对病毒本身的剖析,并亲自处理一些病毒,研究病毒的机制等等。随着网络病毒的蔓延,对网络底层技术,尤其是底层的通讯协议的研究也是杀毒软件开发者需要非常清楚的,这对于研究病毒的网络传播机制,反馈信息等有重要的作用。其实最好的方法就是在工作中学习,在压力下成长。


采访后记
在《知识英雄》一书中有段刘旭对程序人生的概括是“这不是人干的活”,“非常苦,苦不堪言。1997年,将近30天,我每天只睡2个小时,到7月份,我的脸都是绿的。在科学院,我曾经连续50天,每天搞到早上6点多,睡到上午10点起来,然后再干到第二天6点多,编了6万多行C语言,而且全部调通,苦不堪言。”现在的刘旭应该没有这种感叹吧。
刘旭的技术水平不容置疑,他教过五年的大学计算机课程,主讲C语言和编译原理。正是这种对底层的深厚功底,让他只花了一个月的时间,就从对windows编程一无所知到编写了windows下面的底层驱动程序(病毒实时监控程序)。然而即便这样,他仍然感到自己一个人的力量的太薄弱了,甚至当时制作的安装程序中都没有提供卸载功能。
刘旭的总经理办公室很暗,开着的灯散发着菊黄色的泛光。刘旭抽烟看来也比较凶,在采访的一个多小时的时间里,他抽了五支烟。不知道他这些习惯是不是做程序员时留下的。



本文地址:http://com.8s8s.com/it/it2592.htm