第一部分 交付卓越产品,步步为“赢”
打造一款卓越的软件似乎并非难事,但事实往往不尽如人意。通常产品要么逾期交付,要么没抓住真正的用户需求,要么发布后还有一个又一个烂摊子等着去收拾。究其原因,很重要的一点便是我们不知道如何正确地组织交付过程。我们经常会舍本逐末,将关键步骤忘个干净,或者瞎冲乱撞,一头扎进琐碎之中出不来,以为凭借运气、加班加点和美好的愿望就能把产品成功推向市场。
这样做也许能成功一次两次,但却不可持续、没有效率,所以亚马逊的顶尖团队不会这么做;这样做也毫无乐趣可言,所以谷歌的顶尖团队未予采纳。其实有一套更为有效的交付过程,它分成7个阶段,任何团队主管都可按图索骥,收获成功与快乐。
阶段一,确定正确的产品方向。如果总是设计垃圾软件,那么你永远不可能交付卓越的产品。好的产品一定要满足众多客户所共有的某个真实的需求。你的使命就是找到一种独特而有意义的方法去满足这一需求,并且在交付过程中的所有努力都应围绕着这个使命。例如,你应根据使命来制定产品切入市场的策略。一旦确定了使命和策略,产品定义就会更清晰,而不会沦为垃圾,因为它完全符合你出色的策略。
阶段二,尽可能清晰详细地定义产品。这个过程需要10个主要步骤,包括撰写新闻稿、创建并不断更新FAQ文档、撰写功能需求文档等。完成这些步骤后,工程团队就会对项目形成统一的认识,管理层或投资者也会了解并认可产品的设计。这时候所有人都会异常兴奋,而你也可以稍作休息了。
阶段三,设计用户体验。你需要从用户的角度出发,和设计团队不断沟通、反复迭代,最终构建出良好、直观、简洁的用户体验。你应不断提出问题,促使设计团队始终围绕着产品使命展开工作。你还应该让工程团队和设计团队保持密切合作,确保设计最终可被实现。
阶段四,做一些基础的项目管理工作,不要太多也不要太少。当工程团队拿到详细的产品原型图和需求文档开始编码后,你就需要做一些基础的项目管理工作了,包括跟踪交付物的进展、指出问题以及控制项目范围。
阶段五,开始测试。随着各个功能的代码块陆续提交,实际产品逐渐浮出水面,团队的工作速度将会提高,测试团队也将开始全心投入测试。这一阶段虽不需要多少创造性,却依旧令人兴奋不已。作为团队主管,你需要主导Bug的处理并慎重决定哪些可以容忍出现在版本1而哪些又必须在发布之前修复掉。
阶段六,你差不多可以准备发布了,不过在发布之前要清楚知道怎样才算成功,这就要求你建立一套衡量产品成败的指标。让团队利用剩余工时来把这些指标纳入监控并搭建产品状态面板。当产品Bug趋近于零时你就可以准备监控产品发布效果了。记得买好香槟放在冰箱里以备庆功时尽情畅饮。
最后,正式发布产品。发布一款卓越的产品可不只是上传一些文件到服务器上那么简单,你需要制订市场营销和公关方案,并在发布前仔细核查清单中的每一项内容。基本上每次发布都会有一些糟糕的事情发生,不过只要处理得好,大部分用户都不会察觉到。记得观察产品状况面板各项指标的走势,它会告诉你是否正走向成功。
纵观以上7个阶段,推出一款卓越的软件并不是件难事。你只需按顺序完成各阶段的具体任务,就能打造快乐的团队,交付成功的产品。
从以上阶段可见,我们一直在努力缩小项目范围,简化用户体验,提升推进速度。整个过程越快,迭代就越快,交付的产品也就越好,因为每次迭代都会吸收上一次迭代中客户提出的建议和意见。虽然每个产品有每个产品的功能,但它们的交付流程是一样的,所以你只要熟练掌握上述7个阶段,就能成功交付所有产品。下面让我们来详细考察每个阶段,先从制订使命和策略开始。