预留安全期限其实是一个不错的管理技巧,所有的项目一般都会偏乐观,低估工作量,特别是没有经验的团队。而且游戏项目有一个特点,就是只要你想polish,永远可以找到能打磨的地方,也就是说,永远不可能被全部完成。在这个情况下,每个项目到了deadline的时候总会有很多事情没做完,怎么取舍也是很考验制作人的事情。之前一些大项目在最后冲刺版本的时候,宁愿攒下一堆容易修复的小问题不去修复,来降低风险,但是对某些有很大修改风险的问题,由于会比较重要,制作人也会可能有强行要求大家要搞定。在这样残酷的行业现实下,如果大家很沮丧的发现下周的截止日期来不及赶上了,要准备天天在公司打地铺,然后PM摸出制作人留的锦囊,上面写着One more week,作为开发者,想到终于可以额外再多加一个星期的班,你是不是会为了制作人的高瞻远瞩而感动?但这个方案的缺陷是,骗过大家几次,同学们很快就会知道,下一次又是狼来了,大家会默默把真正的deadline想象成官方日期后面一周,万一老板这一次良心发现,告诉大家的是真正的deadline,就会很欢乐了。
硬性的Milestone伤身,加班是必备,如果领导良心一点,允许砍特性,上下齐心,其利断金,还是可以顺利做出来的。如果唧唧歪歪,没拿出快刀斩乱麻的决心,这也要那也要,结果就是什么也要不到,每个特性都没打磨好,时间到了就上线。整个milestone就退化成when it is due了... 曾经参与过一个主机游戏开发,三个月从wii移植到xbox,并且一次送审就通过,质量把控很好,加班程度也可控,就是砍了所有不重要的特性,一路只把关键路径任务全部走通。
上述关于milestone的讨论,放到AAA项目,就会被混合使用。AAA项目原则上都是when it is done类型的,质量不能差,否则公司丢不起那人。实际操作中会受到公司情况影响,需要有一个不太硬的milestone放在那里,比如财年内发布。到制作人层面,如果是做过项目的制作人,会设置一次次迭代细化版本,其实每一个小迭代版本也可以认为在压榨大家潜力。但AAA项目要成功达成milestone是比较难的,因为milestone不仅仅意味着feature implemented,还包括了一个质量上的要求,对于AAA项目,质量上会有很高的要求,我们在下一篇里面再讨论。