本文转自台湾的李智桦老师的博客,原文地址

Impact Mapping 真是令人惊艳的可视化工具。等你看完这篇文章,你会爱上它的。

典故
继2011年6月Example of specification《实例化需求》一书的伟大贡献之后(获得 2012年 Jolt Award 年度最佳图书大奖),Gojko Adzic 说我会更努力地在需求这个领域里做出成绩来的,请期待。他果然没有让大家等太久,2012年10月他发行了 Impact Mapping《影响地图》这本只有三个部份,共73页的小册子。小册子只说明了一件事:如何把概念可视化 – Impact Mapping影响地图。它展现了一种「让需求可视化的能力」,用简单的 Why-Who-How-What的分析法,搭配结构化的显示方式,让工程师能够看见辛辛苦苦开发出来的功能是对应到哪一个业务的目标上。哈哈! 其实是倒过来的,因为它十分适合运用在需求还是极度抽象(概念)的时期,他让业务目标能够清晰化,让大家都能以较抽象的方式看出需要那些功能才能达成这样的业务目标。它能够串联出来一条相关的影响路径,并借着关联的图示化,让需求被看得见,这一点对产品的早期,还在做雏型设计的作业上有着极大的贡献。

  • 原文版: Impact Mapping: Making a big impact with software products and projects
    https://www.impactmapping.org/book.html
  • 中文版: 影响地图:让你的软件产生真正的影响力
    http://www.ituring.com.cn/book/1395

用Impact Mapping来分析电影 — 另类的诠释

这是我的最爱,运用电影来阐述演讲的情节内容(大概是2005年开始的,我记得当时讲的第一部电影是基诺.利瓦伊的驱魔神探 康斯坦丁,技术上要探讨的是微软 Message Queue 的理论)。手法是在演讲中拨放一段2到3分钟的电影精彩片段,让学员透过可视化的影像,试着联想着跟演讲主题的种种关联性,达到一种比单独听讲者演说更为有效的共鸣。这招用多了以后,就自然而然成为了自己演讲时的特色。一些熟识的学员,总会在上课前顺道问一下今天会放哪一部片子啊?!

但这回采用impact mapping, 则是真的用来分析电影用,与技术无关,假借着运用它可视化的能力,让没有看过这部电影的人也能像剧务一样的熟悉着每个场景(似乎讲得太夸张了,实质上只是画出它的路径而已,若是想要完全了解它,还是要配合着去看剧本吧,至于所有的功能描述,那是每个参与演出人的”脚本”),了解各个场景试图要带给观众的效果是什么,以及它所想达成的目标。以下便是电影白日梦冒险王(The Secret Life of Walter Mitty国内的翻译叫做《白日梦想家》)的影响地图(或许是它的主题曲太吸引人了,所以就选它的电影来当范例了。它叫: Stay alive)。

由左往右;依序陈列的是电影要达成的目标,有哪些重要的角色,而这些角色要强调的是那些特色,这些特色所需要的构成因子,最后是用怎样的剧情演出才可以获得这样的效果。(有一条可以依循的路径,好像就可以勾勒出the whole picture,这是我们在思维模糊期所最最想要的,寻找条可以依循的思路,这需要练习,来动动手吧!)

试着用这些数据,开始说故事吧:

  • 主角的目标(Why): 找到第25张底片,来做杂志最后一期的封面故事。
    人物主角(Who): 华特.米堤 Walter Mitty(由班·史提勒饰演)
  • 主角的个性特色(How): (1)爱做白日梦。(2)是典型的宅男。
  • 影响这个个性的描述(What): (1)表现得经常发呆、幻想。(2) 非常容易触景生情。(3)少年时打工后遗留下来的创伤,等等。
  • 场景(Scenario): 这是我自己加上的。因为要做这样的个性描述,该有怎样的布景来做配合,预备动用多少演员,准备拍摄多长的底片(也就是预备花费的成本)及脚本。

只是一张简洁的图示,针对 一个目标,陈述着;第一层、谁Who:指出主角人物,第二层、怎样How:格性特色的描述,第三层、什么What:列出影响的因素,再针对这些个因素设计出能够展现达成让观众引起共鸣的场景片段。最后再检验这些个片段是否能达成我们所默认的目标。这样便OK了!一出戏的极度抽象轮廓便可以成形了。
看着这张图示;不论是导演、演员或是剧务,依靠这样的说明,似乎看见了剧本中赋予这个角色的全貌,大家开始有了个基本的轮廓,也就是我们所谓的对主角、人物的轮廓, get the whole picture看见全貌(请注意Impact Mapping 是用来描述部分路径的影响因素的,然后分析有它或无它的影响性,而不是用来分析所有相关路径的全貌的,那太复杂了,也就是说;因为故事的全貌通常都会太过于错综复杂,远远超过这种直列式分析方式的范畴,就是关连性太高、太复杂了很难画出来,或是根本就画不出来,因此我们几乎不会把所有的相关因素都画出来,只把重点放在想要探讨的路径上)。

老实说,我好喜欢用它来分析电影。而且每当分析完电影的那一刻,我总会觉得(自以为是的)自己可以去当导演了(或许应该把这种方法介绍给李安吧!)。

因此这一段我先用电影来跟大家分享自己的心得。但运用在软件开发上,要怎么转换呢?

※请看它的使用者故事(应该说的是用例):
身为白日梦冒险王的主角,我希望能够表现得常常发呆、幻想,从此以后当大家提到Walter Mitty时就会想到我是一个爱做白日梦的人。

电影说完了,开始讲正课吧!

「谁Who」 刚好对照到使用者,「什么What」则是对到愿望,「怎样How」对照到利益。我们能够很容易地由可视化的影响因素,引导出相关的使用者故事。这一点刚好可以提供我们在向他人陈述故事时的关联性说明。

※附带一提;在撰写使用者故事的时候,应该是写三张卡片而不是一张。

  • 第一个故事卡片上描述实际的故事;
  • 第二个是占位符。为我们看到第一个故事后必然要做的改变保留位置;
  • 第三个故事卡片就完成那些改变后所需要做的优化。

依循这种方式,很快的你就会有一大堆用户故事了,当信息过多的时候,反而会让你看不到真正工作的主轴,此时便该是使用者故事地图出现的时候了

下面这一段参考自中文译本,是标准教材,到处都可找得到。但请记得;看完后挑一部自己喜欢的电影,制作它的影响地图,会很有成就感的!

何谓影响地图?

  • 一个简单却极高效的协作性的策略规划方法
  • 影响地图Impact Mapping是一门属于战略性的规划技术,通过清晰的沟通假设,说明团队根据总体业务目标调整其活动,以及做出更好的里程碑决策,影响地图可以说明组织避免在构建产品和交付项目的过程中迷失方向。
  • 影响地图可以有效的评估交付,作为质量回馈的标准之一。

影响地图的结构

它是这样的一个思维逻辑和组织结构:

为什么(Why)–>谁(Who)–>怎样(How)–>什么(What)

也就是:我们的目标是什么(Why),为了达成目标需要哪些人(Who)去怎样(How)影响,为此我们需要做什么(What)。影响地图通过构建产品和交付项目来产生实质影响,从而达到业务目标。

影响地图的特点

结构性:从业务目标到交付的结构化梳理和挖掘的方法,目标–角色–影响–产出物。
整体性:连接目标和具体交付物之间的树状逻辑图谱。
协作性:利益相关人一起沟通讨论协作,把隐藏在个人头脑中的默认的思维逻辑挖掘出来共享。
动态性:动态调整、迭代演进、经验证的学习。
可视化:一个清晰的视图,关联性的结构一眼可以望穿、易读。

它将各种角色以不同的视角,不同的思维逻辑,不同的前提假设,通过可视化和协作的方式进行整理、说明,相关性在座连接,一下子就串起来了。通过连接交付内容、影响和目标,影响地图显示了之所以去做某一个功能的因果关系,同时也可视化了各利益相关人所做出的假设。这些假设包括了:业务交付的目标,涉及目标关系人,及视图画所达到的影响。同时,影响地图沟通了两个层面的因果关系假设:

1、交付会带来角色行为的变化,产生影响;
2、一旦影响达成,相关的角色会对整体目标产生贡献。

小结

影响地图可以作为使用者故事地图的有效输入,它刚好可以很有秩序的产出使用者故事减少我们运用头脑风暴时所大量产出凌乱无序的使用者故事— 好的整理工具。它让我们看到了用户故事与业务价值之间的联系关系,这一点可以避免我们做了一堆没有商业意义的功能。最后;它能让我们在调整业务目标时,明确的判断哪些功能该继续做完,而那些功能可以不用做了。
还是用电影来做结尾吧! 影响地图是极度抽象的可视化产出物,就好比剧本里的人物关系图示,想知道真正的工作细项,还是得去阅读剧本/脚本吧! 下一回;我们就来谈谈使用者故事地图,它就是我所谓的剧本!

附上学员在上课时的作品:


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

转载于:https://www.cnblogs.com/wuyida/p/6300113.html

看见的力量 – (II) 影响地图相关推荐

  1. 影响地图:业务敏捷中你需要掌握的可视化力量

    当一个项目或一个需求给到研发的时候,通常业务最关心的是工期与成本.研发是基于上述要求交付产品的,这实际上是一种契约关系.契约关系的优点在于权责分明,而最大的问题是研发辛辛苦苦生产出来的产品,真的能够创 ...

  2. Scrum看板工具Leangoo脑图实现影响地图

    Leangoo 的5.8.12版本发布了Leangoo的脑图功能.Leangoo脑图是一个共享的思维导图,它具备了思维导图的所有属性,但它绝不仅仅是一个思维导图,那么Leangoo脑图有什么不一样呢? ...

  3. 用看板工具Leangoo思维导图实现影响地图

    影响地图是一个工具,它建立了业务价值到产品功能的映射.本文将介绍如何通过Leangoo脑图创建影响地图,并且基于影响地图进行需求规划. Leangoo 的5.8.12版本发布了Leangoo的脑图功能 ...

  4. OKR与影响地图,别再傻傻分不清

    摘要:OKR和影响地图虽然都是为了一个目标去进行规划的方法,但是两者侧重的内容却不一致. 本文分享自华为云社区<一分钟读懂OKR与影响地图>,作者: 敏捷的小智. 什么是OKR及影响地图 ...

  5. 你一定要知道的敏捷规划工具:影响地图

    摘要:影响地图就是一个很好的规划工具,它通过可视化和结构化的的形式,将业务目标和产品功能之间建立关联,确保实现的产品功能都是对客户有用,能为公司带来收益,有价值的. 本文分享自华为云社区<你一定 ...

  6. 敏捷开发:影响地图工作坊的反思

    在前两篇文章中我们对影响地图有了一个认知,本篇文章将继续为大家带来技术大咖在应用敏捷开发过程中的想法和思考. 1. 影响地图的作用 影响地图,它可以很好得把战略目标(不论是公司级的或产品.项目级的)和 ...

  7. 敏捷开发:一文了解影响地图和用户故事地图之间的那些事儿

    在日常的工作过程中,小编一直把影响力地图.用户故事地图和用户故事穿插在一起使用,就简单的介绍介绍这三者之间如何融合到一起,来进行产品设计的工作. 影响地图包含四个层次,why.who.how和what ...

  8. 产品价值分析:商业画布、影响地图、故事地图

    敏捷特别强调交付"价值"给客户,团队必须做对客户有价值的事情.所以,无论是开发还是测试,都需要关注产品的价值.测试具有保证质量的责任,之前谈质量,更多是从质量模型所定义的质量特性( ...

  9. 【日常点滴016】python游戏库arcade结合Tiled map editor地图编辑器和Pymunk物理引擎制作游戏过程记录,并最终打包为exe文件

    独此一家,建议收藏 前言 一.创建一个空白窗口 step001.py代码示例 二.创建很多全局能用的常量 step002.py代码示例 三.创建实例变量即代表各种精灵等的变量 step003.py代码 ...

最新文章

  1. SAP Ariba——全球最大的采购服务平台
  2. 不做CIO 就做首席架构师
  3. pandas 数据索引与选取
  4. java 数据库 字段名 转_Java正则表达式实现表字段名和驼峰式命名转换
  5. LPWA技术:发展物联网的最佳选择
  6. 如何用 Blazor 实现 Ant Design 组件库(二)
  7. 用随机梯度下降来优化人生
  8. 如何用java对接口发送请求_7. 用Java做接口测试1-发送HTTP请求和接收HTTP响应
  9. pytorch图像检索评价指标MAP
  10. 编程入门指南 v1.4
  11. SAP自学指南:案例公司的特点
  12. 【已解决】最新版本的Chrome浏览器如何设置网页编码
  13. C#开发中三层架构BLL,DAL还有IBLL和IDAL接口,请问为什么要定义接口?有什么用啊?
  14. 【nowcoder 110246】Dima and Salad
  15. 前端获取微信头像 base64 数据的踩坑实践
  16. 008 触发器实现三分频
  17. 处理 __iob_func 无法链接的问题
  18. 学计算机去旧金山,旧金山大学的计算机专业如何?
  19. 数据结构—二叉树线索化(线索化的先序、中序、后序遍历)
  20. 安装系统正在为首次使用计算机ghost,win7系统安装程序显示正在为首次使用计算机做准备的解决方法...

热门文章

  1. artcam2008 stp 教程_ArtCAM_中文版使用教程
  2. linux系统如何切换语言环境变量,Linux系统中如何修改某用户语言环境变量
  3. 石头扫地机器人音量怎么调_石头的新扫地机器人 T6,内外都有升级
  4. java获取前台值_SpringMVC接收前台传递过来的值的实例
  5. c# 以太坊代币_C代币
  6. Android CoordinatorLayout
  7. 使用Kotlin的Android ToggleButton
  8. c语言 ++ --运算符_了解C ++中的删除运算符
  9. guice依赖注入原理_Google Guice依赖注入示例教程
  10. 解决ASP.NET MVC(post数据)Json请求太大,无法反序列化,而报【远程服务器返回错误: (500) 内部服务器错误】...