你好,我是郭东白,是一个做了 15 年架构师和 6 年 CTO 的人。
我先简单介绍一下自己。我从布朗大学(Brown University)获得博士学位后,在美国甲骨文、微软和亚马逊陆续工作了 15 年,做过研发、研发经理、 产品经理、数据架构师等等。2014 年,我回国加入阿里巴巴。
在阿里,我刚开始是 AliExpress 的首席架构师,后来成为 AliExpress 的 CTO。之后,我又到新加坡的 Lazada 担任集团 CTO。现在呢,我是车好多(即瓜子二手车母公司)集团的 CTO。
从我的“偶然成功”经历说起
看我的职业经历,你可能会觉得我很成功。不过,我一直认为自己是一个“偶然的架构师(Architect by chance)”。为什么这么说呢?我发现我性格上有一些成为优秀架构师的必要条件,比如自信和勇气。而我自己的人生经历又使我获取了一些机会,让我在架构师这个职业的发展上,比很多人要幸运那么一点。
我也开始反复思考,我这些所谓的“成功”,真的可以帮助到你吗?
在今天互联网行业这么内卷的大环境下,我过去的行为其实根本没办法保证我的成功可以复刻。但在梳理思路的过程中,我有一个想法越来越强烈:

假设我能有个时光机,回到二十多年前,把我今天写下来的架构方法论和成长建议给到那时的我,那我的人生肯定还会大有不同,绝对比现在幸运十倍甚至百倍。

事实上,我要写下的这些架构方法论并不是独特的发明创造。它们都很朴素、简单。它们在二十年前就已经存在,现在依然存在。它们在我身上适用,在我近距离观察到的其他优秀架构师身上也适用。
但如果不是我自己在一些事情上碰得头破血流,我就完全不会注意到,或者真正理解,更别说运用好这些原则了。这也是我下决心写这个专栏的原因。把我对这些原则思考的路径和推导的过程写出来,以提升你作为架构师的判断力和思考质量。
架构师不仅需要关注当下流行什么,要选择什么方案、用什么开源框架。一个以架构师为职业的人,更需要有战略意图和思考力,比如:

  • 在一个架构活动中到底应该关注什么?干预什么?
  • 如何通过架构方案为团队或企业创造价值?
  • 如何在各种资源条件的制约下,去实现架构目标?
  • 如何通过价值创造让自己变得不可或缺?

对这些问题的回答,可以让你在架构师的职业成长过程中有一个明确的方法论和取舍,让你对自己的职业成长有更清晰的路径规划,让你少走一些弯路,多一些成功机会。这就是我想交给 20 年前的自己的建议。
通过这门课,我期望能帮助你在架构师的成长这件事情上定义一个战略,提升你做架构师的成功概率。最终我期望达到的程度是:你能够设计出自己的职业成功(Architect career success by design),而不是靠运气得来的职业成功(Career success by chance)。我也希望把我这些年的经验总结分享给你,让你少走弯路,否则你靠运气赚来的架构机会,也必然会因为你的实力不济而败干净。

建立你的架构师成长战略

刚刚我提到了架构师的成长需要定义一个战略。我为什么这么说呢?为什么你不能像我一样成为一个“偶然的架构师”呢?
我有一个坚信的理念:要想在架构师这个职业上超越别人,你必须要尽早建立好你的架构师成长战略。
我喜欢读史书和人物传记。我在大量的阅读中发现有一类人的成功,比如亚历山大,平常人是无法复制的,因为我们在“拼爹”这个环节就已经失败了。但有一类人,像埃隆·马斯克(Elon Musk)、史蒂夫·乔布斯(Steve Jobs)和蔡志忠,他们的成功经验是有迹可循的,可以拿来学习实践的。
怎么学呢?我借用企管学者哈莫与帕哈拉德(Hamel & Prahalad)在Strategic Intent这篇文章里提到的一个概念:“过去 20 年中达到世界顶尖地位的公司,每一家都有战略意图(Strategic Intent)”。
所谓战略意图,就是拥有与其资源和能力极不相称的雄心壮志。你把公司换成马斯克、乔布斯和蔡志忠等人,或者你身上,这句话同样适用。每个想达到顶峰的人,都应该有自己的战略意图。

哈莫与帕哈拉德还特别提到,只有这种极度的不相称性,才会让一个公司愿意突破常规,为自己创造机会,成功挑战不可能。
我想这么来定位我的整个课程:“假设你有做一个全球顶尖架构师的战略意图,那么我可以帮你把这个战略意图设计得更完美一点儿。”注意,重点不是说我是全球顶尖的架构师,而是说假设你在我的思考之上开始你的架构师生涯,我相信你会比不具备这些思考的人更有优势。
在我看来,当前软件行业的大量人才供给和全球范围内的残酷竞争,导致人才胜出更加不易,这也使得战略意图对职业成长产生的价值越来越大。可以说,缺少战略意图,你将很难成长为一名优秀的架构师。

我会怎么设计这门课?

那么,该怎么培养自己作为架构师的战略意图呢?我先要给你一个我的答案:靠记忆和技能学习,是成不了一个好架构师的。真正的架构师成长,主要靠思考力的提升。所以,在这门课中,我不会也不能教你所谓的架构技能八法,给你现成的答案。而是会通过三种方法,来培养你的思考习惯,让你和我一起完成关于软件架构方法论和职业成长的思考。

第一,使用演绎法来寻找架构原理,而不是归纳法。

课程里的很多知识听起来都是常识,似乎不需要推导,但我会花很长篇幅去解释背景、引用定律,最后推导出一个行为模式或架构法则。
虽然只学习最终推导出的结论,也可以帮助你成长。但更重要的是,我希望通过深度理解推导细节,锻炼你日常工作中运用演绎法来寻找规律的习惯。
这个过程就好像你和我一起去经历我 20 多年的架构生涯,然后在我的基础上,让你用更好的思考力来逼近真理,放大自己的价值。
需要特别说明的是,我会把我的全部推导逻辑描述出来,所以必然会显示出我思考中不完美的地方。这个时候,更期望你能指出我逻辑中的瑕疵,我们共同提升。因为在帮助我提升的过程中,也会引导你找到你自己的架构哲学和存在价值,就像尼采说的,Find your own way。

第二,我会穿插一些基本的架构方法、思维工具和建模技能,来帮助你提升架构素养。

有两方面原因。首先是浅层次的考虑,架构师的日常工作,就是借助一些常见的思维工具来完成的。但我发现我周围很多架构师由于不思考这些工具背后的意图,很难使用正确。如果使用不当,别人看一眼你的图,下意识就会觉得你缺少架构素养,那么你作为一个架构师的信任度就会被大打折扣。
然后是更深层次的原因。我个人坚信一个理念,就是软件架构虽然需要深度思考,但它更是一门实践的科学,必须学以致用。
整门课看似是理论课,但更是一个架构建模的实战案例。我用架构建模的语言、工具和思维方式写一门教你怎么做架构师的课,输出我体系化的深度思考过程,而你也需要经过一段痛苦的逻辑锻炼,来应用你对架构的思考。这就是“我做你看(Teach by example)”。

第三,课程中会有大量案例,都是根据我的真实经历加工而成的。

之所以需要加工,是因为一个完整的真实案例,会有太多的支线信息。去掉这些,可以帮你理清主线。不过更关键的是,案例只是一种学习手段,启发思考才是学习的目的。案例始终是要服务于课程目标的。
因而当你看到一个似曾相识的案例时,请不要尖叫,也不要试图对号入座,更不要去猜测这个案例是不是跟某人或某公司相关。如有雷同,纯属巧合。

我会怎么帮你设计战略意图?

这个专栏分为四个模块,覆盖了架构师职业成长的四个不同维度。

模块一:六大生存法则

生存法则,就是你作为架构师必须要尊重的一些原则。如果违背,你指导的架构活动可能会面临巨大的失误,而你作为一个架构师的生存也会受到威胁。

影响架构活动成败的因素,主要有六个,分别是:目标、输入、输出、商业和技术环境、文化环境以及架构活动本身。我根据这些因素,以及我多年的架构实战,提炼出了六条生存法则,帮助你提升架构成功的概率,以及你作为架构师的增量价值。

生存法则的主要内容,如下图所示:

模块二:价值创造

价值创造指的是,从大型架构项目实施层面上考虑,你作为架构师必须要关注和干预一些重要的节点,然后在这个过程中去创造自己的增量价值。
我把架构活动分成八个节点:环境搭建、目标确认、可行性探索、架构规划、项目启动、阶段交付、全面上线和复盘。在每个节点中,你的每一步行动,包括进入条件、准备工作、应对办法等,都会影响架构活动的成功率。这就是你给架构活动带来的真实贡献。

所以我期望通过这个模块的学习,帮助你增长具体的风险识别和应对能力,提升你项目成功的概率。除此之外,也能帮助你学会怎么通过真实的贡献让自己变得不可或缺(Make yourself indispensable by contributing honestly)。我认为,这不只是做架构师的王道,也是做人的王道。

模块三:职业规划与成长

我把架构师的成长分解成五种能力,分别是:单个模块的设计能力、解决横向问题的能力、解决跨领域冲突的能力、全局性技术决策的能力,以及通过技术带来生存优势的能力。这是一个架构师职业生涯中几个最重要的能力跨越,也代表了你在不同阶段要面临不同的挑战,解决不同复杂度的问题。所以想要跨越到更高的阶段,意味着你要先跨越一个能力障碍,建立全新的能力维度,而不是把现有能力做得更极致。同时,我也把架构师的成长角色分为四种,分别是兼职架构师、跨域架构师、总架构师和 CTO。我会结合自己在这些角色中的经历和观察总结,提出助你突破障碍、完成能力跃迁的具体建议。

你可能会问:为什么我这么早就要了解那些 CTO 才要面临的障碍呢?答案还是之前那句话:做架构师,战略意图很重要!

模块四:思考力

这是一个接近于手把手传授技能的环节。思考力,在我看来这是一个架构师生存最核心的能力,甚至可以说是未来任何职业的核心能力。怎么提高思考力呢?我也没有标准答案。我只能提供一些我和团队提升思考质量的方法,包括逻辑思维、批判思维、逆向工程、反思、跨越边界和数据分析。这些概念比较抽象,所以我会通过大大小小的案例来示范我常用的思考路径,提高你的认知。此外,我们也会讨论中台等热词,带你从宏观视角去审视一个复杂事件,让你拨云见日,看清本质。

开篇寄语

之前在 QCon 做晚场演讲时,我问在场的人为什么想做架构师。不少人给我的答案是架构师挣钱多、有权力。在我看来这种动机是不太对的,因为你可能会想着该怎么通过学习课程来速成,来通过面试。我想强调的是:架构师没有速成班,架构师的成功主要靠思考力的提升。所谓的致富速成班是让分享致富秘密的人迅速致富,来收智商税的。就像一些短视频网站收割国人的智商一样,他致富了而你却还在贫穷中幻想着。这门课不是讲编程或设计工具,你在这里也找不到任何现成的答案。我期望你学习这门课时,先放弃速成的心态,静下心,认认真真地学习一下思维方式和架构原则,只有这样,才能提升你在未知环境中判断和取舍的质量,最终通过架构设计为你所在的团队或企业带来竞争优势。我认为这才是架构师成长中最重要的条件,是架构师的“渔”。事实上,在写专栏的过程中我也研究了极客时间其他不少专栏的作者,如果说他们只有一个共同点的话,那就是他们都具备优秀的思考力。这也是我期望你能从我的专栏里获得的能力。哪怕你不做架构师,这种能力对你的职业成长也是很有帮助的!

【郭东白架构课 开篇词】开篇词|没有战略意图,就成不了一个顶尖的架构师相关推荐

  1. 【郭东白架构课 模块二:创造价值】17|通用技能(下):架构师如何保障交付与沉淀知识?

    你好,我是郭东白.架构师在架构活动中主要有四个作用,分别是建设共识.控制风险.保障交付和沉淀知识.上节课我们讲了前两个,这节课就来讲保障交付和沉淀知识这两个. 保障交付 保障交付意味着架构师能够降低大 ...

  2. 【郭东白架构课 模块一:生存法则】10|法则四:架构设计中怎么判断和利用技术趋势?

    你好,我是郭东白. 上节课我们讲了为什么要顺应技术的生命周期.但是"往者不可谏,来者犹可追",我们就不能抓住一个技术萌芽和发展的机会吗?今天我们就来探讨一下这个问题. 技术未来的趋 ...

  3. 【郭东白架构课 模块二:创造价值】32|节点七:什么是有价值的复盘?

    你好,我是郭东白.从这节课开始,我们就进入到架构活动的最后一个环节:复盘. 当遍历完价值单元的交付树之后,其实也就完成了整个架构活动的交付.到这里,比较普遍的方式是业务方最终验收并庆祝上线.这是个传统 ...

  4. 【郭东白架构课 模块一:生存法则】05|法则二:研发人员的人性需求是如何影响架构活动成败的?

    你好,我是郭东白.上节课我们学习了马斯洛关于人性的理论,那么这节课我们就利用这个理论来看看我们在架构活动中应该注意些什么. 架构设计必须符合人性,而在架构活动中,与"人"相关的主要 ...

  5. 【郭东白架构课 模块一:生存法则】02|法则一:为什么有些架构活动会没有正确的目标?

    你好,我是郭东白.今天这节课,我们就正式开始架构师生存法则的学习. 你肯定看到过这样的观点:架构设计就是一个迭代的过程,我们要不断发现并且补偿现阶段软件设计的不完美,然后通过各种手段打补丁升级.因此, ...

  6. AWS云计算技术架构探索系列之一-开篇

    一.前言 1.什么是AWS AWS是亚马逊公司的云计算 品牌,作为全球云计算技术的首创者和领导者,其分布在全球25区域81个可用区的数据中心,提供200多项服务齐全的云服务(2021年12月份数据), ...

  7. 郭东白:《从中台技术谈架构师的独立思考能力》

    文章摘自与数据同行     作者:郭东白 个人读后总结了其中提到的主要观点,供大家参考: 1.中台是个完全正确的方向: 2.中台的挑战:(1)创新的遏制:有说法说,一个业务靠拖中台的拉拽就能编排出来了 ...

  8. 【序列模型】第二课--自然语言处理与词嵌入

    今日感想: 窗外是瓢泼大雨.来到杭州后,最大的变化就是说话少了,白天上班部门里的IT男神们只顾打代码如飞,闭口不语:晚上回到出租屋,也只剩一个人的独处.要么看书看论文,要么写写博客和日志,要么弹弹古筝 ...

  9. 【Unity学习笔记】b站Unity架构课Unity3D 商业化的网络游戏架构(高级/主程级别)

    [Unity学习笔记]b站Unity架构课Unity3D 商业化的网络游戏架构(高级/主程级别) 自己跟着学完了,写了不少代码,会放在CSDN代码库,因为老师并没有提供源码,录屏也不是完全连续,所以难 ...

最新文章

  1. javascript 代码_代码简介:2016年JavaScript的现状
  2. c语言 goto 跳出循环,goto语句可以跳出循环.ppt
  3. 云和恩墨技术通讯:Oracle AMM自动内存管理引起数据库阻塞
  4. mysql根用户的密码是什么_Mysql忘记根用户密码 怎么办?
  5. 功能选中jquery实现全选反选功能
  6. js调用百度地图搜索功能
  7. OneAPM 技术公开课:北京,北京!
  8. sci论文 计算机,计算机类SCI论文
  9. js - JSON构造函数
  10. Verilog中begin...end和fork....join的区别和用法
  11. 24个希腊字母及其读音表
  12. RHCE linux学习第一天
  13. 终于搞清前端和后端的区别啦!
  14. 想破解游戏协议?你知道客户端和服务器是怎么通信的?我来告诉你怎么定义的
  15. redmine与svn完美集成方案
  16. android 信息-- 发彩信(1)
  17. unity 谷歌广告介入_Unity为开发人员发布Google广告
  18. DSRC通信协议标准
  19. 哒哒哒哒哒哒,哒哒哒哒哒哒哒哒
  20. 淮南师范学院计算机组成原理试卷,淮南师范学院物化试卷J

热门文章

  1. python数值里面的 e 符号代表什么?科学计数法
  2. 项目开发设计流程及方法
  3. Ubuntu16.04虚拟机配置模拟路由器
  4. morgan中间件记录日志
  5. matlab初学matlab——结构体
  6. LabVIEW程序代码更新缓慢
  7. 爬虫入门概念与硬核实战巩固(一)
  8. vscode写python爬虫_用 VS Code 写 Python,这8个扩展装上后无敌了!
  9. 可编程电源输出过冲怎么办?解决方案在这里
  10. 光模块之数通市场代际更迭,100G需求恢复,400G蓄势待发