[Engineering] 设计模式奏鸣曲(六):沟通结构

1. 沟通结构

计算机科学家 Melvin Conway 在1968年的一篇文章中提到,

Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations.

即,产品结构反映了设计该产品的组织的沟通结构

后来这句话被人们称为,康威定律
康威定律并不是一种心得体会,而是对软件项目所进行观察的结果。

在软件工程中,假设模块A通过接口依赖模块B,
那么,模块A的开发者,就不得不与模块B的开发者,就如何使用模块B进行沟通
反之亦然。

因此,软件系统各模块之间的接口结构,和人与人之间的沟通结构是一致的。
对模块B而言,一旦关注到它的外部特征,就意味着需要与人进行沟通,
有一些必要的信息,必须在接口层面达成共识

A description of a system, if it is to describe what goes on inside that system, must describe the system's connections to the outside world, and it must delineate each of the subsystems and how they are interconnected.

在描述一个系统的时候,除了描述系统内部发生了什么,
还必须描述该系统是怎样与外界进行交互的。
而描述系统内部的时候,同时也要谈及子系统之间是怎样交互的。

作为实现者,关注系统的外部特征,是一件很容易被忽视的事情。

2. 利益相关者

利益是影响人们决策的一项重要因素。

要想促成一件事,那就应该头脑清醒,小心行事,
着眼于利益,而不是立场。

立场是已作的决定,而利益是导致作出这一决定的原因。

谈判力》一书中提到,谈判的目的就是实现自己的利益。
在谈判发生冲突的时候,应当首先确定双方的利益,
问问自己,为什么没有那样做,那样做会影响到的什么利益?

仅仅根据个人喜恶来做出决定,是一个常见的误区。
程序员们在讨论代码品味的时候,很容易犯这个错误。
优雅的代码是需要付出代价的,很多现象都是做出让步的结果。

软件系统架构》中提到了架构设计中必须考虑的利益相关者(stakeholder)这一概念,

Stakeholders are the people for whom we build systems.
A key part of your role as an architect is knowing how to work with stakeholders in order to create an architecture that meets their complex, overlapping, and often conflicting needs.

好的系统架构必须满足所有相关者的利益
优雅的架构不见得能够落实下去,
必须所有参与者同意这样落实才行。

3. 开发者的外部影响

3.1 像企业一样思考

作为一名开发者,我们所售卖的是把想法变成软件的开发服务
企业需要持续不断地改进和完善自己的产品,
我们也应该这样做。

作为一名开发人员,除了要提供有形的价值之外,
还要传达,我们提供的开发服务,与成千上万名其他开发人员提供的服务有什么不同。
企业应该运营自己的产品,我们也应该这样做。

所以,我们应该关注当前提供了怎样的服务,
以及如何营销这项服务,
想方设法提高服务的品质,并且让更多的人知道它。

3.2 强行推行自己的方案?

在采取行动说服别人接受我们的方案之前,应该先想一想,
我们是在解决问题,还是在推行方案

售卖锤子的供应商,会更笃定客户遇到了锤子可以解决的问题。
其实未必。
能否放弃现有方案,往往暗示着是否真的存在问题

要解决正确的问题,最困难的莫过于把目光从自己最倾心的方案转移到其他方案了。
—— 《布道之道

此外,有些人是不关心问题能否被解决的,
那么这些人就不是问题的主体
在解决问题的时候,应该努力避开这些干扰因素。

因为他们的个人爱好,兴趣态度,会误导我们对方案作出不正确的判断。
毕竟,谁会为问题买单,谁才会关心问题的进展。

结语

本文从系统的信息和价值流动的角度进行分析,
强调了系统的设计者应该关注的一些外部因素。

比设计一个系统更难的是发现真正的问题,并说服各参与者合力将它解决,
这会涉及不断的与人沟通,协商,谈判和推动。

系统本身即使再优雅,如果不能给使用者带来任何收益,
就没有价值流向开发端,入不敷出,
这样的系统是不长久的,企业必须以盈利为目的才能存活下去。


参考

CONWAY'S LAW
How Do Committees Invent?
谈判力
软件系统架构
布道之道
软技能:代码之外的生存指南
你的灯亮着吗

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,509评论 6 504
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,806评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,875评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,441评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,488评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,365评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,190评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,062评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,500评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,706评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,834评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,559评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,167评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,779评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,912评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,958评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,779评论 2 354

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,111评论 25 707
  • 又一个情人节过去了,什么都没有说,也许是我误会,看着你的话就觉得是兴师问罪,不想接了,不想回答了,累了,跟一个不明...
    初兰阅读 279评论 0 0
  • 我有很多情话,但都只对你说。 我们在一起的时候,爱的热烈,不顾所有人的反对,甚至很强烈的 不赞同。可你依然坚决要和...
    顽皮的小马甲阅读 235评论 0 3