43 模块小结:什么是架构师成长的关键能力?
你好,我是郭东白。很快就到了这个模块的末尾,这节课我们来简单总结一下。
什么是结构性?
整个模块是从架构师的角色定义开始,而后引出架构师最核心的价值创造,也就是设计和实施结构化软件系统的能力。
不过这个定义其实把“架构师的核心价值创造到底在哪里”,转化成了“什么是结构性”这个问题。那么现在让我们再重新诠释一下模块导读中的这幅图:
“结构”这两个字在图中仅仅出现了一次,也就是架构师的准备阶段,程序员角色所必须具备的结构化设计能力。之后的四个能力,看起来似乎跟结构性没有什么关系啊?这是为什么呢?
事实上,另外四种能力,都是我们对“结构性”这个词内涵的拓展。
你应该还记得,我们在第37讲定义“结构化”时,使用了同质(Homogenous)这个词。请仔细回顾和思考整个模块三的内容,会发现我们在定义架构师的能力维度时,都维持了“同质”这个概念。但是在这个过程中,我们对每个能力维度到底要在哪些方面维持同质,也就是对同质这个词所描述的对象,作出了修改。
这些对象,其实就是不同架构师角色创造的结构性价值的作用域。用更朴素的语言来说,就是架构师不同成长阶段的领地。那么接下来,我们就总结一下在维持同质这个核心价值上,具有不同能力维度的不同架构师角色的领地是什么。
首先是程序员/代码的结构性,这是软件结构性的最小起点,指的是每个程序员提交的代码在设计上的一致性。代码是所有上层软件结构性的最终载体,也是现实世界中所有结构化决策,最终具象化到软件世界中的呈现方式。这种一致性的主要价值,在于代码的可维护性,以及代码易于变更、升级迭代和扩展的性质。
然后是兼职架构师/横向问题的解决方案。这是第一层抽象,也就是在多个代码模块中间共享同一个横向问题的解决方案,让横向问题的解决方案在多个模块中是一致的。这种一致性往往来自一个简单的组织抽象,也就是在多个代码模块中共享同一个有解决横向问题的兼职架构师。这种一致性的价值,就在于更低的实施成本和更高质量的解决方案。
接着是跨域架构师/整体的解决方案。这是第二层抽象,指的是在多个领域之间维持整个解决方案的结构性。这种结构性体现了设计理念、数据模型、信息交互的一致性,最终将促进整个领域的结构性。这种结构性的价值,就在于让整个领域的软件质量更高、可维护性更好、更容易升级迭代。
接下来是总架构师/决策原则。这是第三层抽象,指的是在软件架构相关投入上的决策原则,在整个企业内具有一致性。也就是说,总架构师的存在是为了保障企业在不同层次、不同领域上的软件投入的决策原则是同质的。这个决策原则,就是最大化技术的长期增值。
程序员、兼职架构师和跨域架构师,这三个角色都是在依照同一个假设来工作的。这个假设就是更高层次上的软件系统的结构性,会带来更好的外部适应性。这三个层次,按照从高到低的排序,依次是跨领域的、横向问题上的、代码层面上的一致性。
这些性质似乎是多多益善的。但事实上,实施这些假设需要投入研发成本、时间成本、甚至是机会成本才能完成。而一个公司中的研发资源是有限的,那么首先应该在哪个领域中的哪个层次投入呢?是否应该现在就投入呢?这就是要由总架构师通过最大化外部适应性的原则,来做出优先级决策的内容。此外,他也要为这些决策应该带来的预期商业回报和实际结果的一致性负责。
最后是CTO/企业生存优先的理念。这是最高层次的抽象,指的是理念上的一致性。我们在课程中提到了,从CTO的视角看,企业在决策理念上应该和CEO视角保持一致,也就是最大化企业的生存。在这个理念之下,企业的资源投入,不论是在技术、运营,还是市场,都应该和最大化生存这个目标保持一致。技术这个职能没有特殊性,仅仅是其中一个手段。
需要强调的是,这个理念背后是公平的价值观。而这个理念对整个公司来说都是极端对称的,是公平意志的体现。而这种理念一致性的价值,就是最大化企业的长期生存。
你可能会质疑,CTO这种终极的理念一致性,似乎已经超出了软件架构设计这个范畴。为什么我作为一个一线的工程师还需要学习呢?
在日常的架构决策中,你不一定会用到CTO这种视角。但是也要知道,寻求最大化生存这个理念,一定会体现在架构设计的方方面面,包括如何保证一个软件模块能够被快速变更,而不影响到整体的稳定性和结构性。
其次,我们在课程里不止一次提到过理念的一致性和规则的公平性。比如规则本身的对称性,对规则而不是权威的尊重,对架构师活动中共识的建设、决策信条的建设和迭代优化,等等。你肯定已经意识到了,这种理念的一致性,不仅对于CTO这个角色来说很重要,其实对于企业中每个职能的每个行动都至关重要。
这种理念的一致性,与我们在第14讲里提到的相信过程正义如出一辙。也就是说,这种理念一致性是渗透在日常行为中的,在职业生涯中是连续的,是和决策的规模无关的(Scale-Invariant)。小到一个团队内的设计评审和季度评优,大到整个企业的管理,保持理念的一致性,能让最终决策为大多数所认同,并被更高效彻底地执行。
能力成长的关键,在于发现和跨越障碍
我们整个模块内容都遵循着一个表述模式,就是要先看清楚目标:在一个新的角色上要解决什么问题?为什么这些问题需要开发一个新的能力维度?然后我们再分析:现有能力为什么不满足这个新的目标?最后再分析:成长出这个新能力维度,所需要跨越的障碍是什么?
如下图所示,完整表达了这个分析过程:
其实这是个非常有用的解决问题的模式,就是先找到问题的本质,再寻找解决问题的方法。从程序员成长到CTO的过程中。我们需要认识清楚的是每个重要的成长阶段,必须迈过去的是哪个坎儿,它为什么在那里,该怎么克服。
我相信你在学习的过程中已经意识到了:跨越这些障碍是件很不容易的事情,要付出成本。不过,我们从程序员一口气讲到了CTO,似乎每个人做架构师的终极目标就是成为CTO。真是这样吗?
我之前在做架构师演讲时进行过一个调研,问架构师学习班的学员和刚刚入行的架构师们“为什么要做架构师?”我得到最多的答案是“架构师挣钱多”和“架构师的权力大”。
我们先用挣钱这个目标来分析一下。事实上,一个大公司的资深架构师的现金回报,远远大于一个小公司的CTO。也就是说,如果仅仅以收入为优化目标,你不一定要一口气成长为CTO。
如果我们用权力这个目标来分析一下。同样地,你会发现一个大公司里管理者的管理幅宽,往往要大于一个小公司的CTO。此外,由于大公司的团队稳定性高,他们的管理理念更容易贯彻到每个人。
那么,在我们第一张图里表示的不同能力维度上的成长,跨越的那么多障碍,最终能得到什么呢?
答案很简单:你能够获得这些能力。或许这些能力和金钱、权力有一定的关系,但是这些回报,是由使用这些能力的场景规模和带来的具体商业回报决定的,与能力并不是直接相关的。
如果仅仅是得到能力的话,你还愿意投入吗?
我的答案是:当然愿意。我认为人生就是要最大化自己经历的丰富度,所以我非常喜欢自己从程序员到CTO的成长过程。每一段经历,都给我带来了不同的思考和体验。所以如果你向我咨询职业发展,我认为成长过程和获取新的能力维度的过程,才是最美妙的。我想象不出为什么任何一个有条件的人不这样做。
那么接下来我们就总结一下这些条件。
还有其他的必要和充分条件吗?
我们花了两节课去解释架构师成长的必要和充分条件。分析充要条件的目的,是帮你看清楚在架构师成长上的优势和不足在哪里;在当前所处的环境下,是否跟自己想成为一个优秀架构师的战略意图相匹配。
分析充要条件这件事,不但对架构师的成长很重要,我认为对你生命中的每个重要决策而言都很重要。我们的每一天都在发生变化。在这个变化的过程中,我们必须学会分析生命中那个战略意图的重要里程碑在哪里,是否能满足那个里程碑的充要条件。如果没有,要在哪些方面作出改变。
此外,我们还分析了一个公司能给架构师提供的机会密度有多大。如果想最大化架构师成长的话,应该到哪里去寻找最大的机会。如果把这几节课的内容总结成一句话,就是“不舍孩子套不着狼”。
怎么理解呢?给你分享一个故事。
有一次我的一个朋友远道来看我,我请他喝酒。喝到兴头上,他说自己的梦想是当一个CTO。我愣住了。他的层级不低,是一个大厂的P9。当时也有不少小公司在找CTO,应该有很多机会。于是我问他:“那你为啥不出去看看机会呢?我知道几家公司不错,要不帮你推荐一下?” 他吞吞吐吐地拒绝了,提起“自己是家里的顶梁柱”之类的话题。
如果他真想当CTO,在此之前肯定也遇到过不少机会。所以在我看来,他还在大厂中的确定性回报,与小厂中的冒险和决策机会之间徘徊。
我没有鼓励他去看CTO的机会,并不是我们的关系还没有好到可以直言相劝的地步。而是认为每个人都有自己的风险承受度,以及内心最喜欢做的事情。有的人内心可能很喜欢当一个CTO,但却无法承受能提供这种机会的高风险环境。所以我认为CTO对他的诱惑还没有那么大,否则他会想办法说服自己的。
所以说从程序员到CTO,还有一个隐含的必要条件,就是你成长的意愿,这也是最重要的条件。
小结
我们这个模块的内容就到这里了。回想我从中学时就开始兼职程序员,再到漂洋过海去求学,又在海外工作十余年,然后再回国,积累了6年的CTO工作经验与思考。这是一个非常大的时间跨度,从我第一次在少年宫接触计算机,那是单板机和巨型机并存的时代。而现在,已经跨越到了移动互联网时代。
在过去的三十多年里,计算机和人类的关系已经发生了巨变。再过三十多年,我想计算机和人类的关系必然会发生更大的变化。我写这篇总结时就在思考,到了那个时候,这个模块中提到的能力维度中,到底还有几个有存在的价值呢?很可能其中大部分能力已经不适用了。不过无论如何,我相信我们大多数人追求成长的欲望不会变,我也相信我们为人类创造生存优势这个理想不会变。
既然这篇是总结,那么我希望你也能为自己做个总结。在过去的一年里,你有什么成长吗?在未来一年,你希望自己能有哪些成长呢?你觉得自己或者公司在为人类创造生存优势上,做了什么事情吗?
期望这些思考能帮助到你,我们下个模块再见!
- tao_entropy 👍(8) 💬(1)
个人追求持续的成长,就得要不断的做决策,甘愿冒风险,从失败中学习。 另一方面,如果当前获得不的收益,通常权衡风险,就考虑得比较多。 看起来是要理性决策,但其实很复杂,感觉更多是人的性格决定的。你想到的,悟到的,做到的,这些都是真正筑成你。
2022-06-07 - 阜鸟 👍(5) 💬(1)
突然想起老婆经常反驳我 后悔之前多年为了钱没选择成长的抱怨 “你只有在不顺时才会后悔自己当年选择了钱,一旦顺利了还是钱第一” 不知道是不是很多人的写照
2022-09-05 - John(易筋) 👍(4) 💬(1)
留学路上的三个锦囊 这位台湾的前辈当时面临的就是要不要出国的选择,他同样也会有我们后来所面临的恐惧,遇到我们会遇到的困难。在出国前,他也很紧张,也担心这一步迈得对不对。于是他的老师在他出国前给了他三个锦囊。第一个锦囊让他到了美国后就拆开,第二个要他等到山穷水尽时再拆开,至于第三个以后什么时候想起来再拆开。 这位前辈到了美国后,过了海关,就打开第一个锦囊,上面写着“不要怕,去尝试”。拿着这条锦囊,他鼓起信心开始了在美国的留学生活。过了一段时间,他课程也跟不上,生活费也没有着落,似乎看不到希望,准备打退堂鼓了。想起了老师给的第二个锦囊,打开看到上面写着:“别气馁,再去尝试”。 这位前辈打起精神来,慢慢把问题一个一个地解决掉。后来他毕业进入到一家大公司。之后也不免遇到很多麻烦,他就用那句话鼓励自己:“别气馁,再去尝试”,走出了一个个困境。后来他结婚生子,家庭美满,事业也算有成,这时也就忘记了还有第三个锦囊。 只是,有时看到当年回到台湾搞半导体的同学,似乎工作更有成就,他不免反思,自己是不是路走得不对,当初真的应该出国吗,又真的应该留在美国吗?他想起了,第三个锦囊,找出来打开,只见上面写着“随缘,别后悔”。人在一个陌生的社会里,过的生活大抵就该如此吧。 --吴军 硅谷来信
2022-06-15 - 罗均 👍(3) 💬(1)
至心感恩东白老师的课程! 在过去的半年里,感觉自己最大的成长无疑是通过老师的课程,发现自己与一名软件架构师之间巨大的差距,从技术实践到思考力以及责任感等方方面面的差距。 学生计划接下来立即需要变化的就是主动寻求“高风险决策”,尽可能地apply老师教授的知识到实际的工作中。 学生不敢思考自己对公司和社会的贡献,只惭愧自己的能力和输出根本不配现在的收入和待遇!但求可以“日三省吾身”,尽力而为! 再次感恩老师!
2022-06-16 - 大土豆 👍(3) 💬(1)
老师,您认为架构师只存在于后端吗?前端和移动客户端也能有架构师吗?
2022-06-09 - 花花大脸猫 👍(2) 💬(1)
2022的成长:跨团队沟通能力提升不少,更加关注全局视角,接触了更多不确定性的事情,将自己从原先的被动接受转变成现在的主动去感知变化并积极投入其中 2023的期望:能够在面对紧急且不确定性问题时候,沉住气,不慌不乱;能够拓展自己的知识宽度,不仅仅在技术层面,更多的是在技术与业务视角全方位的提升。
2023-01-02 - Sochooligan 👍(2) 💬(2)
CTO在我理解,就是技术+管理,相应岗位很少,也不是普通开发者的出路。我觉得普通开发者应该是寻成为技术合作伙伴,寻找合作伙伴,再看看有没有机会。
2022-06-10 - spark 👍(2) 💬(3)
郭老师,take away~~~不要劝说朋友放弃大厂,失败是属于每个人自己的,置之于死地而后生,是没有机会的。为什么?有一个人,心爱的女人说,连kafka都能顺利编译通过,离找到工作的距离不远了~~~ 没有结构,就没有实现。不同问题和目的,结构不同。几个关键认知决定能力是否能跃迁成功,提出问题比解决问题更重要,左脑思维和右脑思维,意识和潜意识,架构师和产品经理,理性和情绪,数学、信息论、系统论、控制论~~~ 最后举一个例子,乔布斯,很多人想要模仿乔布斯,例如华为的手机,实际上有前置条件,乔布斯首先和整个产业、地球上优秀的人都是巨熟悉。然后,投入几万人研发才能做到现在这样~~~
2022-06-07 - maple-0406 👍(1) 💬(1)
我们公司只有业务架构师,没有系统或软件架构师一说,更多的是“兼职架构师”抽象角色;我希望在未来的一年内能够持续的保持学习力,对成长的渴求,在创造价值的这条路上越走越远。
2022-09-13 - 码农戏码 👍(1) 💬(2)
成长就如打怪升级,每个阶梯就是一个关卡,打过了每个关卡的boss,也就升级到下一个关卡。 从程序员到兼职架构师,全职架构师,再到最终的CTO 甚至CEO,想拥有结构化思维从思维导图开始 画了一下这个章节的思维导图 https://mp.weixin.qq.com/s/HRztB7W3zLUbwZcKD2eDiA 更有脉络感
2022-06-15 - 沈子砚 👍(1) 💬(2)
今年上半年的成长是克服了自己的心魔,内心变强大,又恢复成一个求知欲强、向上生长的人,默默努力,静等花开🌸
2022-06-08 - ACK 👍(2) 💬(0)
塔勒布的《反脆弱》中,统计的遍历性与这里的理念一致性有异曲同工之妙。统计的遍历性用于衡量系统的不对称风险,和识别系统的稳定性,有利于长期投资策略的评估和决策。 ------------------------------------------------------------------------------------------- 理念一致性是渗透在日常行为中的,在职业生涯中是连续的,是和决策的规模无关的(Scale-Invariant)。小到一个团队内的设计评审和季度评优,大到整个企业的管理,保持理念的一致性,能让最终决策为大多数所认同,并被更高效彻底地执行。
2023-08-10 - Geek_798202 👍(1) 💬(0)
今年最大的成长是听了架构师课程,让自己站在了更高的视角看问题,而不是困在一个技术领域里
2024-06-04 - Jaising 👍(1) 💬(0)
特别喜欢老师说的成长的意愿这几个字,从职场能力模型来看,意愿也是能力的根基与驱动,缺少成长的意愿,能力发展肯定是会受到制约的,只不过还要附上家庭抗风险能力、市场机会密度其他的条件,愿意扩充人生丰富度体验,根本上就可以得到成长的空间。 就个人而言,过去一年多也是经历了适应部门结构调整与个人角色重新定位的阵痛,从工程师尖刀兵变成项目与团队的协调推动者,能够愿意成为部门合作的润滑剂,能够附身接受琐碎的任务也是项目成功路径上的一环,能够意识并履行产品产生价值不仅在技术实力也在营销的观念,开始撰写自己的博客,记录可能不足为外人道却个人成长丰盈的经历。 总之,成长可以对抗焦虑与风险。
2023-12-19 - Dailianjie 👍(1) 💬(0)
过去的一年:接触跨域架构师的职责。 未来的一年:巩固跨域架构师的职责能力,并向总架构师迈进。
2023-10-06