一、什么是LeSS?

对于小规模产品,一个Scrum团队也许可以很好地应对,然而在现实中,涉及到大规模的产品开发时,常常会出现需要多个团队协同开发一个较复杂产品的情况。那么,多个团队如何通过有效合作来完成一个产品的开发呢?

Scrum现有的基本框架难以满足这种复杂多变的管理需求,LeSS应运而生。

什么是LeSS?

“LeSS — Large-Scale Scrum, is Scrum applied to many teams working together on one product.” LeSS - 大规模敏捷依然是Scrum,依然是三个角色,三个工件,五个会议,五个价值。LeSS框架想要解决的问题是如何将Scrum的原则,元素尽可能简单够用地使用到多个团队,合作开发一个产品的场景里去。

LeSS架构图

二、适用范围

根据定义,LeSS框架规则应用于2-8个scrum团队同时合作开发同一个产品的情景,超过8个团队的情况下则推荐使用LeSS Huge。

三、LeSS在团队中的应用所引发的变革

帮助团队从组件团队(Component Team)转型为功能团队(Feature Team)

在LeSS的定义中,团队是功能团队,而非组件团队。

当软件系统庞大、复杂时,通常把一个系统分解为多个组件。传统组织通常把开发者按照组件分组成为组件团队,也只有该组人有权限修改、维护这个组件。而在LeSS的理念中,我们要求构建功能团队, 一个功能团队能够从端到端完整地交付一个功能特性,要求团队能够做到自管理,跨职能并且能够长期合作。

为什么需要功能团队?

也许大家都会有这样的感受,在组件团队中,一个简单的功能在各个部门中来回许久也未必能够真正付诸实践,因为每个团队在计划的过程中可能会产生繁多的项目管理需求,在需求实施的过程中也会因为职能不同而产生高昂的沟通成本、等待成本,甚至到后期才发现问题的返工成本。一旦产生这种情况,将会给公司带来诸多的浪费。

在LeSS中,所有的项目团队是灵活的功能团队,产品需求会分阶段被拆分成多个不同的小产品需求。在一个团队中,需求需要能从前到后依次完成直至产出一个可交付使用的软件,这对团队的要求变得更高。一个团队,不仅能独立完成客户的价值交付,更能减少项目管理时间,从而把更多的时间和精力投入于团队自身发展和技术领域的精进当中。

在作者的项目中,通过团队结构的改变,很明显地观察到,功能团队对产品的质量交付要求有更多的关注,并会主动地审视自己的产品缺陷,提高各职能角色之间的协作,从而提升了产品质量并提高团队效率和能力。

LeSS团队共享一个产品待办列表,一个产品负责人

在LeSS中,团队专注于整体的产品,只有一个产品负责人 (PO)。所有工作于同一个项目的团队共享一份产品待办列表 (Product backlog)。这很大程度上避免了由于需求对每个团队之间需求优先级不一致或不明确所带来的工作浪费以及产生的冗余的项目管理需求。

在作者的团队中,所有功能团队共享唯一一份优先级明确的产品待办列表,团队只需要看一份列表,确定自己未来一个迭代甚至多个迭代可能会做的功能,可以提前开始做调研,提早反馈问题。

团队在共享同一份列表的同时,也可以看到其他功能团队在同一迭代的计划,加深对整个产品交付版本的了解,也帮助团队提前识别依赖与风险。

Scrum Master 在LeSS中的职责变化

在LeSS中,Scrum Master 不再只是团队的Scrum Master。Scrum Master 不只需要做引导团队内的敏捷实践等在Scrum中就存在的工作,更需要关注整个组织系统、架构,开发实践以及深入沟通和引导各部门之间的合作。

一个 Scrum Master 不仅可以服务于多个团队,而且Scrum Master在过程中可以更深入地思考整个组织系统存在的问题以及解决方式,通过引导团队更好地开发实践与沟通协作,维持一个运转良好的LeSS系统。

主人翁意识(Ownership)

在LeSS模式下,团队在共享同一个产品愿景,在团队独立为自己的产品产出负责的同时,团队成员对自己的产出会产生足够的主人翁意识。

通过培养团队成员的风险意识和沟通能力,使得管理者可以及时地得到关于项目状况的反馈以及当前计划的风险状况,从而做出相应的应对策略。而团队成员也会更加关注到公司战略的全貌和相关的项目计划。

促进个人不断学习成长

在组件团队到功能团队的转变中,项目团队对成员提出更高的要求。每个团队需要拥有产品交付的所有技能,并在客户需求开发过程中不断学习扩大个人技能领域。在这个过程中,学习能力至关重要。团队个人为了达到要求,会不断地自我学习以跟上团队发展的脚步。

组件团队vs功能团队

四、实践

LeSS 是Scrum方法的大型实践扩展,在作者的LeSS实践过程中,发现最容易出现问题和最难掌控的环节是在于计划(Planning)环节,为了解决planning的难题,我们是怎么做的呢?

  • 第一部分:季度计划
    1.共享下个季度产品和团队愿景
    2.团队制定下季度大体目标(功能交付,消减技术债务,用户体验提升等
    3.制定版本发布时间
  • 第二部分:迭代计划 Sprint正式开始之前通过故事点估算与速率得出当前Sprint最终能承诺交付的功能

五、季度计划会议(Quarter planning - Large scaled scrum planning)

季度计划会议原型

作者所在的团队实行的季度计划会议参照的是LeSS中的Sprint Planning 在团队中的实践应用。会议参与者是每个团队的Lead和干系人, 各种角色均需要参与(开发,测试, 自动化,Scrum master,产品经理, UX designer)。此会议在下季度开始之前一个月召开。

  • 产品负责人介绍下季度产品需求

在会议的初始阶段,产品负责人会向大家介绍下季度产品的愿景,产品的发展方向以及Epic层级的需求。

  • 团队粗略估算

1.团队(所有参与角色)会对产品Epic层级的需求进行粗略的估算。

2.团队对当前产品经理提出的任务进行需求的依赖识别,以及对需求是否能按照产品经理的上线时间要求进行相应的风险识别。

3.团队(所有参与角色)在估算结束之后进行确认,保证所有人对估算的理解以及估算大小保持一致。依据历史数据对当前的任务估算点数进行大致版本计划,并得出未来一个季度的大版本时间和数目,并标注出时间节点。询问团队对此计划的信心度,若信心度不足则需要进行计划调整。最后得出产品版本上线时间的初步排期和每一个排期的大致产出。

计划展示(Visualize Plan)

项目团队展示未来一个季度的版本计划与每个版本的产出,并把任务时间表汇总到一个统一的计划表上,并对计划进行展示,说明项目或者功能目前存在的风险。

询问产品经理与干系人是否对每个团队的计划和整体计划满意。如果觉得计划有问题,功能需求上线时间不能满足,或发布时间严重超出预期,则需进行计划调整。

计划调整(Plan Adjustment)

若项目版本计划不满足产品经理的需求或团队信心度过低,则尝试以下方式调整计划:

1.需求拆分,阶段交付

2.项目人员资源协调 (不推荐)

3.产品经理根据实际情况调整Roadmap需要进行一个跟进会议继续对项目计划进行调整。

更新产品计划(Update Roadmap)

最后根据大家计划的初步结果,更新产品的季度计划表。季度计划表不是团队这个季度的承诺交付列表,而是团队与产品达成一致的下一季度的产品愿景计划(Roadmap)

六、季迭代计划会议(Sprint planning)

迭代计划会议会在每一个Sprint正式开始前进行,目的是通过扑克牌估算和速率计算得出当前Sprint最终的计划并做出承诺。

来打牌吧(Poker Estimation)

在迭代计划会议中,我们使用敏捷扑克来得出每个用户故事的故事点。并通过历史的团队速率(Velocity)数据与Sprint数据得出当前团队在下一个Sprint能够交付的故事点大小并做出承诺。关于打扑克的具体实行方法不在此赘述,作者在网络上搜寻了一些参考资料供大家阅读: http://www.uml.org.cn/softwareprocess/201108264.asp

每日站会 (Daily stand up)

LeSS是大规模化的Scrum,因此,Scrum的5个活动也不能落下。每个团队有自己独立的每日站会。

迭代评审 (Sprint Review)

迭代评审会议每个Sprint只有一个且所有团队都需要参加,另外也要确保足够的干系人能够参加并提供反馈,以及进一步调整所需要的信息。

迭代回顾 (Sprint Retrospective)

每一个团队有自己独立的迭代回顾会议。

七、实践中需要注意的问题

时间表严格遵守共享,同步开发测试

在LeSS中,我们只有一个产品层面的Sprint,而不是每个团队有不同的Sprint。每个团队同时开始和结束一个Sprint。每个Sprint产出一个集成后的完整产品。需要注意每个团队Sprint的时间节点需要严格对齐,同步开发,从而使得团队在每一个Sprint结束并进行过Sprint Review之后,产出同一个潜在可交付软件。

整体回顾会议 (Overall Retrospective)

每个团队需要有自己的回顾会,以回顾在团队内的问题,但是在各自的回顾之后需要定期举行一个整体的回顾来讨论跨团队和系统性的问题,并创建改进试验。这个会议由产品、Scrum Master们、团队代表和管理者参加。

八、结语

LeSS是将Scrum的原则,元素尽可能简单够用地使用到多个团队,合作开发一个产品的场景里的一种敏捷实践。如果你有想讨论的问题,或对当前作者应用的框架有什么改进意见,欢迎在评论区留言~

文章图片来源:LeSS官网 - https://less.works/less/framework/index.html

作者:Patricia

敏捷开发框架_RingCentral Tech丨LeSS- 大规模敏捷开发框架实践心路相关推荐

  1. scrum回顾_沙龙回顾 | 大规模敏捷框架-Essential SAFe介绍

    作者:袁翠 2019年1月20日,这是一个周日的晚上,尽管如此,来参加沙龙的人还是不少,与其在家无所事事,不如来一场知识的火花碰撞. 按照惯例,先是进行自我介绍.如果说这次自我介绍与以往有任何不同的地 ...

  2. LeSS is More - 大规模敏捷开发框架LeSS实践(一)

    Scrum简介 如果你知道敏捷开发,Scrum你一定不会陌生.从上世纪 90 年代初开始,Scrum 框架在全球范围内已得到了广泛应用,有报告显示全世界范围内采用敏捷开发模式的公司里有68%以上使用S ...

  3. Leangoo_多团队,大规模敏捷开发实现过程

    通过敏捷看板来实现需求.迭代(支持燃尽图)和缺陷管理:此类型项目提供了单团队敏捷开发和大规模敏捷模板,适用于Scrum敏捷项目管理及产品研发. 本场景描述的是针对多个Scrum团队/敏捷团队,开发同一 ...

  4. 用Leangoo Scrum看板工具做多团队大规模敏捷

    概述 本场景描述的是针对多个Scrum团队/敏捷团队,开发同一款大型产品,或者大型项目的敏捷应用场景.Leangoo多团队大规模敏捷开发模板是基于大规模敏捷模型定义的,可以适配基于Scrum of S ...

  5. Leangoo敏捷项目管理软件做多团队大规模敏捷

    概述 本场景描述的是针对多个Scrum团队/敏捷团队,开发同一款大型产品,或者大型项目的敏捷应用场景.Leangoo多团队大规模敏捷开发模板是基于大规模敏捷模型定义的,可以适配基于Scrum of S ...

  6. 以社交活动的方式做计划-乐高公司的大规模敏捷

    本文转自:Scrum中文网 Scrum中文网原文链接:http://www.scrumcn.com/agile/scrum/18993.html Henrik Kniberg & Eik Th ...

  7. 大规模敏捷导入工具实践

    转自本人运营的微信公众号" 携程技术中心PMO"(ID:cso_pmo) 作者简介 杨大鹏,某互联网平台PMO团队负责人,10多年软件项目和技术团队管理经验,在日本工作生活多年,曾 ...

  8. 大规模敏捷实践指南(四):SAFe中的特殊迭代-Innovation and Planning (IP)迭代

    在SAFe中,每个PI都需要交付一定的价值.PI的执行过程中,各个敏捷团队致力于实现PI计划会中承诺的PI目标.PI过程中的每个敏捷迭代都很重要,每个迭代都承担了和团队相符的工作量,敏捷团队大多数时间 ...

  9. Henrik Kniberg:乐高的基于社交的大规模敏捷计划会

    大规模敏捷系列: Spotify的大规模敏捷之路 Scrum At Scale® 指南-切实可行的规模化扩展敏捷 金融企业J.P.摩根大通运用LeSS框架实施大规模敏捷转型 前言 最近将在项目中实践规 ...

最新文章

  1. GitLab 完成 1 亿美元融资 以 10 亿美元的估值成为“独角兽”
  2. 请写出至少五个块级元素_html 行级元素和块级元素标签列表分别有哪些
  3. Lintcode9 Fizz Buzz solution 题解
  4. 呼吁开放外网_服装数据集:呼吁采取行动
  5. TCP中recv解阻塞的两种方式
  6. 【从0到1,搭建Spring Boot+RESTful API+Shiro+Mybatis+SQLServer权限系统】05、Shiro集成
  7. SQL Server Report Server 报表用户权限T-SQL查询
  8. 《javascript语言精髓与编程实践》--原型继承笔记
  9. centos安装python3.7和yum报错解决方法
  10. 锁住余额,为何还会更新异常?
  11. java程序中oracle回滚,Oracle的DDL语句不能回滚(直接提交)
  12. redis_lua_nginx环境配置过程
  13. gitlab 注册runner
  14. FME格式转换学习笔记之一:CAD的数据分析及FME对CAD数据的转换
  15. ios开发 服务器通信协议,iOS开发之网络协议TCP/IP、HTTP
  16. 在VMWare虚拟机上安装Kali linux系统的完整过程(图文)
  17. Problem C: 点在圆内吗?
  18. 一个JavaScript实现的贷款计算器
  19. 【MATLAB】将raw转为视频(avi格式、mp4格式)并输出(代码分享)
  20. 浏览器在sandbox中没声音

热门文章

  1. 机器学习实战 Tricks —— 训练数据均值标准差标准化测试样本
  2. numpy实用技巧(一)
  3. python和c 的区别-Python和c语言的主要区别在哪
  4. python手机版-python做app
  5. python装饰器详解-python 装饰器详解
  6. 语音 识别_语音识别_qq语音识别 - 云+社区 - 腾讯云
  7. JS小案例-文本切换效果
  8. vue 中使用rem布局
  9. 【数据结构和算法笔记】用c语言实现栈
  10. MSU 出品的 H.264 编码器比较 (2012.5)