整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

流程与管理篇:精益思想在软件开发中的应用

软件开发领域,如何提高效率、减少浪费、并在最短的时间内交付高质量的软件产品,一直是企业和开发团队追求的目标。精益软件开发(Lean )源自精益制造,其核心思想强调消除浪费、持续改进和快速交付,旨在通过全面的流程和文化变革,提高效率和价值交付。本文将深入探讨精益软件开发的核心原则、实施方法和实际案例,帮助读者全面了解这一高效的软件开发方法。

一、精益思想在软件开发中的应用

精益制造起源于日本丰田汽车公司,其创始人之一大野耐一(Taiichi Ohno)在20世纪50年代提出了丰田生产系统(Toyota System, TPS),旨在通过消除浪费、简化流程、提高生产效率。丰田的成功吸引了全球制造业的关注,精益理念逐渐被推广到其他行业。

开发软件有什么好处_想开发软件只有想法_有想法怎么开发出软件

随着信息技术的快速发展,软件开发的复杂性和不确定性不断增加,传统的瀑布模型难以满足快速变化的市场需求。20世纪90年代末,Mary 和Tom 将精益制造的思想引入软件开发领域,提出了精益软件开发的概念。通过借鉴精益制造的原则,精益软件开发旨在减少浪费、提高效率和质量,并在不断变化的环境中保持灵活性和快速响应能力。有五个核心精益原则:

1:价值由客户定义

任何不直接为客户带来价值的东西都是浪费。也许软件开发中最大的浪费来源是未使用的功能。根据 Group的说法,企业软件应用程序中只有20%的功能被频繁使用,45%从未使用,19%很少使用,其他常见的软件开发浪费来源包括:包括缺陷(返工和测试) ),不必要的文书工作,等待,任务切换,人才浪费,未使用的指标和软件工具的不当使用。

通过分析客户的市场并确定利润和增长瓶颈,您可以更好地了解在何处以及如何增加实际价值。如果可能的话,以涉及客户的方式进行研究 - 与他们一起访问,组建联合分析团队,撰写联合报告等。仅从信誉良好的分析公司购买市场研究报告是不够的。没有什么可以替代做自己的功课,并彻底做到这一点。

2:学会看你的价值流

价值流是开发和交付产品或服务所需的一系列活动。它通常涉及多个流程,团队和部门。由于价值流涉及组织开发产品所做的一切,因此我们避免单独查看工程和市场营销等各个职能部门。与传统的性能改进方法相比,价值流允许我们将产品开发视为一个整体。

如果我们查看价值流中的每个流程并询问谁负责日常绩效以及流程改进,答案通常是没有一个人负有全部责任。相反,责任分散在几个可能存在利益冲突的职能经理人身上。这就是为什么流程改进工作经常与日常执行“不同步”的原因。通过指定价值流经理负责日常业绩和协调每个价值流的流程改进工作,我们可以明确履行卓越绩效的责任。在商业产品开发中,产品经理角色是以这种方式扩展的最自然的工作。在IT组织中,它可能是一名在国防/航空航天公司的项目经理,

3:流程 - 通过实现连续流动,最大限度地提高速度并降低成本

一旦我们发现了我们的价值流实际上是什么样子,我们就可以开始研究它们如何有效地产生客户价值。流程的概念要求我们重新思考如何利用经过的时间。实际花费了多少时间用于为客户增加价值的活动?

在一个典型的组织中,24小时工作日只有1/3用于工作,剩下的就是停机时间。在停机期间,没有流量,因为没有人在工作。但是我们实际工作的时间呢?许多公司仍将其产品开发流程组织为一系列不同的阶段,例如概念开发,需求定义,架构设计等。每个阶段都会产生大量部分完成的工作。部分完成的工作构成了过程中的库存,这是一种浪费。库存堵塞了开发流程,占用了资源,并增加了响应客户需求所需的时间。

较小批量的工作导致库存减少,这意味着由于等待而损失的时间更少。这就是迭代开发比传统瀑布方法更快的原因。但迭代开发并不是灵丹妙药。除了等待大批量生产之外,软件开发中的抑制因素包括:

在软件开发中,从客户的角度来看,高达95%的交付周期和80%的开发工作都没有增值。即使在使用具有较小迭代的“敏捷”方法的组织中,也存在改进流程的重要机会。通过改善流程,我们不仅可以提高速度,还可以大幅节省成本。这是因为非增值活动,包括停机和等待,会消耗宝贵的现金。

4:拉动 - 使开发与实际需求率同步

即使持续流动,如果我们无法按时交付功能,结果是客户等待,我们的经济回报也是如此。如果我们提供不需要的功能,我们也会浪费时间和金钱。为避免这两类浪费,我们需要实际的客户需求,以实时明确地推动我们工作的内容,数量和节奏。

而不是基于预测需求和前期规划“推动”价值流中的工作,Pull意味着我们只在客户实际需要时才构建某些东西。换句话说,我们希望客户从价值流中“拉”新产品发布。传统的计划驱动工作被基于需求的工作所取代,减少了库存并提高了我们对客户需求做出快速反应的能力。

在许多情况下,客户无法尽快发布新产品。为避免大批量工作,这需要我们建立“人工拉动”,其中内部版本是根据客户代表性子集的反馈而生成的。即使我们的所有客户都没有部署版本,频繁发布客户反馈也会大大降低开发不相关功能或设计解决方案的风险,这些解决方案不能很好地实践。

如果我们希望客户反馈推动我们的开发工作,我们必须解决许多实际问题,包括提供反馈的客户的选择,组成和优先级。除非我们为单个客户开发软件,否则我们可能会与大量客户打交道。在这种情况下,我们必须谨慎选择一组具有代表性的客户,并仔细权衡其反馈的相对优先级。另一个实际问题是基础设施 - 如果我们要经常交付和部署新版本,我们必须部署必要的基础设施,以使这项工作顺利进行。反馈的频率也是一个关键问题 - 我们越频繁地获得客户反馈越好,但这意味着参与的客户必须确信在整个工作中保持参与的必要性。

频繁的客户反馈需要信任。建立这种信任的一种方法是明显地投资于努力了解客户的业务问题和机会。我们还必须解释如何使用反馈来为客户增加真正的价值。为了保持和增强已建立的信任,我们必须一次又一次地表明我们会立即对我们收到的反馈采取行动。在某些情况下,通过合同正式确定已达成的理解也是有意义的。对于自定义软件开发尤其如此。这种合同还可以将持续的资金与实际的客户价值联系起来。

Pull对我们处理软件设计的方式具有重要意义。在设计解决方案的可行性存在不确定性或客户需求快速变化的领域,我们必须保持设计的开放性。有时,我们甚至可能同时采用多种策略来处理设计风险。当我们减少不确定性时,保持多个选项开放并缩小我们的选择范围被称为基于集合的并行工程,并且它是在很短的时间内设计复杂产品的有效方法。

5:完善 - 持续改善价值流的表现

实施精益的公司为团队提供技能和激励,以便无情地识别和消除浪费。由于改进的重点是整个价值流,我们避免解决可能对整体经济绩效影响不大的局部瓶颈。跨职能变更团队用于改善价值流性能的典型改进流程可能如下所示:

(重新)定义客户价值

映射价值流

确定废物来源

设计价值流的“未来状态”(我们希望它看起来像)

实施未来状态

目前的结果

与财务业绩挂钩的开放式指标显示了团队及其价值流的表现。为了鼓励更高的改进率,团队可以参与友好竞争,但应该要求他们定期分享他们的创新。

为了不断提高绩效,组织必须提高其收集,创建和分享知识的能力。这可以在几个层面上完成。在团队中,尝试交叉培训团队成员并偶尔切换角色。在产品团队之间轮换人员也很有帮助。丰田和诺基亚等高级从业者围绕领域专业领域组织团队。每个域组都以不断改进可重用组件迭代的形式编码其专业知识

对于跨团队的额外学习,请考虑在战略领域建立实践社区,例如客户关系管理,软件设计,可用性,财务,战略,精益思维和团队领导。这些团体应该将其他公司的想法与过去和现在项目的经验教训结合起来。

二、 精益软件开发的核心原则

想开发软件只有想法_有想法怎么开发出软件_开发软件有什么好处

简单一点就是:可重复的过程、统一标准、团队合作

1、消除浪费

是指任何不直接增加客户价值的活动。这包括编写无用的代码或功能,过度设计,等待项目资源,进行不必要的任务,以及任何其他无效的工作。

浪费的几个例子:

2、建立质量(保证质量)

如何在软件开发的每一个阶段都保证高质量,而不是等到最后阶段再进行质量检查和错误修复。

3、创建知识(知识库)

在软件开发过程中积累和分享知识,通过不断学习和改进,来提升团队的能力和产品的质量。

4、延迟决定(迭代架构)

在有充足信息做出最佳决策之前,应该尽可能地延迟做决定。灵活地应对软件开发过程中的变化和不确定性。

"延迟决定"并不意味着我们可以无限期地推迟决定。在某个时点,我们必须做出决定,即使这个决定可能不是完美的。关键是找到合适的平衡点,既不过早地做出决定,也不拖延决定,而是在最佳的时机做出最好的决定。

5、快速交付(持续交付)

尽快地为客户提供有价值的软件,以此来获得反馈,改善产品,和提升客户满意度

6、以人为本(尊重人才)

尊重和赋权给每个参与软件开发的人,包括开发者、产品经理、测试人员、用户等。

7、优化整体(系统思维)

不只是看待和优化个别部分,而是从整体上来提升软件开发流程和结果的效率和质量。

三、 精益产品开发

开发软件有什么好处_有想法怎么开发出软件_想开发软件只有想法

精益产品开发屋 一个目标

顺畅和高质量地交付有用的价值。

只价值交付过程要顺畅,用最短的实践完成用户价值的交付,而非断断续续,问题连连。

高质量指符合要求,避免不必要的错误。它与为了探索而进行的必要试错不冲突。

价值的交付应该符合市场和用户的需求,并能产生业务的影响,促进组织绩效。

两个支柱1. 探索和发现有用的价值

探索的目标是发现真正有用的价值,通过探索和发现进行不断的调整,找到可行的商业模式和有意义的产品功能,并持续优化他们。

2. 聚焦和提升价值流动效率

从用户的视角,审视用户价值经历各个流程步骤直至交付的过程,整个过程的时间越短,等待的时间越少,则流动效率越高。聚焦流动效率,就是要从外部绩效出发,协调内部资源最快的交付用户价值。

三个管理实践1. 精益创业和创新

“精益创业”提倡先向市场推出极简的原型产品,然后在不断地试验和学习中,以最小的成本和有效的方式验证产品是否符合用户需求,并灵活调整方向。

执行过程(外环):遵循构建、度量、学习的循环:

1. 从概念出发构建最小产品;

2. 对产品进行度量获得数据;

3. 验证概念或发现新概念;

4. 进入下一个循环。

开发软件有什么好处_有想法怎么开发出软件_想开发软件只有想法

计划过程(内环):与执行过程的循环方向相反:

1. 规划要验证什么概念;

2. 规划需要怎样的数据来验证这一概念;

3. 规划需要构建怎样的最小产品得到数据;

4. 实施后,进入下一循环。

2. 精益需求分析和管理

解决的问题是如何有效的拆分、规划和沟通需求,确保团队能够一致的理解需求,变因分析和沟通不当而带来的缺陷,并为后面价值小批量的持续流动创造条件。

精益价值管理闭环:

1. 价值定义识别价值要素

2. 建立需求价值权重模型

3. 产品功能价值排序

4. MVP 定义