解剖腾讯QQ的敏捷开发模型
对IT行业而言,面对不断更新的技术和环境,建立敏捷的开发方式和团队,建立敏捷的业务分析和模式,建立敏捷商务的运作模式,让公司成为敏捷企业以快速应对不断变化的客户需求,才能在市场中立于不败之地。
目前最典型的是腾讯公司的运营模式。腾讯公司凭借中国最大的用户群、快速应对市场的能力,获得“秒杀对手”的称号,它每进军一个行业,都让整个行业的竞争对手感到恐慌。对手不得不推出相应的甚至是自己不需要的产品,来应对腾讯的竞争,即使如此,市场份额还是被腾讯无情地划走。
腾讯公司可说是敏捷企业的一个代表。大家看到腾讯这些年进军棋牌类、休闲类、竞技类游戏市场甚至新闻业等等,都在不断蚕食这些市场。棋牌类的,硬是从老牌的联众手中抢走了一半以上的市场份额,竞技类的也是如此,门户网站更是为留住用户而大伤脑筋。
腾讯凭什么具有如此大的杀伤力,让业内人士感到恐惧?除了它拥有庞大的客户群、快速应对市场的能力,还有就是它构建在技术基础上的业务模式。笔者所在团队2003年所开发的企业应用管理软件(HR,人力资源管理软件),也是模仿腾讯QQ和联众的开发模式。
大家都知道,QQ和联众的棋牌类游戏是先下载一个大厅,再下载相应的应用软件包,然后用户登陆服务器,实现各应用软件的功能。在此,笔者结合团队开发的软件,从两个方向谈谈这些软件是如何敏捷开发的,希望让更多的朋友了解敏捷开发的模式。
首先要开发一个服务架构,解决通信问题、服务负载平衡问题,以及缓存处理和延时处理问题,其中最重要的,是要完成各服务包的注册和寻址,并实现实体类的方法。上面可分在两个包或同一个包实现,不然,联众的棋牌也可以在QQ游戏大厅中的棋牌室玩了。
然后就是大厅软件包的开发。大厅除了我们都看得到的功能外,还有游戏的引擎和公用服务,如登陆、语言通信、广告以及计分等,这里分服务端公用服务包和客户端服务公用包。另一个重点是游戏的注册,注意,上面是注册的方法,这里是完成具体游戏的注册。而这些具体游戏完全可以放在外面的一个文件中,如果不考虑加密机制,直接存成XML文件就好。
再接着就是客户端软件的开发。根据各种不同的棋牌规则,开发相应的程序,根据业务的变化,调整相应的代码,完成快速开发。如果某些游戏存在问题,只要跟踪相应的游戏代码就可以解决问题。这样的架构模式,使腾讯有时间、精力在平台上快速开发其他新游戏。

这是一个非常具体的敏捷开发模型。当然,QQ和联众的具体系统架构图,和笔者的分析会有所不同,但思想及分层应当不会差太多。业界朋友有兴趣的话,可以把他们的程序破译,看看和笔者的分析是否一样。