[原]白话SCRUM 之二:product backlog

标签: | 发表时间:2011-12-15 09:27 | 作者:dylanren
出处:http://blog.csdn.net/dylanren
        在SCRUM方法中明确要求了3个文档:

          1 product backlog

          2 sprint backlog

          3 burn-down chart

        Product backlog 中列举了本项目应该实现的需求,需求采用了用户故事的方式进行描述,用户故事是一句简短的采用用户熟悉的术语表达的需求,是用户讲给开发人员的故事,不是开发人员讲给用户的故事。既然是故事,就要有人讲,谁讲呢,是product owner来讲,每次讲时可能就有细节的不同,就要有变化,但是万变不离其宗,所以故事本身是有一定的弹性的。故事可以有标准的格式,我称之为三段论式故事,哪三段呢?

          1 用户角色

          2 需要的功能

          3 目的

        比如,有这样一个故事:

            作为一个家庭主妇,我需要一个30平米的餐厅,以便于我可以招待10位朋友来用餐。

        用户角色是家庭主妇,30平米的餐厅是功能需求,招待10位朋友用餐是为什么需要这个功能。千万不要小看这个三段论式的故事,需要仔细琢磨每一段的作用。用户角色表明了是谁使用这个功能,如果一个功能没有明确的使用者,是否可以删除呢?如果一个用户角色不重要,是否这个需求的优先级比较低呢?目的说明了为什么需要这个功能,这个功能解决了什么问题,如果一个功能没有明确的目的,那是否可以删除呢?如果目的不太关键,这个需求是否可以优先级比较低呢?

        优先级?没错,我多次提到了优先级,需求一定要分优先级!谁来划分需求的优先级?Product owner!如何划分优先级?根据商业价值!根据对客户、对最终用户的商业价值来划分优先级。如何区分商业价值的大小呢?比如提问如果不实现此需求,如果晚实现此需求客户是否会不满意,是哪类人不满?不满意到什么程度?也有的专家提出了更专业的方法,其实没必要,如果product owner真的称职的话,相信他,可以凭经验划分出优先级。

        是否仅仅描述了这样一句话就充分了呢?其实还有第四段,即用户故事的验收标准,或者叫用户故事的测试要点,这也是由product owner来完成的,product owner可以先完成前三段,在和team member的沟通过程中,逐步丰富完善验收标准。对于前面我们提到的那个故事,如果你实现了这样一个餐厅,比如是一个2米宽,15米长的餐厅,那位家庭主妇会如何想?哈哈,如果她心理健康的话,估计她立马让你跳楼!如果她心理不健康的话,她会跳楼的。当然在敏捷的方法中不会出现这种现象,在你开发的过程中,product owner会和你随时沟通交流的,在沟通中product owner还传达了这样的信息:

             1我希望这个餐厅是5米*6米;

             2我希望这个餐厅光线明亮;

             3我希望这个餐厅靠近厨房;

            4 ......

        这就是验收标准!也可以换一种角度,从如何验收的角度的来描述:

            1 我会量量这个房间是否是5米*6米的;

            2 我会测测如果在这个房间里白天打扑克,不开灯的话,能否看到扑克的花色和点数;

           3 我会测测从厨房到餐厅需要走几步;

           4 ......

        如果一个故事提不出来验收标准怎么办呢?不实现它,晚实现它,直到明确了验收标准。

        到目前为止我们实际讲了在product backlog中包含了5段:

        Product backlog = 需求 + 优先级

                  = 用户故事 + 优先级 + 验收标准

                  = 用户角色 + 功能 + 目的 + 优先级 + 验收标准

        有的专家把验收标准单列出来,我认为验收标准是需求的一部分,只不过换了一种描述方式而已,所以还是作为product backlog的一部分吧。

        前面我一直在提“功能”二字,没有提非功能的需求,如果有非功能的需求怎么办?两种处理办法,一是如果能明确到某个故事,就描述在故事的验收标准中,二是写一个“技术故事”,单列出来,提醒开发人员注意这些故事,这个故事未必是product owner提出的。

         对于用户故事我们希望能达到如下的理想:

         1)独立性。尽可能避免故事之间存在依赖关系,故事间存在依赖关系会造成划分优先级的困难,在安排开发顺序时需要考虑故事之间的依赖关系。

         2)可协商性。故事是可协商的,故事是有弹性的,故事是需要讲的,不是必须实现的书面合同或者需求。

         3)对用户或者客户有价值。确保每个故事对客户或用户有价值的最好方式是让用户编写故事。

         4)可预测性。开发者应该能够预测(至少大致猜测)故事的规模,以及编码实现所需要的时间。

         5)短小精悍。一般一个故事在一个迭代周期内一定是可以实现的,而我们提倡短周期迭代。

         6)测试性。所编写的故事必须是可测试的,能够定义出验收标准。

        注意,这是理想!

        Product backlog在项目进展过程中是会发生变化的,只有product owner有权来修改此文档。你可以用EXCEL文件来描述它,也可以采用一些敏捷项目管理的工具来帮助你维护,或者使用一些缺陷的跟踪工具如JIRA之类的,最直观的最朴素的办法是采用不干贴纸,直接贴在办公室的白板上,让大家都能随时看到!

作者:dylanren 发表于2011-12-15 9:27:13 原文链接
阅读:2497 评论:2 查看评论

相关 [白话 scrum product] 推荐:

[原]白话SCRUM 之二:product backlog

- - 麦哲思科技
        在SCRUM方法中明确要求了3个文档:           1 product backlog.         Product backlog 中列举了本项目应该实现的需求,需求采用了用户故事的方式进行描述,用户故事是一句简短的采用用户熟悉的术语表达的需求,是用户讲给开发人员的故事,不是开发人员讲给用户的故事.

[原]白话SCRUM 之三:sprint backlog

- - 麦哲思科技
Sprint Backlog就是任务列表,如果映射到传统的项目管理理论中就是WBS(work breakdown structure),而且是典型的采用面向交付物的任务分解方法得到的WBS. 比如有一个Product backlog 条目为:.     作为系统的合法用户,可以通过录入账号和密码登录到系统中.

Scrum的故事

- Philip - 《程序员》杂志官网
2001年2月,17位敏捷先驱齐聚犹他雪鸟度假村,起草《敏捷宣言》的时候,Scrum只是众多方法中不太起眼的一个. 十年之后,Scrum却成为最流行的敏捷方法,几乎成为敏捷的代名词. 本文来介绍下Scrum的两位创始人——Jeff Sutherland与Ken Schwaber. 大家可能不会想到,Jeff Sutherland的第一份工作居然是美国空军战斗机飞行员,还曾于1967年获得了“壮志凌云”称号,完成过100次飞越北部越南的作战任务.

scrum经验

- - CSDN博客研发管理推荐文章
Scrum是基于过程控制理论的经验方法,倡导自组织团队;其运行框架核心是迭代增量型并行开发,也是“适应性”的软件开发方法. Scrum提供了高度可视化的用于管理软件开发复杂性管理的敏捷项目管理的实践框架或敏捷过程,可以用于对现存软件工程实践的包装,提高软件生产率,改善沟通和合作的方法,使人们协作并注重业务目标.

Trello中的Scrum

- - IT瘾-infoq
Trello的用户数量近期超越了1000万的大关,它正迅速成为各色敏捷团队中流行的工具. 它的简洁及在Web、移动端优秀的体验,使它从众多更复杂的解决方案中脱颖而出,赢得了更多的团队. 因为Trello完全不在意用户如何使用,所以导致用户在用它进行Scrum过程最佳实践时产生一些困惑. 去年,我就如何使用Trello及对Scrum和Kanban过程进行管理与很多人进行了交流,同时,我还翻遍了网上所有关于使用Trello管理敏捷过程的文章.

用Scrum的方式实施Scrum

- - CSDN博客研发管理推荐文章
       用Scrum的方式实施Scrum就是说组织利用Scrum的流程来实现组织的转型. 要成功实施Scrum,必须在组织内进行两项主要改变:首先,软件开发人员必须被派到小团队中,还需要教会他们如何使用Scrum进行软件开发;其次,移除所有有碍于优化创新和软件交付的障碍,这些障碍会随着Scrum的使用逐渐显现.

Scrum 实施经验

- bluesnail - 新浪UED
Scrum是一种迭代式增量软件开发过程,通常用于敏捷软件开发. Scrum在英语的意思是橄榄球里的争球. 虽然Scrum是为管理软件开发项目而开发的,它同样可以用于运行软件维护团队,或者作为计划管理方法:Scrum of Scrums. Scrum定义了许多角色,根据猪和鸡的笑话分为两组,猪和鸡:.

Scrum中的QA(一)

- - ITeye博客
来自“Priyanka Hasija”的经验,她认为QA在Scrum中要做到:. ① 不仅仅是完成test case,还可以作为Product Owner的代理,完成Acceptance test,在PO没有时间的时候代替PO和团队沟通,甚至通过质疑各种假设等方式帮助PO明确需求. QA在复杂的用户场景和异常流程方面更有感觉,这些可以帮助开发人员做估算时不仅仅考量“happy path”.