敏捷方法的好处是有据可查的,但是在遵从驱动的市场中,向敏捷过渡对于嵌入式开发团队来说是一个挑战。需要可追溯性和文档来证明遵从性,但是这可能与敏捷的精神相矛盾,敏捷的精神仍然受到伴随着方法论成长起来的不准确神话的困扰。事实上,只要采用正确的方法和工具策略,敏捷和遵从可以舒适地共存,没有太多的妥协。最重要的是可追溯性,在这个上下文中,这意味着将需求与测试运行和解决的问题联系起来。有了可靠的可追溯性,您不仅可以提供满足审计需求所需的证据,还可以支持更好的透明度和跨团队的跟踪,这也有助于协作。
一个好的起点是定义敏捷开发的含义,因为这个术语虽然广为人知,但却经常被误解。在最简单的层面上,敏捷是一种松散的方法,基于对客户需求、跨职能团队协作和响应变化的关注(与严格遵循记录的计划和时间表相反)。许多嵌入式开发方法,包括一些最近的混合方法,都在敏捷的保护伞下,包括:Scrum、Kanban、Scrumban、Kanplan和扩展敏捷框架(SAFe)。
敏捷神话
不管哪种风格的敏捷,都有一些常见的误解,例如,敏捷缺乏结构或控制,或者需要在质量上有所取舍。这两个神话都不是真的:结构、控制和质量保证都可以构建到敏捷过程中。
另一个错误的认知是敏捷在受监管的行业不起作用。然而,Perforce自己在2018年对医疗设备开发市场(无疑是所有市场中监管最严格的市场之一)的调查发现,超过三分之一的受访者当时已经转向敏捷。有趣的是,我们越来越多地从处于严格监管环境中的公司那里听到他们已经——或者即将——拥抱敏捷。
那么,这些公司是如何运作的呢?这是一个嵌入式开发团队如何在敏捷框架上执行的问题,不管他们使用哪种敏捷方法,可追溯性都是关键。有了可靠的可追溯性,组织可以使用几乎任何他们想要的过程来交付。
可追溯性
可追溯性有助于回答这样一个问题,“如果某件事发生了变化,还有什么会受到影响?”重要的是,可追溯性可以用向后和向前追溯来定义。向后可追溯性是检查上游需求是否证明了设计或构建的合理性。向前可追溯性是检查在生命周期的后期阶段所需要的东西是否得到了解决。
这里有一个例子。在敏捷开发中,尤其是Scrum,工作项目被分解成更小的部分,并在固定的时间框架内完成,称为冲刺或迭代。这意味着管理人员必须确保每个工作项目(及其更小的部分)都有适当的测试覆盖。这种可追溯性要求从项目一开始就明确定义“父”和“子”项目之间的结构,换句话说,就是不同元素之间的关系和影响。这种工作的最终结果——在嵌入式开发的所有阶段勤奋地完成——是一个跟踪矩阵,它允许组织理解哪些需求、测试和问题是相关的。这种跟踪矩阵提供了一种简单的方法来进行向前和向后的影响分析,并最终提供现成的责任。有了这种结构和数据,决策者可以在变化发生之前了解变化的影响,并管理和减轻风险,而不管使用什么交付方法或流程。虽然从前追溯矩阵是手工创建的——例如,在Excel电子表格中——但是这些手工方法并不适合今天复杂的软件环境。结果,越来越多的组织使用他们的ALM工具来自动化这个过程。
人们需要工具
敏捷从根本上是关于人的,但是,考虑到工具扮演着重要的支持角色,确保工具的复杂性不会阻碍可追溯性是至关重要的。例如,如果需求存储在Word文档中,问题在Atlassian的Jira中跟踪,代码存储在Git或其他系统中,如SVN或微软TFS,跟踪和追踪是分散的,因此风险增加。类似地,如果这些团队正在实现不同的项目管理方法,每个都有不同的标准、过程或者控制,那么这样的可追溯性可能很难实现。
对于希望在不增加风险的情况下实现一定程度的敏捷性的嵌入式开发人员来说,合适的工具可以消除或至少减少进入的障碍。例如,应用生命周期管理(ALM)工具可以与Atlassian的JIRA集成,以提供端到端的可追溯性、测试和需求管理,同时还提供合规报告和审计所需的数据。
过渡到敏捷——最佳实践
首先是需要高管的支持。像任何其他主要的组织计划一样,如果没有高层的全力支持,敏捷将无法通过不可避免的阻碍和障碍。
其次,敏捷最好从团队层面开始。通过定位错误的步骤,组织既可以降低风险,又可以更容易获得成功。在团队一级吸取的经验教训可以推广到部门一级,然后在适用的情况下应用于整个组织。
第三,作为产品化一部分的团队必须有一个清晰的过程和共享的术语。例如,需求是以用户故事的形式编写的,还是两者混合使用?评估是以天、小时还是故事点来衡量的?角色需要重新定义吗,例如,业务分析师需要被训练成Scrum大师吗?这些问题(以及更多的问题)应该在嵌入式开发早期得到处理和解决,这样高管、经理和团队才能说同一种语言,从而能够在迷失方向的时候充分沟通。
当然,还有无数的其他考虑要做,其中许多是无法计划的,所以只能在出现时解决。虽然这已经成为老生常谈,但必须认识到唯一不变的是变化。
所有这些都必须在法规和合规性的背景下进行,在许多行业中,法规和合规性还在不断发展。这些组织的未来很难预测,但合规性是日常业务生活中越来越重要的一部分,无论是确保道路上汽车的安全、帮助患者护理的设备,还是使物联网成为一个更加可靠和安全的运营环境。与此同时,敏捷方法的速度和灵活性——不管它是否有正式的标签——正被各种组织积极地用来创造竞争优势。在一个敏捷需要与合规共存的世界里,知道这是最有可能的是很好的,只要用正确的文化、嵌入式开发工具和过程来解决,所有这些都由可追溯性来支撑。