知易行难,软件架构设计到底要解决什么问题,说起来容易做起来难。架构师必须理清各利益相关方并了解他们的需求。换位思考(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. 测试架构师修炼之道读书笔记1

    前言 本书的价值? 讨论测试设计.测试方法.缺陷分析.质量评估等大家熟悉的测试技术. 讨论如何在工作中使用这些技术,指定出适应实际情况的策略,来是测试更为有效. 测试的核心是什么? 不是业务.测试方法 ...

  2. 架构师修炼之道学习笔记

    软件架构师的角色 架构师的职责 软件架构的组成 模块结构存在于设计阶段,组件连接器结构在软件运行时出现,分配结构展示模块元素与组件连接器元素之间,以及这些元素与现实的物理元素之间的协同与响应关系 软件 ...

  3. 【测试人生】《测试架构师修炼之道》阅读笔记

    <测试架构师修炼之道>一书,笔者入行一年多的时候拜读过.虽然这本书主要偏向业务测试.质量管理的方向,而并非技术测试.测试开发的方向,但只要是测试行业从业者,笔者认为都值得一看. 从笔者本人 ...

  4. 【新书速递】解决方案架构师修炼之道

    技术领域的发展日新月异,IT专业人员为了自身的职业发展,必须与时俱进地掌握新技能.然而,在过去的十年中,这种快速变化的趋势已经在云计算领域中占据主导地位,成为"新常态".现在,几乎 ...

  5. 爆肝分享!什么样的架构师修炼之道文档,才能帮助大家修炼成为最最出色的架构师?不服就干!绝不怂!

    前言 卓越的软件架构师从何而来? 所有程序员都有成为架构师的潜力,只要掌握了架构师的思维方式和工作方法,你也能成长为架构师. 本文教你如何像架构师那样思考问题.理解需求.设计架构.评估结果.编写文档. ...

  6. 【人工智能 AI 写书】《卓越架构师修炼之道》全书目录

    帮我写一本书的目录,书名<卓越架构师修炼之道>,总共10章,每章5个小节,细化到3级目录.用markdown格式. 文章目录 <卓越架构师修炼之道> 第一章 架构概述 第二章 ...

  7. 《架构师修炼之道》读书笔记之一:如何成为架构师

    1-001 软件架构师在团队中的角色描述 架构师在团队中的角色很独特,虽然做的更多的是软件架构的设计,但既要有研发经理的编码.部署等技术能力,也要有产品经理的业务能力,项目经理的交付能力,其在团队中的 ...

  8. 测试架构师修炼之道_学习笔记

    测试工程师职业发展 管理路线 测试组长 测试经理.测试主管 测试总监 技术路线 产品测试技术 把产品测试的更好的技术 专项测试技术 不针对具体的产品,而是测试领域普遍适用的技术 产品测试专家(即测试架 ...

  9. 复制:高效程序员的45个习惯敏捷开发修炼之道 读书笔记

    为什么80%的码农都做不了架构师?>>>    第一章 敏捷-高效软件开发之道 什么是敏捷开发方法? 从语法简单到c语言,从面向过程到面向对象语言到语言标准的建立,再到设计模式,以及 ...

最新文章

  1. nginx+tomcat配置负载均衡集群
  2. 库函数strlen源码重现及注意问题
  3. 每日程序C语言38-输入字符串求长度
  4. C++文件打开模式详解
  5. 代码实现从键盘接收一个字符串, 程序对其中所有字符进行排序,例如键盘输入: helloitcast程序打印:acehillostt...
  6. override和overload的小笔记
  7. Windows7下安装配置PostgreSQL10
  8. 全新的PDO数据库操作类(仅适用Mysql)
  9. SAP BC430 课程中文自学笔记
  10. java获取中文拼音,java实现根据汉字获取拼音
  11. 前端html和js编码设置
  12. Laravel文档 翻译合集
  13. 计算机技术职业资格考试
  14. EMC VMAX关于vault有关的概念
  15. js正则校验 统一社会信用代码
  16. Unity3D天气系统插件UniStorm 3.0.1.1 插件使用说明
  17. JVM上篇:内存与垃圾回收篇一--JVM与Java体系结构
  18. python输出成绩分析代码_Python根据成绩分析系统浅析
  19. DPU-PYNQ使用笔记
  20. FreeRTOS任务优先级和系统心跳Tick

热门文章

  1. Mysql修改服务中可执行文件路径
  2. vba 添加outlook 签名_如何在Outlook中添加默认签名
  3. 如何在vscode上调试php,如何用vscode进行单步调试
  4. matlab 心形曲线
  5. 推荐21款最佳 HTML 5 网页游戏
  6. Typora如何把图片上传到图床smms.app
  7. namenode启动报错,There appears to be a gap in the edit log. We expected txid 54314, but got txid 54452.
  8. 计算机毕业设计Java高原特色农产品网站设计(源码+系统+mysql数据库+Lw文档)
  9. SQL like子查询
  10. Citespace的英文文献数据导入