作为一个架构师,需要具备多方面的能力来确保项目的顺利进行和系统的成功设计。以下是架构师所需的主要能力,按照不同的类别进行归纳和分点表示:
技术能力
编程能力:架构师通常是一个开发团队中技术较为出色的人员之一,需要具备扎实的编程能力,能够亲自参与到软件开发的过程中,贡献自己的力量。
对技术和产品的深入理解:架构师需要对所涉及的技术和产品有深入的理解,包括C/S或B/S体系结构软件产品开发及架构和设计经验,以及对 .Net /JAVA 技术及整个解决方案的熟练掌握。
数据库开发能力:精通大型数据库如Oracle、Sql Server等的开发,对于数据存储和管理有深刻的认识。
设计能力:了解结构化、面向对象、面向构件、面向服务的来龙去脉,了解各种开发模型的特点和适用场景,能够给出理论支持。
项目管理能力
项目管理经验:有效地管理项目进度和资源,确保项目按时按质完成。
战略规划能力:能够将组织的战略规划与技术决策相结合,以实现组织的长期目标。
沟通协调能力
团队协作能力:与不同部门和团队成员紧密合作,确保项目顺利进行。
沟通能力:能够清晰、准确地表达自己的想法和需求,同时能够理解复杂的系统并以简洁明了的方式向非技术人员解释这些系统。
学习能力与创新能力
学习能力:具备快速学习新技术和概念的能力,以适应行业发展和技术变革。
创新能力:在满足业务需求的前提下,能够提出创新的架构设计方案。
决策与权衡能力
问题解决能力:具备分析和解决复杂问题的能力,能够在面对挑战时快速做出决策并采取行动。
权衡取舍:每天都需要在多个因素之间进行权衡,理解没有完美的架构,对架构的缺陷有明确的了解,并能够站在现有资源场景的角度上做出决策。
架构师的 6 条生存法则
先介绍一下这些生存法则的来源。按照实证主义的思维,这些生存法则其实不是定理, 因为它们缺乏严格的推导逻辑,它们更多的是一些假设,这些假设基于多次失败之后总结 和抽象出根因,即过去的失败分类后都与这 6 个要素有关,如果想最大程度避免失败,就 要遵守 6 个架构师生存假设。不过,直到观察到明确的反例之前,这些生存假设都是成立 的,因此可以将其称为生存法则。
我之所以总结提炼这些原则,是因为在二十多年的架构师生涯中,我一次又一次地看 到我身边的架构师,包括我自己,在违反这些规则后付出了惨重的代价。我希望这 6 条生 存法则能够帮助更多架构师成长,也希望他们能发现反例或者对生存法则做出重要补充, 大家共同维护这组生存法则。从实证思维来看,它们将成为一组不断经历“假设-实证-修 正”循环的科学理论。
接下来,简单介绍一下这 6 条生存法则的核心内容。
(1)目标:架构师必须保障整个架构活动有且仅有一个正确的目标。这是架构活动的 起点,也是甄别架构方案优劣的主要输入,所以架构师有义务影响和干预这个目标,以确 保目标本身的正确性。
(2)人:架构设计需要顺应人性。架构活动既要服务用户,也要组织研发人员协同工作。这就意味着,架构师必须洞察研发人员和目标用户的人性,从人性的角度出发做决策, 这样才能保障最终面向用户的方案具有长期正确性,以及面向研发团队的实施过程具有可 行性。
(3)经济价值:架构师永远需要在有限资源下最大化经济价值。架构师通过对架构活动进行干预来为企业带来额外的经济价值增量。
(4)环境:架构选型必须顺应技术趋势。在架构设计的过程中,架构师面对一个相对 确定的商业环境和技术环境,在这个选择空间内,理解、顺应且利用好商业和技术周期至 关重要。一般情况下,要选择已经有规模优势或即将有规模优势的技术,而不是选择那些 接近衰老期的技术。
(5)过程控制:架构师要通过架构手段为企业注入外部适应性。这种在不确定环境下 以价值思维驱动的应变能力也是架构师职业成长的必备能力。这样最终实现的软件架构将 会因其很强的外部适应性而长期存在,并为架构师建立长期的口碑。
(6)文化:架构师需要在一个友善的企业中成长,才有希望找到正确的架构方案。架 构师要尽量创造一个过程正义的架构活动的内部文化。同时, 架构师要尽量影响整个企业 的文化。
至此,你可能会认为这 6 条生存法则是平淡无奇的。这很正常,因为软件架构必须符 合人类活动的各种规律,如经济学、社会学、管理学、心理学、系统科学等,你应该或多 或少在其他科学领域听过类似的规律总结。
事实上,在当前的信息化时代,获取各种规律并不难,难的是怎么将这些规律准确地 应用到架构活动的各种异常场景中。
当在架构活动中真正碰到某个规律适用的场景时,我们很难识别这个场景,也就是不 知道应该应用哪一个规律,就像每个具体的算法都需要在特定的细分数据场景下才能最大 化效果一样,如果算法工程师以暴力搜索去发现正解,那么他在找到方案之前恐怕就被淘 汰了。
举个例子。几乎每个研发人员都了解康威定律,但是康威定律到底影响架构活动的哪 些要素,必须在哪个节点关注它,却很少有人能够阐述明白。
或许未来的技术环境和竞争环境会发生巨大的变化,可能某条生存法则将不再适用。 即便如此,如果想要忽略一条生存法则去冒险,也需要先完全理解相关生存法则的背景、 发现场景和推导逻辑才能让自己有准备地去冒险。
成为一名优秀的架构师推荐的书籍
本书是作者10多年架构师和CTO工作的经验总结。在本书中,你可以了解互联网行业进化的本质,架构师的工作内容、所需能力等,你熟知的每一个互联网案例背后的架构设计原则和逻辑。
本书以架构师工作中的痛点问题为导向,结合大量真实、复杂的案例,帮助架构师提高架构设计能力,规划职业成长路径。本书共4部分,第一部分“架构师的思维模式”介绍3种架构师的思维定式和4种架构活动中常见的思维模式;第二部分“架构师的生存法则”介绍影响架构活动成败的6个要素,以及由其引出的架构师的6条生存法则;第三部分“架构活动中的挑战、根因和应对”介绍架构师在整个架构活动中持续发挥的作用以及架构活动不同阶段常见的问题;第四部分“架构师的职业规划和能力成长”介绍架构师的成长地图和对应角色的关键能力,以及提升思考力的方法。