怎么高效的开发一款成功的产品?Working Backwards

过去的几天一直在回顾整个产品团队过去一年所做的工作,有的工作有亮点,有的工作可以说是乏善可陈。对于不好的,发现其中的一个核心原因就是没有坚持“以终为始”的原则。现将我2021年10月写的一篇公司内部博客再次分享给团队,也分享给所有关心TDengine发展的开发者和朋友们。

亚马逊的两位前高管Colin Bryar与Bill Carr离开亚马逊后,前不久出版了一本书:"Working Backwards: Insights, Stories, and Secrets from Inside Amazon", 让大家对亚马逊的工作原则之一”Working Backwards"有了更多了解。按照中国人的说法,亚马逊的这条工作原则其实就是“以终为始”。做任何事情,先想到结果和目标,然后倒推怎么达到这个目标,之后再启动执行。

Working Backwords是一提高工作效率的极为有效的方法,因为几点:

  • 做任何事情,我们一定要先清楚目的和目标;

  • 很多时候,我们对问题或任务只有一个模糊而不清晰的了解;

  • 如果对要解决的问题和任务有清晰的描述,其实问题已经解决了一半;

  • 不仅问题很清晰,而且解决的步骤、计划反复推演了,问题已经解决了大半;

  • 初期的投入时间多,都大大节省了后续的时间,而且让任务的完成时间可预期。

0821180694fb7c6b7d321ef28cc47d26.jpeg

细看涛思数据过去4年多的发展历史,如果仔细分析,我们所有高效完成的任务一定是有意或无意中执行了“Working Backwards"的原则。对于效率差的,一定是偏离了这条原则。大道理一听就明白,落实到我们具体工作上,特别是产品的研发上,我们要怎么做呢?对于任何一项新功能,大版本的开发,我们应该有一个什么样的工作流程呢?按照这条原则,我们做事的先后顺序是:

1:起草新功能、大版本的宣传稿

这个新闻稿不能太长,原则上不能超过一页。在这个简短的宣传稿里,我们需要给用户清晰的介绍:

  • 新的功能和特性;

  • 这些功能和特性能给用户解决什么问题;

  • 这些功能和特性能给用户带来的价值,列出三点而且至多三点;

  • 这些功能和特性与竞品相比,好在哪里,列出三点而且至多三点;

这个新闻稿,不仅自己看,还要给销售、BD同学看,给潜在的客户看,看是否能打动他们体验一下产品。如果没人动心,说明工作的价值不够,或者是亮点没有突显出来,让大家意识到它的价值。

2:起草好用户手册

用户怎么使用这个产品至关重要,具体而言,用户手册需要包含:

  • 用户有那些方式使用,SQL的支持, connector, API, 编程语言等;

  • 用户如何配置进行个性化设置;

  • 用户如何监测产品的运行;

  • 用户如何从老版本升级;

  • 用户如何从其他系统迁移;

  • 用户如何快速验证性能指标

只有起草好用户手册,我们才真正的将需求细化、落实,才能与需求方完全确认是否满足需求。也只有起草好用户手册,测试团队才能尽早介入。

3:模块划分,定义模块API

产品定义清晰了,就需要真正做设计了,进行模块划分。怎么划分模块,包括源文件的目录结构,有自己的规则。但无论如何划分,我们需要做到:

  • 模块对外服务的API有清晰的定义,输入参数、输出参数,是否线程安全等,都有清晰说明

  • 模块的性能预期,验证工具

  • 模块对外的依赖很清晰

划分了模块,而且定义了模块的API,实际上就是将模块的功能完全确定了,也就是对模块的需求完全确定了。更进一步,我们需要马上将所有模块集成,所有模块的API都可以是一个dummy的实现,而且马上将整个系统纳入到公司的CI/CD流程,要让它跑起来。这样做,有几个明显的好处:

  • 如果测试组人手宽裕,这个时候就可以介入模块的功能测试和性能测试了;

  • 任何人都不能随意修改API,而影响依赖它的模块;

  • 人手不够,可以将某个模块外包,或先用第三方软件代替;

  • 对于极为关键的模块,可以启用两个team并行开发;

4:模块本身的设计

定义好模块对外服务的API后,我们就可以着手模块本身的设计了。模块设计的原则在本博客不做讨论。

5:编码、测试,不断迭代

在模块设计定稿后,就可以开始编码,进行模块测试了。而且由于CI/CD已经跑通,随时可以跑整个系统的测试,每天都会看到有新的PR,有功能在实现。

以上五步,其先后顺序极其关键,必须按照顺序执行。表面上看,这个流程与我们倡导的敏捷流程有矛盾,但其实不是。敏捷流程强调的是一个一个Sprint完成工作,是小步快跑。上述流程是更大的产品开发流程。

在我们以前的产品研发过程中,我们都没有主观意愿按照这个顺序进行,必须纠正过来。

除产品研发工作之外,我们在销售、市场的工作也应该执行这个工作原则,而且这个工作原则与我倡导的《做事的四个原则》是完全一致的。可以说,"Working Backwards"这个原则在销售、市场工作的更具体的执行,是《做事的四个原则》。

陶建辉

2021年10月3日于北京望京


👇 点击“阅读原文”,体验 TDengine 3.0!

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
毕业设计,基于SpringBoot+Vue+MySQL开发的公寓报修管理系统,源码+数据库+毕业论文+视频演示 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本公寓报修管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事半功倍的效果。此公寓报修管理系统利用当下成熟完善的Spring Boot框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的MySQL数据库进行程序开发。公寓报修管理系统有管理员,住户,维修人员。管理员可以管理住户信息和维修人员信息,可以审核维修人员的请假信息,住户可以申请维修,可以对维修结果评价,维修人员负责住户提交的维修信息,也可以请假。公寓报修管理系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。 关键词:公寓报修管理系统;Spring Boot框架;MySQL;自动化;VUE
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值