软件架构师的12项修炼

软件架构师的12项修炼

第一部分 关系技能修炼

如果你想让某个人与你为敌,只要告诉他“是你错了”。这个办法屡试不爽

交谈的真正艺术在于不仅在正确的地方说出正确的事情,还在于冲动的时候不要说出错误的事情

  • 作为一名架构师,你需要和单位中的各色人等打交道。要在这个位置上真正取得成功,你需要从你所遇到的每个人那里汲取上级的主意和思想。调动所有人(包括你不赞同,甚至不愿相处的那些人)积极性的最好办法之一是你在任何环境中都举止文雅、专业

技术之天花板

图1-1 大多数时候所谓的“技术之玻璃天花板”其实只是缺乏软技能而已。这些技能可以学到,缺乏的知识可以通过决定改变的努力来弥补

image-20211217083116893
  • 最好的指导原则是让别人产生发自内心的很大兴趣,并使用你最好的判断能力来想出如何处理的方法

注重关系基于争执孰对孰错

  • 从现实意义来说,最大的利益在于学会建立关系,选择注重关系而非正确性

学会委派

  • 架构师通常只能建议某些思路,他们不像主管或经理有直接管理的权力。这使得他们只好去推销自己的架构想法

生活是有反作用的

  • 记住这个黄金法则“你怎样对待别人,别人就会怎样对待你”(《马太福音》7:12)
  • 不要说某人的坏话。尖酸刻薄的话语会对你和那人的关系有负面影响
  • 维护、积累良好的人际关系是必不可少的。实现这个目标的最好方法之一,就是发表和听取有正面影响的话语

不要掩盖问题

  • 处理面临的困难:如果不处理这个问题,它将会长大,变成真正的问题。面对难题并不是有趣的事,但如果现在不提出它们,它们就会在未来发展成切肤之痛
  • 靠技术晋级的人主要关注在技术性的专业知识上。成为技术专家,沟通技术知识对于他们往上爬来说是非常关键的技能

沟通原则

图2-2 要学习的沟通原则包括:先听后说、专心致志(人和心思在一处)、正面思考等,这些原则有助于建立与别人的信任关系,使你成为更高超的沟通者

image-20211217083443421
  • 一般来说,人在任何时刻最多只能同时处理7件±2件那么多的事。如果你的脑袋全是一些无关紧要的琐事,你就无法专心致志地做事
  • 从沟通的观点来看,人们容易注意负面的东西。通常负面消息总会带来恐惧(当我感觉恐惧邻近时,我会把它当做“要求集中精力的行动”的信号[1])
  • 作为架构师,你需要避免不必要的偏见信息,让别人能够选择他们要关注的信息
  • 在一天的事务中,你可能注意到对他人做的某个事情不合适或不正确。记住放下自尊去给受影响的对方道一个歉。向别人诚心道歉并不是好玩或者容易之举,但你可以赢得别人的尊敬,展示你在尽力成长,尝试变得更好的意图
  • 出于通常的礼貌,一旦在特定领域发现了三四个问题,就不要再过高、过深地批评了。如果你需要指出再多的条目,可以将其写下来,让被困扰的人随后能仔细看到这些要点。否则这些事情会招致对方恼羞成怒。由于被评审人成了众矢之的,在效率上会极大地影响评审的后续进展
  • 找机会说出已做出的工作的积极成分。大多数人被指出暴露的缺陷后,都会非常想要辩解,而找到工作的好的方面能够软化这种态势
  • 确保会上的每个人都参与进来。以局外人的身份参加会议是在浪费公司的时间
  • 模仿你在寻求的行为。拿出当评审你的工作,且结果是“很好,继续干吧”时的行为。目标是创造优秀的工作成果并持续改进它
  • 任何问题都应记录在案——不只是你感兴趣要追踪的事,还包括其他人提出的记录。如果确有一大串条目需要引起注意,可能随后还要再进行一次评审

沟通策略

  • 架构师与项目评估团队的角色不是决定要构建什么,而是决定怎样构建
  • 如果一个项目或任务不可行,我们需要立即巧妙地指出评估结果、解释原因,并提供替代方案
  • 如果执行官要求你做某件事,你要确信这个要求的优先级。如果是高优先级要求,你一定要分析不做其他任务的影响,并反馈给执行官
  • 对于项目的最后期限,当要求违反“物理法则”,即无法执行项目给定最后期限内的所有步骤(例如:硬件的获取和供应、规划、开发、要求的培训、测试、修正错误和部署)时,说“不”是可接受的。但不能因为工作看起来困难、你不大喜欢它或者有其他不能同时进行的优先级(也许当前需求会很快成为最高优先级——值得将此列为一个风险)
  • 在所有情况下,总有机会将别人说的话特定到你身上
  • 如果你能避免在谈话中个人化,你听取别人说话的能力就大大提升了
  • 你和执行官最好的交互过程就是把你的扑克牌都放在桌面上。也就是说,让他们能看清你所有的东西(好的、坏的、丑的)。你可能因为彻底袒露、容易被人挑刺而感觉不踏实。但这样的行为能让你在信任和忠诚方面——这是执行官最看重的——增加好感
  • 执行官不想知道的就是项目中存在的争执。部门A与部门B之间的分歧完全是“你的”问题,你应该去解决它。如果你请执行官来介入“解决”某个争端,你和所涉及的团队都不会对后果感到高兴。执行官似乎有第六感,他会选择争端中最痛苦的解决方案
  • 谈到不断积累的问题时,执行官不喜欢惊讶,尤其是那种惊讶:他们必须在很短时间做出行动、剩下的选择少之又少,而结果是他们必须将坏消息通知给单位的其他部门

协商原则

  • 协商能力是所有架构师的关键财富

图3-1 核心的协商原则

image-20211217083736727
  • 做出决定后,要坚持这个决定。对项目决定朝令夕改对单位来说是场噩梦
  • 不管你所委派权威的人做的决定有什么后果,你仍然要对这些后果负责
  • 如果协商完毕,你发现自己没有权威来做这项决定,你应当立刻将情势与有权威的人或群体沟通。将你知道的所有信息和决策依据告诉他们。通过与有权威的人或群体快速地共享信息,确保他们能介入,必要的话能够采取补救措施。当然了,他们也许会继续坚持你的决定
  • 不要想着马上解决问题。要让别人尽可能多地说话,从而获取尽可能多的语境信息
  • 投资血本无归是件非常糟糕的事情,它会迫使其他项目来弥补糟糕主意造成的亏空。早早地明确一些注定要失败的项目是很有好处的事情,可能这样并不好玩,可能会导致你心爱的项目下马,也应这么做
  • 在没有关键性影响的领域,可以有所让步
  • 你在做出决定时,经常处于并非某个决定的所有有关各方都在场的情况
  • 你得有所准备,代表那些没在场人们的最大利益。你需要理解他们的处境,以及他们对此项讨论所抱的最可能愿望。倘若你无法适当地代表他们,而决定会有很大的影响,可以请求延迟,直到最受影响的人在场再做出有关决定
  • 是使用架构决策文档来记录每个决定,其背景、替代方案以及选择其中某个方案的理由。这类记录也有助于供将来的项目采纳你的选择,或列举需要改变的原因依据
  • 了解谁是组织内部真正的决策者,对于你的成功至关重要(如图34所示)。如果你使他们确信特定架构的技术或行业优点,并让他们在特定决策中采纳,那么单位的其他部分就会自然而然地服从

图3-4 学会如何在单位里游刃有余。了解决策真正是在哪里做出的、如何做出的

image-20211217083830114
  • 对于架构师而言,单位界限应当消失。你需要与任何人交谈,只要他能为你提供信息,便于你做出决定或解决方案
  • 架构是与商务有关的。它关注于表达、沟通和构建技术的关键点,甚至非技术的解决方案也会以某种形式对你的事业产生有益的影响
  • 在达到关键决定时,最需要做的一件事情就是提前单独约见所有利益相关方,以建立一种合作的氛围。对于每场谈话,都注意对方的肢体语言和说话的内容。这能表达出其关注哪些东西,在其言语与肢体语言表达的意思相互矛盾时,要特别注意
  • 在正式的、大家都参加的会议前采取这样的步骤有个最重要的原因,就是让每个人有机会在非质询的环境下仔细考虑他的想法。如果你是在会议上向团队成员抛出信息,让他们始料不及,你可能让他们以自卫的态度响应,可能陷入漫长、痛苦的拳击比赛中,每个人都坚持自己的立场,情绪激动
  • 理想情况下,倘若你能够在会前达成一致意见,协商过程只不过一次汇报而已,每个人都会满意。对于这样的情况,每个人都有机会在会前让结果符合自己的需要,并探讨对结果存在的所有关键性挑战
  • 你作为架构师的成功在于你的能力,能够非正式地配合决定,避免在公开场合裁决。因为在那里,人们的自尊心容易受伤害,胜者和败者都被公开表露出来
  • 这样的非正式协作最好以面对面的形式出现,尽量少用电话,不要用电子邮件进行此类沟通
  • 作为一名架构师,你需要建立信任,并努力与别人建立好的关系。这种努力将让你与其他团队成员一起高效工作,并使彼此的工作变成令人愉快的经历
  • 由于你不可能立刻随处都在,而且从委托事项的角度看,架构师通常会有超额的预约次数,你需要努力确保别人已准备好行动,且做出的决定符合你的角度。为达到此技艺,你需要与他们一道工作来指导、训练、分析原则、经验方法和公司战略,后者都是你用来决策的依据
  • 花时间记录关键的原则和标准,以及它们背后的理由
  • 如此分享知识,会使别人能够代表你的愿望,而无须你总是在场

维护架构决定记录

  • 花时间维护架构决定记录,有利于让项目持续被关注,而避免不必要的分神。架构决定记录应当包括下列细节:
  1. 说明问题
  2. 说明决策本身
  3. 说明决策的依据
  4. 辩明考虑过的其他选项
  5. 解释为何其他选项被否决
  6. 标识做出决定时的细节
  7. 标识哪些人参与了决策
  8. 对团队的所有成员和利益相关者公开这些信息
  • 倘若成本的偏差多于10%或20%,导致项目错失关键的里程碑,你应当生成“变更请求”(ChangeRequest,CR),使决策及其依据更加正规。这一过程有助于确保利益相关者及时了解细微改动及其可能的影响,还为以后提供文档跟踪,如果需要的话
  • 有些时候,当面临“要么胜利,要么失败”的决定时,要做的最好事情就是通过修改规则、更换参加者或更换游戏,使之成为“胜利!还是胜利!”的决定
  • 有时候某些委派的决定可能被错误执行,这是正常的。这类失误对你和他人都是一种学习如何更有效沟通的机会
  • 事情未按计划那样进展,这种情况是生活中常见的事。要拥抱错误,为其道歉,并从而得到教训
  • 应当考虑花时间研究人们的行为,如肢体语言和心理学,理解这些领域能帮助你提炼协商技能

领导力

管理是将事情做对,而领导力则是做对的事情。——现代管理学之父彼得·德鲁克

领导力是一种艺术,从而让他人心甘情愿为你想完成之事而奋斗。——美国总统德怀特·戴维·艾森豪威尔

领导力的最高品质无疑是正直。没有它,就不会有真正的成功,不管是在铁路养护段、足球场、军队还是在办公室里。——美国总统德怀特·戴维·艾森豪威尔

  • 架构师的角色是建立在领导力基础之上的
  • 通过影响而不是要求别人顺从,来发挥你的领导力
  • 领导力是建立在把握和执行某些原则上的——信任、认知、安全和清晰度等要素(如图41所示)

图4-1 “领导力”要求按信任、认知、安全和清晰度这一金字塔来行事

image-20211217084109993
  • 领导力完全是建立在信任关系之上的
  • 信任存在于我们为别人设立的榜样,以及我们行为中体现出的特性(即我做我说的,说我做的)。信任关系可以通过许多种途径建立:
  1. 在特定领域是一个专家;成功完成某个项目或项目的一部分;
  2. 建立社会关系;
  3. 当某人孤立无援时拉他一把;
  4. 帮助别人成功;
  5. 真心倾听别人说的话
  • 一旦你与别人建立了信任关系,你就能对别人施加影响,从而大大提高领导别人的能力
  • 倘若你破坏了建立信任关系的基础,毁掉了别人的信任,你领导别人的能力就会急剧下降。将来就更难重建起这种信任关系
  • 如果你已经证明自己是值得信任的,即便有时无意中做了一些破坏信任关系的事情,别人也会原谅你的,因为大家都是人,都会犯错误——但他们的忍耐是非常有限的,你不能指望这一点
  • 做错事后要学会道歉并把事情做得更好
  • 领导力是为了建立一种认知,即每个人都觉得这种认知是对的。它在许多方面类似于推销——帮助人们理解这种认知的价值,允许他们决定这是否是他们的前进方向。关键在于将信息正确传递给每个人,因为对一个人有效的东西,换成下一个人就可能没效果了
  • 应当考虑使用PhilippeKrutchen提出的“4+1”的架构视角模型。后者是一种捕捉共识的基本细节的方法。这种方法运用系统的逻辑、开发、过程和物理视角(即“4+1”中的“4”),将用例作为它们之间的“胶水”,并描述架构(即“4+1”中的“1”)。每个视角都是统一整体的某个方面。这种模型有许多变形,但其方法的本质就是要认识到,不同的利益相关者对问题的解决方案有不同的需要、背景、要求,甚至技能。既然如此,架构师需要不同的视角来容纳他们。对某种解决方案的特定模型抽象出关键点,这是支撑该架构的主要技能
  • 作为架构师,你要对产品的商业认知有彻底的了解。你最终负责将其转换为技术现实。为达到这一目标,你必须能够将此认知以项目团队可理解的方式传达给他们,并领导他们朝这个方向努力。通过与商务人员紧密结合,并与项目的骨干成员密切配合,架构师能够帮助大家在整个产品开发过程中对产品维持一种共识
  • 当事情脱离正轨,请花些时间找出办法,使项目的这部分回归你尝试完成的认知
  • 对于任何给定模型,奥卡姆剃刀法帮我们‘剔除’不需要的概念、变量或构成
  • 运用奥卡姆剃刀法能够让你这个领导者知道如何去有效率且有效果地融合概念。作为领导者,你会持续不断地听到形形色色的建议,告诉你怎样去改进、修改或拓展认知。将所有这些信息吸收,并明智地加入到你正在构思的想法中,需要有能力听清他们说的内容,从中提取相关的方面,重组论据以达到知识的完整性。关键在于,在维持清晰度和简洁性的同时增加分析问题的深度
  • 一般来说,当我想展现某个架构念头时,就会集中精力做好图表,来表达关键概念、模型、数据流、过程流、假设条件及存在的风险。我会考虑使用PhilippeKruchten的“4+1”的架构视角模型,作为要展示信息的基础
  • 我在工作中,会将演示内容精简到10张幻灯片,其中包含了一系列图片和图表,我会口头地说明它们。其主旨是要含有思路的关键点,而去除不必要的细节
  • 应当试着把事情化整为零,每次传达的思路最多5~9个
  • 只有在某项新技术能提供清晰、可证明的好处,而非因为它只不过很时髦时,这个架构师才会选用它
  • 最好的架构师仅凭他们自己的实力就是能干的项目经理,也可能是公司管理团队的一员,或者管理一个架构师团队

第二部分 个人技能修炼

透明化

  • 架构师需要擅长三种类型的透明化(如图61所示)
  1. 自我透明化:你自己的透明化
  2. 项目透明化:对你从事的项目保持透明化
  3. 关系透明化:与别人之间的关系保持透明化

图 61 三种类型的透明化(自我透明化、项目透明化、关系透明化)是架构透明化的基础

image-20211219181308514
  • 如果你不让别人知道你的弱点,他们会以为你在某些领域是有能力的。要是这样,当事情开始遇到麻烦时,他们会感到不悦,也不会原谅你,因为你事先没有袒露某些事情,导致它们现在成了项目的大问题
  • 你自己到老板的办公室,让他知道你的言行(最近的犯错之处),远比单位网络加工这样的消息,并呈送给老板要好得多
  • 请记住,老板和执行官不想收到令其惊讶的消息。告诉你的老板最近的问题或失误的事件,让他有时间为你辩护——即便你可能最初被骂得狗血喷头,而不是在意外发生某事时才慌忙去救急。迫使你的老板以这种方式去灭火,当然不会有利于你的职业发展
  • 你可以让有关你的谣言作为新闻传到老板那里,但不能让谣言成为一种习惯
  • 当你与执行官一道处理事物时,最好把你手里的扑克牌都放在桌面上且面朝上。执行官精于此类游戏,他们能帮助把潜在糟糕的局面尽可能地搞好
image-20211219203326708
  • 在项目的关键时刻,你对事情坦白的程度直接决定了他们帮助你解决问题的能力和兴趣水平
  • 在必须处理问题时,你要花时间找出至少三种可行的替代方案,并有一个建议的方法,供执行官们批准和否决。最重要的是,当呈递这个问题时,选项和推荐的解决办法都应当简洁且符合事实
  • 架构师要生活在“具有可能性”的世界里。由于公司寻求在特定领域中投资,架构师要对每个项目的风险、可能的方法及关键假设条件做出分析,帮助将认知转换为现实
  • 架构师既然是商务人员的一部分,就要对商务负责。履行这一职责要求确保物尽其用。达到这个标准,意味着由于成本原因,你无法得到最好的硬件或系统软件,但你必须接受这样的折衷方案
  • 作为涉及仔细审核的架构师,你的目标是为要购买的资产带来透明化(如图63所示)

图6-3 购并公司时需要考虑许多不同的但相关的方向性信息

image-20211219203412066
  • 当你有难处需要别人拉一把时,如果你曾给予了某些人他们应得的信任,他们就会伸出援手,避免让你的小问题演变成灾难。正如你所看到的,拥有一大帮朋友在危难时刻供你召唤,是你的福分
  • 当升职机会到来时,倘若这些在管理链上的人已经听说过多次某个员工的好事,而非一次表面的销售言辞,那么很容易就能推荐此员工升职

激情

  • 带着激情工作会让你感觉少些义务,而是每天做自己喜欢的事情
  • 你职位带来的压力越大,你越需要多锻炼。健身会让你保持健康、富有和聪明
  • 当你想出了主意,就写出来。考虑这些主意的替代方案和其他细节。这个主意也许是个很棒的新设计或方法,所以请花些时间把它记下来。当你需要解决特定问题时,那个寂静的、孱弱的声音经常会为你的思考注入新思路,带来突破性的解决办法
  • 有人要求你完成这个任务,是因为他信任你能解决问题,把事情做好。其次,他们可能想检验一下,你能否处理这个不太乐意的任务,以使在你接手更大工作时不会麻烦他们。职位高于你的人需要知道不管情况如何混乱,你都能投身其中,把握局面,并做好清理工作
  • 电视是吞噬时间的罪魁祸首,尽管观看最新的节目当然令人愉快有乐趣,但它会掠夺你追求激情的最珍贵资源——时间
  • 在我的优先级清单上,我一直竭力维持高优先级的是与我的孩子在一起。如果他们想玩、做某件事或者买什么东西,我会想方设法同意
  • 不要耽搁。如果现在有比你正做的事更紧要的任务,就赶紧去做,不要推迟它们到最后一分钟

首先你要跳下悬崖,然后在下坠的过程中打造翅膀。——美国科学幻想作家RayBradbury

图7-4 有些时候你不知道所有细节就得往下跳

image-20211219203552236
  • 对架构师而言,到处走动来管理是必需的事。你不能拥有太多的信息。与你的团队一道工作(即便不能连续工作),能让你做出基于灵通消息的决定。对于大型项目,事情发展会很快
  • 你需要在技术上和政治上都对所发生的事全心投入
  • 一旦你做出了某个决定,这项决定很可能要在整个单位被重申多次。如果你没考虑周全,就会让许多人不请自来,踏破你的门槛问你是否考虑过这样或那样的变数
  • 作为软件架构师,你有权力批准要做的支出。你需要明智地花费你的资本,包括金钱的或政治方面的资本
  • 架构师每天的角色就是平衡战略和战术方面的需要。对技术的理想认识总能吸引人们,往往只是达到当前项目的最后期限。挑战就是要知道现实中有哪些最后期限或哪些资源约束
  • 举行一个简短的会议,就能做出决定。抓住行动要领,然后跟踪它们的效果。更好的是,让项目经理做这个事,他们对挑刺、跟踪进度很在行。面对面地做决定,事情办成的概率就会大大增加
  • 倘若不理解这些约束条件就去做出决定,就可能无法及时交出项目。一般而言,晚于项目的最后期限交货,不管失败的原因怎样,都很难取得人们的原谅
  • 风险或假设条件写成书面的了吗?给出你这些假设条件的透明性

第三部分 商务技能修炼

  • 软件架构师的工作就是要构造满足业务需要的系统。然而,架构师很容易陷入构建系统时涉及的一些技术细枝末节
  • 不能只是关注系统构造的技术方面,更要对客户价值和商务价值——你能帮助客户真正解决怎样的问题?你怎样帮助公司赚钱?——有深刻的认识

为了认识你的领域,你要了解你的公司、其顾客及商务

image-20211219203720138
  • 商务的业务就是赚钱。在你忙忙碌碌的日程表中挤出时间来学学商务语言,可以大大促进你听懂商务伙伴(市场、销售等)的能力,以及听懂公司高层执行官所说话语的能力。改善对商务语言的这种理解能力,能帮助你做出商业真正需要的产品,让你在每天的微观决策中优化公司在其(也是你的)顾客中的业务定位
  • 我开始能够听懂商务所提到的财务方面的运作内容时,真是令人吃惊。对于专做商务的员工先前所说过的一些话,我原本只是左耳朵进右耳朵出,但现在它们有了清晰的含义。这个工商管理硕士课程还有个效果,就是使我对钻研技术的商务层面少了些畏惧
  • 熟悉公司的产品和它们对于顾客的价值所在。这其中的关系正是付给你的薪水
  • 许多时候,倘若你仔细倾听顾客的输入,他们就会告诉你他们想要什么——他们愿意掏钱的东西——因为那能给他们带来不菲的价值

图93 明白你所在公司的价值取向:实践它、信奉它、加强它

image-20211219203821965
  • 架构师需要成为单位里许多不同方面人员的伙伴——注意,这里用的工作词语是“伙伴
  • 架构师的部分工作不仅是获取商务知识,还要在更大范围内共享技术知识。你的业务伙伴可能只有很少的技术经验,甚至没有。他们更不大可能有任何软件开发的经验

创新

领导者与跟随者的区别就在于创新。——苹果公司创立者史蒂夫·乔布斯

创新就是把变化看成是机会而非威胁的能力。——阿尔伯特·爱因斯坦

  • 我想你一定听说过这样的格言:“领导者都是读者”。在技术的世界里,明白你所在行业和邻近行业的发展趋能够帮你发展相关的解决方案。其他行业的解决方案能够作为一种模板或设计样式来解决某些特定问题
  • 提到实用型架构,第一个关键的地方是管理范围。倘若你花时间仔细理解项目的范围,就能消除风险或认识到实质性的风险,以此确保所有伙伴的成功;并帮助公司对项目元素的优先级进行排序,使项目以合理的开支实现最大的价值;并尽早开始行动,而不是陷入无休止的分析中
  • 将实用主义融入软件开发的最好途径之一就是采用敏捷过程,例如Scrum法或Lean法。这些过程帮助你专注于目前需要提及的地方,而让项目的模糊部分先积压着(列于日后的开发日程中),直到在新一轮迭代用到它们为止
  • 敏捷开发的挑战在于,你要有一定程度的全局路线图和产品发布规划,因此能确保项目持续在按产品认知的方向进展。从架构的角度来看,你还需要有处理系统非功能性需求的经验
  • 项目进展过程中,很少会有已知的风险跳出来咬你一口;相反,通常都是些未知的、未被发现的风险,不知从哪儿冒出来,让项目陷入停顿。如果可能的话,应在项目前期的评估调研阶段,尽量识别、记录并应对这些潜在的风险
  • 可行性的另一方面,就是让所有关键的利益相关者对假设条件、风险、金钱花费和替代方案都有适当的期望
  • 你也许无法回答所有的问题,但尝试做到解答所有问题,会帮你理清你所建议的措施在单位中是否可行
  • 对于你所做出的每个决定,都要评估它的风险影响(如图113所示)

图11-3 你将要做出的这个决定有什么风险影响?你和团队愿意承担此风险带来的变化吗

image-20211219203940460
  • 让处理软件开发运营侧的人员早些介入项目开发生命周期,能够在项目进入生产阶段后尽可能地降低运营成本

实用型架构的第三个关键地方是为沟通带来清晰性。除非你注重清楚、一贯、持续的沟通,否则你所有的卓越架构努力都会被低效率或欠缺的沟通方式毁于一旦。任何沟通隔阂都会被其他东西填补,而且通常不是以让架构师乐意的方式。保持高水平的沟通技巧,即便在你特别忙的时候(如图11-4所示)

image-20211219203959910

未来属于那些在事物大行其道之前就看到其可能性的人。——百事可乐公司与苹果公司前首席执行官约翰·史卡利

  • 要发现认知,最重要的方面就是着手去做。花时间周全考虑,必要的话把别人拉进来集思广益。给些时间让你的认知成长、进化。确保你以某种永久性的方式记录下周边的想法

图12-2 公司内的认知是多方面的,所以你要知道自己追求怎样的认知,这很重要

image-20211219204038753

相关书籍

  1. 《卡内基沟通与人际关系:如何赢得友谊与影响他人》
  2. 《成功容易失败难》
  3. 《领导者准则》
  4. 《做重要的事:如何使事情大有起色——古老方式之革命》
  5. 《刀锋上的舞蹈:我如何挽救了吉列》
  6. 《真正的专业主义:关注你周围的人、你的客户和你的事业》
  7. 《态度——你的致胜关键》
  8. 《与人共赢:探究为你所用的人心原理》
  9. 《领先于你的领域》
  10. 《精彩生活:发挥潜能的7种方式》
  11. 《飞起巅峰:从生存到稳定,从稳定到成功,从成功到意义深远》
  12. 《我在微软学到了该学的行业知识》
  13. 《如何树立自信心并影响人们》
  14. 《沟通的艺术:在行业内取得人际影响力》
  15. 《如何在30秒内表达观点》
  16. 《现实检查 :在竞争中胜出》
  17. 《变不可能为可能:做别人说不可能的事》
  18. 《成为有影响力的人:怎样积极有效地影响他人的生命》
  19. 《有效倾听:怎样从套取别人的主意和建议中受益》
  20. 《门后的秘密:卓越管理的故事》
  21. 《那么,你的观点是怎样的呢》
  22. 《思维敏捷:如何在压力下沟通》
  23. 《有效推销12招》
  24. 《克服团队协作的五种障碍:领导者、经理人、培训师的实用指南》
  25. 《谈判的关键:高额赌金下的交谈工具》
  26. 《商业成功的12要素》
  27. 《打拼卓越事业的五个法则:获得成功和满意指南》
  28. 《信任的速度:一个可以改变一切的力量》
  29. 《感悟福特:比尔 福特与重建美国汽车制造业的战役》
  30. 《与人共赢:探究为你所用的人心原理》
  31. 《早到晚走:纽约消防部门的领导艺术》
  32. 《小思维大策略:如何实践突破性思考》
  33. 《软件架构师职业导读》
  34. 《人生不设限》
  35. 《今天不必以往:成功人士如何获得更大的成功》
  36. 《你就是品牌:让你不可或缺的终极个人品牌手册》
  37. 《才能密码:杰出不是天生的而是后来的,方法在此》
  38. 《我编程,我快乐:程序员职业规划之道》
  39. 《微软优势:实现成功的内在策略》
  40. 《赢在新产品:加速从灵感到执行的过程》
  41. 《新产品开发流程管理:以市场为驱动》
  42. 《管理战略:取得可持续的竞争优势》
  43. 《赢在行动:管理战略之案例》
  44. 《企业架构就是战略:为商务执行打基础》
  45. 《巴菲特和他的财富人生》
  46. 《哈佛对创新个来的商务评论》
  47. 《创新者的解答:创建并持续成功的增长》
  48. 《敢于成功:怎样在人生游戏中存活并兴盛》
  49. 《简约学:得到所想的简单科学》
  50. 《前景:对未来之探索》
  51. 《一致性管理:规划企业的协同性、敏捷性和确定性》

你可能感兴趣的:(软件架构师的12项修炼)