`

敏捷开发之大型团队切分

阅读更多

大型团队的切分
如果团队大到一定程度,比如40人,那么怎样切分团队最好呢?答案是纵向切分,就是按产品而非按职能切分,也就是事业部化,而非开发-测试-支持这样划分。

原因大致如此:

1. 纵向切分的团队之间不会有直接竞争、对抗关系,避免了各种对抗和办公室斗争。

2. 纵向切分的团队内部目标清晰,都是为了事业部的盈利,责任分工、利益分配更容易。

当然这会带来一些其它问题,比如:资源共用,新产品线和产品的孵化问题。但整体上讲,解决这些问题,比解决横向分工固有的问题要简单一些。

比如下面的图中,红色的1-3-9团队开发一个产品,绿色、蓝色的也开发一个产品,就是纵向切分。

如果红色是开发组,绿色是测试组,蓝色是产品组,就变成横向切分了,扯皮现象很严重。

纵向切分的各部门领导想晋升,方法是提升自己部门的营业额,而横向切分的各部门领导则倾向于证明自己的工作更重要,出发点不同,结果完全不同。

松结对编程看似只解决了最末级微型团队的问题,但实际上,配合1-3-9团队,可以达到将团队规模除以4的效果,这是一般管理方法很难达到的。




大型团队敏捷行为
1~5人规模适合XP(松结对编程+师徒制度)

尽管Scrum“适合5~9人”的团队,但实际上如果办公环境足够开放,在5个人的尺度上(甚至有时候在多达9个人的尺度上),都应该实行接近XP的随时沟通的状态,也就是尽量不在3~5人的小规模团队中做每日立会实践(参考http://blog.csdn.net/cheny_com/article/details/6933835),而是把这些人放置在一个开放环境中,由一个末级的1-3团队进行管理,所有人随时进行沟通(下图中的绿框中)。

5~15人适合Scrum

但在9人以上,直至多达40人(这个数字只是图例中的数字,曾有人报告在500人的团队中实施Scrum,但具体情况不详)的情况中,则是Scrum的天下。

下图中的细红线所圈定的是一个13人的团队,在跨末级团队的级别上就要进行Scrum每日立会,因为13个人很难完成点对点的沟通。

不过召开这样的立会并不需要所有人发言,因为最末级的徒弟多数情况下只关心自己小组几个人的工作,而且他们也很难向外界描述自己做的事情对别有人什么用。

这时候,不如只让师傅发言,师傅并非只说自己的工作,也不是替徒弟发言,而是一个整体小组的形式描述自己小组的工作(昨天做了什么,今天做什么,有何困难),适当的时候可以多预言两三天。徒弟不说话而是倾听自己小组的整体工作,对于开拓眼光和形成大局观很有帮助。

15人以上适合Scrum of Scrums(SoS)

“15”不是一个固定的数字,也不是一个统计数字,不同的团队、产品、领导,会有不同的界限。

Scrum Of Scrums传统认为是几个Scrum Master在几个小组分别召开完每日立会后聚在开的一个特殊的每日立会,但实际实践的时候很难。

原因包括:经常不是一个团队配备一个Scrum Master;Scrum Master负责的东西只涉及秩序,而对于团队的进度、质量、成本、需求这些实质内容无法通过SoS进行汇总,这在跟进项目上有巨大的漏洞。

因此,应该首先召集1-3-9-27团队的各级项目经理(这是Scrum中不存在的一个角色)逐级汇总每日立会,解决团队的技术、进度等关键问题。

Scrum Master们也可以召开SOS会议,但是目的可以说是为了汇总团队开发的管理问题,以及推广Scrum的协调、总结、积累问题。



  • 大小: 10.6 KB
  • 大小: 23.7 KB
分享到:
评论

相关推荐

    浅谈项目经理在敏捷开发中如何切分任务.doc

    在敏捷开发中,项目经理进行任务切分时,需要考虑到团队的协同效率。不同于瀑布模型中按功能模块分配任务,敏捷团队倾向于将任务按照工作层进行切分,如前端展示层、业务逻辑层和数据存储层。这种方式使得团队成员...

    敏捷软件开发.pdf

    敏捷开发通过切分大项目为小项目,每个子项目都有可测试和可运行的成果,确保整个开发过程中软件处于可使用状态。敏捷开发强调个体和交互高于流程和工具,可工作的软件高于详尽的文档,客户合作高于合同谈判,以及...

    谈软件项目快速开发方法——敏捷开发.docx

    在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行的特征。 敏捷开发的优点很多,它可以使软件项目快速开发、缩短项目周期、提高开发效率和品质、降低...

    敏捷开发的技术思想

    敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征

    软件开发之开源与敏捷

    在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此...

    敏捷开发V1.0.pptx

    在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此...

    软件工程中的敏捷开发实践教程.pptx

    敏捷开发是一种强调快速响应变化、重视客户满意度和强化团队协作的软件开发方法。通过实施敏捷需求管理、敏捷设计与架构以及敏捷开发实践等策略,可以显著提高项目的成功率和产品质量。这些方法不仅适用于软件开发...

    敏捷测试项目中如何切分用户故事

    敏捷测试项目中如何切分用户故事。在把用户故事切分成小块,从而更好地利用敏捷技术时,很多新组建的敏捷团队都会遇到困难。敏捷社区的成员在多篇文章中为如何有效地切分用户故事提供了指导。当把庞大的用户故事切...

    切分对话框实例,实现对话框切分

    在本文中,我们将深入探讨如何使用VC6.0开发环境实现“切分对话框实例”,这一功能主要用于在对话框界面中动态地分割显示区域,允许用户以横行或纵向方式组织内容。我们将介绍核心的编程概念和技术,以及涉及到的...

    vb开发的切分窗口的例子

    【VB开发的切分窗口例子】是一个典型的Visual Basic(VB)编程示例,它展示了如何在应用程序中创建和管理多个子窗口,使用户界面能够同时显示和操作不同的内容区域。这个例子通过使用自定义控件和窗体布局技术,实现...

    大型液压切分剪液压控制系统分析(全文).docx

    【大型液压切分剪液压控制系统分析】 液压切分剪是一种专用于切割厚度为4.5至25mm钢板的液压剪切设备,主要用于钢板的切头和切分工艺。其结构主要包括机架装置、压料装置、上刀架装置、侧隙调整装置、回程装置、前...

    VC随笔切分窗口和多视图

    在VC++开发中,创建用户界面时经常需要处理窗口的布局和分割,以便在一个窗口内显示多个视图。本文将详细讲解如何实现动态和静态切分窗口,以及它们各自的特点和使用方法。 首先,动态切分窗口(Dynamic Splitter ...

    敏捷开发(中文版).zip

    在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此...

    切分窗口的方法

    在IT领域,尤其是在软件开发中,"切分窗口"是一个常见的功能,特别是在多窗口和多任务环境下。这个功能允许用户将一个大的工作区域分割成多个独立的子窗口,每个子窗口可以显示不同的内容或者进行不同的操作,提高了...

    切分代码

    在编程和软件开发中,“切分代码”是一个关键的概念,它涉及到将大型、复杂的代码段分解成更小、更易管理的部分。这个过程通常被称为模块化或分治策略,是提高代码可读性、可维护性和团队协作效率的重要手段。下面...

    切分大的文件以及合并切分的文件

    在IT行业中,处理大型文件是一项常见的任务,尤其是在大数据处理、文件传输和存储场景下。当一个文件过大,无法一次性处理或传输时,我们通常会选择将其切分成多个小文件,然后在需要时再将这些小文件合并回去。Java...

    python按比例随机切分数据的实现

    在Python编程语言中,随机切分数据是一种常见的数据预处理...对于大型数据集,可以考虑使用`sklearn`库的`train_test_split`功能,它提供了更高级的选项,如stratified sampling(保持类别比例),以及多组数据切分。

    C++编写窗口二切分程序

    在IT领域,尤其是在Windows应用程序开发中,C++是一种常用的编程语言。本教程将深入探讨如何使用C++来创建一个能够实现窗口二切分的程序,这对于构建多视图的应用,如波形显示或其他复杂的用户界面至关重要。窗口...

    VC++ 如何切分窗口

    在VC++编程中,"切分窗口"是一个常见的需求,特别是在开发多面板的应用程序时,例如IDE、数据库管理工具或图像编辑软件。切分窗口允许用户动态调整不同区域的大小和布局,展示多个数据集或者功能区。在VC6.0这个版本...

Global site tag (gtag.js) - Google Analytics