高品质的音视频能力是怎样的? | Qcon 全球软件开发大会·上海站邀请函 了解详情
写点什么

安全性至关重要的产品开发过程中 ALM 为何不可或缺

  • 2016-07-20
  • 本文字数:5504 字

    阅读完需:约 18 分钟

主要结论

  • 随着产品(物联网、系统的系统)持续演化,复杂度与日俱增,这些产品的开发过程逐渐充满挑战。
  • 竞争和对于速度的追求迫使大量公司,甚至受到严格安全制度管控的行业开始变得敏捷。
  • 在快节奏的敏捷环境中,对过程的控制成为维持产品安全性、可靠性和质量的关键。
  • 通过集成式的应用程序生命周期管理平台可实现过程和数据在整个生命周期内的集成,这一机制已成为现代化产品开发工作中不可或缺的。
  • Medtronic Neuromodulation 使用 ALM 让这一过程实现现代化的故事为我们描述了产品开发的当前和未来趋势绘。

无论独立的软件产品或嵌入到工程设备中的软件,其开发过程正变得愈加复杂。面对当今充斥着各类物联网设备和复杂的“系统的系统(System of systems)”产品的市场环境,软件很少能独立存在,而是以有机的方式与硬件设备和相关服务紧密结合,这就使得最终产品形成了一种由解决方案组成的迷你生态系统,而不再是相互独立的硬件设备。

复杂的产品:硬件、软件、服务

现代化产品相互连接和自成一体的本质迫切需要一种全新的开发方式。以往产品的创新和制造需要为硬件和软件提供相互独立的开发流程,(最有可能)需要通过瀑布法(Waterfall method)完成每个过程所需的必要步骤,并在最终环节进行集成和测试。这种开发流程需要以整体或部分隔离的方式实现。

随着硬件设备中嵌入的代码数量出现显著增长,复杂度飞速增加,以及通过敏捷方法论加速软件开发工作的做法愈加普及,这种序列化开发的老旧方法逐渐显得不合时宜。将硬件工程和生产、软件开发,以及服务创新等截然不同的开发流程相互集成就变得更加必要。以往相互独立的生命周期开始互联,这就需要使用新的方法进行管理。

拥抱敏捷,为开发工作提速

有人可能会凭直觉假设真正复杂产品的“重量级”过程,例如管控制度非常严格的行业(医疗设备、铁路、核能、航空航天系统、机动车嵌入式解决方案)面对现代化过程的接受速度可能会很缓慢。但是通过实现敏捷以缩短开发周期并降低成本,并通过全新的管理方法对不同的并行生命周期实现集成式控制,依然能为这些行业带来巨大收益。市场竞争日益迫使这些行业中受到各种标准和管控制度影响的开发者必须跟上最新方法论的发展节奏,以便保持自己的领先地位。

但敏捷是一种内在特征,需要定义出一种无论结构化或条理性都不那么高的开发方法。这种方法更重视个人、协作、灵活性,而非通过一系列预设的方案使用僵化的工具将一切都记录在案。这些特性无疑对医疗设备开发等领域造成了挑战,在这些领域中,保持与相关标准合规的关键恰恰在于呈现出无缝的可追溯性,强制实施并全面记录预定义的过程,并实施相应的测试和风险管理规程。

这里的关键词是“挑战”:并不考虑在重要产品的开发过程中使用敏捷或其他现代化方法的做法是否可行。实际上 FDA 在 2013 年对敏捷的背书已经促进了医疗设备开发领域对这种方法的接纳,甚至以缓慢和迟钝著称的大型全球化企业也开始适应这样的变化。有了领先的企业成功地转变为(规模化的)敏捷方法为先例,成功接受这种方法的关键落在了集成式应用程序生命周期管理(ALM)身上。

Medtronic Neuromodulation 是如何变得敏捷的

在大企业逐渐实现规模化的敏捷方法方面,Medtronic 的做法是一个重要范例。作为全球最大的医疗技术公司,他们为这一受到高度监管的行业开发了大量高质量产品。患者生命至关重要,产品的安全性和可靠性就显得极为重要,因此与标准和管控制度的合规是这一行业的关键。

在这个故事(点击连接访问 Medtronic 的完整案例研究)中,在有远见的软件领域高管带领下,Medtronic 的神经调控部门变得更敏捷,这件事证明在如此复杂的环境中实现敏捷也绝对是可行的,并能提供极大的收益。Sarb Singh-Kaur 是 Medtronic Neuromodulation 公司恢复性治疗集团病患护理软件总监,Singh-Kaur 的职责是帮助这家全球领先医疗技术公司的这个部门走进“现代化世界”,通过对敏捷方法的采纳进行规划安排,进而让开发工作提速。

一起看看他到底是如何做到的。

我正在通过敏捷流程帮助这个组织向着最先进的移动、云,以及数据驱动的医疗系统进行过渡,借此为新形式的医疗保健产品交互方式提供支持,造就更优秀的用户体验。在我看来,开发和创新工作的交付速度将成为医疗健康领域数字化转型的新“货币”。能够在这样一个受到高度管控的环境中促进开发工作的过程和工具无疑是我们获得成功的关键。

– Sarb Singh-Kaur,Medtronic Neuromodulation 病患护理软件总监

规模化团队在开发中使用多种工具所面临的痛苦

Medtronic 这个部门面临的问题并不是独一无二的,实际上大部分开发带有嵌入式软件的产品(尤其是为重要的安全领域开发此类产品)的大型企业都面临类似的问题。开发数据没有通过云平台存储和管理,导致难以实现协作。鉴于我们谈论的是大型团队(超过 250 人的跨国团队),通信和协作效率也将困难重重。

虽然这样的解决方案必须能顺利缩放,但造成这一问题的根源绝不是方案所涉及的人数,反而与所用工具的数量有更大关系。Medtronic 的神经调控部门不同团队和团队成员同时使用了多种商业化或自行开发的工具,基本上几乎所有大型企业的开发环境均是如此。复杂的工具生态系统大家都有所了解,而这种做法的弊端同样显而易见:为了跨越如此碎片化的工具集环境保障数据一致性无异于一场噩梦,相互孤立的数据也妨碍了敏捷的实现。

这种情况下,很难将整个生命周期内涉及的工作项与不同工具相互关联,这极大限制了可追溯能力。通过在需求和发布的功能、源代码、测试,以及其他任何相关工作项之间建立连接,这是医疗领域相关标准的基本条件。因此可追溯能力和过程可视性是受到 FDA 制度管控的行业需要实现的一个重要目标。

为了确保合规并促进协作,也可以用一种能够支持协作的方式存储和管理文档,借此实现版本控制并对所有改动进行追踪。对 Medtronic 的神经调控团队来说,以前这需要使用很多相互独立的工具并执行大量手工操作。缺乏类似维基这样基于知识的中心化结构,也使得知识和经验的分享变得困难重重,更不用说在整个生命周期内以协作的方式管理软件风险做法更是难以实现。

大量相互独立的软件工具造成的另一个问题是基线的确定。对于大部分医疗设备开发商来说,对于涵盖开发生命周期内用到的每一个工具创建基线这是一项非常棘手的工作,Medtronic 也不例外。

除了有关质量保证和测试的问题(难以实现测试驱动的开发和基于需求的测试),报表和文档使用中的种种不便也使得 Medtronic 的神经调控团队难以针对合规审计做准备。

最终他们为使用单一软件解决方案所实施的敏捷(和 DevOps)方法很好地解决了上述问题。在 Sarb Singh-Kaur 的领导下,神经调控团队开始寻找可以让他们使用单一工具管理所有过程,减少或缓解上述问题的集成式软件平台。

使用应用程序生命周期管理方法止痛

当然,Medtronic 并不是第一个面临这种问题的企业。以前在开发复杂的软件系统,尤其是在规模化的敏捷环境种开发时,这些问题就已经很普遍了。所以后来产生了应用程序生命周期管理这种方法。ALM 工具可以帮助开发者使用一套软件解决方案检查并管理开发过程中的多个(理想情况下则是全部)阶段。按照设计,这种技术可以提供涵盖整个生命周期的诸多功能,为从需求到发布的开发工作不同阶段提供支持。虽然 ALM 是一种相对较现代化的概念,但 ALM 解决方案数十年前就已出现,近年来一直在进化中。

一些 ALM 供应商已经跳出了单点解决方案(例如需求管理工具)开发者的身份,进一步开发了各种模块为自己的产品提供新的基础功能,或通过收购其他解决方案的方式在这些现有模块之间进行集成。然而大部分用户称,这种在生命周期不同阶段之间通过有限的连接所能实现的可追溯性还不够,因此整个行业开始日益接受“未来也不会过时”的 ALM 解决方案,借此实现更有机的开发过程:此时不再将相互独立的解决方案集成在一起,而是从零开始构建可对整个生命周期提供支持的方案。这种以有机进化为基础实现的全面集成可以实现真正意义上的可追溯性。

在加入 Medtronic 之前,Singh-Kaur 先生曾经尝试过市面上几乎所有应用程序生命周期管理(ALM)工具。他知道这些软件平台在设计上主要是为了帮助开发者减少或解决与他自己以及他的神经调控团队所面临的相同问题。然而由于医疗设备厂商需要遵守特定的管控制度和标准,单纯使用 SAFe(Scaled Agile Framework,大型企业中规模化敏捷方法所采用的一种 Go-to 解决方案)无法满足 Medtronic 的需求。Sarb Singh-Kaur 需要确保新他们的工具不仅能让团队更敏捷并在这种规模化环境中顺利使用 DevOps 方法,而且要能足够灵活,以便帮助他们对整个过程施加严格的控制。

这里的难点在于要在 ALM 能力和规模化敏捷之间进行权衡。

“我的职责在于将组织内部原本沿用的传统方法变革为最尖端的新方式,开发工作的速度对我而言意味着一切。想要敏捷必须要采取一种不同的心态,我无法设想使用任何其他工具能帮助我们实现这些。”

– Sarb Singh-Kaur,Medtronic Neuromodulation 病患护理软件总监

Medtronic 的神经调控团队需要通过一种工具让自己将工作项的不同环节,从产品需求一直到风险管理、编写代码、质量保证、测试,以及产品发布和维护(通过 DevOps)全部连接到同一个平台。因此有机的集成是关键。

与其他医疗设备制造商类似,他们需要能在整个生命周期内展现并证明可追溯性,并记录所有构成和所有改动,同时实现这一切的工作负担必须降至最低。通过对所有工作项提供完善的变更控制,并对产品所要“经历”的所有过程提供可见性,审计师在验证合规性的过程中将能获得全新的洞察力。Medtronic 还需要为审批过程中用到的新工具添加 FDA 合规电子签名。

我们需要了解客户需求,并在产品需求、设计、测试,以及源代码等方面追踪这些需求。

– Sarb Singh-Kaur,Medtronic Neuromodulation 病患护理软件总监

创建全面基线的能力也使得他们不能选择缺乏有机集成的 ALM 产品套件。与此同时 Medtronic 的团队不仅希望寻找一种能为敏捷提供足够支持的工具,还希望寻找一种在设计时就考虑到协作的解决方案。他们需要共享的文档库,还需要通过类似维基的方法分享知识并促进协作。

最后他们还希望继续沿用以往使用的某些软件工具,因此还需要能够将新工具与原有解决方案进行集成。

评估和决策

Sarb Singh-Kaur 和他的团队开始评估各种 ALM 产品,最终团队认为所有这些工具都非常适合某一用途。但他们需要寻找一个能完全满足自己所有需求的工具。Medtronic 复杂的需求使得所选工具必须足够灵活,必须能在支持规模化敏捷过程的同时强制实施预定义的合规工作流。

灵活性是关键,Singh-Kaur 先生和他的团队也能理解,无法通过一个工具使用默认配置就能满足自己的全部需求。在对大量 ALM 产品进行评估后,他们发现有一款工具不仅完全满足了自己的需求,还超出了自己的预期。

Medtronic 的新解决方案使得团队可以根据自己的需求对过程和工作项进行定制,与此同时还能对规模化的敏捷和 DevOps 过程提供支持,可支持与其他工具进行集成。基本上他们可以通过定义、执行、强制实施新的合规过程帮助 Medtronic 转变至最先进的敏捷过程。

由于具备有机集成的特性,新的 ALM 工具可以在工作项之间自动建立连接,借此保障可追溯性。过程可视性也大为改善,现在这个团队已经可以通过几次点击对整个过程实现可视化并提供证据。由于可以方便地映射、执行和监控过程,协作效果也有了显著改善。

Sarb Singh-Kaur 和他的团队新部署的 ALM 工具不仅提供了更简单的可追溯性,这个平台还帮助他们大幅提高了透明度和文档管理与报表能力,这都对合规性审计工作产生了促进作用。正如 Singh-Kaur 在 TechTarget 的采访中所说:

“以前这是个非常痛苦的过程,需要通过各种文档甚至使用多个工具,以手工的方式追踪 [这些事情]。现在我们可以直接告诉审计师我们都做了哪些事,这种能力以前根本无法想象。这种易于呈现的透明度很难超越。”

– Sarb Singh-Kaur,Medtronic Neuromodulation 病患护理软件总监

总的来说,Medtronic 的神经调控团队认为可预见性、可追溯性,以及合规性是实施集成式应用程序生命周期管理工具后获得的最大收益。同时他们的协作、过程控制、项目管理,以及软件产品组合管理能力也有了显著提升。

更令人吃惊的是,他们所选平台具备的多样性和灵活性还为他们提供了预期外的收益,甚至 Medtronic 的神经调控团队一开始所要解决的核心范围之外的其他过程也能从中获益。工作流大幅简化了用户体验屏幕截图的审阅过程,这些图片可以很方便地发送给恰当的人员以供查阅,并能无需延迟自动签出。他们的 ALM 工具还为文档共享和管理提供了很好的支持,同时也让协作更顺畅。Medtronic 目前正在研究整个部门到底还能从这些能力中进一步获得多少收益。

总的来说,考虑到所获得的灵活性和强大的能力,力寻找集成式应用程序生命周期管理解决方案这一过程中付出的时间和精力对 Medtronic 来说是物超所值的。神经调控团队可以使用全新的现代化过程实现敏捷,与此同时还可促进协作提高效率,并确保合规性不受影响。ALM 帮助他们以更简单的方式获得了成熟的过程,同时帮助该团队节约了大量时间和精力。应用程序生命周期管理已经帮助这家全球领先的医疗技术公司实施了面向未来的过程,不仅节约了开发工作所需的时间,而且全面促进了创新式移动和云软件医疗系统的开发。

关于作者

Kristof Horvath是 Intland Software 公司的应用程序生命周期管理“传教士”,同时也是 codeBeamer ALM 的开发者。Kristof 会在 Intland 的博客上定期发布有关敏捷、物联网产品开发、安全合规等话题的文章。你可以随时通过电子邮件与他联系。

查看英文原文: Why ALM Is Becoming Indispensable in Safety-Critical Product Development

2016-07-20 18:241021
用户头像

发布了 283 篇内容, 共 94.6 次阅读, 收获喜欢 54 次。

关注

评论

发布
暂无评论
发现更多内容

常用项目部署方案和区别

进击的梦清

DevOps 运维 项目 部署与维护

周边生态|RoP 重磅发布 0.2.0 版本: 架构全新升级,消息准确性达 100%

Apache Pulsar

Java 开源 架构 云原生 Apache Pulsar

PackML从会到不会——命令标签(4)

陈的错题集

标准化 PackML

Selenium之css怎么实现元素定位?

六十七点五

大前端 软件测试 自动化测试 接口测试 selenium

一场关于元宇宙公司之死的剧本杀

白洞计划

云智慧正式开源运维管理平台(OMP),加速AIOps社区生态建设

云智慧AIOps社区

运维 运维监控 开源软件 运维体系 运维系统

小程序与H5适合的场景应用都有哪些

Speedoooo

ios开发 APP开发 容器安全 Andriod开发 容器应用

恒源云(GPUSHARE)_分享一个技巧!CV训练时容易忽视的数据标签问题

恒源云

深度学习 算法 CV

恒源云(GPUSHARE)_CIFAR-10数据集实战:构建ResNet18神经网络

恒源云

深度学习 算法

等保工作中常见导致测评结论为差的高风险项

行云管家

网络安全 等级保护 等保测评 等保结论

Camtasia视频剪辑功能详解

淋雨

Camtasia

模块五作业

危险游戏

架构实战营

dart系列之:还在为编码解码而烦恼吗?用dart试试

程序那些事

flutter dart flutter 面向切面 aop 程序那些事 12月日更

初识JVM的内存结构

Ayue、

技术专题合集

分享一个从源码快速构建应用的小工具

Draven Gorden

开发者工具 开发工具 开源项目

Sinfonia: a new paradigm for building scalable distributed systems--翻译理解【1】

Krysta

分布式 transaction Sinfonia DSM 两阶段提交改进

Cordova插件中JavaScript代码与Java的交互细节介绍

Jerry Wang

Java JavaScript 移动应用 28天写作 12月日更

☕【并发技术系列】「多线程并发编程」技术体系和并发模型的基础探究(夯实基础)

洛神灬殇

Java 并发编程 多线程 多进程 12月日更

vCenter管理软件用什么牌子好?有哪些用处?

行云管家

虚拟化 vcenter

当我们谈论“远程开发”时,我们在谈论什么

Draven Gorden

云原生 开发者工具 开发工具 远程协作 开发环境

MySQL探秘(二):SQL语句执行过程详解

程序员历小冰

MySQL 28天写作 12月日更

基于星环科技大数据平台 辽宁城市建设职业技术学院打造智慧校园

星环科技

大数据

使用工具Source Monitor测量您Java代码的环复杂度

Jerry Wang

Java 软件工程 28天写作 12月日更 代码复杂度

如何在Flutter应用程序中创建不同的渐变 【Flutter专题14】

坚果

flutter 28天写作 12月日更

Linux一学就会之Centos8用户管理

学神来啦

Linux centos 运维 linux云计算

我不用“996”,更不用“007”,可我赚的就是比你多

六十七点五

软件测试 自动化测试 接口测试 测试工程师 功能测试

短视频平台的风控系统设计

Bill Zhang

带你了解Typescript的14个基础语法

华为云开发者联盟

typescript 数组 开发 js 语法

12 月亚马逊云科技培训与认证课程,精彩不容错过!

亚马逊云科技 (Amazon Web Services)

架构师 培训 认证

Java和ABAP中的几种引用类型的分析和比较

Jerry Wang

Java 引用 28天写作 abap 12月日更

安全性至关重要的产品开发过程中ALM为何不可或缺_文化 & 方法_Kristof Horvath_InfoQ精选文章