如果只定一个指标,研发的考核指标应该是什么?

上周四与研发小伙伴开会,宣布了我采取的研发考核指标。超乎大家的意料,我的考核指标仅仅一个:是否完成JIRA上分配的关键任务。所有任务都是以两周为周期进行安排,基本完成记3分,彻底完成记5分,彻底完成而且有测试例验证,记8分。一个周期内至多安排三个关键任务,一个季度按照总得分发放季度奖金。

为什么不考核代码量?为什么不考核代码质量?为什么不考核代码创造的商业价值?为什么不考核对公司文化和价值观的认同……

做出这个决定,是我与搭档Steven基于多年观察、实践,深思熟虑后的结果。为什么要这么做?与大家分享一下我们的想法。

1. 我们信奉简单的原则,无论是产品设计、研发流程、还是公司目标、考核指标,都要简单。而不是来一个高大上的绩效矩阵和复杂的计算公式。如果指标太多,那说明公司的定位、管理的原则不够聚焦,也说明创始人还没有想明白自己的核心竞争力是什么,需要有什么样的团队来支持。三个也挺简单,为什么只选一个?没有别的,就是要突显重点,突显关注的核心问题。古人说“纲举目张”,只要找到关键点,其他都迎刃而解。涛思数据聚焦物联网大数据的处理,只做底层软件,绝不会去做集成、应用,也是同一个道理。我们坚信,当涛思数据在物联网大数据处理市场有相当的占有率,其他都会水到渠成,应运而生。

2. 对于软件研发,如果只有一个核心问题,那是什么?涛思数据团队的整体素质都很高,都是海归、名校毕业、硕士或博士学历。与很多大牛研发一样,眼里没有解决不了的技术问题。但是纵观所有研发,包括我自己,从硅谷到北京,99%以上都低估了软件研发的进度。一个功能,自己估计一周搞定,而现实往往是两周都没法搞定。因为整体思路、设计很清楚,设计文档可以看上去很漂亮,但落实到每一个细节、每一处逻辑的判断,都需要思考、编码、测试,还需要与其他成员协调沟通。在我们的职业生涯里,没有听说过哪个软件研发项目是提前完成的。这是软件行业普遍存在的问题,因此进度的保证才是核心问题。

3. 研发的任务很多,研究新技术、开发新功能、支持客户等等,即使以2周为周期,也有很多事情要做。但任何时候,都有公司最关注的问题。我们需要鼓励团队最先去解决能提升公司价值和竞争力的问题。比如把数据写入的性能提升一倍,提供新的开发接口,更好地支持一个行业的客户,撰写技术博客,清晰地给用户介绍我们产品,这都是在提升公司的价值。一个周期内关键任务不超过3个,就是要大家聚焦在真正创造价值的任务上。而且公司在不同的发展阶段,关注点和关键任务都不一样,这样就要求团队主动的来做调整。一项关键任务完成的好,比10项普通任务的完成起的作用还大。有人会说,我是做技术支持,做的都是小事,没有亮点,每个客户都要服务好。那么,一个重要任务是什么?也许是支持一个正在犹豫的大客户,也许是开发一个自动化的小工具,提高技术支持的响应速度和质量。

4. 代码的质量是否重要?当然重要。但是不能作为考核依据。我们更希望借助于CI/CD(持续集成、持续部署)等现代化的工具来保证。如果递交的代码无法合并、无法通过自动化测试,无法达到规定的代码覆盖率,那一项任务自然是不能记为完成的。为了保证这一点,涛思数据虽然团队不大,但请来了经验丰富、很senior的人负责CI/CD、测试例的整理、版本的发布,而不是一个做传统的测试工程师,并且我们还要继续增加人手。我们不纠结一个模块内部的具体实现,是不是符合编码风格,而更看重测试结果、看重性能报告。希望以结果来驱动优化、驱动质量的提升。

5. 涛思数据信奉实事求是的原则,一切都要有无可辩驳、可以查证的记录,因此我们的关键任务的考核依据是JIRA上的任务安排,而且这个安排是全公司透明的,任何人都可以浏览、发表意见的,而不是只有我或其他负责人才能看到。研发最后的提交物是GitHub上的代码或文档。即使某个判断、结论当时做错了,今后还可以回过头来看,而不是脑海中一个模糊不清的记忆。涛思数据从成立之日起,就定位为一个立足全球的技术公司,我们团队的成员,除北京和硅谷之外,还会有来自东欧、印度的同事,由于开源,还会有来自全球各个角落的贡献者,大家的肤色、语言、宗教信仰都不相同,如何考核?唯有实事求是。

6. 涛思数据的另外一个工作原则就是追求卓越。但卓越如何考核?我们需要量化,用数字说话。因此考核上,我们要做定量考核,而且要打分,根据最后分数的高低决定奖金的发放。任务的安排以两周为周期,考核以一个季度为周期,一年有4次考核的机会,这都是给大家创造一个追求卓越的机会。一个季度不行,可以下一个季度努力,争取有进步就可以。我们不期望一下子有质的飞跃,更希望看到的是“天天进步”。代码的质量更是如此,随着时间的推移,测试的覆盖率只能上升,不能下降;系统性能只能上升,不能下降。我相信只要持续地努力,就一定能做出顶级的产品。

上述讨论还要基于一个重要前提,就是对任何一个任务,产出或提交物需要定义清楚。对软件研发而言,提交物应该明确包括API与测试用例。涛思数据还增加了一项,技术博客,专门用来对内或对外介绍自己开发的模块的功能和特点。我们鼓励程序员不仅要能写程序,还要能写文章。如果无法把自己产品或技术的亮点、技术实现的细节等清晰地表达出来,这个程序员不可能是顶级优秀的。

如果只定一个指标,研发的考核指标应该是什么? - TDengine Database 时序数据库
涛思数据团队

聚焦、简单、实事求是、追求卓越是涛思数据的文化,这个文化需要通过考核这个武器体现出来、让它在团队的每个成员里潜移默化,变成共同的价值观。

陶建辉

2020年4月6日于北京望京