笔者总结了互联网行业转做智能硬件时踩到的坑;归纳互联网思维和做硬件的思维的不同,并总结几点自己的经验教训,希望能够给大家带来一些启示。
目录
一些背景介绍
文中的名词解释
总体流程说明
纵向流程
横向管理
过程文档
项目里程碑
总结
一、背景介绍
做硬件之前我一直在互联网金融行业,做过P2P平台、现金贷产品和信贷产品。
金融行业受大环境和政策影响非常大,从2014年到2018年一路看着这个行业从繁荣走向衰落,很多平台暴雷,很多企业倒闭。时至今日,我依然看好互联网金融这个行业的长期发展,希望各个平台的创业者们能够保持初心,坚持普惠金融的价值观。2018年末出于各种考虑吧,我成功跳出了这个行业,开始考虑进入智能硬件领域。
手机也是一款智能硬件,移动互联网从2012年至今已经发展非常成熟,从技术驱动到产品驱动到如今的运营驱动,互联网产品上的创新已经变得异常艰难和珍贵。
而AI可能是下一个互联网行业,甚至物联网行业的创新引擎和趋势,这点从我从事的互联网金融行业也可以看得出来。大量的金融科技公司利用AI技术推出了基于大数据的信用评级、自动审批、反欺诈模型、智能催收等产品及服务。AI之于移动互联网如同移动互联网之于PC互联网一样,本质还是为了提高效率,衣食住行、人际交往、兴趣爱好、工作等各个方面。
AI在我看来包括了三个方面:算力、算法、数据。所以一个简单的思路就是在一个新的算力平台上,利用目前已经早已成熟的机器学习算法,打造几款成熟的产品,积累数据并通过数据让算法发挥更大的作用。大公司拥有数据,可以在PC平台或移动平台上(算力充沛),利用算法模型挖掘应用价值。而小公司,还需要慢慢完成数据积累的过程,特别是基于新的算力平台,比如最近涌现的很多AI芯片,这类新的芯片对算法有原生的支持,应用还不广泛,但是竞争也相对较小。
有了对硬件、AI的一些基本了解后,也出于对硬件的兴趣,偶然之下,跟朋友一起从0到1做了一款智能车载充电器,从此踏入了这个陌生的领域。下面就结合工作经验简单介绍一下智能硬件产品的研发流程。
PS:所谓智能车充是一款具备充电、找车、轨迹、碰撞检测、一键sos、和违章缴纳等车主服务智能硬件(配合APP)。
二、文中的名词解释
三、总体流程说明
由于硬件部分研发周期长、成本高的特性,不太可能进行快速的迭代更新,也无法忍受需求的反复变更;所以偏向传统的瀑布式流程可能是更适合的,实际过程中多个部分可以同时进行。
整体流程如下图所示:
以上流程也只是在实际产品开发过程中的一种应用案例,根据公司和产品的不同情况,具体流程可能不太一样,但总体上表现出一种阶段性。
在纵向上(按时间特性)我将智能硬件项目流程分成了8个阶段:市场阶段、立项阶段、EVT阶段、DVT阶段、PVT阶段、MP阶段、销售阶段和产品维护阶段。
如下图所示:
实际产品研发中会发现有些工作模块的工作在穿插在整个流程中的不同阶段,所以抛开工作的阶段性,按照角色特性在横向上我将智能硬件项目分成了6个部分,分别是:产品项目、外观结构、嵌入式、互联网平台、工厂试制和销售。
这几个部分之间,可能同步进行,也可能先后进行,需要根据实际情况进行灵活调整。
如下图所示:
下面先从纵向上介绍一下每个阶段的大概内容,然后再针对其中重复的模块进行横向的说明,希望这样能够把整个流程说的更清楚一些。
四、纵向流程
1. 市场阶段
硬件产品和软件产品一样,当我们有了一个关于产品的创意或大概的判断后,需要进行市场研究,这个阶段最重要的目标是确定这个产品创意靠不靠谱?以及市场价值大不大,值不值得做?
不同的是,做一款硬件产品需要投入更多的人力/物力/财力和时间,如果产品不被市场认可,不仅打击团队的信心,也容易错失市场机会。而软件产品可以用极小的成本做一个MVP进行市场验证,如果产品不行,只需要半个月甚至更短的时间就能调整方向直到获得成功。所以做智能硬件时更需要做好市场调研。
如下图所示:
通过行业报告了解每年的新车销售数量和汽车存量规模;
通过淘宝等销售渠道统计车充类产品的功能、价格和销量;
和车充供应链中的模具厂、电源板方案商、五金厂等产业链供应商聊聊市场需求量;
和不同用户(企业客户、滴滴司机、白领、老板、女性用户、货车司机等)针对产品的概念(包括对充电协议、位置、驾驶行为、保险、违章、SOS等方面)进行测试,了解其使用产品功能的动机。
最终,在立项之前,通过对市场的综合分析产出一份市场需求文档,这份文档至少应该包括目标市场描述、用户特征、用户需求列表、产品价位、利润空间、上下游供应商、营销策略等信息。
2. 立项阶段
经过市场阶段的各种调研分析之后,产品创意经过了重重考验,终于要开始要立项开动了,没有什么比做新产品更让人激动的事情了。市场需求有了,那么接下来就需要拉团队来做了吗?其实在立项阶段还有很多事情要做。
如下图所示:
在市场阶段,我们得到的需求更多的是用户需求,我们需要将用户需求转化为产品需求,其中首要考虑的就是转化过程中的需求可行性。
记得之前某手机公司产品经理提了一个需求就是手机的主题跟随外壳的颜色自动适应,差点没被程序员拍死。这可能是个笑话,但我们在做实际产品过程中遇到的这样的问题不少,有些需求可能技术上暂时无法实现,或者实现的成本太高,我们需要对产品设计方案进行调整或让用户对产品进行妥协。
这个阶段的需求分析包括了嵌入式软硬件和互联网平台(App和Web后台)的需求分析,最终形成一份产品需求规格说明书,并对产品的各种软硬件功能、性能、成本、安全性、外观结构等做出明确的要求。
在一般的互联网产品团队里面,主要成员为产品经理、UI设计师、后台开发、IOS开发、Android开发、测试工程师、运维为数不多的几个角色,就可以完成一个App或网站等互联网产品的开发。
产品研发流程分为产品规划、产品设计、技术研发、测试调整、提审发布5个阶段产品设计。
那么智能硬件呢?
智能硬件除了包含了互联网软件的部分,还涉及ID、结构、包装、硬件、软件、生产、认证和销售等环节。所以一个完整的硬件团队需要ID设计师、结构工程师、嵌入式硬件工程师、嵌入式软件工程师、硬件测试工程师、认证工程师、品质管理、FAE工程师、采购、项目经理等。
出于对成本、周期和质量的考虑,其中ID、结构、模具外包给一家实力比较强的模具厂;嵌入式和互联网平台由自己研发;成品的生产和组装由代工厂负责、包装找了一家包装厂进行设计和生产;认证部分找了专业的检测代理机构。
通过综合分析最后要产出一个项目分析报告,包括项目所需资金、人员、周期、利润、营销方案以及产品迭代计划等,然后组织相关人员召开立项会议正式进入研发阶段。
3. EVT阶段
EVT(Engineering Verification Test)指工程验证,此阶段是针对工程原型机做验证,对象很可能是一大块开发板,或是很多块开发板,关键是要有足够时间和样品。
通常,如果是新平台,需要花的时间和精力可能更多,会有很多问题要解决,甚至有很多方案要对比;而修改既有产品的话,这个阶段会简单很多。
这一阶段的重点是尽可能多的发现设计问题,以便及早修正,或者说设计可行性的验证;同时检查是否有规格被遗漏。一般不会开模,但会做外观设计,通过3D打印的手模进行验证, DVT开始才是模具品验证。
EVT阶段外观结构(ID、结构、模具)、嵌入式软硬研发、互联网软件研发开始同步进行,如下图所示:
需要注意的是:
A. ID、结构设计封板后就可以开始嵌入式硬件的layout了,在此之前,硬件部分可以做方案设计和原理图设计;
B. EVT阶段可以不投模,毕竟模具的成本不菲,等待工程验证通过后再进行投模,可以降低项目风险;
C. 嵌入式软件则不完全依赖硬件,可以在模拟环境中实现嵌入式应用开发;如果硬件部分完成就需要立即转移到在硬件部分继续开发固件或进行调试;
D. 互联网平台部分可以完全独立进行开发,只是在于硬件通信的部分需要在方案设计阶段定好数据协议,并通过模拟终端实现设备端和互联网平台之间开发的解耦。
这个阶段需要确定好外观结构并打印出3D打印的结构手模,完成嵌入式软硬件开发,互联网平台也完成了1.0版本,然后烧录程序,组装样机并进行测试,包括:
功能测试(测试不通过,可能是有BUG);
压力测试(测试不通过,可能是有BUG或哪里参数设计不合理);
性能测试(产品性能参数要提炼出来,供将来客户参考,这个就是你的产品特征的一部分);
其他专业测试:包括工业级的测试,例如含抗干扰测试,产品寿命测试,防潮湿测试,高温和低温测试(有的产品有很高的温度或很低的温度工作不正常,甚至停止工作)。
测试完成后需要将测试过程中的结果和问题记录到《样机整机测试报告中》,下个阶段可以参考这个报告进行调整优化。
无论何时,建议尽早找一些真实用户对产品进行真实场景中的使用测试,也许能够发现一些之前没有想到的问题,从而避免后续发现问题后推倒重来。
如果顺利的话,整机的测试效果理想,结构上、硬件性能上、固件功能逻辑上可能还有一些小问题,但是方向上是对的。
项目经理可以组织大家对这个阶段进评审,总结一下外观结构、硬件PCB、BOM表、固件和互联网平台目前发现的问题以及后续优化的建议,开始进入下一阶段。
如果不顺利的话,可能发现结构上的大问题需要改结构设计,或硬件需要重新打板验证、固件和互联网平台存在较大的bug,那么则需要再次进行EVT阶段个各项工作,直到通过样机的整机验证确认无方向性问题和重大问题为止。
4. DVT阶段
DVT(Design Verification Test)设计验证测试,是硬件生产中不可缺少的一个检测环节,包括模具测试、电子性能、外观测试等等。
上一阶段已经看到产品的稚形了,这一阶段要继续完成各部分的研发,包括模具、嵌入式软硬件和互联网平台,验证整机功能的完整性和设计的正确性,并可作出可以进入生产的结论。因为生产意味着更大的投入,所以,这将是最后的查错机会,你需要把设计和制造的问题全部考虑几遍。
这个阶段可开始进行包材的设计与生产了,包括外包装、内托和说明书,如果离真正出货时间还较远的话可以先完成设计验证,等到量产时再进行生产。
这个阶段会继续对结构模具和嵌入式软硬件进行优化调整,可能会多次试模或打板,直到通过整机验证达到可进入生产环节的标准。
整机验证时需要按照生产标准进行组装和测试,并产生全面的测试报告,当然也要找真实用户使用产品,看一下用户对产品外观结构、品质、功能上有什么感受和意见。
如果经过测试发现产品有问题,那么一定要优化完成后再次进行整机验证,直到能够达到生产要求,同时要输出《生产指导书》给代工厂进行参考。
5. PVT阶段
PVT(Process Verification Test)生产过程验证测试,属于硬件测试的一种,主要验证新机型的各功能实现状况并进行稳定性及可靠性测试。
上一阶段我们应该已经完成了产品的设计验证,也就是说外观结构、嵌入式软硬件已经完成了,互联网平台也完成了对应的1.0版本。这一阶段将严格按照该产品生产时的标准过程来进行,包括仪器、测试工具、生产工具等都需要到位。测试得出的结论,是大规模生产的重要基础,包括工序是否太复杂,零部件是否容易损坏、烧录工具和产测工具是否好用等Design for Manufacturering Fact的考量。
如下图所示:
理想情况下,在PVT阶段嵌入式、结构模具和互联网平台已经完成了,不需要任何调整;但也可能在小批量之前或过程中发现一些小问题,比如结构接合处不平整,按键手感不佳,硬件板框调整、某些元器件位置调整或替换等,需要重新进行小批量生产验证,直到达到量产要求为止。
小批量完成后,我们已经有了一小批可量产的产品了,这时候就可以进行相关的认证了。一般认证时间都需要比较长的时间,可能3-8周,所以能够越早进行越好。
PVT阶段完成后需要进行对这一阶段进行总结评审,确认量产需要的模具、PCB、BOM表、生产作业指导书、零部件签样等。
6. MP阶段
经过试产也就基本没有什么问题与工厂也都应该磨合好了,下面就按照生产排期进行生产即可。不过在这个过程中还是需要相关同事进行驻场监督,以免出现问题不能得到有效及时的解决。
在这里需要对产品的加工处理、员工的操作标准、以及质检的规范程度等方面进行有效的监督和保证,只有这样才可以保证产品不会出现质量问题。
7. 销售阶段
在生产过程中产品经理还有一个重要的工作要开始执行了,那就是与产品销售相关的工作。这一部分主要包括产品销售材料的制作,比如宣传文件或宣传视频等资料。
同时也要对销售同事进行培训,帮助他们理解产品在市场的定位以及自家产品的优劣势,并教授产品的使用,便于他们进行宣传和销售,配合市场部门和销售部门对产品的营销推广活动。
此时还要和售后、技术支持等同事进行培训,告诉他们产品使用方法和可能出现的问题以及应对的方法和话术,并对技术支持进行维修和故障诊断进行培训。
销售阶段主要是跟进产品问题,当市场和销售在遇到产品问题时,及时地帮助解决,也可以请FAE同事处理一些简单的产品问题,保持持续的关注。
在产品的前期生产和销售后,基本上这个产品进入了一个稳定的状态,只需要跟进生产相关问题即可。
智能硬件区别于传统硬件的地方是智能两个字,所谓智能就是让机器具有一定的理解能力,知道用户想要如何使用它。
这离不开对设备运行数据和环境数据的收集与分析,设计更好的算法,对嵌入式软件部分进行更新。所以产品维护阶段需要保持的产品使用数据的关注,不断优化用户体验,迭代产品,提高App的使用率等。
另外一个重要的事情就是对项目进行整体的复盘总结,分析在项目进行中的各项问题以及后续规避方案,提取研发过程中通用模块减少再次开发的时间,完善设计规范减少犯错误的几率、维护各个阶段的自检表,维持供应商关系等。
最后,要开始规划下一代的产品了,也许早已经开始了……
五、横向管理
在整个纵向流程中关于产品项目、工场试制、销售部分已经在各自的阶段进行了详细的说明,而外观结构、嵌入式、互联网平台在EVT、DVT、PVT阶段中都有相应的工作要做,为了将流程说得更清楚一些,这里有必要对这几个部分进行单独说一下。
1. 外观结构
我这里说的外观结构部分包括ID、结构、模具和包装,一般新产品开发顺序如下:
流程说明:
A. 新产品一般是先有ID、后做结构设计,结构设计封板后再进行模具制作的;也有情况是产品模具使用公模或已有产品模具,只需要改一下ID和包装即可。
B. 包装设计一般比较简单,所以可以在ID阶段一起做了或者在DVT阶段完成,如果包装设计完成后离量产时间还有一定距离的话,只需要完成设计即可,等量产阶段再进行生产,减少包装损坏或更改的风险。
C. 结构设计时结构设计师需要多跟硬件工程师交流结构问题,讨论电子元器件的摆放和板框尺寸厚度等结构问题;设计完成后一定要3D打印出来反复组装零部件确认结构问题,这也是EVT阶段需要完成的任务。
D. 投模后,至少需要3~5次试模和修模,由于模具费用比较高且周期长,一般进入DVT阶段后才会开始投模。当然如果对结构比较有信心,也可以在EVT阶段投模,提前完成外壳部分。首次试模时最好采用透明壳料,这样方便观察结构上的问题,然后采用黑白双色,最后做表面工艺处理,不断优化外观。
2. 嵌入式
组建团队时,一度很纠结,嵌入式软件部分到底属于硬件还是软件(互联网软件)团队。考虑到嵌入式软件跟硬件的联系非常紧密,嵌入式应用一般更新次数极少,且嵌入式软件开发人员对互联网软件部分了解不多,所以将嵌入式软件和嵌入式硬件放在一起,统称为嵌入式部分。
实际嵌入式开发时,硬件部分和软件部分是同时进行的,前期嵌入式软件可以在开发平台上虚拟硬件环境进行应用开发,但后面还是要基于真实的板子进行开发,需要调试驱动,实现一些虚拟环境中没有功能。
一般开发流程如下:
在EVT阶段,前期的硬件设计方案非常重要,不仅关系到项目的成本、周期,甚至是成败,所以在设计时很有必要注意一下几点:
A. 正确、 完整地实现《产品需求规格说明书》中各项功能需求的硬件开发平台,充分考虑项目要求、性能指标及其它需求;
B. 方案设计过程中需要对产品需求规格说明书中的规格要求进行补充完善,如果尝试各种方法有无法实现的地方或指标相差很多时要及时反馈给产品项目方,对产品需求进行调整;
C. 综合对比多种实现方案,选择适合本项目的设计方法。若系统使用了新技术,为了确认该新技术,可以采用搭建实验板方法或购买开发板进行技术预研;
D. 考虑从成熟产品中进行复用,吸取以往设计的经验教训,避免重新出现同样或类似的问题;
E. 对于重要的和复杂度较高的部分要参考其它同类产品的实现方法或要求有相当经验的设计人员担任;
D. 进行对外接口的设计,考虑运行的安全性、用户使用的方便性与合理性。
同样进行嵌入式软件设计时,也需要遵循一些通用的要求和原则:
A. 正确、完整地反映《产品需求规格说明书》的各项要求,充分考虑其功能、性能、安全保密、出错处理及其它需求。
B. 保证设计的易理解性、可追踪性、可测试性、接口的开放性和兼容性,考虑健壮性( 易修改、可扩充、可移植)、重用性。
C. 采用适合本项目的设计方法。若系统使用了新工具和新技术,需提前进,行准备;考虑选用合适的编程语言和开发工具。
D. 吸取以往设计的经验教训,避免重新出现同样或类似的问题。
E. 对于重要的和复杂度较高的部分要求有相当经验的设计人员担任。
F. 考虑从成熟项目中进行复用。
好的设计是成功的一半,特别是在嵌入式开发过程中,一定不要急于动手,先想清楚,做好设计和评审,再依据设计行动,不说事半功倍,最起码不会走冤枉路,降低项目风险。
3. 互联网平台
我这里说的互联网平台主要是指配合硬件的App、小程序、H5和Web等应用,有些硬件互联平台只是个辅助,必要时用户才会想到去使用,比如行车记录仪App;有些硬件的互联网平台提供了丰富的内容供用户配合硬件进行使用,比如智能音箱。
企业总希望能够提高App的打开率,跟用户有更多互动,挖掘更多的商业价值。
关于互联网平台产品开发流程,网上的内容很多,这里也简单说一下,如下图所示:
需要强调的是,产设计完成并评审通过后,研发部门最好对产品实现方案进行设计,并和产品一起评审。
需求评审时,研发人员往往在短时间内很难消化需求的细节,产品也无法确定研发人员是否完全理解了需求内容。而方案设计是研发人员反客为主地跟产品经理从技术上对产品的理解,这样就很容易消除了需求的歧义,从而也让产品经理对产品的质量更加有把握。
顺便贴一张日常工作的流程示意图:
六、过程文档
文档在产品开发过程中非常重要,需要引起足够的重视。
写文档是深入思考的过程,有写逻辑和场景以为想清楚了,但是进行书面表达的时候往往发现没想清楚。如果这篇总结文章一样,在写的过程中发现了很多问题,反复整理了很多次才觉得稍微满意了一些,这块我会持续优化。
产品过程中的常见文档如下图所示:
如果还有其他需要的过程文档,欢迎在公众号内留言补充……
七、项目里程碑
一款硬件产品往往需要4~6个月时间,这比互联网产品的周期要长多了,互联网产品开发通过一个一个版本控制节奏,硬件开发时也可以为整个相对比较长的周期建立几个里程碑,这样不仅更方便项目管理,对团队也是一个很好的激励方式。
我这里主要立了8个里程碑供大家参考,如下图所示:
八、总结
以上就是我从互联网行业转做智能硬件6个月后的总结,由于对硬件技术和流程的不熟悉,这个过程中也踩了不少坑。另外互联网思维和做硬件的思维存在很大的不同,总结几点自己的经验教训,希望能够给大家带来一些启示:
1. 欲速则不达:做互联网软件讲究敏捷,小步快跑,效率至上。做硬件虽然也讲究效率,但必须踏踏实实一步一步做好,解决好当前问题再开始下一步,不然很有可能会全部推倒重来,得不偿失。
2. 强依赖设计:项目进行过程要遵循前期的外观结构设计和软硬件方案设计,不要轻易改动,一个小的改动可能会起到连锁反应,拉长项目周期。
3. 在寻找供应商的时候,要找已经有做过类似产品的供应商合作,尤其是我们第一次做硬件的时候,供应商能够帮助提供很多建议,可以少走很多弯路。
4. 在互联网行业,如果需要寻找一些系统和服务的供应商,需要对方有一定的规模;但是在硬件领域,提供方案的公司规模并不那么重要,只要方案稳定可靠就可以合作。
5. 做硬件不像软件那样,硬件的利润很薄,市场越成熟,价格降得越快,这也是为什么硬件对成本特别敏感;所以要选择出货量比较大的产品,同时想各种办法降低整体成本。
6. 在硬件的定价上,可以像效率至上的小米那样永远只保持5%的利润率。但是小公司最好在推出新产品的时候选择合理偏上的价格,等市场铺开同类产品涌入后再不断降低售价,将无可降的时候再推出第二代产品。这样既能保持充足的利润,也能保持一定的市场领先。
7. 硬件产品如果对品质要求高的话需要把握三个关键点:首先是设计公司的工业设计水平;然后是选择靠谱的模具长;最后找一家品控做的很好的组装工厂,任何一个环节出现问题对产品的影响都非常大。
8. 不管硬件产品还是互联网产品,都是一个妥协的过程,高标准肯定会带来高成本、长周期,面对市场的压力有时候需要做一下妥协。
9. 硬件产品相比互联网产品整个链条要长很多,需要打交道的角色也多很多,有很多坑在等你。所以最好有一个比较懂硬件产品流程的人,不管是产品经理还是项目经理,对项目交付来说都是一个很好的保证。