100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 《架构师修炼之道》读书笔记之五:换位思考

《架构师修炼之道》读书笔记之五:换位思考

时间:2019-06-17 15:02:14

相关推荐

《架构师修炼之道》读书笔记之五:换位思考

知易行难,软件架构设计到底要解决什么问题,说起来容易做起来难。架构师必须理清各利益相关方并了解他们的需求。换位思考(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%的采购成本)因为(他不想消减其它基础服务的预算)

架构师应与产品经理或其它业务相关方合作,确定系统的业务目标。如果他们也不能清楚地描述业务目标,架构师要与他们一起搞清楚,他们也要对项目负责。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。