天天看点

架构之道之软件管理过程的多团队Scrum

一、瀑布模型

   软件过程瀑布模型中,软件分析占了软件设计很大一部分工作量,用户、市场、分析、设计,是整个软件设计中密不可分的几个部分。模型要求在任何设计和实现工作之前,尽可能的把需求完全定义清楚,并把它稳定下来,并且实际开发前冻结需求。在概要设计阶段主要需要建立系统高层模型,建立系统和子系统的框架以及基于服务的层等。在详细设计阶段,可以精细的把业务需求转换为系统模型。然后在实现诸如编码、测试、系统集成以及发布等下游模型。

架构之道之软件管理过程的多团队Scrum

二、增量模型

   增量模型是指首先构建部分系统,再逐渐增加功能或者性能的过程。增量模型是综合了瀑布模型和原型化的产物,提倡以功能渐增方式开发软件。

   在生命周期的早期阶段(计划、分析、设计),需要建立一个考虑了整个系统的架构,这个架构应该是具有强的可集成性的,后续的构件方式开发,都是建立在这个架构之上。剩下的生命周期阶段(编码、测试、交付),来实现每一个增量。

   首先创建的应该是一组核心的功能,或者对于项目至关重要的最高优先级的系统,或者是能够降低风险的系统。随后基于核心功能反复扩展,逐步增加功能以提高性能。

架构之道之软件管理过程的多团队Scrum

三、Scrum过程

架构之道之软件管理过程的多团队Scrum

   Sprint 计划会议、每日 Sprint 简会、Sprint 评审会议和Scrum 评审会议共同构成 Scrum 方法。

四、多团队的Scrum过程

   许多项目无法由一个 Scrum 团队完成,这种情况需要多团队合作。人们通过一系列的机制来协调多团队并行开发。两个或者两个以上的 Scrum 团队同时开发的项目称作“扩展项目”,协调这些项目的机制称作“扩展机制”,每个扩展项目有其自己的复杂性,需要独特的解决方案。扩展的核心是 Scrum 团队,一个 800 人的项目需要包含 100 个 8 人团队,我们将如何协调全部团队的工作呢?

架构之道之软件管理过程的多团队Scrum

1. Scrum 扩展成功的关键:

首先,在扩展前构建必需的基础设施和基础架构,一般设计和构建基础架构需要经过几个 Sprint 周期。

第二,构建基础设施的同时,确保交付商业价值,这种商业价值也包括将来使用这个基础设施的应用案例。

第三,其它团队可以在后期建立。优化原始团队的能力,向其它团队分派至少一名初始团队成员。同时还要注意,项目一开始就取得进展,对取得利益相关者的支持很重要,但应防止扩展速度过快。

2.多维度扩展项目整体控制上采用瀑布模式

   在总的控制上,采用类似预定义过程的分层管理结构在很多情况下都是合适的,这样可以降低管理上的复杂性,而且,总体方案上的变更本来就比较小,这样更容易协调和扩展项目。不管怎么说,一个大型复杂项目的框架被说成是易变的、无法预测的恐怕并不一定符合实际情况,所以书生气十足的建立全面敏捷管理很可能最终把事情搞坏。大型项目的高级管理层也不可能达到与团队进行适应的频率和准确度,干预程度也往往不容易掌握,经过一些对比的尝试,感觉多维度扩展的 Scrum 高层管理还是经典项目管理理念比较有效,这是稳定性和灵活性的统一。

在这样的情况下,一种产品 Backlog 的分层结构如下图所示。

架构之道之软件管理过程的多团队Scrum

继续阅读