《架构师修炼之道》读书笔记之五:换位思考
知易行难,软件架构设计到底要解决什么问题,说起来容易做起来难。架构师必须理清各利益相关方并了解他们的需求。换位思考(Empathy,同理心)是推动设计的引擎。只有站在利益相关方的角度思考和处理问题,才能开发出更好的软件。
5-001 找合适的人交谈
利益相关方通常与软件有商业利益关系,可能会为软件付费或者从中获利。利益相关方往往不止一人,与团队合作不同于与个人合作。来自同一利益相关方的两个人可能会提供不一致甚至冲突的信息,架构师需要了解整个团队的想法,甚至需要帮助他们达成共识。本书中,作者给出其所开发的名为Lionheart项目的利益相关方及其想法如下图所示:
5-002 创建利益相关方关系图
利益相关方关系图呈现了与软件系统有关联或受其影响的人,它将人与人之间的关系和互动进行可视化呈现。还能大致展示不同利益相关方的动机,可利用它确定需要沟通的关键人物。
架构是为客户服务的,如何确保架构能够为客户带来价值呢?通用电气的软件架构师的办法是运用 “ 以客户为中心 ” 的设计流程。先搞清楚谁是客户,他们想做什么;然后将系统按照客户的任务进行划分。架构师需要了解每项任务的启动步骤,以及哪里容易出错。这样,由表及里,确保深层结构能实现客户价值,通用电气将其称之为 “ 客户体验架构 ”,设计流程如下:
1)观察客户在正常流程下如何完成任务,向对方提问,确定对客户至关重要的事项,包括功能需求和质量属性需求。
2)围绕客户需求设计系统并记录在原型里。原型应尽可能具有交互性,而不仅仅是流程图。
3)尽早与客户一起评审原型,确保对方真正了解新系统的变化,以及这些变化对他们的影响。
4)根据客户评审会上的反馈修改调整架构设计。
运用以上四个步骤,就能通过架构为客户创造价值。作者在书中给出Lionheart项目的利益相关方关系图如下:
右图中可以看出:谁为软件付费、谁使用软件、哪些人处在关系图的中心(有许多指入或指出的箭头)、有哪些潜在的利益冲突,这些都是首先应该见的人。
5-003 了解业务目标
业务目标是利益相关方希望通过软件实现的东西。系统的质量属性、权衡取舍、技术债务都要以业务目标为基础,常见的业务目标如下表所示:
主体 | 目标 |
个人 | 增加收入,扩大知名度,享受生活,获取知识 |
组织 | 增加营收,实现利润最大化,发展业务,成为市场领导者,提高稳定性,进入新市场,击败竞争对手 |
员工 | 获得工作意义,获取知识,帮助用户,成为专家 |
开发团队 | 提升指定的质量属性,降低成本,增加新功能,实施标准,缩短上市时间 |
国家/政府 | 安全,福利,社会责任,公民遵纪守法 |
5-003-01 记录业务目标
业务目标应是可衡量的,有明确的成功标准。这样的业务目标至少包含三个方面:
1)主体:特定的人或角色。如果利益相关方有名称,就加上名称。
2)结果:用可衡量的结果表达利益相关方的需求。如果系统成功,会带来哪些变化?
3)背景:背景信息有助于我们进一步理解利益相关方的需求。
本书作者基于Lionheart项目的利益相关方关系图给出该项目的业务目标如下:
大多数系统只要三到五个业务目标。目标太多难以理解和记忆。与多个利益相关方合作时,一定要标注目标的相对重要性,如:必须有(must have)或者最好有(nice to have)
5-003-02 帮助利益相关方描述业务目标
架构师应准备一些简单的模板,帮利益相关方用可衡量的方式表达需求。一种类似用户故事的观点填空模板如下:
(利益相关方) + (利益相关方的需求) + (背景)
(云顿市长)希望(降低30%的采购成本)因为(他不想消减其它基础服务的预算)
架构师应与产品经理或其它业务相关方合作,确定系统的业务目标。如果他们也不能清楚地描述业务目标,架构师要与他们一起搞清楚,他们也要对项目负责。
《架构师修炼之道》读书笔记之五:换位思考相关推荐
- 测试架构师修炼之道读书笔记1
前言 本书的价值? 讨论测试设计.测试方法.缺陷分析.质量评估等大家熟悉的测试技术. 讨论如何在工作中使用这些技术,指定出适应实际情况的策略,来是测试更为有效. 测试的核心是什么? 不是业务.测试方法 ...
- 架构师修炼之道学习笔记
软件架构师的角色 架构师的职责 软件架构的组成 模块结构存在于设计阶段,组件连接器结构在软件运行时出现,分配结构展示模块元素与组件连接器元素之间,以及这些元素与现实的物理元素之间的协同与响应关系 软件 ...
- 【测试人生】《测试架构师修炼之道》阅读笔记
<测试架构师修炼之道>一书,笔者入行一年多的时候拜读过.虽然这本书主要偏向业务测试.质量管理的方向,而并非技术测试.测试开发的方向,但只要是测试行业从业者,笔者认为都值得一看. 从笔者本人 ...
- 【新书速递】解决方案架构师修炼之道
技术领域的发展日新月异,IT专业人员为了自身的职业发展,必须与时俱进地掌握新技能.然而,在过去的十年中,这种快速变化的趋势已经在云计算领域中占据主导地位,成为"新常态".现在,几乎 ...
- 爆肝分享!什么样的架构师修炼之道文档,才能帮助大家修炼成为最最出色的架构师?不服就干!绝不怂!
前言 卓越的软件架构师从何而来? 所有程序员都有成为架构师的潜力,只要掌握了架构师的思维方式和工作方法,你也能成长为架构师. 本文教你如何像架构师那样思考问题.理解需求.设计架构.评估结果.编写文档. ...
- 【人工智能 AI 写书】《卓越架构师修炼之道》全书目录
帮我写一本书的目录,书名<卓越架构师修炼之道>,总共10章,每章5个小节,细化到3级目录.用markdown格式. 文章目录 <卓越架构师修炼之道> 第一章 架构概述 第二章 ...
- 《架构师修炼之道》读书笔记之一:如何成为架构师
1-001 软件架构师在团队中的角色描述 架构师在团队中的角色很独特,虽然做的更多的是软件架构的设计,但既要有研发经理的编码.部署等技术能力,也要有产品经理的业务能力,项目经理的交付能力,其在团队中的 ...
- 测试架构师修炼之道_学习笔记
测试工程师职业发展 管理路线 测试组长 测试经理.测试主管 测试总监 技术路线 产品测试技术 把产品测试的更好的技术 专项测试技术 不针对具体的产品,而是测试领域普遍适用的技术 产品测试专家(即测试架 ...
- 复制:高效程序员的45个习惯敏捷开发修炼之道 读书笔记
为什么80%的码农都做不了架构师?>>> 第一章 敏捷-高效软件开发之道 什么是敏捷开发方法? 从语法简单到c语言,从面向过程到面向对象语言到语言标准的建立,再到设计模式,以及 ...
最新文章
- nginx+tomcat配置负载均衡集群
- 库函数strlen源码重现及注意问题
- 每日程序C语言38-输入字符串求长度
- C++文件打开模式详解
- 代码实现从键盘接收一个字符串, 程序对其中所有字符进行排序,例如键盘输入: helloitcast程序打印:acehillostt...
- override和overload的小笔记
- Windows7下安装配置PostgreSQL10
- 全新的PDO数据库操作类(仅适用Mysql)
- SAP BC430 课程中文自学笔记
- java获取中文拼音,java实现根据汉字获取拼音
- 前端html和js编码设置
- Laravel文档 翻译合集
- 计算机技术职业资格考试
- EMC VMAX关于vault有关的概念
- js正则校验 统一社会信用代码
- Unity3D天气系统插件UniStorm 3.0.1.1 插件使用说明
- JVM上篇:内存与垃圾回收篇一--JVM与Java体系结构
- python输出成绩分析代码_Python根据成绩分析系统浅析
- DPU-PYNQ使用笔记
- FreeRTOS任务优先级和系统心跳Tick
热门文章
- Mysql修改服务中可执行文件路径
- vba 添加outlook 签名_如何在Outlook中添加默认签名
- 如何在vscode上调试php,如何用vscode进行单步调试
- matlab 心形曲线
- 推荐21款最佳 HTML 5 网页游戏
- Typora如何把图片上传到图床smms.app
- namenode启动报错,There appears to be a gap in the edit log. We expected txid 54314, but got txid 54452.
- 计算机毕业设计Java高原特色农产品网站设计(源码+系统+mysql数据库+Lw文档)
- SQL like子查询
- Citespace的英文文献数据导入