《敏捷可执行需求说明 Scrum提炼及实现技术》—— 2.4 明确一个可以共享的愿景

2.4 明确一个可以共享的愿景

当你让这些干系人参与时,澄清愿景显得非常必要。谢天谢地,由于你使这些干系人紧密地合作,你就不会面对一团糟。你应该在早期就以最小的代价来强调愿景。如果产品负责人和干系人们讨论一个长远目标或者软件产品的意图时,就应该会得到一个大家都认可的产品愿景。
比较完美的情况是,软件产品的名称将清楚明确地概括出产品的愿景。名字是人们第一次接触到的关于软件产品的介绍。名字将被重复使用,就会在人们脑海里形成深刻的印象。
不幸的是,事实远不是这样。名字通常由市场部或项目管理办公室提供,他们只是随意地定义,丝毫不会考虑软件产品的愿景。他们常常定义一个从管理的角度很容易识别的项目代号。
因为是从管理的角度考虑的,你很难忽略这个正式的名字。然而,没有任何事情可以阻止你取一个非正式的名字:一个关于愿景的一句话的描述。这就是我的建议。
用几个单词描述软件产品需要实现的愿景。这个简短的、一行字的概况应该给所有人提供了关于一个软件产品最终必须是什么样子的共同的理解。一个清楚的愿景为软件的整个开发生命周期提供了决策和承担责任的依据。它深刻地影响着干系人和团队对开发软件产品的贡献。因为每个成员都朝着一个方向努力,所有团队士气高涨。这是一个改善结果的稳定因素。它影响着团队将要生产什么,以及在生产过程中人们的行为方式。
马马虎虎地随意取名是造成模棱两可的结果的危险来源。同样,缺乏对整个愿景的唯一描述也会造成模糊不清的症状。不要犹豫,请将所有昵称、工作名称和项目描述整合起来。
为了创建一个明确的一行字摘要,需要遵循高斯和温伯格[1]推广的启发式命名规范。下面这个简明扼要的三步流程就是从他们的书里引用过来的:
“首先提议一个名字,接下来提供这个名字不十分恰当的三个原因,然后提议用另一个名字来解决这些问题。”
重复这三个步骤,直到找到一个有用的描述。记住并不存在一个完美的一行字描述,因此不要因为重复不休而停滞不前。
下面我们来演示一下这个过程。假设纽约大都会交通运输管理局想要为在电脑上使用自助服务的乘客通过智能卡在“自助资讯服务站”购买车票的项目定义一个愿景。最可能浮现在脑海里的描述就是“交通卡项目”。

下面是关于这个选择的三种误解:

1)这个票务软件没有指名交通管理局。
2)“项目”暗示软件的实用性随着项目的结束而结束。
3)在这个名字中没有任何关于自助资讯服务站的暗示。(将会有一个自助资讯服务站。)软件的最大收益是不再需要销售员来帮助完成交易。

当审视完这些缺点后,干系人再次提出名字选项“NYC大都会交通管理局自助票务资讯服务站”,这个名字有下面三种缺陷:

1)应该从名字中把“NYC”去掉,因为每个人都知道MTA(Metropolitan Transportation Authority)是纽约市的交通管理局。
2)这个名字没有关于车票会上传到智能卡的信息。
3)这个名字没有任何关于服务站也可以用来读取智能卡上还剩多少张车票的暗示。
通过这两轮的讨论,团队决定继续第三轮的一行字描述:“MTA自助服务智能卡资讯站。”团队本可以继续进一步执行关键的命名流程的,但他们觉得应该停下来了,因为每个人都对这个结果感觉很舒服。启发式命名的目标不仅是为了得到一个描述,也是为了保证团队中的每个人对真正的问题有更好的理解。
找出一个可以共享的愿景是一个由产品负责人引导的活动。主要形式是干系人们面对面的会议。结果是用短短的一行字概括出软件产品应该是什么和它能做什么。它是软件开发的一个坚实基础,一经产生就会在一整年里不应该有变更。很显然,这是一个需要一年一度重复的任务(或者更早期,在那些较大的、要求彻底优化产品的需求提出来时)。

时间: 2024-08-03 15:45:52

《敏捷可执行需求说明 Scrum提炼及实现技术》—— 2.4 明确一个可以共享的愿景的相关文章

《敏捷可执行需求说明 Scrum提炼及实现技术》—— 导读

前 言 市面上关于需求说明方面的书籍有很多.不幸的是,这些书绝大多数对于软件开发团队来说都不实用.因为那些书依赖于传统的工程实践.他们假设需求是可以事先获得的,并且一旦被写出来,在项目进行过程中就不会再修改.而且,他们认为就算发生变更,都是一些细微的变化,因此,可以通过变更管理流程来进行追踪.他们创建了从明确需求阶段开始的系列流程,而这个阶段将在团队开始设计和实现产品之前提供详细的需求说明.本书目标 我认为传统的工程实践对软件开发来说并不适用.提炼软件需求说明的流程的核心问题是不确定性很高,这与

《敏捷可执行需求说明 Scrum提炼及实现技术》—— 2.8 小结

2.8 小结 本章主要介绍了如何识别出不会轻易发生变动的软件属性和如何建立坚实的基础.它首先强调了一个运作良好的团队以及让所有干系人参与的重要性.接下来讨论如何确定一个共享的愿景.有意义的共同目标和一组高级别的特征,这些都是设立一个明确而清晰的目标的核心.因为这三个要素不太可能很快发生变化,它们是每个人都可以依赖的防护栏.虽然设置边界很有必要,但仅有这个还不足够,尤其是当你面对的是一个变更持续发生的情况时.尽管这个解释似乎过于化繁为简,但这只是朝着掌握可执行的需求说明书前进的一小步.创建新的软件

《敏捷可执行需求说明 Scrum提炼及实现技术》—— 2.1 界定不可更改的边界

2.1 界定不可更改的边界 团队识别出那些几乎不会改变.你可以理所当然地看做是边界条件的事情,这些事情用来协助指导团队做决策.这些边界条件不仅保证方案得以实现,还通过澄清需要被构建的功能边界来缩小方案的解决范围.它们给团队提供了一个帮助他们保持健康状态的基础.面对不断变化的需求,团队往往显得徒劳无功.因此,团队必须保持高度专注,以便持续提供有价值的产品功能.这些边界提醒人们关注产品的目的.整个团队不仅要共同拥有这些边界条件,也需要每个成员都熟知.以下是一组需要落实到位并赖以探索不确定性的边界条件

《敏捷可执行需求说明 Scrum提炼及实现技术》—— 第1章 解决正确的问题

第1章 解决正确的问题敏捷是一组鼓励快速.灵活地响应变更的软件开发框架.它们基于迭代开发实践,需求和解决方案都在跟客户合作过程中逐渐演进并完善.2001年发布的"敏捷软件开发宣言"[1]引入了敏捷这个词.Scrum[2]现在已经成为最著名且使用最广泛的敏捷框架.Ken Schwaber和Jeff Sutherland[3]设计的Scrum框架,由角色.事件.工件以及将它们整合在一起的一系列规则组成.Scrum使研发团队通过频繁地检查和调整,并不断优化产出成果,最终构建复杂的产品.这个术

《敏捷可执行需求说明 Scrum提炼及实现技术》—— 2.2 组建一个健康的团队

2.2 组建一个健康的团队 构建软件产品仍然是个体之间高度互动的活动.我们可以通过增加干系人和团队之间的高质量互动来降低一些意外产生的难度.不幸的是,你不可能控制干系人.他们仅仅是他们自己.然而,你可以组织团队来弥补这个遗憾.你可以很容易地影响团队的规模.结构和合作模式.获得坚实基础的最简单的方法就是有个运作良好的团队.团队是因为一个共同目标而聚集在一起,并拥有互补技能的一群人.如果你实施Scrum框架,你应该已经意识到一个健康团队所拥有的属性:自主性.跨职能,以及拥有不超过10个同辈成员的自组

《敏捷可执行需求说明 Scrum提炼及实现技术》—— 1.4 小结

1.4 小结 本章探讨了为什么团队对解决"正确"的问题感到困难,这也许远比你想象的更具有挑战性.从一开始就认识到敏捷并不是要排除从方案中识别需求的做法.这仍然是一个将"是什么"和"如何做"区别开来的好实践.接下来讨论了不确定性和需求.你看到了传统的需求收集方法不适用于软件产品开发.即便你抱着最好的意图,也不可能强迫干系人同意.当需求很难把握或者一直变动时,团队不应该依赖于传统工程需求收集的方法.最后,本章总结出团队应该拥抱变化,并采用基于迭代式需

《敏捷可执行需求说明 Scrum提炼及实现技术》—— 1.2 识别不确定性的影响

1.2 识别不确定性的影响 不确定性原理图如图1-2所示,这是Ralph Stacey的工作宽松适应图[6],它提供了一个可以帮助你将不确定性对"是什么"和"如何做"的影响的图形化模拟的示意图. 横坐标度量的是关于如何实现一个技术方案的不确定性程度.不确定性低代表的是过去曾经解决过类似的问题或者做过类似的决策.因此你可以从过去的经验里推断出某一行为导致的后果的确定程度.纵坐标衡量的是干系人之间需求的不确定性.当干系人们期待的软件产出物稳定且可预测性高时,不确定性程度

《敏捷可执行需求说明 Scrum提炼及实现技术》—— 第3章 使用短周期反馈环探索干系人的“愿求”

第3章 使用短周期反馈环探索干系人的"愿求" 上一章解决了当软件需求存在许多不确定性的时候,一个健康的团队.有着共同的愿景.有意义的共同目标和一组高级别的特征都很有必要.它们组成了引领团队前进的坚实基础.确定产品的愿景只是一个更庞大的创建成功的软件产品的流程的第一步.为了使软件产品成为现实,下一步就是学会如何应对干系人们持续变化的需求.首先,需要通过短周期反馈环的方式运用试错法,其次,你必须专注于干系人的愿望和需求.这就是本章的意图.

《敏捷可执行需求说明 Scrum提炼及实现技术》—— 2.7 验证“可能存在”的假设

2.7 验证"可能存在"的假设 所有的软件都是为了解决问题而存在的.这个关于存在的假设是所有解决问题的人们共同认可的通用起始点.这个"可能存在"的假设在人类创建任何事物时都会出现.开发人员总是从可能存在的解决方案,和该问题将会被解决的假设开始研发一款新的软件产品.有了愿景.有意义的共同目标,以及高级别的特征,产品负责人应该和开发团队坐在一起明确地验证"可能存在"的假设.另外还要确保每个人的理解都一致,这样能够快速发现技术问题.在"可能存