查看原文
其他

敏捷开发主流策略与方法:精益软件开发

为开发者服务的 21CTO 2023-06-18

导读:精益软件开发 (LSD) 是一种敏捷框架或一组强调交付价值和减少软件开发浪费的原则和实践。


精益软件开发 (LSD,Lean Software Development) 是一种敏捷框架,是一组强调交付价值和减少软件开发浪费的原则与最佳实践。


LSD 有助于消除工作流程中不必要的阶段,它专注于通过优化时间和资源来提高质量、扩大学习价值与软件持续改进。


精益简史


LSD起源于制造业运动。它由丰田生产系统实施,目的是消除时间和资源的非有效利用。


当时,也有其它人提出“精益”一词,逐渐地不同的制造组织已经开始在自己的行业中融合实施这种方法。2003年,出现了精益软件开发方法,在 Mary 和 Tom Poppendieck 所合著的同名书籍中,第一次提到它与软件开发有关。


LSD代表了精益软件开发原则 ,鼓励我们找出减少浪费的方法(例如,过度生产和移交)。


精益软件开发优势



如今,LSD 已被证明可以通过以下方式改进软件开发:


  • 开发过程变得简单合理

    LSD 在设计软件时消除了不必要的流程,能够节省时间和宝贵资源;

  • 消除浪费性损失

    由于重点是最小可行产品,LSD 优先考虑基本功能和特性。通过 MVP 进入市场,团队就可以根据真实的客户洞察了解哪些新功能应该优先考虑——这消除了在不必要的构建上花费时间或投资的风险;

  • 提高团队的参与率。在理解精益开发方法的价值时,人是最重要的关键之一。通过增加参与度,整个工作流程会得到优化,损失会减少或完全消除。


LSD有以下七个原则,让我们用简洁的语言来描述它们分别是什么。


七个精益软件开发原则


七个概念关注的是为用户交付了多少价值,而不是完成了多少工作。


您越快向客户交付优质产品,您就越早获得反馈,越能从中学习并确定需求。当然,您越了解客户的反馈,你对他们想要的东西的感知就越深刻。


1)消除浪费


根据精益软件开发理论,要删除一切对最终用户没有任何价值或影响的东西,因为这些都是一种浪费。


换句话说,就是你在没有从中获利的情况下花费金钱和时间——例如,只完成一部分的工作、任务切换、未使用的零碎代码、延迟集成、缺陷、交接、等待等。


某些活动是否是减缓信息流动的障碍?首先,确定是否可以在没有完成的情况下达到预期的结果。如果答案是肯定的,则可以省略此项活动。


2)加强学习


软件开发团队要力求持续改进,追求完美。团队成员不仅仅积累知识和经验,还要相互分享,内容是关于团队协同开发、引入和处理概念的。


精益软件开发模型中的团队应该深刻理解用户想要和需要什么,而不是团队想象中的样子。要明确指出客户眼中的价值:迭代周期、 集成测试和简短的即时客户反馈会议是其中的一部分:更少的文档,但需要有更多的编码和实时反馈。


3)推迟决策


避免根据不确定性的假设做出决策。这个原则背后的主要思想是在做出不可逆转的决定之前尽可能地等待,这个做到的确很难。


理想情况下,任何决定都应该是可逆的。借助基于集合的方法和由洞察力,而非猜测,支持基于事实的解决方案,这样以后无需重做,然后使用实时数据和反馈推动决策。


4)快速交付


快速迭代与快速交付可提供更快的反馈,并确保团队走在一直正确的轨道上,以满足客户当前的需求。


注意:交货快不等于质量差——事实上,它有助于探索您交付给市场的产品,并更快地做出重要的修正。


5)团队授权


在精益方法中,人为因素不可或缺。


团队不仅仅是一个资源或一群人一起工作,那是叫团伙。团队的每个人必须是是积极主动的个人,相互倾听,并带领精益软件开发公司实现更高的目标,而不是跟踪管理者的活动。


表达对团队尊重的最简单方法是强调允许不同的观点,允许在组织内做出决策,并评估他们对产品的贡献的重要性。


此外,管理者和员工之间的持续反馈循环推动改进。


6)建立诚信


诚信与质量有关。在开发中有两种类型的完整性——感知和概念。感知完整性是用户对产品的观察和感受(价格、维护、体验、营销等)。概念完整性负责产品中的核心组件,作为一个单元如何平滑地协同工作。在精益开发中,整体架构建立在重构之上——设计简单、代码效率高(无重复),并且没有多余或不需要的额外功能。


7)整体优化


软件开发中的精益管理团队对整个开发过程和整个领域均有深刻的洞察力。


从一般的想法到复杂的策略。为了解决问题,人们通过识别价值流来评估整个系统而不是革个单独的部分。



因此,要以绩效衡量的方式,公司中的每个人都能协同合作并最有效地使用系统。


精益软件开发实践


精益开发实践或精益软件开发工具与敏捷开发中所引入的内容有类似。但是精益开发更专注于分析每个阶段的价值并保持快速改进,而不是创造一个完美的流程,这在现实中是不可能实现的。


一些主要工具和方法包括:


  • 学会查看浪费;

  • 学习减少浪费;

  • 增加反馈回路;

  • 基于集合的开发;

  • 建立拉动系统;

  • 迭代;

  • 申请排队论;

  • 愿意在团队中努力;

  • 重构;

  • 以测量方式优化整个系统。


总结 


由于其优秀的核心原则和工具,实施精益软件开发概念是优化任何 IT 环境或 IT 公司工作流的重要方法之一。


作者:洛逸


相关阅读:


如何用敏捷搞垮一个团队?

如何基于 Git 设计合理的多人开发模式?

敏捷开发与瀑布开发方法论之对比

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存