管理从物联网的产品创意到发布的许多步骤可能会导致发货延迟,企业可以采用一些技巧和方法帮助优化开发过程。
每个产品经理都知道在时间复杂度上运送设备所涉及的复杂性,这导致45%的产品错过了发布日期。而协调机械工程、电气工程、制造、测试自动化、营销等是很困难的。每一项都具有挑战性,但都变得更加复杂,因为其中大多数都不会在同一时间线上前进。
遵循新产品推出(NPI)时间表,同时关注固件流程,有助于简化开发并增加实现开发目标的可能性。受到开发工程师的启发,新产品推出(NPI)是一个有用的指南,其中包含六个里程碑和相关的时间框架,供旨在尽快发布易于理解的产品的团队使用。属于这一类的团队可以预期,从原型到发布的时间框架大约为12~18个月,具体取决于设备的复杂性。
在该模型中,固件开发中还有其他元素为优化新产品推出(NPI)流程铺平了道路。为什么要关注固件?该固件动态支持企业的整体硬件路线图,通过确保最佳固件实践,可以减少每个开发阶段的生产挑战,并按时推出产品。
以下将讨论关键里程碑,然后探索四种方法来分析硬件和软件,以节省时间并创建一个不太可靠的时间表。
(1)初级阶段,12周
初级阶段也是最长的阶段,工程师主要确定他们到底想要建造什么,其中有很多迭代,可能是3D打印原型或供电气和固件工程师工作的开发板。虽然这是自由度最大的阶段,但12周的时间并不长,因为在此期间需要做出很多决定,例如需要哪些传感器以及如何整合一切。目标是提出一个功能性的产品架构。
从固件的角度来看,在原型构建准备好之前,团队必须让软件达到一个里程碑。这个里程碑要求团队为每个主要子系统编写最少的驱动程序代码,以在命令行级别验证每个子系统都在工作,并且产品的软件能够与每个子系统进行清晰的通信。
到原型阶段结束时,团队可能最终会得到一些“像”和“看起来像”的原型。虽然不是最终的,但这些原型可以展示给执行团队和一些客户,以大致代表最终产品。
接下来的三个阶段基本上属于相同的时间范围,开发团队可以预期在这三个阶段花费大致相同的时间:工程验证测试(EVT)、设计验证测试(DVT)和生产验证测试(PVT)。对于每个阶段,实际构建至少需要两周时间,每个阶段之间至少需要三周时间,以便工程师从构建中获取数据、进行更改、迭代设计、解决任何问题,并提交为下一个构建设计。实际上,预计每个阶段之间将花费大约8周的时间。
(2)工程验证测试阶段(8周)
在超越第一阶段之后,团队将拥有少量配置,工程验证测试是完成工程设计的时候了。工程验证测试是准时发货的关键阶段;成功退出工程验证测试通常意味着准时发布。该产品在外观上不会完美,可能是用一些软工具制造的,其测试结果不是最终的,而且产量很低。但工程验证测试设备的外观和感觉应该与最终的大致相同。它应该有几个配置来降低程序的主要子系统和一个配置工作的整体成功标准。
在超越工程验证测试阶段之前,固件需要完成初始测试,此时只有最少的固件可以让用户尝试设备的所有主要功能。它可能不会很好地工作,并且没有所有的功能,但如果设备有显示器,用户可以查看显示器并看到一个简单的用户界面。如果设备有音频,可以播放音频文件等。
需要记住的是,在进行迭代时,可能必须再次进行测试。每次工程验证测试设计迭代至少需要额外的4周,这可能会导致严重的延迟。
(3)设计验证测试阶段,6~8周
在设计验证测试阶段,团队不会按照他们想要的速度以生产良率或制造速度运行,但他们将拥有一个最终配置,使其通过所有制造站并通过所有测试。
在工程验证测试和设计验证测试之间,需要确定采用物制造软件。工程验证测试是指生产线将或多或少地在高峰期间运行。因此,在设备上运行的任何软件都必须由工程验证测试完成。
(4)生产验证测试(PVT),6~8周
生产验证测试阶段用于优化制造。最终,目标是获得达到目标所需的产量和速度。
在生产验证测试中,团队将为目标进行预运行,并且需要完成启动固件。生产验证测试设备具有创收能力,有时可以出售给市场,前提是它们没有重大问题。至关重要的是,他们拥有将在出售的设备上运行的固件。
(5)试运行阶段,4周以上
在超越以上阶段之后,团队将以理想的速度和产量进行制造。下一个阶段是进入试运行——制造足够多的产品以供发布。
通常会有短暂的停顿来进行最后的调整,并确保在工厂中生产正确和足够的零件。在此期间,将通过全天候运行生产线,并将设备运送给经销商来积累库存。
(6)发布阶段
该产品是最终产品,在零售商和经销商处有库存,可供最终用户购买。
考虑到时序变量以及设计和工程的复杂性,许多产品经理都希望优化这个过程。但是,由于固件支持的整体硬件路线图由于开发阶段而异,这里有四种方法可以解开硬件和软件,以节省时间并创建可靠的时间线。
- 部署测试驱动开发:针对软件测试工具而非真实硬件构建软件和固件。例如,企业可以使用单元测试框架或的模拟框架来模拟硬件,并针对它进行软件开发。这种方法有很多好处:即使硬件尚未准备好,也可以让开始软件开发,它可以加快迭代速度,并且创建了一组可用于支持开发的强大测试。
- 实施第0天更新:旨在准备在拆箱时应用于设备的软件更新的技术。第0天的更新改变了时间;它不是在制造阶段完成最终固件,而是将整个时间延长到客户拥有设备的时间。这种方法可以将软件开发计划延长四个星期或更长时间。
- 使用强大的硬件抽象层(HAL):使用可以轻松移植到新硬件的跨平台操作系统和硬件抽象层。虽然这是一个多一点的前期工作,但它提供了三个主要好处。首先,它允许您将固件与底层硬件分离,从而更轻松地进行测试驱动开发和独立构建。其次,它创造了可选性,这是在供应链受限的情况下的一个关键特征。如果您需要更换微控制器或其他组件,使用硬件抽象层(HAL)可以轻松地进行更改。最后,它允许开发人员为未来程序的代码重用奠定基础。能够将其构建的软件从一个程序带到另一个程序是非常有价值的,并且使用硬件抽象层(HAL)使企业能够从同一个代码库构建多个程序。
- 拆分制造和应用固件:在生产线上使用专门构建的固件,这种固件很少更改,并且与应用固件完全分开。虽然这是非常战术性的,但不应低估其影响。在校准和其他测试期间,制造固件在装配线上和设备上运行。直到生产线上的最后一个测试站才加载应用程序固件,让您在不影响制造固件的情况下迭代应用程序固件。将两者分开可以让您对用户界面显示等内容进行更改,而不会带来制造固件回归的风险。它还允许您在设计验证测试阶段锁定制造后继续处理应用程序固件。它还可以让开发人员节省代码空间,因为不会在主应用程序中携带制造代码。在这里提出的一个警告是,可能会发现制造和应用固件之间的依赖关系,并且需要有一种方法来管理依赖关系,例如传感器配置。
而准时发货是企业的设备工程师最关心的问题。通过部署这些固件工具和技术,可以减少错过里程碑的可能性,而不会危及产品质量和企业信誉。