"精益+敏捷"的组合拳
软件工程的核心任务之一就是不断提高软件产品交付质量。在复杂系统软件开发我们引入了敏捷开发Scrum方法,应用于大规模项目团队的软件开发过程,提高了团队效率。但敏捷在工程上和管理过程中缺乏一致性和充分性的考虑——由于产品研发价值流起源于用户需求、到系统需求分析与设计,再到软件的各个互动,因此需要从整个系统开发的价值流层面去改进过程。需要通过末端的交付价值,来拉动前端的各个流程,实现时间更早、质量更高的交付。
面对着航空机载系统复杂度和规模不断增加的趋势,同样也面临着市场需要大量高品质、低成本和快速应用的软件产品,引入精益方法在软件和系统工程对于企业发展有积极和重要的现实意义。企业迫切需要引入一些新的软件研发管理方法,提升软件研发能力以应对内外部激烈的市场竞争。因此引入精益思想转变研发管理,对于提升软件研发能力,提升软件交付速度和软件质量是一种有效的尝试。
精益思想源于日本丰田生产管理方式(ToyotaProductionSystem,TPS)。20世纪90年代,MIT的JamesWomack、DanielJones和DanielRoos研究考察了丰田生产系统,提出“精益(Lean)”这个术语。其核心价值是用整体优化的观点合理地配置和利用企业拥有的生产要素,消除生产过程中一切不产生附加价值的劳动和资源,提高经济效益,也即减少浪费,以尽可能少的投入创造出尽可能多的价值。实践证明,TPS的基本原则丰田之道几乎适用于所有行业,包括软件行业。年,JamesWomack和DanielJones发表了《精益思想》一书,该书把精益生产进行理论化,并系统地描述了精益的原则和方法,形成了精益的思想体系。
精益思想有以下五条原则:
定义产品价值,站在用户的视角定义什么是价值,并把它描述为具体产品或服务;
识别价值流,识别和映射创造价值的流程步骤,消除不增加用户价值的步骤和活动;
让价值流不间断有序流动,让用户价值在流程步骤中流动起来,使它们持续、顺畅地流向最终用户;
用户价值拉动,由用户价值拉动流动,避免带来用户价值的浪费;
追求精益求精,不断重复1到4步。追求完美的价值和价值流动,消除过程中所有浪费。
丰田的精益价值观包括两个方面,持续改进和尊重人。并且,持续发现有用的价值和持续提升流动效率,这两个主导思想,贯彻在精益实践譬如精益看板方法、精益需求开发、精益创业等实践方法中。
图1精益软件开发的体系框架
当今面对快速变化的用户需求,需要业务应能够尽可能敏捷化,要求支撑业务的柔性化,以满足业务敏捷化的要求。由于其多系统、多任务、多环境的关联复杂,以此支撑目前航空电子复杂性的发展,基于精益思想考虑的产品研发模式才具有更重要的意义。
精益的核心思想是消除浪费。精益理论指出不能在生产线最后工序才检测产品的质量,在过程中的每一个工序应该能够进行错误验证和自检。利用精益工程实践将大幅提升软件研发技术能力,提升开发过程中各环节的反馈效率,聚焦预防,消除浪费,提升软件交付质量和交付速度。
精益看板是精益方法的典型实践,其具有很强的可实施性,能够提升端到端价值交付能力,更好地支持规模化实施和更系统的改进。并且在软件开发中,看板方法可以与Scrum、持续集成等实践方法结合使用。应用精益看板管理开发航空电子系统具有较高的性价比。
精益看板可实现价值流动的可视化,展现了价值在步骤间的流动过程,也是信息注入和价值增加的过程。将问题和阻碍因素可视化——可视化问题,促使问题尽快解决,消除阻碍价值流动的因素;可视化队列瓶颈,消除瓶颈,减少排队将使价值流动更加顺畅、快速。看板的建立过程包括识别与显性化价值流、选择利用可视化元素、建立看板墙、建立价值流的流转规则四个方面。
图2看板建立过程
01
识别与显性化价值流
识别项目的价值交付流,确定基本的流动单元,并分析流程。譬如,一个项目基本可分为用户需求分析,系统分析与设计,软件需求分析,软件设计与实现,软件测试验证,系统验证与确认,产品交付等等。并且识别流动过程中可能的分层,如在软件开发(需求、设计)可以按照软件配置项作进一步细分。除了基本的价值交付流动单元外,还可以识别出一些次要单元,譬如技术需求、关键技术攻关等。
02
选择和利用可视化元素,建立看板墙
选择和利用一些可视化元素反映价值流动过程。常用的可视化元素包括,用队列来表示各个阶段的状态,使用泳道来分隔不同的需求流转并表达各流动单元的层级关系。使用卡片来表示任务、阻碍项、问题项。建立看板墙的过程就是综合利用上述可视化元素,建立价值流动的过程。图3体现了团队交付的,直观呈现了基本流动单元的流动过程,包括了次要流动单元的流动过程,用卡片表达了需求及任务的基本信息,通过泳道、队列等表达了需求的状态,也表达了需求与任务的层次关系。
图3看板墙示意
03
建立价值流的流转规则
价值流转规则指的是价值项(如用户需求)从一个阶段进入下一个阶段所要满足的标准,价值流转规则为团队提供明确的决策依据,团队成员对于流程规则形成一致的理解和承诺。譬如,软件开发的输入来源于“开发就绪”,进入“开发就绪”的准则即为从系统设计到软件开发的流转规则,又譬如软件测试的输入来源于“待测试”,因而进入“待测试”的准则为从软件开发到软件测试的流转规则。团队应共同拥有规则,这是对团队的赋权,团队明确和理解规则,实施和改进规则,这样团队才能够真正地对结果负责。
除了看板的建立,看板的使用有两个宁夏治疗白癜风的医院看白癜风的医院哪比较好