功能点计划

这是一封发给客户端团队的邮件,略有改动。

功能点

程序员和开发者

昨天晚上的部门培训上,我们谈到了时间使用问题。那么,如何让我们的时间更有价值?让我们每天都有新的进步?我一直在思考这个问题。

每天,大家被看似繁重的开发任务消耗了所有的时间和精力。把自己从繁重的任务解救出来需要一些时间管理技巧和习惯,我们后续会安排培训。在这里,我们先谈一谈如何让自己每天都有进步。

2014年出版的《大数据时代:生活、工作与思维的大变革》中有段话:

就像20世纪60~80年代之间计算机编程技术变得越来越普遍一样,现在国外的外包公司使得基础的计算机编程技术越来越廉价,如今它甚至成为了世界贫困人口的致富驱动力,而不再代表着高端技术。

看到这句话,你后背会发凉么?

我在知乎上经常看到这样的问题:”我该转行做软件开发么?”当有人询问转行的原因时,得到的大多数是:“这个行业工资高”之类的回答。这是不是印证了上面这段话的正确性?当 猪八戒 上一个 App 定制开发报价200起, 一个企业网站报价400起的时候,你还会认为,程序员是一个你向往中的高技术职业么?

如何避免这样的窘境?答案是:不仅仅做一个能完成需求的 程序员 ,还要做一个无法替代的 开发者 。(开发者比程序员的外延更大)

想成为无法替代的开发者,就是要在一般程序员相同的时间里,做更多的事,操更多的心。

在游戏开发中,有大量的特性,都是被技术驱动的。而最了解的技术的,就是我们开发者。可是,你是一个合格的程序员么?还是仅仅是个码农呢?如果连合格的程序员都不算,怎么做开发者呢? 优秀程序员和一般程序员差别在哪?

作为想要晋升为游戏开发者的合格程序员,我们不仅要为如何实现功能操心,还要为如何得到更好的产品操心。这些心可以操在下面几个点(难度逐渐增高):

  1. 代码和整洁、高效,架构设计的合理性;
  2. 资源优化,产品安全;
  3. 产品交互上的合理性;
  4. 产品开发流程、测试流程、发布流程的优化;
  5. 在目前的架构上,开发出新的功能点,并协助策划/运营/商务等其它部门探询新的发展方向。

除了上面的第1点外,剩余的4点都是必须和其他部门同事配合实现的。为了达到配合(而不是帮倒忙)的目的,我们是不是应该了解其他部门的工作方法和工作流程?是不是需要知道他们的思维方式和决策方式?我们是不是要和他们打成一片,混个脸熟?

再看回来,连第1点我们都没有做到。

看到这句话,你后背会发凉么?

我早就凉透了。

如何解决?这就是我今天要说的: 功能点计划

功能点计划

功能点计划是让我们以技术为驱动,定期寻找能够推动产品的功能点,然后联合策划/运营/商务部门在实际产品中使用这些功能,最终达到产品收入增长的结果。寻找功能点说起来不难,但加上“定期”就比较难了。功能点发现一个就少一个,要持续找到新的功能点,必须做到以下几点:

  1. 精通正在使用的语言。对于 C++ 和 Lua 我们并没有掌握到足够精通的程度。不了解细节,就无法做出创新;
  2. 熟悉正在使用的平台。我们在使用 C++ 开发,这导致我们对 Android/iOS 平台却不够了解,。和语言一样,不了解细节,无法做出创新;
  3. 熟悉相关业务。对市场上的同类产品,我们玩过多少?对于一个游戏从打包到上架、推广的流程,我们知道多少?我们怎么做才能帮助其他部门同事提高效率,并避免他们提出的不合理的要求降低我们的开发效率?
  4. 熟悉玩家心理。把自己当玩家,不是所有开发者都能做到的。

功能点计划 v1.0 要做到以下几点:

  1. 每月至少提出一个客户端的功能点;
  2. 每月必须完成一个客户端的功能点开发;
  3. 保证这个功能点普及到所有相关部门 ;
  4. 推进功能点在产品中的实现。

该计划从本月开始施行。请大家积极参与。

(全文完)