开发硬件产品如此困难?

 开发硬件产品如此困难?

开发一款硬件产品很难吗?老wu觉得,对于创业公司来说,是的,挺难的,至少相对于软件开发来说,硬件开发要难得多。
为啥?至于软件开发,你只需一台电脑,一款手感不错的机械键盘,一根能VPN翻墙的网线(没了google,github,老wu感觉码不动程序,即使强码了,编译也缺lib ?),就能撸起袖子开干了。

而硬件开发呢,同样需要一台电脑,一根能上互联网的网线(至少发板子出去做需要联网吧),一款手感不错的拉线鼠标,除此之外,还需要一些能快速制作出原型的工具,如开发板,洞洞板,面包板等等,还需要一些配套的辅助工具不!应该说是很多很多才对,比如,焊台,万用表,示波器,逻辑分析仪,各种钳子,锯子,电钻,飞线,漆包线,助焊剂,洗板水,扳手,介刀,当然,还需要一张能够平稳使用这些工具的牢固的桌子和安放这些工具的挂板。当然,你还要有熟练应用这些工具的经验和技巧。
当然,更为重要的是,你还需要钱!钱对于一个硬件创业公司来说,太重要太重要了!有了钱才能买到上边罗列的工具,买好用一点的工具,虽然贵一点,但老wu还是墙裂建议,在购买工具的花费上,不能太省了。当然,PCB打样需要钱,买电子元件物料要用钱,买公模外壳要用钱,如果是开私模,那开销就更大了,还有包装、物流、认证、商标、实用新型专利申请等等…硬件产品开发,相对于软件产品开发来说,前期用钱的地方太多太多了,软件打包发布,你可以扔到百度网盘或者APP应用市场等等,别人下载就好了,可以说,如果你不要特别的去花钱推广的话,软件分发是不用钱的,所以软件可以免费,利用流量红利变现,而硬件则不行,就别说什么免费硬件了,就是硬件按制造成本卖,你也是卖得越多亏得越多的,物流成本、客服成本、售后维护成本都是成倍增长的。
曾经依靠免费杀毒软件赚的盆满钵满的360公司董事长兼CEO周鸿祎就曾反思说:硬件免费?不靠谱!
周鸿祎说,为什么互联网软件可以免费?因为我们研发一款软件产品的成本固定,当产品被越多人使用时,边际成本就越低。而当软件被上百万、上千万乃至上亿人使用时,其边际成本可能会接近于零。
而免费模式带来海量用户之后,我们可以基于这些用户,为他们提供广告或其他增值服务,从而实现商业变现,这也是我说的免费模式也是商业模式。“
而智能硬件研发生产销售都有其自身成本。与软件产品一样,智能硬件产品会有研发成本,用户数量越多,单位研发成本就会越低。但除了研发成本之外,智能硬件产品还会存在物料成本、物流成本、生产成本以及营销销售成本等等,这些成本是随着产品数量的增长在不断增长的。因此,智能硬件产品的边际成本不会同软件产品一样,随着用户数的增长而被不断摊薄。对于智能硬件来说,比如要卖到100万件,其中需要拥有的供应链能力、质量控制能力以及物流能力等等对于初创团队来说,难度非常大。而即便产品卖了100万件,产品的APP获得了100万用户,但与其他互联网软件应用产品相比,100万的用户基数与规模仍然还是太少。
如果硬件完全不赚钱,互联网模式建立不起来,对于很多企业来说,会导致持续设计新品的能力都失去,更不要说什么制造业的创新、原创能力了。所以,智能硬件产品,需要有合理的利润空间,这样才有持续造血的能力,才有资本支持后续研发发展。
正所谓兵马未动,粮草先行,如果粮草被断了,则不战自败!所以,看好你口袋里的每一分钱,开发一款硬件产品,从概念阶段到产品能推向市场,你得预它6个月时间,而你的资金得能支撑一年的时间才行。很多硬件创业小伙伴最后倒下了,都是资金链断了,而硬件产品还没来得及回笼资金。所以,付款不要太豪爽,可付可不付的款,一律能拖就拖,甚至可以动用一些朋友关系,在供应链上能争取个好一点的款期。当然,如果你能认识雷布斯或者马爸爸,在公司剩最后一口气时,喊一下,看,我的产品还不错,市场占有率也挺高的,就是资金链断了,卖你点股份吧?说不定还能全身而退 ?
现在很多软件创业公司秉着互联网理念,追求精益创业,小步快跑,快速迭代,开发的东西运行不流畅怎么办?没事,这是最小化可行产品!页面暴丑怎么办?没事,这是最小化可行产品!漏洞百出怎么办?没事,这是最小化可行产品!干脆没啥用怎么办?没事,这是最小化可行产品!
而硬件开发的门槛要高得多。它和做软件不一样,软件不完美的时候就可以先发布出去了,借助用户的反馈修改。软件本身也是免费的,用户觉得软件有问题,就可以不用。但是做硬件不是这样的,如果发售了一个有缺陷的硬件,用户会把你骂死。回收修改可能就意味着这批硬件全部都作废了。
对于追求精益软件开发的流程大概是这样的:

达到高质量软件的方法是经过分析、设计、编码、测试、集成和系统验证这一系列步骤。但是这种方法只能在提前预知需求,而且需求在开发过程中不会改变的情况下才会奏效。而在当前大部分软件开发过程中,两者均不能被保证。因此,我们需要从一个新的角度来看待开发流程,精益和敏捷思想者提出的方法是增量式软件开发,对每个增量获取反馈,因此系统随着环境的增长而增长,随着环境的改变而改变。
而硬件产品的开发与软件产品却有着诸多显著的区别:
硬件产品开发需要比软件开发更长的准备时间,因为要验证硬件方案的可行性,选择Cortex-M还是ARM9亦或者Cortex-A,对整个BOM单的成本影响是非常大的,从Cortex-M换到Cortex-A,你的PCB要重新布过,BOM单成本也要增加很多,甚至软件都要跟着改,而传感器需要采用哪家的,使用什么通信协议和接口,精度如何,成本多少,货期多长,装配是否容易,是有有pin2pin兼容的可替换产品等等,都是需要考虑的因素。如果产品开发到一半,发现需要换硬件方案,可能对于硬件初创公司来说,即是毁灭性打击。
硬件的需求变更的成本极大;纳尼,我裤子都脱了,你才跟我说你这里是正经的保健店?我板子都布好了,你才跟我说要把接口从机箱的后边挪到前边?喂,结构吗,回公司加个班吧??

所以,在硬件产品付诸行动之前,需要有一个明确的计划。硬件产品的研发通常可分为四个主要阶段:
调研期、原型期、小批量/产品化期及批量生产期
调研期
关于硬件产品调研期需要注意的内容,老wu这里转一下腾讯大讲堂的专栏的一篇内容,地址详见:https://cloud.tencent.com/developer/article/1048395
硬件产品,用户有一定的金钱投入,大部分用户第一点更多考虑的是性价比,功能多少&是否满足需求很重要,用户喜欢更多的选择和更全的功能,品牌与价钱、外观和设计也在用户购买对比的重要范畴内,等买到手之后,才涉及细节的体验、学习成本等等;所以硬件产品,第一层需求是让用户产生购买欲望和行为,第二层需求是用户使用体验,继而形成用户体验方面的口碑传播,带动第一层,第三层体验来自于售后服务;用户在购买时产生的心理,造成了在初期产品设计时,未必一定是越极简越好,当然,形成了品牌效应和口碑传播后除外。
所以在进行硬件产品功能规划和设计时,需要考虑的因子更多,也更难,少即是多这条理论,在硬件中有时可能并不能很好生效:
(1)卖点:硬件的产品经理不能简单的推崇极简主义,有合适多、够炫酷的功能作为卖点,在与竞品同档位竞争时,能够脱颖而出;
(2)体验:传统公司做硬件,核心目的在于卖出去,卖完了利润产生了,核心目标就完成了;互联网公司做智能硬件,让用户购买之后,同样注重与用户的持续联系,所以产品的细节体验,是全流程的:从产品设计理念、功能细节设计、说明书设计、产品发布方案、拿货流程、拆包体验,到用户开始用的过程,一直到客服体系设计,都在考验着产品经理的能力;而不简简单单地考虑智能硬件的软件部分:如何让用户学习成本低、如何让设备真正体现出智能化、让用户行为等更多沉淀等等。
(3)成本:软件产品设计时,最多可能考虑一下性能、人力投入方面的情况,而硬件产品设计时,每增加一点小功能,可能都会带来成本的增加,每一张纸、每一个贴膜、每增加一道工序,都带来成本的累加;对配置斤斤计较,是硬件PM的职业病
例:为了让用户可以在车内玩起来,产品在硬件中内置了通信模块,选择3G还是4G,选择联通还是电信,成本差异可能到3-4倍左右,需要PM在顾及用户体验的同时,看清趋势、关注性价比;
(4)性能:软件产品设计中,技术、性能很少成为瓶颈,但是设计硬件时,特别是涉及到创新的功能,往往PM觉得方案是行的通的,但是硬件打板成型之后,性能差别很大;
例:为了满足用户的痛点、增加产品的亮点和竞争力,产品做了一个远程监控的功能,调研过程中,发现芯片可以支持、长连接技术调试ok、通信模块传输ok等,全流程跑通!兴奋!功能实用,业内第一家!但是最终硬件完成,用户测试阶段发现,唤醒的稳定性、通信模块不同地区信号差异大、电池性能差异等等,导致体验直线下降。
(5)工艺:用户是视觉动物,软件中设计师可以自由发挥,各种炫酷的转场、页面等,但在硬件设计中,每增加一点设计,可能带来的都是增加工艺上的难度或者成本的提供。
例:项目中主机正面是一块整的面板,最初设计时觉得太单调,增加了一个其他颜色的呼吸灯,在小批量生产时,发现产线上装好的产品在呼吸灯两侧翘起、缝隙偏大,一个看似简单的调整,造成了很大的批量生产困难。
二、快速迭代
软件设计,讲究的是快速迭代、小步快跑,尽快发布,随时升级优化,随时掉头;但受限于硬件设计本身,需求调整,可能会影响需要的部件,一旦涉及到改板,那至少三个月出去了,真是牵一发而动全身;所以产品经理做硬件功能设计时,挑战很大。软件产品可以让技术陪你一起去了解用户、验证需求,不断试错,但是硬件产品,产品经理千万不要想着快速迭代!改需求是大忌!需求要有较强的完整性、可实现性、确定性,所以需要PM有很强的前瞻性、对市场&对用户的了解、对时间的把控能力,硬件需求设计要慎重考虑以下方面:
(1)产品定位:在产品大方向上,软件、硬件产品都很重要,但是软件可以及时调整、掉头,硬件产品定位上失误,等到验证定位失败,可能半年就出去了。
(2)功能范围:产品功能范围层的内容,需要在产品规划阶段,有着清晰的认识,功能多少可能影响用户选择,功能难易可能影响后续开发进度、功能形式可能影响用户范围,硬件的功能不像软件,后期增加一个功能,硬件可能支持不了,删一个功能,可能会造成不可避免的硬伤;
例:产品在前期市场调研过程中,发现某相关竞品出了一款运动相机,感觉与我们的产品可以相结合:在后期宣传过程中,也可以让产品在常规使用的基础上,作为野外出行中的运动相机,增加卖点;所以在产品上增加了一个拍照键。但是随着市场认知、产品深入,发现此定位不适合目前产品,但是如果改板,需要几个月时间,所以导致产品有一个可有可无的大按键在那。
(3)时间周期:硬件产品设计过程中,需要考虑实现难度、实现周期(包括结构设计、手板、开模、嵌入式开发、硬件测试、软件测试等)、以及预期上市节点时产品相关功能是否还有竞争力等等。
例:产品在调研阶段,国内做该领域的产品很少,等到我们准备量产时,在相关展会上,国内已经有一些厂商开始拿我们产品中一些功能做上市前宣传了,再过半年后,市面上已经出现一些相关竞品了。
原型期
在产品原型期,硬件部分的工作风险最大,所以老wu建议,先用开发板+洞洞板或者面包板,快速的把产品原型给打出来,验证硬件平台方案的可行性。老wu工作的这么些年,买过很多很多的开发板,这里给大家秀一下,?

初步的硬件原型验证完后,就可以进行初版样机的试制了,包括:
原理图设计(Schematic Design)
基于对硬件平台和组件的选择,产出适合的电气原理图;
PCB设计(PCB Layout)
基于电气原理图,产出PCB(Printed Circuit Board)设计。
打样(PCB/PCBA Manufacture)
PCB设计导出Gerber连同制板要求发给板厂打样,PCB做好后回来自行焊接元器件或者干脆PCB打样和焊接都外包
硬件调试(Hardware Debug)
上电看下是否冒烟,然后先自行验证一下硬件的基本功能,然后交由软件进行软硬件联调。
小批量/产品化期及批量生产期
硬件工程师还得继续跟进,包括BOM整理,备料跟进,小批量暴露出来的DFM设计问题,提高产品的生产装配效率,产品的良率问题,成本优化等等。
如何让硬件产品开发变得容易些?
尽量明确需求
减少变更,这就需要在产品原型阶段吧产品的技术规格指标给确定下来,所以一块开发板对于硬件产品开发者来说,还是很有必要的,还有的就是产品的参考设计,现在很多IC原厂都有很完善的turnkey方案,直接复用IC原厂给出的参考设计核心部分,然后外围的接口电路在根据自己产品的特性进行修改,可以节省很多前期的开发时间和费用。
当然,明确需求,老wu还有一个必杀技,就是在桌子上的水杯杯垫换成了红砖头,每次开产品研讨会,老wu端起水杯去开会的时候,都会带上这个红砖头的杯垫,老wu发现自从用上红砖头杯垫之后,产品经理对产品的需求一下就明确了,不存在半途改需求的情况,采购与生产也不来找我们研发的麻烦了,这红砖杯垫确实是个好东西,老wu这里墙裂建议每个研发水杯上都垫上那么一块,你会发现生活美好许多 ?

利用模块和核心板
设计外包
好吧,写着写着,发现已经十二点半了,说好要早睡的,不能让别人误以为老wu每天辣么晚谁,还以为我没女朋友呢,?
今晚早点睡,2:45还有欧冠次回合,曼城加油,巴萨加油 ?

吴川斌

吴川斌