DevSuite合作金山软件西山居:敏捷游戏研发
(1)客户介绍
金山软件公司西山居工作室1995年5月成立于珠海,是国内最早的游戏工作室。1996年1月,西山居发布了中国大陆第一款商业游戏——《中关村启示录》,标志着金山公司正式进入游戏领域。在过去的15年间,西山居凭借其雄厚的研发实力,以及对游戏文化内涵、画面、音乐等方面的深刻理解,共制作了11款经典游戏产品,许多产品至今仍为玩家所津津乐道,特别是被媒体称为中国游戏第一品牌的《剑侠情缘》系列,在国产游戏中更是拥有极强的生命力和号召力。
(2)项目背景
- 大型网游研发成本高,项目复杂程度高,周期长,风险高
一个大型的网络游戏,基本上需要投入的人力是50-100人,开发周期1-2年,主创的研发成本为1000-4000万左右,且不包括推广费用、市场费用或运营费用,游戏研发环节的控制与成功与否至关重要。
- 研发流程单一,从立项到对外发布,只有一个周期
从立项到可行性研究与计划、需求分析、设计、编码、测试到对外发布、运行维护,只有一个周期,而且每个环节一环扣一环,一旦一个环节有所延误,必将影响项目整体进展。就是在这样一个环环相扣的研发周期里,80%的游戏会将面临提前淘汰,余下的20%名拼命坚持到最后游戏上线,能够最终得到玩家认可和热捧游戏,最后的沧海遗珠,更可谓弥足珍贵。
- 需求多变化快,过程中不断变更需求,经常导致项目延期
在网游行业中,游戏项目的成败很大程度上依赖于市场对游戏的反响和接受意愿,游戏的好玩与否很大程度是由玩家决定,这就使得游戏项目的需求变化是不可避免、难以衡量的。游戏开发的最大显著特点就是灵活性、机动性和对变化的快速响应能力,需求变更最为频繁,需求的变更不仅直接冲击产品交付时间,频繁的变更还将使得项目的复杂性提高,变更也不再是简单的放任或者控制,其过程也是一个不断充满各种不稳定因素、一个成败博弈的过程。如何有效管理项目需求,如何权衡各方面的因素,如何将需求变更涉及到的迭代周期内项目计划和人员安排变更的影响最小化,如何让变与不变维持在一个平衡点上,是游戏开发项目最为关注的问题。
- 游戏研发过程不透明,协同工作不容易
典型的游戏开发团队里有策划组、程序组、美术组、测试组等多种角色,如何使这些具备不同工作技能的团队成员协同工作,如何使各个工作环节衔接顺畅,是一个颇为复杂的问题。举例来说,某个流程改变了,相关的人又需要一段时间才能适应这新流程。当某个需求变更时,可能策划、美工、程序、测试人员又要沟通返工。此外,在企业内部,缺少一个信息共享、协同工作的平台,开展并行工程就比较困难,管理者很难详细掌握各开发项目的进度,每个人在做什么,做到什么程度,不仅协调资源比较困难,工作效率低且质量难以控制。
- 项目规划准确性、执行过程的规范性要求高
游戏作为大众娱乐的商业产品,通常都会选择在重要档期推出,如圣诞、新年和暑假等。准确的项目规划能使企业在第一时间收回成本并盈利。然而纵使项目最初都有比较全面的计划,延期仍然会时常发生,即便是在管理机制比较成熟的大型研发企业中,项目延期也不可避免。通常情况下,导致项目延期主要有以下几点原因:功能设计规划过多,很多又无法删除,如不增加开发时间,产品几乎不能完成;缺乏有效的管理工具和实时数据支持,不能准确估计工作量;任务执行缺乏规范,开发人员随意更改功能设计,影响整体进度;过高的人员流动率,导致知识的流失,任务不能及时跟进。
- 游戏推出,面临市场变化巨大,难以达到预期效果
在游戏的研发过程中,团队资源会内耗,变更很频繁,设计策划变更时,程序和测试会很痛苦,程序做重构之后策划也会很痛苦,如果处理不好,一直将被反复折磨,项目风险难以把控,决策层不断"被通知"项目将延期。同时,游戏的研发与发布,有一个相当关键的人物——制作人,它在整个项目里起着关键性的作用贯穿始末。大型的网游研发,甚至是游戏成败的博弈,也取决于整个关键人物。这就使得游戏项目对关键人物、个人的经验和知识的总结依赖程度比较高,倘若人员流失,将对项目产生重创。
针对以上问题,金山软件公司西山居2007年就开始着手寻找和解决这些问题的办法, 金山西山居助理总裁兼月影传说项目总监吉征向我们介绍道:"西山居的首要目标是寻求更好的开发方法、流程和管理工具,从而提高其开发效率,因为效率才是游戏公司赖以生存的根本;其次是如何提高游戏的品质。根据两大目标,并遵循以下三大原则:
1、不能完全照搬某一种系统或某一个解决方案;
2、不能增加太多的时间和学习成本,因为不可能让整个团队或某些重要的开发人员花太多的时间来思考和研究这些所谓的问题;
3、需要能够持续修改的解决方案,需要可支持灵活定制、随需而变的流程;因为我们都知道没有一个包治百病的良药,一开始的话肯定是没那么好,没有预想中的那么顺利,没关系,我们可以逐渐改善,这就要求我们的管理工具的流程一定是可以随需可以修改、可以伴随着公司的成长,它也在和公司一起成长!"
为此,金山软件西山居的高层领导给予了项目高度的关注和重视,经过深入的调研和论证,确定了敏捷游戏开发方法和采用研发管理平台工具支持的思路。在软件平台工具的选择上,针对众多的软件厂商进行了细致、全面的评估,TechExcel公司作为全球第一个提出"以知识为核心"的产品研发全生命周期管理的解决方案厂商,提供围绕敏捷开发实现了完整的开发管理平台DevSuite。同时,基于全美7大游戏客户和中国3大游戏客户的实践背景,使得TechExcel在竞争中脱颖而出,确定了西山居与TechExcel公司的合作关系,同时通过配合西山居推行敏捷开发实践,打造高效的游戏研发全生命周期管理平台。
DevSuite为西山居构建了一个统一、灵活可扩展的研发管理平台,涵盖策划、需求管理、项目规划、计划安排、任务分配、进度跟踪、Bug提交和管理、测试管理、知识管理等游戏研发管理全过程,全面助力敏捷研发过程管理实践。
(3)解决方案
高度集成、相互应用的工作环境
DevSuite平台构建起一个高度集成、相互应用的工作环境,所有的角色都在同样一个项目语境体系底下做沟通和工作。集成的平台有效的整合了游戏研发过程中的各个阶级的知识和过程信息,通过系统无缝连接和自动化的工作流,打通了策划文档、需求条目、开发任务、测试用例、缺陷等原本需要分工处理并独立维护的数据,众多不同优先级的策划需求条目可以在从创意到测试上线的过程中被独立地跟踪,策划、程序、美工和测试的不同角色都可以从各自的使用入口查看与其工作有关的所有相关信息,有效地保障了游戏研发的交付、资源、工期和质量等方面,从而提升游戏团队的研发效率和缩短游戏上线交付时间。
统一流程控制,灵活定制化的工作流程
DevSuite提供了灵活的工作流程定制和管理能力,图形化工作流引擎将工作流图形转变为工作流脚本,因此项目管理员可以在图形化界面中,轻松快速的定制项目管理流程。正因为这一强大的系统特点,使得西山居在项目执行的过程中,可以实时的、主动的去配置和更改管理流程。
西山居吉征介绍说:"DevSuite的工作流引擎是非常强大的、可灵活定制的。比如说一个测试管理流程(如图),我们一直在边实践边调整,有时我会发现工作内容中的某一个节点会产生许多问题,于是我会把它拆分为三到五个节点,不但有助于发现问题,问题究竟出现在什么环节,继而还可能把中间的一个节点拆分为很多很多小点,一段时间后,会发现某些节点是非常顺利的,那么久直接进行组合或者直接取消。"
需求与功能点统一管理,让策划与开发人员共同完整把握游戏内容
游戏的需求说明了我们要做什么、这么做的意义是什么,从需求的层面来看游戏,能够看到这个游戏将会是什么样子的;而游戏的功能点则是表达了我们要怎么做,才能完成一个游戏需求,因此需求与功能点是一对多的关系,一个需求可以被分解为多个功能点,也可以只对应一个功能点(当这个需求实在太简单的时候)。
以往的需求,多是放在一大堆Word文档中,由策划人员保管,功能点列表,则是放在一份大大的Excel表格中,放在项目经理的手上,两套东西无法互动,也无法量化管理。
在DevSuite平台中,将需求与功能点放在一起统一管理,同时又以鲜明的显示方式加以区分,条目化,结构化的管理方式,不但能够量化需求与功能点信息,更重要的是,还让项目经理、策划与开发人员能够从不同的角度审视游戏内容,更加清晰的把握游戏的整体内容,提高策划人员与开发人员的协同工作能力。
功能驱动开发,为游戏开发提供源动力
游戏研发过程中,时间是分秒必争的宝贵资源,我们要在有限的时间内,完成更多的可交付的客户价值,这样的研发思路直接催生了功能驱动开发模型,每个程序、美工与测试任务,均需要为一条产品功能点服务,由一条功能点来驱动,这样,我们可以尽最大努力减少与客户价值无关的工作,提高工作效率。
以往的开发计划,只解决了什么时候,做什么事情的问题,而为什么要做这件事情,只有少数的管理者能够回答,处在结构底层的开发人员(包括了程序、美工、测试人员)对于为什么要做手头的工作,往往是不知道的,只说说一句话:领导让你做啥你就做呗。这样做,开发人员工做积极性不高,效率会受到影响,很多设计上的问题,理解上的偏差无法得到及时有效的纠正,最终结果就是开发人员不理解自己开发工作的意义与价值,没法开发出真正让玩家满意的游戏。
在DevSuite项目计划中,从功能点到实际开发任务的结合,只需要一个拖拽动作,将功能点纳入到开发计划中,相应的开发任务就会被自动创建,从而自动的实现了功能点驱动开发。向上,承接来自DevSpec (需求与功能点管理平台) 待开发任务,将功能点、计划与任务结合在一起,形成完整的开发计划。向下,支撑DevTrack (任务与缺陷跟踪平台),解决开发人员要做什么what,什么时候做when,为什要做why的问题。
- 任务告诉研发人员需要做什么工作,计划要求了什么时候完成这项工作;
- 驱动任务产生的功能点,则告诉开发人员这个任务是为了什么而做的;
- 开发人员能够认识到自己所有工作的价值与意义,能够积极有效的与策划人员沟通,提高游戏开发的实质效率。
支持游戏迭代开发与敏捷思路
虽然很多公司和项目组都没有意识到这一点,但是绝大多数游戏公司的开发方式已经非常的敏捷了。短迭代周期,持续集成,迭代期内不变更,功能驱动开发,每日更新任务状态,迭代结束后的演示与评审,这些看似常规的操作,已经将游戏开发带入了敏捷时代。
DevSuite游戏研发管理方案完美的支持了迭代开发和敏捷思路。凭借于此,金山西山居的里程碑,短迭代,迭代级的资源规划方式,功能点驱动开发,都完整体现在这套解决方案中。同时,针对规模相对较大,计划相对复杂的游戏开发,DevSuite平台还做了更多的完善,产品/版本信息的集成,迭代信息管理,权限控制,任务延期预警等,以满足项目经理等管理者要求。
有血有肉的项目计划
游戏开发工作往往是多职能合作完成的特点,DevSuite系统提供了可以将功能点再次按照职能分解为多条待分配任务的能力,像"增加玩家自定义频道",就被分解为对应程序、美工和测试人员的三条待开发任务。之后,这些待开发任务将会被项目经理统一的纳入到开发计划中,直到被实现出来。
在DevSuite平台中,项目计划不再是一个空洞框架,也不再是因为计划都是凭空捏造出来的而无法执行,这个计划是有血有肉的,充实的计划,让项目经理有充分的信心告诉大家,只要大家在什么时间内,完成那些工作,就能够达到什么样的效果!
工作任务跟进可视化,优先级安排明晰
- 开发人员:系统告诉开发人员需要做什么内容,在什么时间,做什么内容,以及为什么做。开发人员不但能够查看任务 信息,还能够查看到和任务相关的功能点信息,以及为了完成这个功能点,还有哪些其他任务在一同进行。
- 策划人员:建立策划管理知识库,集中管理来自各种途径的概念、思想、建议与文档信息,策划人员可以在知识库中做到
- 项目经理: 统计报表、历史追踪,统计与分析任务实际执行情况,辅助管理者快速做出计划调整。
系统还有一大优势在于,当我们书写好功能点,做好项目计划的时候,所有的任务也都被创建了出来,开发人员不再需要手动创建任务,不再需要手动创建任务与功能点、策划案的关联,这样,就可以最大限度减少研发人员(包括程序、美工、测试人员)用在管理系统上的时间。无需创建任务,只需更新任务时间,将更多的时间与精力集中在游戏开发工作上。同时,任务与计划的紧密结合,也完成了功能点驱动开发的最后一步。
为保证游戏交付日期而战
很多的游戏出品都选择在重要的档期,如圣诞、暑期等。一方面,要求游戏开发必须严格按照之前规划的日期完成;另一方面,游戏一旦出售,就不能再进行大范围修改,因此在既定日期交付时,还必须保证游戏的质量。
DevPlan能够对开发项目进行规划和资源分配;同时,它与DevTrack的集成,使底层任务进展的透明度更高,既有利于任务执行的监控,也有利于根据任务进展及时调整项目规划,确保按期交付。
另外,通过系统报表、历史记录、条目颜色改变、邮件提醒与调整、任务延期预警等措施,任务管理与计划管理数据的交互,能够尽其所能帮助项目组预防开发任务的延期,进而预防整个游戏项目的延期。
对于需求变更的管理
变更是团队中非常头痛的一个词,你不可能完全把它给屏蔽掉,因为大家都是想把产品做的最好,西山居对于变更有如下几个原则:
- 统一记录
- 分阶段进行优先级的一个排定
- 阶段内原则上不做变更
最重要的原则是"阶段内原则上不做变更",简言之——避免折腾。因为往往游戏的过程是策划人员告诉你要往东做,玩家的反馈是往西做,数据的总结却告知我们要往南……此类问题频繁发生,但是就西山居目前的情况来讲,绝不会让策划做这样的事情,因为一定是有一个原型,在这个原型上面通过它的想法它也可以得到验证,然后还有其他的玩家可以一起提出他得想法,包括DevSuite为西山居提供的数据统计的平台,可以把玩家的行为拿出来分析,可以验证我们的想法是不是正确。
西山居对于需求变更的管理:
- 采用backlog统一记录
- 分Sprint进行优先级排定,阶段内原则上不做变更
- 策划想法与阶段总结综合,需求来源不单一
核心:避免反复折腾,需求提出科学化、数据化
站立式会议
大型游戏的团队人员规模都比较多,每一个数目都是数十乃至数百人,工作角色分为策划、程序、测试、美术等多个工种,每个工种里又含有20-30人。传统的会议冗长和繁多,每日消耗的时间和人力成本都非常高。而西山居在团队内部也推行了Scrum敏捷软件开发方法学的实践——站立式会议,团队成员每天固定时间,在固定的地点开会,尽量都不去会议室,而在工作卡位里开,且时间最好不超过5分钟。在会议上,每个人主要描述1)昨天我做了什么?2)遇到哪些问题?3)今天计划做什么。
其主要目的是组内的沟通,让大家互相知道都在做什么,别人有什么困难,我能提供什么帮助。我有什么困难,哪些人可以帮助我。如果和别的开发人员的任务有关联,也可以得知进展情况。它可以很好的改善团队成员之间的沟通,特别是团队成员任务有很多关联的时候。避免因信息传递不畅,导致延误和返工。
统一的知识管理
在项目管理过程中积累的技术和管理经验,可以保存到知识库中。并且可以让这些积累的知识得到有效的应用。DevSuite提供了通过WIKI的方式收集并整理知识条目,让用户的操作简单而高效。方便对知识进行补充和反馈。
强大的分析工具,数据可展示性强
真实的报表应该来源于真实的数据。所有的数据都要在实际工作中产生,且不能成为研发人员的工作负担。DevSuite提供的强大的数据分析与展示功能,所有报表均是系统动态产生,数据均来源于团队成员日常工作中填写的内容,而不是由专人每天收集数据录入到系统或Excel表格中,或由专人去维护这些表格,管理人员也可随时查看。报表已成为真实的指标,真正的去帮助到项目和企业的研发管理。
小结
"西山居现有较为完整的敏捷流程和DevSuite全套系统的应用,是这次合作成功的关键。" TechExcel中国区副总经理蔡培堃说,"敏捷开发本身并不适合于被使用在游戏研发这样的大团队、强分工环境,但游戏研发所追求的玩家价值导向、功能驱动开发、迭代式交付等核心价值,却又希望用敏捷方法来实现。DevSuite正是为解决这一矛盾而设计的,因而当西山居部署DevSuite以后,不但发挥了敏捷开发的优势,也克服了大团队的分工、沟通、记录、文档等诸多问题。"
金山软件公司西山居工作室的使命是为广大游戏玩家提供最高品质的网络游戏产品,TechExcel公司DevSuite游戏研发管理工具平台的理念契合了金山软件公司西山居工作室所秉持的使命。通过部署DevSuite工具平台,保障了金山软件公司西山居工作室和运营商之间的顺畅沟通和信息交互,进而让游戏研发过程中的需求管理,变更管理、任务跟踪管理、测试管理和知识管理等阶段,保证了游戏产品质量,变得轻松和可控,提升了游戏研发的效率,协助金山软件公司西山居工作室制作出更多更棒的游戏产品。
(4)价值体现
"DevSuite解决方案已经在我们的项目组成功实施,我们非常喜欢DevSuite解决方案中的需求管理、变更管理、任务跟踪管理和知识管理模块,这些模块能够围绕'知识'对开发过程进行管理,难能可贵的是,DevSuite完全能够支持我们团队的开发模式,具有严格的团队权限管理和工作流控制机制,使我们的敏捷开发流程更加可控。"
——陈飞舟,金山软件副总裁
"DevSuite解决方案帮助我们整合了游戏研发各个阶段的工具,通过集成共享,提升了团队的研发效率和生产率,为游戏研发的交付保障提供了支撑平台;引入了敏捷开发和交付保障思想,明确每个迭代周期的交付目标和价值,加强了大团队中团队成员间的交流讨论,明晰每个人的工作内容和职责,游戏软件的质量风险前移进而减少发布前的测试工作量。"
——吉征,金山西山居助理总裁兼月影传说项目总监