很多企业都在抱怨研发周期越来越长。机械工程师很忙,电气工程师很忙,软件工程师更忙,项目经理每天都在催进度,大家都在加班,但项目还是不断延期。
问题到底出在哪里?很多时候,并不是某一个部门效率太低,而是整个研发过程采用了一种非常典型的方式:“接力棒式开发”。机械先设计,机械基本完成以后,把要求交给电气;电气再根据机械方案做电路和控制;最后软件根据前面的设计结果,把功能实现出来。看起来分工清楚,但真正的问题也从这里开始。
因为等到电气或者软件发现机械方案存在问题时,机械设计往往已经基本冻结。这个时候再修改,意味着重新布局、重新画图、重新验证、重新采购,甚至重新开模。于是大家最常做出的选择不是重新把产品设计正确,而是让后面的部门想办法适应前面的设计。
结果就是:机械问题由电气补,电气问题由软件补,最后软件变成了整个系统的“兜底工具”。 项目虽然最终交付了,但产品未必真正实现了最优设计。
为什么“接力棒式研发”特别容易拖慢项目?
传统研发流程通常很符合部门分工逻辑。机械部门负责机械,电气部门负责电气,软件部门负责软件,每个部门完成以后,再把结果交给下一部门。
问题在于,产品最终并不是三个独立部分拼起来的:
1、机械结构会影响传感器布置、电机选择、控制逻辑、线束路径、PCB布局、散热和维修空间;
2、电气方案又会反过来影响机械空间、结构尺寸、接口和成本;
3、软件同样会影响硬件和机械方案。
如果这些关系直到后期才被发现,修改成本就会迅速增加。所以很多企业真正浪费的时间,并不是设计时间,而是后期重新协调、重新修改和重新验证的时间。
最危险的情况:软件开始替机械设计“擦屁股”
这种情况在机电一体化产品中尤其明显。机械结构已经基本完成,后来软件人员发现:
某个动作逻辑很难实现、
某个传感器位置不合理、
某个响应速度无法满足、
某个执行机构能力不足。
这时候如果重新修改机械结构,项目周期可能明显延长,于是团队很容易说一句:“能不能软件解决一下?”于是增加补偿算法,增加判断逻辑,增加标定,增加异常处理,增加大量软件条件。
短期来看,项目似乎被救回来了,但长期却可能出现:软件越来越复杂、问题定位越来越困难、不同版本之间逻辑越来越多、维修人员越来越难理解,一个机械变化还可能引起大量软件重新验证。
这其实并不是“软件能力强”的证明,反而可能说明:前期系统设计没有真正做好。
真正应该改变的是:不要等机械设计结束才开始协同
更合理的开发方式应该是:在机械基本方案还没有完全冻结时,电气和软件就已经参与进来。例如机械人员提出一个初步产品布局,这时候就可以同步给电气和软件团队。
电气人员可以提前判断:
电路板放在哪里?
传感器怎么布置?
线束有没有空间?
电源和驱动是否合适?
软件人员则可以提前判断:
功能逻辑是否合理?
控制方案能否实现?
哪些功能需要传感器支持?
哪些要求可能增加软件复杂度?
然后把这些反馈重新带回机械设计,机械再调整结构,之后继续进行下一轮优化。这种方式看起来前期讨论更多了,但实际上,它最大的价值就是:把修改尽量留在设计还便宜的时候。
前期多花时间,反而可能缩短整个交付周期
很多企业会担心:“如果机械、电气、软件一开始就一起讨论,设计不是更慢了吗?”表面上看确实如此,因为过去机械可以直接往前冲,现在需要停下来讨论。但研发周期不能只看“机械图纸什么时候画完”,真正应该看的是:从客户需求到最终稳定交付,需要多长时间。
如果机械设计快了两周,但后面因为电气布局不合理重新改一个月;软件因为硬件限制增加两个月调试;产品测试以后又因为系统问题重新修改,那么前面的“快”其实没有任何意义。
真正的前期投入,是用更早的讨论,换取更少的后期返工。这也是研发中非常典型的规律:越晚发现问题,修改成本越高。
产品越来越复杂,研发已经不能只靠“专业分工”
过去很多产品相对简单,机械系统占主导,电气更多是辅助,软件功能也比较有限。这种情况下,机械先设计,再逐步交给其他部门,问题可能并不明显。但今天已经完全不同。汽车、家电、智能设备、工业装备,越来越多产品都是机械 + 电气 + 软件 + 控制 + 通信共同构成的系统产品。
这意味着,一个机械工程师即使把机械部分做到非常优秀,也不代表整个产品就是最优的。真正需要优化的,是整个系统。
因此,研发管理也必须从“每个专业把自己的部分做好”,进一步转向:“所有专业共同把整个产品做好”。
06 Six
这也是为什么企业越来越需要“系统设计”角色
如果机械、电气、软件需要更早协同,那么自然会出现一个问题:谁来协调?仅靠项目经理催进度是不够的。
因为项目经理可以问什么时候完成,但他未必能够判断:
机械方案是否给软件制造了不必要的复杂度?
某个电气方案是否增加了机械成本?
这个功能到底应该通过结构实现、硬件实现,还是软件实现?
因此,复杂产品研发越来越需要一种角色:能够站在整个系统角度做技术判断的人。他不一定是每个领域最深的专家,但至少要理解机械在考虑什么、电气受到什么约束、软件能够解决什么,又不应该解决什么。
这种角色真正做的,不是代替各专业设计,而是防止各专业只优化自己的局部,最后牺牲整个产品。
系统设计能力,不是靠开更多跨部门会议建立的
有些企业意识到协同不足以后,第一反应是增加会议。机械、电气、软件每周一起开会。但如果各部门依然只是汇报自己的进度,会议再多,也不等于真正协同。
真正的系统协同需要改变几个关键点:
首先,客户需求要成为共同输入,不能机械收到一套需求,电气收到另一套,软件最后才知道完整功能;
其次,初步方案必须提前共享,不等机械图纸冻结,就让其他专业提出约束;
第三,重要接口要共同定义,例如空间、信号、电源、传感器、接口、热管理、控制逻辑;
第四,系统级风险要共同评审,不能只做机械DFMEA、电气风险分析、软件风险分析,而没人看这些风险之间如何相互影响。
真正的协同,不是大家坐在同一个会议室,而是:大家在设计同一个产品。
组织上还需要解决一个问题:培养跨专业人才
系统设计最终还是需要人来推动,但现实中,真正同时理解机械、电气和软件的人并不多。
因此企业通常需要逐步培养。
一种方式,是让机械设计人员补充电气和软件基础知识,目的不是把机械工程师培养成程序员,而是让他能够理解自己的设计决定,会给后面的系统带来什么影响。
另一种更有效的方法,是轮岗。机械工程师进入电气或软件项目,软件人员参与机械和产品设计。
短期来看,这可能降低专业部门的效率,但长期来看,这些人会开始用不同专业的视角思考产品。当组织中出现越来越多这样的工程师时,企业才真正开始具备系统设计能力。
缩短研发周期,不能只要求每个部门“做快一点”
很多企业想缩短交付周期时,第一反应是:机械提前一周,电气再压缩几天,软件加班赶出来。但如果整个研发过程仍然是接力棒式开发,那么每个部门再快一点,也很难解决后期大量修改的问题。
真正有效的缩短周期,应该从另一件事情开始:让正确的人更早参与。
1、机械设计还没有冻结时,就让电气和软件提出意见;
2、系统架构还没有确定时,就把关键接口和风险讨论清楚;
3、详细设计还没有展开时,就尽可能消除后面可能出现的大修改。
这样做看起来前期慢了一点,实际上是在用更少的返工,换取更快的整体交付。所以,复杂产品研发真正需要提升的,不只是单个工程师的设计效率,而是:机械、电气、软件能否从“轮流设计”,走向“共同设计”。