嵌入式系统对不同的人意味着不同的事情;它们可以是独立的,自己工作,也可以是一个更大的系统的一部分。它们是为特定的应用而设计的,旨在执行特定的功能或一组任务。嵌入式系统的复杂程度从非常简单到高度复杂的实现,取决于需要执行的功能和特性以及它与其他系统的互动和连接。一些例子是自动驾驶、人工智能和物联网。
为了提供一些背景,嵌入式系统已经存在了很长时间。两个例子是查尔斯-巴贝奇在19世纪30年代设计的差分引擎和20世纪60年代建造的阿波罗指导计算机,它被认为是第一个现代嵌入式系统。嵌入式系统的一个关键组成部分是其软件。嵌入式软件将系统带入生活,代表你执行任务。软件是嵌入式系统的大部分设计工作和复杂性所在。
在这篇文章中,我分享了我在使用嵌入式软件时,应用用户体验和以人为本的方法所获得的三个关键经验。这三点收获包括解决多个利益相关者需求的复杂性和优势,如何从理解不同组件之间的依赖关系中获益(顾名思义,嵌入式意味着集成到某个东西上),以及如何克服沟通技术价值的挑战,这些技术往往是看不见的。
学习#1:在你的项目和设计中拥抱复杂性
不同的利益相关者在与你的产品互动时,会有不同的挑战和目标。
让我们以一辆典型的汽车为例,设想你为其高级驾驶辅助系统(ADAS)开发软件。在这个例子中,有三个利益相关者。
- 汽车司机,他是终端用户。
- 将软件集成到汽车上的人是用户。
- 负责购买进入最终汽车的东西的人是客户。
即使如此,这也是有点简化了。在现实生活中的项目中,甚至有更多的依赖性和利益相关者参与其中。
因此,在建立和设计你的解决方案时,你应该考虑到谁?比起为谁设计软件,更重要的是思考什么对每个利益相关者是重要的。在这个例子中,最终用户关心的是体验,以及所有的东西都能按预期工作,甚至更好;用户追求的是完整的功能集和可能性;客户倾向于关心成本效益。最后,你需要满足最终用户的期望(他们甚至不知道自己在与嵌入式软件互动),同时使你的产品对用户来说易于集成,并确保客户以最佳价格获得最佳解决方案。
此外,在许多情况下,嵌入式系统在电源处理或内存方面受到资源限制,但人们的期望是整个系统能以一种复杂的方式无缝工作。因此,你需要在性能和可靠性之间找到一个平衡点,同时不损害体验。优化这种互动需要很高的专业水平和专业知识,这是有代价的。
在设计嵌入式软件时,花时间研究和理解问题空间、目标以及现实生活中不同利益相关者要做的工作是至关重要的。你对每个利益相关者的期望了解得越多,花时间建立在实际环境中没有用处的功能或对未来的功能不足的风险就越小。在嵌入式系统中进行软件升级以支持新的用例是非常具有挑战性的,因为有时这些设备位于难以到达的地方或没有连接。
问题空间探索与用户研究密切相关。因此,有大量的文献、案例研究、材料、框架和工具,你可以用来收集数据并深入了解用户的需求和挑战。这些活动通常包括调查、采访、问卷调查或市场研究。
这里有一些例子。
- "问题空间地图》,Carissa Carter, Megan Stariha, Mark Grundberg
- 问题空间研讨会",Christy Cattin
- "产品战略--洞察力",Marty Cagan
理解问题空间的一个关键方面是能够为你的每个利益相关者和他们的接触点绘制不同的旅程,以及在这些旅程中你可以在哪里实施这些研究工具和反馈机制,以帮助你规划用户研究和问题发现。
下面这个来自哥伦比亚路的模板是一个很好的起点。我只是添加了一个新的维度--反馈工具--以便能够将反馈活动与旅程阶段联系起来。还有一些你不一定认为是反馈或研究工具的活动。然而,在收集信息方面有令人难以置信的丰富实践,我将在下一点中介绍其中的一些。
学习#2:找到快速学习的方法,不要单独行动
如前所述,嵌入式系统有许多依赖性。像冰箱这样微不足道的东西可能有几十个相互关联的嵌入式系统。
软件在硬件上运行。多个系统需要相互配合,以向终端用户提供预期的功能。在实践中,这种依赖性意味着,无论你有多么好的想法,你都必须与人合作才能实现它。协作和共同努力可以采取不同的形式,这里有一些我认为有帮助的工具和做法。
- **有客户和合作伙伴参与的研讨会和路线图调整**会议(作为互动活动处理,而不是单向的演讲)
,这些会议让你有机会解释你如何看待市场,以及基于你收集的数据和经验,最终用户在做什么,并与客户和合作伙伴检查他们是否在该领域看到相同的问题,在未来的方向上保持一致。没有一个通用的方法来做这件事。尽管如此,仍有多种模板和资源可用于构建路线图,让你在与市场和客户相关的关键类别--主题下对功能进行分组,也让你以灵活的方式对你的举措进行优先排序,以考虑到产品的变化和潜在情况。- 从A到Z的路线图(pdf)
- 敏捷路线图模板
- "什么是基于主题的路线图,为什么重要?"
- "成果路线图",Sean Sullivan
一个主动的、基于主题的、具有广泛时间线(现在/下一个/以后)的路线图,可以帮助你推动讨论,使你当前的重点保持一致,共同探索未来的想法,并讨论期望。换句话说,它有助于验证你和客户对目前的情况有相同的理解,愿意在未来进行合作,并且你的努力将用于解决正确的问题。这个周期将根据你的业务和你的产品发布规划而变化。
- 联合演示和联合原型设计也可以用来验证假设,增加你的知识,并测试潜在的解决方案。研究表明,组织间的产品开发计划一直在增长,共同开发对创新有积极的影响。在嵌入式展会和活动中,经常可以看到一个公司的演示在其他供应商的展位上展示。硬件供应商和制造商内部往往缺乏软件技能,如果软件公司能更深入地接触底层硬件,就能更好地调整和优化其产品。
人才是高度专业化的,行业内的雇佣价格可能相对昂贵。合作是一种具有成本效益的方式,可以为解决新兴需求、寻找新的收入来源或进入新的市场进行概念验证。联合原型设计可以帮助你识别潜在的挑战,收集早期反馈,以及加快开发过程,分散风险,并支持你的上市战略。
在嵌入式领域,"整体比其部分的总和更多/更重要 "这句话是准确的。能够展示系统之间如何 "对话 "以及什么是共同创造的价值是非常有用的,特别是当涉及到复杂的系统,其生命周期可能是5到10年。在这些情况下,必须把事情做对,或者说在早期发现设计错误,并尽可能地验证你的概念。
- 抓住一切机会,在小组讨论中分享你的见解和想法,为特定领域的专业社区做出贡献,或与其他公司合作编写博客文章、白皮书和视频等合作内容。这是一个很好的方式来衡量对某一特定主题的兴趣,并获得对你的假设的反应和评论。
嵌入式系统行业是高度竞争的,在同一类别中,有多个参与者在开发产品。然而,矛盾的是,人们仍然不愿意公开参与可能挑战现状和激起新思维方式的对话。
我发现,那些最终被信任(而建立信任是用户体验的核心目标之一,超越了产品的赤裸裸的视觉效果) 和被尊重的公司是那些出现并引发讨论,分享他们的观点和想法而不担心别人抢走功劳的人。引用电视剧《亿万》中的一句话:"很多人都看李小龙的电影。这并不意味着他们会做空手道"。
学习 #3: 沟通嵌入式软件的价值
当软件被隐藏起来而不被注意时,要想办法通过指出它所解决的需求和它在现实生活中对最终用户的影响来沟通其价值。
对于在后台执行任务并在幕后控制系统的软件,你不能用图形界面、视觉设计元素或美学来区分你的产品。因此,你需要找到不同的方式来传达其价值和相关性。即使你不能直接与之互动,这类软件也在终端用户的体验中起着关键作用,例如,影响到设备的性能、电池寿命、耗电量和整体行为。让我们看看一些例子。
- 你的智能电视和停电
家里发生了停电,你在上面录制节目。电力恢复后,你会想到什么?你的电视是能够恢复的。你可以再次打开它并成功启动;它的所有设置都在那里,甚至你在失去电源时录制的节目也在那里。为了支持这种体验,系统需要被设计成能够支持断电,并且不破坏文件系统或丢失数据--电视中嵌入的软件应该足够可靠,能够照顾到这一点。 - 智能手表和电池寿命
智能手表因其在电池寿命方面的挑战而臭名昭著。需要定期给电池充电影响了用户体验,而这一点可以通过在软件层面优化内存和CPU消耗来影响。
- 汽车中的导航系统和网络通信
当驾驶时,你希望你的地图和交通信息能实时更新,[延迟](en.wikipedia.org/wiki/Latenc…
从整体上考虑场景和系统,然后能够解释你如何在现场提供帮助,以及你能为最终用户带来的影响,这是一种有效的方式来沟通软件的价值,以及它在提供无缝体验和满足期望方面的影响。首先找到一个能与你的听众产生共鸣的故事,在此基础上,你可以随时为那些对设备的运作方式和原因感兴趣的人提供更多细节。
总结
我们一直在与嵌入式系统互动,不知不觉地体验它们如何使我们的生活更轻松,享受它们带来的所有功能和好处。悄悄地在后台,执行它们本来的任务,嵌入式系统无处不在,有不同程度的复杂性,如智能手机、交通灯、制造电器、卫星、车辆、医疗设备和无数的其他设备。它们几乎存在于我们生活的每个方面。
无论你的产品有多先进或多简单,以及它在系统中的地位如何,嵌入式系统肯定会在最终的用户体验中发挥作用。
了解与其他组件的多种依赖关系,了解你需要考虑的所有利益相关者的不同需求,并能够尽早验证你的概念和沟通你的想法是至关重要的。它将帮助你设计你的嵌入式产品,让你通过更好的整体用户体验而与众不同,并在幕后默默地改善人们的生活。