在互联网行业应用敏捷方法应对快速变化
Tuesday, July 24th, 2007昨天才知道这篇文06年6月已经被发表了,自转一下。http://industry.ccidnet.com/art/1544/20060529/565255_1.html
随着Web 2.0概念的发展深化,以网站为依托、面向海量用户群的互联网应用再次吸引了整个IT业界的眼光。这些新兴的互联网应用通常为用户提供一个垂直领域的深入服务,以其独特的服务为客户提供价值。其中,为网络游戏的玩家提供道具交易功能,就是这样一种典型的新兴互联网业务。
自盛大宣布旗下的传奇游戏开始免费运作依赖,中国的网游市场开启了免费时代。这是网游市场竞争日趋激烈的必然产物。除了那些高端市场的网游之外,大部分的网游都受到了影响,由于用户群的流失而导致产品提前退出市场。免费的网游市场并不等于所有做网游的公司都开始喝西北风了。存活下来的网游公司,所依赖的是新的盈利模式,为客户提供增值服务,并获得利润。其中,为客户提供高级的道具就成为一种有效的盈利模式。
网游市场本身就是一个快速变化的市场。而伴随着网游市场兴起的虚拟物品交易市场更是一个不断变化的市场。面对这样的市场特点,以及同行的竞争,一家虚拟物品交易公司需要一个强有力的交易平台来支持。这个交易平台有着如下的特点:
1 业务模式将不断发展,趋于复杂化。
2 随着市场不断的变化,交易平台需要能够快速满足市场的需要。这种需要可能来自多方面,包括用户、游戏运营商、监管机构等。
3 由于不断变化的需求,交易平台的变化将非常频繁,极可能带来平台架构的不稳定。
4 由于快速的发布和日趋不稳定的平台架构,将有可能导致发布的应用出现bug,引发公司的经营性风险。
为了运营这样一个交易平台,虚拟物品交易公司需要有一个足够敏捷的组织,足够快速地响应变化,能够快速了解市场变化,市场的变化能够被翻译为需求,需求变为实现,并快速部署,保持应用平滑的过渡,并引导用户的使用。所以我们认为,虚拟物品交易公司的重点,是要建立这样一个敏捷的组织和流程。
传统的软件开发的过程一般是从需求获取开始,然后是实现、测试、部署。为了实现快速响应的目标,需要把这个过程分解为周期更短的迭代过程,以实现更快的产品面世速度(Time to Market)。
从与一家虚拟物品交易公司谈话的情况来看,主要的需求来自于这家公司的Marketing部门、Customer Service部门和公司的CEO(我们所了解的这家公司规模还不大,因此没有CIO的角色)。Marketing主要是和游戏运营商打交道,他了解的是一个宏观的和潜在的需求,Customer Service部门主要解决用户的具体需求。而CEO往往会提出战略上的一些考虑。我们看到,三种类型的需求同时存在,同时都反馈给研发部门。可以想象,在这样一个快速变化的市场环境中,研发部门很难对需求做出快速的应对。因此,我们首先就是要处理研发团队和需求团队之间的不匹配问题。
解决的办法是由Marketing部门、Customer Service部门、CEO以及研发部门的PM或经验共同组成一个需求团队。这样的团队涉及到决策、业务和技术三方面的人员,可以保证业务需求能够从战略层面被抽取出来,而能够在整个公司层面梳理业务需求的优先级。这样,有限的开发力量就可以集中到最有价值的部分,从而实现了技术对业务的有效支持。如果可能,在这个团队中最好还需要交互设计人员。因为交互设计将是客户获得良好体验的根本,交互设计更重要的工作是能够将问题用图形方式描述出来,可视的东西为需求团队提供了一种通用的语言,并为研发团队给出了一个明确的目标。
在需求团队中,经过一段时间磨合,将会引入开发速度(单位时间内的工作总量)的估计。一项需求确定之后,研发部门的代表将会很快做出评估,这样可以在需求团队中把业务需求和开发能力匹配起来。
需求团队最终的目的是产生一个新的发布计划。新的发布计划包含了最有价值的业务需求,这些需求包含有工期的估算及交互设计的原稿,被交付给研发部门,由研发部门进行开发。
对于一家持续运营的公司来说,交易平台的服务质量是生死攸关的。任何可能的数据出错,或是代码bug,都可以造成用户的损失,降低客户满意度。在软件开发中,质量主要是由测试来保证的。测试方式和层次有很多种,相应的也需要不同类型的人员来完成。例如,单元测试是最小粒度的测试,主要由开发人员来进行。接受测试(或称功能测试)由QA来完成。性能测试在每次发布前进行,由部署人员负责。全公司所有人员,包括业务人员,都会关注系统的开发,随时发现和提出 bug。这样形成的一张完整的测试网络,可以有效保证最后交付产品的质量。为了保证测试的效率,单元测试和接受测试是自动完成的。
自动的测试只能保证系统内部的质量,而系统和其他系统之间的测试,例如银行支付、游戏接入,这些部分不是自动化。在正式部署到真实环境之前,需要先在模拟环境中进行严格的部署前测试。由于真实数据库中存在着属于用户的数据,为了保证数据库的稳定,必须要进行升级测试。一般的思路是将真实的数据库导入到模拟环境中,把数据库升级到新版本的交易平台。对升级后的数据库进行验证,保证数据库升级的准确性。在完成了这些测试后,就可以部署一个高质量高稳定的产品了。
建立开发人员和业务人员之间的良好关系,积极响应需求,通过快速的迭代,先实现高优先级的需求,重视测试对质量的贡献,在部署之前进行严格完整的测试,保证交易平台的质量。这些因素加总起来,使得交易平台能够适应快速变化的市场,满足业务上的需要。很多企业中都存在业务和技术之间的错配,技术满足不了业务的需要,无法对商业价值做出直接的贡献。如果能够像这家虚拟物品交易公司这样,建立业务和技术之间的良性互动,就可以通过利用技术,取得市场上的优势地位。


