第 6 章 统 一 过 程 与 敏 捷 过 程 杨 大 易 2015/12/30
本 章 内 容 6.1 统 一 过 程 6.2 敏 捷 过 程 6.3 极 限 编 程 6.4 Scrum 6.5 本 章 小 结 6.6 思 考 问 题 1
6.1 统 一 过 程 软 件 开 发 方 法 的 演 进 2
6.1 统 一 过 程 RUP 过 程 的 二 维 表 示 横 轴 表 示 时 间 : 划 分 为 阶 段 和 迭 代 纵 轴 表 示 过 程 组 件 : 开 发 各 阶 段 的 任 务 时 间 轴 :4 个 顺 序 阶 段 初 始 阶 段 (Inception) 细 化 阶 段 (Elaboration) 构 造 阶 段 (Construction) 交 付 阶 段 (Transition) 每 个 阶 段 又 分 为 若 干 个 迭 代 (Iteration) 3
6.1 统 一 过 程 过 程 组 件 轴 :9 个 工 作 流 核 心 过 程 工 作 流 业 务 建 模 (Business Modeling) 需 求 (Requirement) 分 析 与 设 计 (Analysis &Design) 实 现 (Implementation) 测 试 (Test) 部 署 (Deployment) 核 心 支 持 工 作 流 项 目 管 理 (Project Management) 配 置 和 变 更 管 理 (Configuration and Change Management) 环 境 (Environment) 4
6.1 统 一 过 程 统 一 过 程 (RUP:Rational Unified Process ) 5
6.1 统 一 过 程 统 一 过 程 提 供 了 在 开 发 组 织 中 分 派 任 务 和 责 任 的 纪 律 化 方 法 ; 统 一 过 程 目 标 是 在 可 预 见 的 日 程 和 预 算 前 提 下, 确 保 满 足 最 终 用 户 需 求 的 高 质 量 产 品 ; 统 一 过 程 模 型 是 一 种 用 例 驱 动, 以 体 系 结 构 为 核 心, 迭 代 及 增 量 的 软 件 过 程 框 架, 由 UML 方 法 和 工 具 支 持 统 一 过 程 模 型 与 瀑 布 模 型 原 型 模 型 和 增 量 模 型 等 相 比 有 哪 些 差 异? 6
6.2 敏 捷 过 程 提 出 敏 捷 过 程 的 背 景 许 多 公 司 软 件 团 队 陷 入 了 不 断 增 长 的 过 程 泥 潭 为 矫 正 某 些 官 僚 烦 琐 的 软 件 过 程 2001 年 2 月,17 个 方 法 学 家 达 成 一 致 并 发 起 成 立 敏 捷 软 件 开 发 联 盟 软 件 开 发 宣 言 软 件 团 队 具 有 快 速 工 作 快 速 响 应 变 化 的 能 力 4 条 基 本 价 值 观 +12 条 原 则 7
6.2 敏 捷 过 程 敏 捷 宣 言 的 价 值 观 敏 捷 软 件 开 发 宣 言 我 们 正 在 通 过 亲 身 实 践 以 及 帮 助 他 人 实 践, 揭 示 更 好 的 软 件 开 发 方 法 通 过 这 项 工 作, 我 们 认 为 : 个 体 和 交 互 胜 过 过 程 和 工 具 可 以 工 作 的 软 件 胜 过 面 面 俱 到 的 文 档 客 户 合 作 胜 过 合 同 谈 判 响 应 变 化 胜 过 遵 循 计 划 虽 然 右 项 也 具 有 价 值, 但 我 们 认 为 左 项 具 有 更 大 的 价 值 Kent Beck James Grenning Robert C.Martin Mike Beedle Jim Highsmith Steve Mellor Arie Van Bennekum Andrew Hunt Ken Schwaber Alistair Cockburn Ron Jeffries Jeff Sutherland Ward Cunningham Jon Kern Dave Thomas Martin Fowler Brian Marick 8
6.2 敏 捷 过 程 (1) 个 体 和 交 互 胜 过 过 程 和 工 具 人 是 软 件 项 目 获 得 成 功 最 为 重 要 的 因 素 ; 合 作 沟 通 以 及 交 互 能 力 要 比 单 纯 的 软 件 编 程 能 力 更 为 重 要 (2) 可 以 工 作 的 软 件 胜 过 面 面 俱 到 的 文 档 软 件 开 发 的 主 要 目 标 : 交 付 给 用 户 可 以 工 作 的 软 件 而 不 是 文 档 ; 软 件 开 发 的 主 要 和 中 心 活 动 是 创 建 可 以 工 作 的 软 件, 直 到 迫 切 需 要 并 且 意 义 重 大 时, 才 进 行 文 档 编 制 9
6.2 敏 捷 过 程 (3) 客 户 合 作 胜 过 合 同 谈 判 客 户 不 可 能 做 到 一 次 性 地 将 他 们 的 需 求 完 整 清 晰 地 表 述 在 合 同 当 中 ; 开 发 团 队 与 客 户 紧 密 协 作, 为 开 发 团 队 和 客 户 的 协 同 工 作 方 式 提 供 指 导 的 合 同 是 最 好 的 合 同 (4) 响 应 变 化 胜 过 遵 循 计 划 变 化 是 软 件 开 发 中 存 在 的 现 实 ; 响 应 变 化 的 有 效 途 径 之 一 是 制 定 灵 活 可 塑 的 计 划 敏 捷 过 程 中 的 哪 些 做 法 与 传 统 软 件 工 程 观 念 不 同? 10
6.2 敏 捷 过 程 敏 捷 开 发 的 12 条 原 则 (1) 最 优 先 要 做 的 是 通 过 尽 早 的 持 续 的 交 付 有 价 值 的 软 件 来 使 客 户 满 意 ; (2) 即 使 到 了 开 发 的 后 期, 也 欢 迎 改 变 需 求, 敏 捷 过 程 利 用 变 化 来 为 客 户 创 造 竞 争 优 势 ; (3) 经 常 性 交 付 可 以 工 作 的 软 件, 交 付 的 间 隔 可 以 从 几 个 星 期 到 几 个 月, 交 付 的 时 间 间 隔 越 短 越 好 ; (4) 在 整 个 项 目 开 发 期 间, 商 务 人 员 和 开 发 人 员 必 须 天 天 都 工 作 在 一 起 ; (5) 围 绕 被 激 励 起 来 的 个 体 来 构 建 项 目, 给 他 们 提 供 所 需 的 环 境 和 支 持, 并 且 信 任 他 们 能 够 完 成 工 作 ; 11
6.2 敏 捷 过 程 (6) 在 团 队 内 部, 最 具 有 效 果 并 且 富 有 效 率 的 传 递 信 息 的 方 法, 就 是 面 对 面 的 交 谈 ; (7) 工 作 的 软 件 是 首 要 的 进 度 度 量 标 准 ; (8) 敏 捷 过 程 提 倡 可 持 续 的 开 发 速 度, 责 任 人 开 发 者 和 用 户 应 该 能 够 保 持 一 个 长 期 的 恒 定 的 开 发 速 度 ; (9) 不 断 关 注 优 秀 设 计 技 能 和 好 的 设 计 会 增 强 敏 捷 能 力 ; (10) 简 单 : 使 未 完 成 的 工 作 最 大 化 的 艺 术 是 根 本 的 ; (11) 最 好 的 构 架 需 求 和 设 计 出 自 于 自 组 织 的 团 队 ; (12) 每 隔 一 定 时 间, 团 队 会 在 如 何 才 能 更 有 效 地 工 作 方 面 进 行 反 省, 然 后 相 应 地 对 自 己 的 行 为 进 行 调 整 12
6.2 敏 捷 过 程 统 一 过 程 与 敏 捷 过 程 统 一 过 程 : 提 供 的 是 理 想 开 发 环 境 下 软 件 过 程 的 一 种 完 整 且 完 美 的 模 式 敏 捷 过 程 : 针 对 商 业 环 境 下 通 常 具 有 有 限 资 源 和 有 限 时 间 约 束 的 小 型 项 目 提 出 了 一 些 独 具 特 色 的 操 作 性 较 强 的 解 决 方 案 敏 捷 过 程 在 人 员 方 法 产 品 等 方 面 的 论 述 远 不 及 统 一 过 程 全 面 详 细 敏 捷 过 程 可 作 为 对 统 一 过 程 的 补 充 和 完 善 13
6.3 极 限 编 程 极 限 编 程 (XP:Extreme Programming) 一 个 轻 量 级 的 灵 巧 的 敏 捷 开 发 方 法 ; 大 部 分 实 践 与 敏 捷 过 程 的 价 值 观 和 原 则 一 致, 并 对 敏 捷 过 程 进 一 步 发 展 和 补 充, 如 结 对 编 程 隐 喻 等 极 限 编 程 过 程 14
6.3 极 限 编 程 极 限 编 程 的 四 个 价 值 目 标 沟 通 : 敏 捷 方 法 采 用 了 一 些 实 践 来 强 制 沟 通, 如 结 对 编 程 策 划 游 戏 验 收 测 试 等 ; 简 单 : 今 天 做 的 简 单 一 些, 然 后 明 天 需 要 时 再 花 些 时 间 进 行 改 进, 比 今 天 做 的 复 杂 但 以 后 再 也 用 不 到 要 好 反 馈 : 加 强 与 用 户 的 反 馈, 反 馈 越 多, 沟 通 越 容 易 勇 气 : 快 速 的 进 入 开 发 阶 段, 并 在 必 要 时 果 断 对 系 统 进 行 重 构 15
6.3 极 限 编 程 极 限 编 程 的 实 践 要 点 (1) 结 对 编 程 : 由 两 个 开 发 人 员 在 同 一 台 电 脑 上 共 同 编 写 解 决 同 一 问 题 的 代 码, 通 常 一 个 人 负 责 编 码, 而 另 一 个 负 责 保 证 代 码 的 正 确 性 与 可 读 性 ; (2) 客 户 作 为 团 队 成 员 : 要 求 至 少 有 一 名 实 际 的 客 户 代 表 在 整 个 项 目 开 发 周 期 和 团 队 开 发 人 员 在 一 起 紧 密 地 工 作 ; (3) 短 交 付 周 期 : 每 两 周 交 付 一 次 可 以 工 作 的 软 件 ; (4) 测 试 驱 动 开 发 : 在 编 码 开 始 之 前, 首 先 将 测 试 写 好, 而 后 再 进 行 编 码, 直 至 所 有 测 试 都 得 以 通 过 ; (5) 集 体 所 有 权 : 开 发 小 组 的 每 个 成 员 都 有 更 改 代 码 的 权 利, 所 有 的 人 对 于 全 部 代 码 负 责 ; 16
6.3 极 限 编 程 (6) 可 持 续 的 开 发 速 度 : 开 发 人 员 每 周 工 作 时 间 不 超 过 40 小 时, 加 班 不 得 连 续 超 过 两 周, 否 则 反 而 会 影 响 生 产 率 ; (7) 开 放 的 工 作 空 间 : 项 目 的 所 有 参 与 者 ( 开 发 人 员 测 试 人 员 客 户 等 ) 一 起 工 作 在 一 个 开 放 的 场 所 中 ; (8) 简 单 的 设 计 : 设 计 恰 好 与 计 划 在 本 次 迭 代 中 要 完 成 的 用 户 素 材 相 匹 配, 不 考 虑 未 来 的 用 户 素 材 ; (9) 重 构 : 重 新 调 整 优 化 系 统 结 构 以 减 少 复 杂 性 消 除 冗 余 增 加 灵 活 性 和 提 高 性 能 ; (10) 隐 喻 : 整 个 系 统 联 系 在 一 起 的 全 局 视 图 系 统 的 未 来 影 像, 描 述 系 统 如 何 运 作 新 的 功 能 以 何 种 方 式 加 入 到 系 统 17
6.4 Scrum Scrum 基 本 假 設 开 发 软 件 就 像 是 开 发 新 产 品, 无 法 一 开 始 就 能 定 义 最 终 产 品 的 规 程, 过 程 中 需 要 研 发 创 意 尝 试 错 误, 所 以 没 有 一 种 固 定 的 流 程 可 以 保 证 项 目 成 功 Scrum 将 软 件 开 发 团 队 比 拟 成 橄 榄 球 队 有 明 确 的 最 高 目 标 熟 悉 开 发 流 程 中 所 需 具 备 的 最 佳 典 范 与 技 术 具 有 高 度 自 主 权, 紧 密 地 沟 通 合 作 以 高 度 弹 性 解 決 各 种 挑 战 确 保 每 天 每 个 阶 段 都 朝 向 目 标 有 明 确 的 推 进 18
6.4 Scrum Scrum 团 队 7 人 组 成 团 队 不 止 是 一 个 程 序 员 队 伍, 它 由 各 种 背 景 下 的 不 同 角 色 组 合 而 成, 包 括 商 业 分 析 者, 设 计 师, 程 序 员 和 测 试 者 等 Product Owner: 负 责 最 大 化 项 目 投 资 回 报 领 导 团 队 估 算 Product Backlog, 对 User Stories / requirements 具 有 最 终 的 权 力 Scrum Master: 帮 助 Product Owner 选 择 最 优 价 值 的 Product Backlog, 确 保 Scrum 实 践 得 到 执 行, 最 大 化 团 队 的 生 产 率 19
6.4 Scrum Scrum 过 程 20
6.4 Scrum Scrum 任 务 划 分 Product Backlog: 具 有 优 先 级 的 需 求 列 表, 并 对 每 个 需 求 进 行 了 粗 略 的 估 算 Product Backlog 是 不 断 完 善 优 化 的 Sprint Backlog: 细 化 高 优 先 级 任 务, 任 务 分 解 不 超 过 16 小 时 21
6.4 Scrum Sprint 策 划 会 议 限 时 8 小 时, 分 成 2 部 分, 各 4 个 小 时 第 一 部 分, 挑 选 Prodect Backlog 第 二 部 分, 准 备 Sprint Backlog 产 品 负 责 人 要 提 前 在 会 议 前 准 备 好 产 品 Backlog 团 队 可 提 出 建 议, 但 是 由 Product Owner 制 定 Product Backlog 团 队 负 责 从 Product owner 制 定 的 Product Backlog 中 挑 选 出 期 望 在 当 前 Sprint 内 完 成 的 工 作 22
6.4 Scrum Sprint 策 划 会 议 : 第 一 部 分 挑 选 增 量 Product Backlog 确 定 Product Backlog 的 工 作 量 和 优 先 级 成 员 一 致 认 可 Sprint 目 标 和 Product Backlog Sprint 策 划 会 议 : 第 二 部 分 团 队 成 员 将 选 定 Product Backlog 细 分 制 定 Sprint Backlog, 包 括 任 务 任 务 估 计 任 务 分 工 23
6.4 Scrum Sprint 运 行 Sprint 周 期 内 开 发 可 交 付 的 产 品 Sprint 内 包 括 设 计 编 码 测 试 编 写 文 档 等 工 作 在 Sprint 期 间 其 他 人 不 可 向 团 队 下 达 通 知 指 令 评 论 和 方 向 指 示, 团 队 完 全 进 行 自 我 管 理 一 旦 Sprint 开 始 了, 只 能 由 Scrum 团 队 增 加 或 删 除 Sprint Backlog 中 的 任 务 团 队 成 员 每 日 参 加 Scrum 会 议 24
6.4 Scrum 每 日 Scrum 会 议 限 时 15 分 钟 每 日 早 晨, 同 一 地 点 站 立 会 议 所 有 成 员 必 须 参 加 成 员 必 须 准 时, 否 则 惩 罚 每 个 人 给 全 体 成 员 汇 报 工 作 进 展 同 步 进 展 而 不 是 解 决 问 题 25
6.4 Scrum Scrum 看 板 26
6.4 Scrum 燃 尽 图 27
6.4 Scrum Sprint 评 审 限 时 4 小 时 团 队 向 Product Owner 及 其 他 利 益 相 关 者 展 示 本 次 sprint 完 成 的 功 能 不 展 示 未 完 成 的 功 能, 不 展 示 技 术 文 档 演 示 结 束 后 调 查 利 益 相 关 者 意 见, 记 录 他 们 的 意 见 期 望 的 变 更 等 基 于 反 馈 调 整 Backlog 可 以 在 Sprint 结 束 后 确 定 是 否 还 要 继 续 本 产 品 的 开 发 不 需 要 用 ppt 28
6.4 Scrum Sprint 回 顾 限 定 在 3 个 小 时 内, 通 常 15-30 分 钟 每 次 sprint 之 后 参 与 的 人 员 Team, Scrum Master, 或 Product Owner 三 个 问 题 : 成 功 之 处 有 哪 些? 需 要 坚 持 做 有 哪 些 改 进 之 处? 需 要 采 取 新 措 施 有 哪 些 错 误 的 做 法? 需 要 停 止 的 做 法 敏 捷 过 程 中 的 哪 些 方 法 可 以 在 你 的 开 发 中 应 用? 29
6.5 本 章 小 结 统 一 过 程 是 全 面 的 具 有 较 强 实 践 性 的 软 件 工 程 过 程 模 型 ; 敏 捷 过 程 包 含 了 一 系 列 实 用 的 软 件 开 发 思 想 和 方 法 30