-->

郭东白的架构课_54_43模块小结什么是架构师成长的关键能力

你好,我是郭东白。

很快呢到了这个模块的末尾,这节课呢我们就简单总结一下这个模块。

我们先来看看什么是结构性。

整个模块呢从架构师的角色定义开始,然后呢引出了架构师最核心的价值创造,也就是设计和实施结构化软件的能力。

不过这个定义呢,其实把架构师的核心创造到底在哪里?这个话题转化成了什么?是结构性这个问题让我们重新诠释一下模块导读中架构式成长阶段。

那张图结构呢在这个图里面仅仅出现了一次,也就是架构师的准备阶段,程序员角色所必须具备的结构化设计。

这个能力中你可能会说,之后的四个能力似乎跟结构性没什么关系呢?这是为什么呢?事实上呢,这另外四种能力都是我们对结构性这一个词内涵的拓展。

你应该还记着我们在三十七节定义了结构化这个词的时候呢,应用了同指homarginous这个词。

请仔细回顾和思考整个模块三的内容。

你会发现我们在定义架构师能力维度的时候,还是维持了同质这个概念。

但是呢在这个过程中呢,对每个维度上到底要维持什么东西。

同质也就是说同质这个词所描述的对象做出了修改。

这些对象呢其实就是不同架构师角色创造结构化价值的作用域。

用更朴素的语言来说,就是架构师。

不同成长阶段的领地。

我们呢简单总结一下,在维持同质这个核心性质上,具有不同能力维度的不同架构师角色的领地是什么?第一,程序员代码的结构性。

这呢是软件结构性的最小起点,指的是每个程序员提交的代码在设计上的一致性。

代码呢是所有上层软件结构性的最终载体,也是现实世界中所有结构化决策最终具象化到软件事件的些方式。

这种一致性的主要价值呢在于代码的可维护性以及代码,易于变更、升级、迭代和扩展的性质。

第二,兼职架构师横向问题的解决方案。

这呢是第一层抽象,也就是在多个代码模块,在共享同一个横向问题的解决方案,让横向问题的解决方案在多个模块中是一致的。

这种一致性呢往往来自于一个简单的组织抽象,也就是多个代码模块中共享同一个有解决横向能力问题的兼职架构师。

这种一致性的价值就在于更低的实施成本,以及更高质量的解决方案。

第三,跨域架构师整体的解决方案。

这呢是第二层抽象,指的是在多个领域之间维持整个解决方案的结构性。

这种结构性呢体现了设计理念、数据模型以及信息交互的一致性。

而这种一致性最终将促进整个大领域的结构性。

那么这种结构性的价值就在于让整个软件的质量更高,可维护性好,更容易升级迭代。

第四,总架构师决策原则。

这呢是第三层。

抽象指的是在软件架构投入相关的决策,原则上在整个企业内具有一致性。

也就是说呢,总架构师的存在呢是为了保障企业在不同层次、不同领域上软件投入的决策原则是同质的那这个决策原则就是最大化长期的技术增持。

在成为总架构师之前的三个架构师决策呢都是在依照一个假设来工作的。

这个假设是更高的软件系统的结构性会带来更好的外部适应性。

这三三个层次呢从高到低依次是跨领域的、横向问题上的和代码层面上的一致性,这些性质似乎是多多益善的。

但事实上呢,实施这些假设呢,都需要投入研发成本、时间、成本,甚至是机会成本才能完成。

而一个公司中的研发资源是有限的。

那么应该首先投入在哪个领域的哪个层次呢?是不是应该现在就投入呢?这是要有种架构师通过最大化外部适应性这个原则来做出优先级决策的内容。

此外呢,他也要为这些决策应该带来预期的商业回报以及实际结果的一致性负责。

第五CTO企业生存优先的理念,这个呢是最高层次的抽象,指的是理念上的一致性。

我们在课程里已经提到过了,从CTO的视角,整个企业在决策理念上应该和CEO的视角保持一致,也就是最大化。

企业的生在这个理念之下,企业的资源投入,无论是在技术运营还是市场,都应该和最大化生存这个目标保持一致。

技术这个职能呢没有特殊性,仅仅是其中的一个手畴。

包要强调的是呢,这个理念背后是公平的价值观。

这个理念呢对整个公司都是极端对称的,是公平一致的体现。

而这种理念一致性的价值呢就是最大化企业的长期生存。

你可能会质疑,CTO这种终极的理念一致性,似乎已经超出了软件架构设计这个范畴。

为什么?我们作为一个一线工程师,需要学习呢,在日常的架构决策中呢也不一定会用到CTO这种视角。

但是寻求最大化生存这个理念呢,一定会体现在架构设计的方方面面。

包括怎么保证一个软件模块能够快速被变更,而不会影响到整体的稳定性和结构性。

其次呢,我们在这个专栏里呢不止一次的提到过理念的一致性和规则的公平性。

比如说规则本身的对称性、对规则,而不是对权威的尊重,对架构师活动中共识的建设、决策、信条的建设和迭代优化等等。

你肯定已经意识到了这种理念的一致性,不仅对CTO这个角色来说很重要。

其么到企业中,每个职能的每个行动都至关重要。

这种理念的一致性呢跟我们十四节课提到的相信过程正义呢如出一辙。

也就是说呢,这种理念的一致性的渗透,在日常行为中的是你职业生涯中连续的和决策的规模无关的。

小到一个团队内的设计评审和季度评优,达到整个企业的管理,坚持理念的一致性能,让最终决策为大多数人所认同,并且能够更高效、更彻底的执行。

那么到这里呢,你就会发现,其实能力成长的关键在于发现和跨越障碍。

接下来呢我们再总结一下这部分的内容。

我们整个模块的内容呢都遵循一个表述模式,那就是首先要看清楚目标,在每个新的角色上要解决什么问题。

为什么这些问题需要你开发一个新的能力维度。

然后我们再分析现有的能力,为什么不满足这个新的目标。

最后再分析成长出这个新的能力维度所需要跨越的障碍是什么?我在文稿里放了一张图,完整的表达了这个分析过程。

其实呢这是一个非常有用的解决问题的模式,就是先要找到问题的本质,再要寻找解决问题的方法。

我们呢从程序员角色成长到CTO角色的过程中,你真正需要认识清楚的是,每个重要的成长阶段必须要迈过去的那些坎儿。

他们为什么在哪里?应该怎么克服?我相信你在学过程中已经意识到了跨越这些障碍呢是件很不容易的事情,要付出成本。

我们似乎一口气从程序员讲到了CTO,似乎每个人做架构师的终极目标,就是为了成为CTO.真的是这样吗?我之前呢在做架构演讲中做过一个调研,问架构师学习班的同学和刚刚入行的架构师为什么要做架构师呢?我得到答案最多的是架构师挣钱多和架构师的权利大。

我们先用挣钱这个目标来分析一下。

事实上呢,一个大公司里资深架构师的现金回报远远小于一个小公司的CTO.也就是说呢,如果仅仅以收入为优化目标,你不一定一口气要成长到CTO.如果我们用权力这个目标来分析一下,同样你会发现一个大公司里的管理者的管理幅宽,往往要大于一个小公司里的CTO.此外呢,由于大公司里团队稳定性高,他们的管理理念更容易贯彻到每个人。

那么我们在图里表示的不同能力维度上的成长跨越那么多障碍,你能够得到的是什么呢?答案很简单,你能够得到这些能力,获许这些能力和金钱权利有一定关系。

但是这些回报是由于使用这些能力的场景的规模,以及带来的具体的商业回报决定的。

跟你的能力并不是直接相关的。

如果仅仅是得到能力的话,你还愿意投入吗?我的答案是,当然愿意。

我认为人生就是要最大化经历的丰富度。

所以呢我非常喜欢自己从程序员到CTO的成长过程,每一段经历都给我带来了不同的思考和体验。

所以,如果你向我咨询职业发展,我认为成长和获取新能力维度的过程是最美妙的。

我想象不出为什么任何一个有条件的人不这样做。

那么接下来我就总结一下这些条件,看看是不是还有其他的充要条件了。

前面呢我们花了两节课去解释架构师成长的必要和充分条件。

分析充要条件的目的呢是帮你看清楚在架构师成长的这件事情上自己的优势和不足在哪里。

当前所处的环境是不是跟自己想成为优秀架构师这个战略意图相匹配,分析充要条件。

这件事情不仅对架构师成长这件事情很重要,我认为对你生命中的每一个重要角色都很重要,我们每天都在发生变化。

在这个变化过程中,你必须要分析你生命中那个战略意图,下一个的重要里程碑。

你是不是满足到达那个里程碑的充要条件?如果不是你需要做出什么改变?除此之外呢,我还花了一整节课程,分析了一个公司能够提供给架构师的机会,密度有多大?如果想最大化,架构师的成长,应该到哪里去寻找最大的机会?这节课和讲充分条件的两节课合在一起,如果能总结成一句话,那就是不舍。

孩子套不着牢,怎么理解呢?我给你讲一个故事,有一次呢我的一个朋友远道来看我,我请他喝酒,喝到兴头上。

他说自己的梦想是当一个CTO,我愣住了,他的成绩不低,是一个大厂的啤酒。

当时呢也有不少小公司在找CTO,应该有很多机会。

于是我问他,那你为啥不出去看看机会呢?我知道有几家公司不错,要不要我帮你推荐一下。

他吞吞吐吐拒绝了,提起自己是家里的顶梁柱之类的话题,如果他真想当CTO,在此之前肯定也遇到过不少机会。

在我来看,他一直在大厂中的确定性红回报,跟小厂中的冒险和决策机会之间在徘徊。

我没有鼓励他去看CTO的机会,并不是呢我觉得自己跟他的关系还没有好到可以直言相劝的地步,而是我认为每一个人呢都有自己的风险承受度以及内心中最喜欢做的事情。

有人的心里呢可能很想当一个CTO,但是呢他却没办法承受,能提供给他这种机会的高风险环境。

那么我认为CTO对他的诱惑还是没那么大,否则他会想办法说服自己的。

所以说呢从程序员到CTO,还有一个隐含的必要条件,就是你成长的意愿,这也是最重要的条件。

我们在这个模块的内容呢就讲到这里了。

回想我从中学开始就做兼职的程序员在漂洋过海求学,又到海外工作十余年,然后再回国积累六年的CTO,思考这一个非常大的试卷跨度。

从我第一次在少年宫接触计算机,那时候还是单板机和巨型机并存的时代,然后跨越到现在的移动互联网时代。

我们的时代呢正在发生巨大的变化,再去三十年计算机和人类的关系已经发生了变化。

再过三十年,计算机和人类的关系必然要发生更大的变化。

我在写这篇总结的时候,就在思考到那个时候这个模块中提到的能力维度,还有几个有存在的价值呢?我相信可能有的能力呢已经不再适用了。

但是不论如何,我相信我们大多数人中寻找成长的欲望会变。

我也相信我们为人类创造生存优势,这些事情也不会变。

既然这件事情是总呢,我也希望你对自己的过去经历呢做个总结。

在过去的一年里,你在现在的位置上有什么成长吗?未来的一年里,你觉得自己或者是公司在为人类创造生存优势上做了什么事情呢?希望这些问题和思考能够帮助到你。

呃,欢迎你把你的想法和思考分享,在留言区我会和你交流,也欢迎你把课程分享给你的朋友。

同时呢我也邀请你关注我的抖音号啊,从这周起呢我会在这个抖音号里发布和模块四相关的补充内容,那我们下节课再见。