UDAD 用户故事驱动的敏捷开发 – 演讲实录

原创 2016年05月31日 22:21:44

敏捷发展到今天已经在软件行业得到了广泛认可,但大多数敏捷方法都是为了解决某一特定问题而总结出来的特定方法或实践,一直缺乏一个可以将整个开发过程串接起来的成体系的方法。用户故事驱动的敏捷开发(User Story Driving Agile Development – UDAD)就是这样一套方法和实践,希望能够在软件开发的各个过程都提供最有效的方法让希望采用敏捷的团队能够有一个整体的方法论作为指导。

如何你对敏捷还缺乏了解,可以阅读以下文档:

关于敏捷开发

UDAD中采用了以下几个已经被广泛认可的方法和工具:

  • 影响地图
  • 用户故事地图
  • 视觉引导
  • Scrum
  • Kanban
  • 持续集成
  • 探索性测试
  • 自动化部署

另外,配合以上方法也提供了可以为团队和方法提供支撑的工具支持,在当前的版本中所使用的是微软的Team Foundation Server作为软件全生命周期管理平台。

完整版PPT下载

1 – 重新认识软件开发过程

udad-slide-2

相对于传统工业化生产中已经标准化的生产制造过程,大多数人所理解的软件“生产制造”过程其实相当于制造原型车的“设计”过程。这也是为什么使用管理标准化的汽车装配生产线的方法(瀑布模式)来管理一直处于设计阶段的软件开发过程是从根本上错误的。

udad-slide-3

要让软件开发这个“创造”过程变得靠谱(可管理),我们要解决就是内容-实践-质量这3个维度上的平衡问题,而这种平衡必须是在目标不明确,多快好省的交付的前提之下。

udad-slide-6

udad-slide-7

udad-slide-8

敏捷开发的过程管理方法论都是建立在利用变化来适应变化的方法,让我们在面对“复杂”项目的时候可以提高项目成功的可能性。

2 – 什么是用户故事

udad-slide-12

用户故事是随着敏捷被提出的一种需求管理方法,它既是一种对需求的描述方法,也是协助团队理解需求和管理后续开发过程的基点。

udad-slide-13

我们必须牢记的是用户故事不用用来写的,而是用来进行讨论,记忆和跟踪的。人类的大脑从来都不擅长记忆大量繁杂的信息,但是我们却可以对很多的场景记忆犹新。采用可视化的方法来讨论需求,并通过结构化的方法帮助团队成员建立对需求的统一理解才是用户故事的核心。

udad-slide-14

除了协助我们进行需求的设计和规划,在开发过程中我们也要使用用户故事作为我们跟踪整个过程的线索,来组织后续的所有过程,以及团队成员的写作方式,工具的使用,以及最终用户的反馈。

3 – 设计与规划过程

udad-slide-16

设计过程中我们主要解决的是如何产生需求的过程,这部分内容可以参考以下文章:

用户故事驱动的敏捷开发 – 1. 规划篇

这里主要使用了2个工具:

影响地图:请参考以下这几篇文章

用户故事地图:请参考以下这几篇文章

4 – 计划过程

udad-slide-28

进入到项目的运作过程中,敏捷中成熟的Scrum和Kanban方法就是团队最好的选择,同时由于之前的规划过程建立的良好基础,后续运行Scrum和Kanban的时候就都有了很好的起点。解决了初次接触这些过程方法的团队不知如何入手的难题。

对这一过程的详细描述可以参考:

用户故事驱动的敏捷开发 – 2. 创建backlog

关于Scrum和Kanban方法请参考:

5 – 迭代开发过程

udad-slide-35

开发过程中,各种角色的交互会变得越来越复杂,我们需要有一个可视化的方法来让各种不同的角色清楚知道自己所做的事情与其他人的关系,这里Kanban就成了最好的方法。以上列出了TFS中的电子看板的一些主要特性,但是电子化工具与物理工具之间永远各有优势,建议团队要根据情况酌情使用。

udad-slide-36

开发过程中的coding flow是影响开发人员效率的关键过程,以上列出了一个使用feature branch结合pull request和CI的coding flow。

关于这个过程可以参考以下这篇文档:

持续交付 – 持续集成,自动化发布和自动化测试

6 – 持续交付及反馈过程

udad-slide-39

有个持续集成作为基础,我们就可继续建立发布管道。能够将应用快速稳定的进行部署是衡量一个团队DevOps实践的重要能力指标,也是大幅缩短MTTR的重要手段。同时,借助探索测试工具,我们可以让用户/业务人员和开发团队紧密结合,形成快速反馈机制。

关于这一过程可以参考以下文档:

快速修复生产问题

总结

至此,UDAD就完成了一个软件开发的闭环。

udad-slide-10


 

请关注微信公众号 【devopshub】,获取更多关于DevOps研发运维一体化的信息

qrcode_for_gh_b7c158df1fd1_430


敏捷开发用户故事系列之十一:CSDN博客用户故事分析

这是敏捷开发用户故事系列的第十一篇。(栏目目录)经常有人问起有没有完整的用户故事案例。本人在网上找了一下,大约能找到两三篇,但多数只是为了描述用户故事的语法而已,都不涉及用户故事的颗粒度、大量故事的组...
  • cheny_com
  • cheny_com
  • 2013年07月12日 14:20
  • 4537

敏捷开发中,团队成员认领的是任务还是用户故事?

敏捷开发中,团队成员认领的是任务还是用户故事?
  • wushxian
  • wushxian
  • 2014年11月06日 10:38
  • 3524

什么是用户故事及用户故事在敏捷开发中如何编写

用户故事(user story)是从用户的角度来描述用户渴望得到的功能。一个好的用户故事包括三个要素: 1. 角色:谁要使用这个功能。 2. 活动:需要完成什么样的功能。 3. 商业价值:为什么需要这...
  • Jeppe
  • Jeppe
  • 2015年10月25日 19:02
  • 3374

敏捷开发-故事与估算

## 创建故事的时机 1. 由Scrum Master和Product Ower来写故事。敏捷虽然是要提高大家的积极度或参与度,但是故事创建并不需要每个成员都参与,如果都参与写故事会造成故事风格...
  • zhangdaisylove
  • zhangdaisylove
  • 2015年11月23日 23:05
  • 1267

【敏捷开发每日一贴】用户故事规范、分解与拆分

一个PDF文档,请从资源页下载。
  • huver2007
  • huver2007
  • 2017年04月13日 09:09
  • 495

用户故事驱动的敏捷开发 – 1. 规划篇

用户故事可以帮助开发团队从用户的角度来理解需求,同时在交付的过程中按照用户可用的场景进行交付,确保了开发团队可以持续的交付用户关心的功能。但是在实际开发中,团队往往不知道如何入手。...
  • eickandy
  • eickandy
  • 2016年03月21日 15:07
  • 906

敏捷开发技巧:以用户故事管理项目

什么是用户故事(user story)假定这个项目的客户是个饮料自动售货机的制造商。他们要求我们为他们的售货机开发一款软件。我们...
  • justin_hua
  • justin_hua
  • 2007年09月02日 00:07
  • 881

敏捷开发之故事点估算与故事点燃尽图

一个团队/个人花 10 小时能完成的任务,另一个团队/个人或许需要 100小时; 也有可能团队花了 100小时但是什么都交付不出来; 作为一个用户故事,只有“完成”与“未完成”两种状态,不能使用...
  • fuzengbin
  • fuzengbin
  • 2011年12月29日 09:16
  • 3939

「用户故事」竟然还可以这样写!?

本文来自作者 刘华 在 GitChat 上分享「用户故事还可以这样写」,「阅读原文」查看交流实录 「文末高能」 编辑 | 娜美 用户故事很重要 用户故事很重要,是实施敏捷开...
  • GitChat
  • GitChat
  • 2017年10月24日 00:00
  • 205

敏捷开发用户故事系列之四:优先级排序

这是敏捷开发用户故事系列的第四篇。(栏目目录)优先级排序听起来是一个很简单的工作,一个字段无外乎“重要/一般……”,调整一下然后按排序,就出来了。但其实里边有不少名堂:谁应该负责排序工作?谁最终拍板?...
  • cheny_com
  • cheny_com
  • 2011年09月23日 17:07
  • 6819
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:UDAD 用户故事驱动的敏捷开发 – 演讲实录
举报原因:
原因补充:

(最多只允许输入30个字)