软件过程学习笔记_Scrum

Scrum

Scrum 框架

Scrum框架

Scrum 过程

发布计划(owner->product backlog,做出 release burn-up,->Sprint backlog,做出 sprint burn-down)

Scrum 角色

product owner:产品的愿景;产品路线;创建带有优先级的产品功能列表(product backlog);持续演化 product backlog;负责决定发布计划;沟通并且验收产品的功能。

scrum master:发现、记录并移除障碍促进内外沟通;保护团队;指导团队;不是团队经理或者项目经理。

team:交付用户故事;跨职能;自组织,决定能够完成交付;帮助 owner 完成持续演化;估算任务,更新 sprint backlog。

Scrum 主要制品

product backlog:优先级的功能清单;包含描述、优先级和规模估算;承载用户故事;高优先级的故事变成规模合适的故事;低优先级的(Epic 史诗)可以较大的粒度。

deep——(Detailed Appropriately 适度细节)(Estimated 估算的)(Emergent 涌现的)(Prioritized 排序的)

sprint backlog:在 sprint 中要实现的 功能,每天会被更新,以小时为单位。

release burn-up:横轴是 sprint,纵轴是完成功能的规模。掌握团队是领先还是落后进度。

sprint burn-down:横轴是天,纵轴是剩余小时。掌握团队在本 sprint 是领先还是落后。

Scrum 的三大支柱

Scrum的三大支柱
透明,调查,检查

用户故事

  • 用户故事模板
    正面:(作为。。‘角色’,我需要。。‘功能’,以便。。‘用户价值’;下面还有规模和优先级)
    背面:验收条件;约束

  • 用户故事分类(使用计划扑克)
    1、2、3、5、8、13、20、40

  • 用户故事的 INVEST 原则
    用户故事的INVEST原则

  • 用户故事的 3C 特征
    card:使用卡片描述用户故事,一个 token,用于备忘和计划

    conversation:实质—变文档为交流

    confirmation:确认完成,Definition of Done,SMART 验收条件。
    (DOD 定义:在宣布工作潜在可发布之前,要求团队成功完成的各项工作检查,从设计到代码,到测试,到接收,到已经上线)

  • 排序
    高风险高价值;低风险高价值;低风险低价值

发布计划(想法)==》(product backlog)

产品愿景

-   《《《电梯陈述》》》:for(用户);who(需求和机会的陈述);the(产品)is a(类型);the(关键benefits-购买的原因);unlike(主要替代品或者竞争对手产品);our product(主要区别陈述)。
-   精益画布:成本分析;有收入,盈利模式;有独特的卖点;用户体验很重要。
-   用户旅程地图:进行用户体验

故事

用户故事工作坊;用户故事地图

计划

确定MVP(最小可行产品)

冲刺计划 (product backlog)==》(sprint backlog)

团队速度:团队每个迭代能够交付的故事点数
团队产能:能够用以开发的小时数
《《《时间,任务单位小时,任务大小 4-16 小时》》》

  • 输出:团队任务板(Sprint Backlog)和初始燃尽图

冲刺执行

  • 每日站会:每天同一地点,同一时间,15 分钟;每人回答 3 个问题,我完成了什么,准备做什么,遇到什么阻碍;po 可选择;其他人可以出席,但是不能发言——(同步状态,协调工作,每日承诺,报告障碍)

  • 每日站会:回顾,规划,推进

  • 输出:潜在可交付产品增量

冲刺回顾

  • 敏捷方法以迭代的方式完成工作
  • Sprint(冲刺)是 Scrum 的迭代,保持 Scrum 的基本节奏
  • 完成产品增量的交付;1-4 周的 Time-Box;每个发布的时间盒保持固定

冲刺评审会议

目标:持续改进产品;对产品本身

验收用户故事

冲刺反思会议

目标:持续改进工作方法;对产品构建过程的检查和调整

投票选择高优先级改进项

会议原则:专注于行动

Scrum 为何有效果

基本实践:Sprint 冲刺/用户故事/master/owner/发布计划‘迭代计划/每日站会/跨功能团队/release burnup/sprint burndown/迭代反思和评审/带优先级的 product backlog/电梯陈述/用户故事工作坊/

看板方法

是一种增量的、演进的改变技术开发和组织运作的方法。通过限制 WIP(work in progress:也就是在每一个环节限制工作数量)的数量,形成了一个以拉动系统为核心的机制,暴露系统中的问题,激发协作来改善系统。

看板的四个原则:1)从既有流程开始;2)持续增量、渐进的变化;3)尊重当前的流程、角色、职责和头衔;4)鼓励在各个层级上发挥领导行为

看板六大实践:1)可视化工作流;2)限制在制品数量;3)管理流动;4)让规则明确;5)落实反馈循环;6)协作改善和实验改进

软件过程概述

  • 敏捷和精益方法
  • 软件过程:是指软件整个生命周期,从需求获取,需求分析,设计,实现,测试,发布和维护的过程模型。
  • 项目管理四要素:三角形(工作“功能”,成本“人力资源”,时间“进度”,中间质量)
  • 成功的项目管理(软件过程):在给定的时间内,利用给定的资源,交付高质量的工作(功能)。——PMP 定义
  • 失败原因,过程管理的问题
  • 新形势下,业务对软件开发的要求:更快的推向市场;卓越的用户体验;可预测性;降低成本

敏捷 vs 瀑布

瀑布模型

  • 瀑布核心思想:按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。
  • 瀑布的缺点:依靠文档进行传递,信息的缺失和丢失;无法预估的进度;造成团队间的对立和博弈;延迟了反馈,后期成本变高

敏捷和精益方法

什么是敏捷?

敏捷是用于描述一组方法的统称;一种思想,一组开发框架,一组价值观和原则(敏捷宣言:个体和互动,工作的软件,客户合作,响应变化)

  • 敏捷和精益方法今早交付价值和暴露风险
  • 价值:快速响应变化;生产力的提高;增加透明;更高的士气;更好的预测;更快的推向市场

所有的敏捷方法都遵循迭代和增量

增量开发,就是一块接一块地构建一个系统。一部分功能被开发出来,然后另一部分功能被开发出来,集成进前一部分功能里。

迭代开发认为,系统是在不断演化中完善的,因此,一开始构建整个系统,但并不是那么完美,利用后续的反馈,来一步步改进系统。

敏捷的核心理念

探索性过程;迭代增量开发;范围可变(也就是功能可变,其他不变);尽早交付价值和暴露风险;组织文化

敏捷宣言

敏捷宣言

敏捷实践

每日站会;带有优先级的产品待办事项列表 product backlog;短的迭代周期;反思会议;迭代计划