美文网首页项目管理这些事儿敏捷开发与项目管理
【Scrum】敏捷软件开发——组织(1)

【Scrum】敏捷软件开发——组织(1)

作者: NumLock | 来源:发表于2023-02-17 21:12 被阅读0次

十七、扩展Scrum

面对大项目,不应扩大团队规模,而应该扩大团队数量

扩展产品负责人

PO是Scrum项目中最具挑战性的角色之一

对内任务:参加Sprint计划会议、Sprint评审会议、Sprint回顾会议和每日站会,管理产品Backlog,回答团队问题,在Sprint期间不缺席

对外任务:见客户、写报告;去现场、参加展会;管理项目干系人的期望;排优先级;定价;制定中长期产品战略;观察产品和市场趋势;竞争分析等

可以按照首席产品负责人(CPO)——产品线负责人——PO这个层级扩展

1、共享责任,分割职能

CPO对整个产品或产品套件持有一套总体愿景,他通过全体会议、电子邮件、团队聚会以及其他方式传递愿景,但不去处理复杂细节

CPO只关注战略问题,增强竞争能力,产品线负责人负责套件中的单品,下属的PO会负责功能领域

全体PO必须具备一种对整个产品的共同责任感

完成大型产品Backlog的工作

1、一个产品,一个产品Backlog

如果团队工作于不止一个产品Backlog,那么多个Backlog肯定会冲突

使用单个的产品Backlog,能明确最高优先级,然后可以给每个PO提供不同的视图,而不是让每个PO维护一个自己的产品Backlog

多个团队间的大Backlog可以有重合的条目

2、保持产品Backlog大小合理

我们需要在使用单个产品Backlog和避免产品Backlog变得不可管理之间找到一个合理的平衡,通常100~150之间是合理的

1)利用史诗故事(epic)和主题故事(theme)

在产品Backlog中写一些大的用户故事(epic),并把一些小的用户故事进行分组(theme)

2)给产品Backlog提供多个视图

这样可以打破用户故事的总量限制,只需要在每个视图中控制数量即可

一个产品Backlog的多个视图

主动管理依赖

好的团队结构有助于减少依赖,但不能彻底消除它

1、进行滚动的前瞻性计划会议

让团队在每个Sprint花几分钟时间思考在接下来两个Sprint的任务

只需要用平均历史速率做一个大概的计划即可,切勿详细展开,会很费时间

有硬件或嵌入式开发的团队非常有必要做滚动前瞻计划

2、举行发布启动会议

召集所有人举行一次发布启动会议,它可以降低一个最大的风险:不同的团队或个人会被引到错误或不同的方向

Salesforce.com会在启动会议后组织一次非正式的“发布开放空间”会议,属于敏捷研讨会

3、共享团队成员

当依赖很难被提前找到或需要尽快解决这些依赖时,这是一个有效的办法,尤其是存在于特性团队和组件团队中间的时候

不过让人们同时为多个团队工作也有不利的地方

4、使用集成团队

集成团队直接关注无人管理的接口,同时也会搜寻未经确认的接口

集成团队每天第一件事:检查每日构建的结果以确认系统已成功创建,所有的测试也都通过

集成团队在项目开始时的任务:安装好所有的服务器,配置好项目范围内的软件

集成团队要求有广泛技能的资深人员,要保证集成团队不会有大部分新员工

在团队间协调工作

1、Scrum of Scrums会议

协调几个团队间的工作,一个常规实践就是Scrum of Scrums会议,这个会议让多个团队可以讨论它们的工作,尤其是关注交叉和集成领域

每个团队指定1人参加Scrum of Scrums会议,通常应是技术贡献者,最能理解和解释项目中最可能出现的问题

Scrum of Scrums会议不需要天天举行,不需要限定时间,但必须是可以解决问题

带到会议上的问题要尽快解决,不能把余下的问题留到下一次,如果一定要留,创建问题Backlog

1)从上次会议后,我的团队做了哪些会影响其他团队的东西?

2)在下次会议前,我的团队计划做哪些会影响其他团队的东西?

3)我的团队遇到哪些问题可以寻求其他团队的帮助?

避免谈个人问题,保持在一个合适的细节程度,切记发言时间长短与重要性没有任何关系

2、同步Sprint

同步Sprint的几本好处是所有的团队能够在一两天内开始和结束Sprint,长度可以不一样

扩展Sprint计划会议

在多个团队工作于同一个项目的情况下,Sprint计划会议会出现很多问题:1人对多会,无法处理依赖,产品Backlog要预分配

1、错开一天

Sprint计划会议不必同一天开始,这样共用产品Backlog的问题解决了,更解决了1人对多会的问题

然而,PO等角色会很痛苦,他们将陷入文山会海,所以还需要其他方法

2、大房间

所有团队集中到一个大房间,由CPO组织会议,启动后,所有团队扎营讨论与工作,用不了多久就会厘清依赖关系

大房间方法对关键的共享资源尤其适用,只要呼喊,就可到位,下图为航海旗语

航海旗语

培养实践社区

实践社区是由一群具有相同思想、相同技能的个人因为对某种技术、方法和愿景的热情和投入而自愿形成的

实践社区可以跨越多个项目,是一种在团队间传播好的想法、保证各开发团队能保持理想的一致性与共同性的基础机制

1、正式的或非正式的

实践社区的定义和挑战

2、创造有利于社区形成和繁荣的环境

自组织的实践社区是一种理想的形式,但非常依赖企业和领导层创造的环境

1)为进化而设计

2)在内部和外部的参与者间进行对话

3)邀请不同级别的参与者

4)举办公开的和私有的活动

5)专注于价值

6)把亲近和兴奋结合起来

7)维持社区的节奏

3、参与

实践社区需要委任一名社区协调人,他需要围绕组建的社区开发实践,也需要发展社区本身

社区协调人的任务是安排会议和其他活动,确保成员们参加,联络有共同兴趣的个人,自己参加社区活动等

实践社区值得投入时间和资金

Scrum确实能扩展

敏捷开发的原则和实践是可以扩展到大项目的,而并不是只能用于小项目、小团队

相关文章

  • 2019-08-11学习总结

    《scrum敏捷软件开发》 第十二章:领导自组织团队 自组织是敏捷软件开发的基本概念。敏捷宣言有一个原则:“最好的...

  • 小步前进-快速试错-价值导向

    最近看了本敏捷软件开发的相关书籍 ——《Scrum精髓》,说起Scrum,做敏捷软件开发的人并不陌生,是一个很常用...

  • Daily Scrum每日站会介绍

    什么是Daily Scrum Scrum是迭代式增量软件开发过程,通常用于敏捷软件开发。对于Daily Scrum...

  • 关于Daily Scrum每日站会

    敏捷项目管理-Scrum 什么是Scrum? Scrum是专注于迭代式软件开发管理的敏捷项目管理方法。 项目团队构...

  • Learn the SCRUM

    SCRUM 是一种敏捷软件开发的方法学,用于迭代式增量软件开发过程。 一、SCRUM 的特性 Scrum Mast...

  • 2019-07-07学习总结

    《scrum敏捷软件开发》 第七章:新角色 scrummaster(敏捷教练) 1 职责: 清除团队遇到的障碍,帮...

  • 第一讲 敏捷宣言

    学习目标 理解敏捷,初步了解Scrum。 讨论主题: 1. 什么是敏捷? 2. 什么是敏捷软件开发? 3. Scr...

  • Daily Scrum

    什么是Daily Scrum? Daily Scrum——每日站会是敏捷软件开发方法论Scrum的相关技术之一,亦...

  • Daliy Scrum每日站会

    ## 敏捷项目管理Scrum 什么是站会 >Scrum是专注于迭代式软件开发管理的敏捷项目管理方法。 项目团队构成...

  • 01-敏捷-Scrum

    1、概念 Scrum是迭代式增量软件开发过程,通常用于敏捷软件开发。Scrum包括了一系列实践和预定义角色的过程骨...

网友评论

    本文标题:【Scrum】敏捷软件开发——组织(1)

    本文链接:https://www.haomeiwen.com/subject/vbrvkdtx.html