设计系统的组织,其产生的设计和架构等价于组织间的沟通结构(转)沧海一滴

Architecturerepresentsthesignificantdesigndecisionsthatshapeasystem,wheresignificantismeasuredbycostofchange.

翻译为中文就是,架构表示对一个系统的成型起关键作用的设计决策,架构定系统基本就成型了,这里的关键性可以由变化的成本来决定。这句话是GradyBooch说的,他是UML的创始人之一。

进一步展开讲,架构的目标是用于管理复杂性、易变性和不确定性,以确保在长期的系统演化过程中,一部分架构的变化不会对架构的其它部分产生不必要的负面影响。这样做可以确保业务和研发效率的敏捷,让应用的易变部分能够频繁地变化,对应用的其它部分的影响尽可能地小。

架构的迭代和演化性

我是属于老一代的架构师,99年参加工作。职业初学了很多RUP,统一软件过程的理念。RUP的理念对我的架构有很深的影响,RUP总结起来就是三个特点:

RUP很注重架构,提倡以架构和风险驱动,该开始一定要做端到端的原型prototype;通过压测验证架构可行性,然后在原型基础上持续迭代和增量式开发,开发->测试->调整架构->开发,循环,如下图所示:

从上图可以看出架构师要尽可能写代码,做测试,纸上谈兵式做架构而后丢给团队的作法非常不靠谱(除非是已经非常清晰成熟的领域)。另外,做技术架构的都有点完美主义倾向,一开始往往喜欢求大求全,忽视架构的演化和迭代性,这种倾向易造产品和用户之间不能形成有效快速反馈,产品不满足最终用户需求,继续看下面两个图:

第一个图是讲最小可用产品(MinimumViableProduct,MVP)理念,做出最小可用产品,尽快丢给用户试用,快速获取客户反馈,在此基础上不断迭代和演化架构和产品。第二个图是过度工程(OverEngineering)的问题,其实也是讲产品架构和用户之间没有形成有效的反馈闭环,架构师想的和客户想的不在一个方向上,通过最小可用产品,快速迭代反馈的策略,可以避免这种问题。注意,在系统真正地投入生产使用之前,再好的架构都只是假设,产品越晚被使用者使用,失败的成本和风险就越高,而小步行进,通过MVP快速实验,获取客户反馈,迭代演化产品,能有效地减少失败的成本和风险。

构建闭环反馈架构

第一条道路,系统思维,开发驱动的组织机体,其能力不是制作软件,而是持续的交付客户价值,架构师需要有全局视角和系统思维(SystemThinking),深入理解整个价值交付链,从业务需求、研发、测试、集成,到部署运维,这条价值链的效率并不依赖于单个或者几个环节,局部优化的结果往往是全局受损,架构师要站在系统高度去优化整个价值交付链,让企业和客户之间形成快速和高效的价值传递。

第二条道路,强化反馈环,任何过程改进的目标都是加强和缩短反馈环。刚入行的工程师,也是中国学生的普遍问题,就是生产运维意识不足(监控是系统反馈的重要环节)。有两种花这样讲的:

这是一个电商平台的架构,整个体现了闭环架构的思想,右侧是整个平台的反馈监控环节。具体如下:

下面这个图展示了系统提升和改进的一般方法:

收集->测量->调整->闭环重复,在有测量数据和反馈的基础上,系统、应用、流程和客户体验才有可能获得持续的提升和改善,否则没有数据的所谓改进只能靠拍脑袋或者说猜测。

第三条道路,鼓励勇于承担责任,冒险试错和持续提升的文化。这点是最难的,一般和企业人才密度有关。工具,技术,流程只是一个公司的冰山浮出水面的部分,而真正对企业效能影响大的则是冰山水下的部分,即企业的人和文化,架构师作为技术和架构的布道者,有责任义务鼓励和推动试错文化。

这个图讲什么时候该引入微服务。微服务有额外成本的,需要搭建框架、发布、监控等基础设施。初创和小规模团队不建议采用。主要决定因素系统复杂性和团队规模,当到达一个点,单块架构严重影响效率才考虑。另外补充一点,微服务更多是关于组织和团队,而不是技术。

架构和组织文化关系

再谈一下康威定律:

Conway’slaw:Organizationswhichdesignsystems[...]areconstrainedtoproducedesignswhicharecopiesofthecommunicationstructuresoftheseorganizations.

(设计系统的组织,其产生的设计和架构等价于组织间的沟通结构。)

从单块架构到微服务架构是这个定律的很到体现。

团队是分布式的,系统架构是单块的,开发,测试,部署协调沟通成本大,严重影响效率,严重时团队之间还容易起冲突conflict。

将单块架构解耦成微服务,每个团队开发,测试和发布自己负责的微服务,互不干扰,系统效率得到提升。

可见,组织和系统架构之间有一个映射关系(1~1mapping),两者不对齐就会出各种各样的问题,一方面,如果你的组织结构和文化结构不支持,你也无法成功建立高效的系统架构,例如集中式和严格职能(业务,Dev,QA,Deployment,Ops)的企业,很难推行微服服务和DevOps,推行Docker/PaaS平台也会比较困难,这样的组织职能之间都倾向于局部优化(localoptimization),无法形成有效和合作和闭环。

反过来也是成立的,如果你的系统设计或者架构不支持,那么你就无法成功建立一个有效的组织;作为系统架构师,一定要深入领会康威定律,设计系统架构之前,先看清组织结构,也要看组织文化(民主合作式,集权式,丛林法则式,人才密度),再根据情况调整系统架构或者组织架构。

架构师心态和软技能

空杯,或者说开放心态(openminded)是一个成熟架构师的应有心态,stayhungry,stayfoolish,心态有多开放,视野就有多开阔。来自《高效能人士的七个习惯~史蒂芬~柯维》的一句话送给每一个架构师:

如果一位具有相当聪明才智的人跟我意见不同,那么对方的主张必有我尚未体会的奥秘,值得加以了解。与人合作最重要的是,重视不同个体的不同心理、情绪与智能,以及个人眼中所见的不同世界。与所见略同的人沟通,益处不大,要有分歧才有收获。

另外再推荐一个本书《软件架构师的12项修炼》,这书中三个观点很值得每个架构师学习领会:

政治指的是和他人协作将事情搞定的艺术,架构是一种社交活动,在技术的世界里,个人主义很容易被打败,即使你的目的是好的技术是最优的,技术决策是政治决策(technicaldecisionsarepoliticaldecisions),一个技术产品,一波人可以做,另一波人也可以做,到底谁做的好,真不好说,不管谁做,都给业务套上了一副手铐。

我对一些架构师争议主题的看法

主要争议是两个话题:

架构师怎么回答这类问题?一个成熟架构师的口头禅:视情况而定,不一定,是也不是,itdepends。技术和业务,架构师要理解业务吗,看产品和客户,如果是业务性产品,肯定要理解业务,如果是技术型产品,就不一定。

最后

我想说中国现在的互联网发展趋势很好,越来越多的人加入架构师这个行业,这个行业正在“万物生长”。但是我们现在还没有马丁·福勒,adriancockcroft这样的架构牛人物,我辈需不断努力,期待中国10~20年后出现超过十个马丁福勒,adriancockcroft这样的大牛神级人物。我们必不可停止探索,而一切探索的尽头,就是重回起点,并对起点有首次般的认识。

THE END
1.企业管理咨询组织行为学主动倾听表达了对对方的重视。通过主动倾听,倾听者比较易于从发言者的立场考虑问题,避免歪曲发言者的原意情绪控制-情绪过度激发的情况下,人不能清楚准确地表达与理解信息。这时最好停止沟通等待情绪的恢复 三、沟通方式 (一)沟通的方向沟通方向分为垂直沟通和横向沟通两大类。? 垂直沟通:指团体或组织中在高低各个...https://www.jianshu.com/p/fd485d7f8ce1
2.护患关系与沟通(护理知识)在护患关系中,可以出现沟通的各种层次,但重要的是让人们在感到最舒适的层次时进行沟通,不要强求进入较高层次,护士应经常评估自己的沟通方式,避免由于自己的行为关系而使治疗性沟通关系停留在低层次上。 (四)影响沟通、引起信息曲解的因素 1、信息发出者和接受者的个人因素: ...http://www.100md.com/html/Dir/2004/05/06/82/887.htm
3.人力资源管理六大模块期计划,这些规划与组织的其他规划相互协调联系,既受制于其他规划,又为其 他规划服务。 人力资源规划是预测未来的组织任务和环境对组织的要求,以及为了完成这些任 务和满足这些要求而设计的提供人力资源的过程。通过收集和利用现有的信息对 人力资源管理中的资源使用情况进行评估预测。对于我们现在来说,人力资源规 ...http://www.chinahrd.net/blog/264/1011645/263502.html
4.应对冲突的顶级策略(管理者必看)领导力应对冲突是每个老板、每个管理者一生都要学习的必修课,无论是组织还是个人都应具有解决冲突的意识和能力,创造高价值的组织协同机制和沟通机制。https://www.ceconline.com/leadership/ma/8800117197/01/
5.浅议团队建设个体在团队中受到的影响,往往能发挥超出个体原本的能力,也正是这种超常规的发挥使得优秀公司更加优秀。团队在组织中发挥着重大作用:公司组织结构中,团队作为公司内部自主合作、有效沟通、群策群力的弹性单位,是组织结构中最具备文化特质的部分,也是公司文化与组织有机结合,发挥最大效用的一个主体。据有关资料显示,有...https://www.zgsyb.com/news.html?aid=551680
6.五种沟通形态的比较五种沟通网络特点,利弊及其与绩效的关系其中,每个人都有可以同时与两个人沟通信息。在这个网络中,组织的集中化程度和领导人的预测程度都较低,畅通渠道不多,组织中成员具有比较一致的满意度,组织士气高昂。如果在组织中需要创造出一种高昂的士气来实现组织目标,环式沟通是一种行之有效的措施。https://www.360doc.cn/article/40285385_628723313.html
7.人际交往中的言语沟通和非语言沟通及人际传播组织传播大众...所以,我们要谨慎的运用语言沟通与非语言沟通。 人际传播、组织传播、大众传播的比较分析人际传播:是指个人与个人之间的直接的面对面的信息沟通和情感交流活动。 组织传播:是组织所从事的信息活动。它包括两方面,一是组织内传播,二是组织外传播,这两方面都是组织生存和发展必不可少的保障。 大众传播:是一种信息传播...https://max.book118.com/html/2020/1201/6231104143003030.shtm
1....注重与其他团队的交流和合作,还是更侧重于内部团队的沟通与...团建活动中注重与其他团队的交流合作还是内部团队的沟通合作? 作为专业的拓展培训和团建活动策划公司,我们深知团队建设的重要性。在北京的团建活动中,注重与其他团队的交流合作和内部团队的沟通合作都是至关重要的。在这篇文章中,我们将从凝聚力、创新能力、互补优势和合作机会四个方面来详细阐述。 https://www.youshanclub.com/news/54985.html
2.提高公司内部跨部门沟通的方法和技巧现在众多企业都趋于扁平化,使得跨部门之间的沟通更加频繁。部门之间地位平等,不存在上下级关系,按说沟通应该比较容易。但现实的情况是,部门之间协调的成本相当高昂,这种沟通成本不仅存在于大规模组织内,同样也困扰着中小型公司。下面是yjbys小编为大家带来的提高公司内部跨部门沟通的方法和技巧,欢迎阅读。 https://www.yjbys.com/edu/guanligoutong/348254.html
3.2021年河南专升本管理学真题及答案解析普通专升本A.存在于编码的过程中 B.存在于解码的过程中 C.存在于传递的过程中 D.存在于全过程中 39.下列影响有效沟通的障碍中,不属于人际障碍因素的是( )。 A.表达能力 B.知识和经验差异 C.个性与关系 D.组织结构 40.两个或两个以上更多人的冲突属于( )。 A.个体内部冲突 B.人际冲突 C.群体间冲突 D.组织间冲...https://www.educity.cn/zhuanjieben/363076.html
4.组织的分工与协作(精选8篇)肇始之时,必有章程,拟定组织之职能与架构,安排人员与资源,使各部分各负其责,将组织之任务,分列于各部门之中,因任务之需求尽力设置长于此道之人员,以求尽速尽美完成,此为组织之分工。然各部门之间,接手及完成各有先后,必须有部门间之沟通协调,方能使任务之状态随时可见,遇到困难及时调集人力物力予以解决,以使...https://www.360wenmi.com/f/file5h9svm30.html
5.高效沟通的案例分析7篇(全文)现代社会,不善于沟通将失去许多机会,同时也将导致自己无法与别人的协作。你我都不是生活在孤岛上,只有与他人保持良好的协作,才能获取自己所需要的资源,才能获得成功。要知道,现实中所有的成功者都是擅长人际沟通、珍视人际沟通的人。一个人能够与他人准确、及时地沟通https://www.99xueshu.com/w/file0ie1rbu6.html
6.如何进行人才mapping(长文)确定公司之后一定不是立马去搜索人才,开启沟通。 一个mapping的进行,为了提高效率,通常由一个团队来做,所以共识方向、mapping框架和分工,是极其重要的一环。 在确定目标公司之后,我们一定要先通过公开的渠道以及已有的资源例如人才库等,先粗略的将目标公司的组织架构图画出来,例如有几个BU、有几个层级、什么时间有哪...https://maimai.cn/article/detail?fid=1811615222&efid=Kb5gzvHqTBGqSOlTYOuCBA