从此
文章
📄文章 #️⃣专题 🌐上网 📺 🛒 📱

不想当架构师的程序员,不是好的工程师

🕗2023-04-25

什么是架构师

软件架构师是在在软件开发领域中非常重要的角色,其负责设计和管理软件系统的整体架构。

作为软件的架构师,需要综合考虑软件系统的各个方面,包括性能、安全、可维护性、可扩展性等,以及与其他系统的集成等方面,从而设计出满足客户需求、具有高质量和可维护性的软件系统架构。

具体来说,在软件设计和开发过程中,需要在软件开发周期的早期阶段就参与到项目中,与需求方沟通需求,分析需求,评估技术可行性,根据需求和技术可行性,设计软件系统的整体结构和各个组件之间的交互关系,制定技术规范和标准,为开发人员提供技术指导和支持。

此外,架构师还需要关注软件系统的整体性能、安全和可维护性等方面,提出优化建议,确保软件系统的质量和可靠性。

可见,架构师是软件开发团队中至关重要角色,需要承担至关重要的责任,他们的工作会直接影响软件持续交付的质量和效能。

架构师的职责

作为一名架构师,在项目和团队中,是要承担责任,承担解决问题的责任,规划系统的目标,方案和迭代路径等。

其具体的职责,可以总结为以下几点:

  • 对系统的整体架构设计负责:架构师负责分析客户需求和业务流程,根据技术可行性和可扩展性等方面的要求,设计出软件系统的整体结构和各个组件之间的交互关系,制定技术规范和标准,并提供技术指导和支持。
  • 对系统的可靠性和质量负责:架构师需要关注软件系统的整体性能、安全和可维护性等方面,提出优化建议,确保软件系统的质量和可靠性。
  • 对系统的可扩展和适应性负责:架构师需要考虑软件系统的未来发展和变化,确保软件系统具有良好的可扩展性和适应性,能够随着业务的变化而进行扩展和修改。
  • 对团队的协作和沟通负责:架构师需要与开发团队和其他相关团队进行沟通和协作,确保整个团队在软件开发周期中紧密协作,高效完成工作。

可见,在软件团队中,架构师是扮演着至关重要的角色,他们的职责和作用不仅是设计和管理软件系统的整体架构,还包括确保软件系统的可靠性和质量,维护软件系统的可扩展性和适应性,促进团队沟通和协作等方面。

常见的架构师类型

现在,在人才市场上,有各种各样的架构师的职位需求,诸如:

  • 软件架构师:软件架构师负责软件系统的整体设计和架构,需要对软件系统的各个方面(如业务流程、数据存储、系统安全等)有深入的理解和把握,能够通过优化设计和提出技术方案等方式,提高软件系统的质量和可靠性。
  • 技术架构师:主要负责技术选型和技术架构的设计,需要对新技术进行研究和评估,确保选用的技术能够满足系统的性能和可扩展性要求。
  • 数据架构师:主要负责数据架构的设计和优化,包括数据库设计、数据模型设计、数据仓库设计等方面的内容,需要对数据管理和数据安全有深入的了解。
  • 云架构师:主要负责云平台的架构设计和实现,包括云计算、云存储、云安全等方面的内容,需要对云技术和云服务有深入的了解。
  • 安全架构师:负责设计、规划和实施系统的安全架构,以保护系统和数据不受恶意攻击、非法访问和数据泄漏等安全威胁。安全架构师需要了解安全策略、安全协议、安全标准和加密算法等相关知识,同时还需要具备风险评估、漏洞分析、安全审计和安全监控等方面的技能。
  • 业务架构师:负责分析、规划和设计企业的业务架构,以支持企业战略和业务发展。业务架构师需要了解业务流程、业务规则、业务需求和业务价值等相关知识,同时还需要具备业务建模、业务流程优化、业务数据分析和业务治理等方面的技能。
  • 企业级架构师:主要负责企业级软件应用的整体架构规划和设计,包括硬件、软件、数据等方面的内容。
  • 解决方案架构师:主要负责客户解决方案的架构设计和实现,需要深入了解客户的业务需求和技术现状,提供符合客户需求的解决方案。

当然,这个清单还会无限的增加,AI架构师,算法架构师等等。

不同类型的架构师,需要具备不同的技能和专业知识,但会存在着共同点,都需要具备深入的技术知识和对整体系统架构有全面的了解和把握。

那些扯淡的架构师

上面我们了解了什么是架构师,架构师的职责和架构师的一些类型这些内容,对架构师有了一个初步的了解。

接下来,我们就说说一下在软件团队中存在的一些反例:那些扯淡型的架构师。

扯淡的架构师,通常用来形容那些没有实际能力和经验,却通过夸夸其谈和空泛的理论来掩盖自己的无能和不足的“架构师”。

首先,我们来看被人严重诟病的3个架构师的样板:

  • PPT架构师:指那些只会用PPT画图,但实际上并没有真正掌握技术和架构设计的人。他们通常会使用各种花哨的图表和动画来描述自己的“架构设计”,但缺乏实际的可行性和可操作性。
  • 框架架构师:指那些过分依赖于各种框架和工具,而不是根据具体的业务需求和技术特点来设计系统架构的人。他们可能会过度使用某个框架或者模式,导致系统过度复杂和难以维护,同时也限制了开发团队的技术自由度和创造力。
  • 画饼架构师:指那些只会在理论层面上讨论架构设计,但没有真正投入到实际的开发和运维工作中去的人。他们可能会热衷于各种研究和学习,但缺乏实践和验证的经验,导致其设计的架构无法落地和实现。

架构师对软件系统的重要性不言而喻,而一个不合格的架构师可能会带来一系列的问题。

架构师的本质是承担解决问题的责任。 不合格的架构师却无法解决问题,且自身也成为了一个问题。

在扯淡的那些表现形式

如何识别你的架构师是在承担责任,还是仅仅在夸夸其谈呢?

下面列出了一些常见的扯淡的表现形式:

  • 过度的设计:扯淡的架构师会为了设计一个完美的系统而过度设计,将关注点放在架构设计的完美性上,而忽略了实际项目的需求和成本。这种过度设计可能会导致系统复杂性增加,开发周期延长,以及对团队资源的浪费。
  • 盲目追技术:扯淡的架构师会将技术的新颖性和潮流性视为优先考虑的因素,忽略了实际业务需求和团队技术水平。他们会为了使用最新技术而盲目地采用一些不成熟的技术或者并不适合当前业务场景的技术,给团队和项目带来风险。
  • 缺乏业务理解:扯淡的架构师可能缺乏对业务的深入理解,只注重技术的实现,而忽略了业务的重要性。这种情况下,架构设计可能会与实际业务场景不相符,导致系统的效率低下,用户体验不佳,以及项目的失败。
  • 缺乏实践经验:架构师需要具备丰富的实践经验,才能设计出稳定、高效、可扩展和可维护的系统架构。但是,有些架构师可能没有足够的实践经验,只是凭借一些理论知识和工具使用经验来设计系统架构。这样往往会导致设计出来的架构不够实际可行,缺乏实用性和可行性。
  • 缺乏沟通合作:扯淡的架构师可能会过于自我中心,不愿意与团队成员进行沟通和合作。他们会忽略团队其他成员的建议和反馈,而单方面地做出决策,导致团队合作效率降低,甚至出现冲突和摩擦。
  • 忽略可维护性:扯淡的架构师可能会忽略系统的可维护性,将注意力放在架构的设计和开发上,而忽略了系统的日常维护和后续升级的问题。这可能会导致系统难以维护,出现故障和漏洞,增加团队的工作量和负担。
  • 过度依赖工具框架:扯淡架构师可能会过度依赖工具和框架,忽略了技术背后的原理和本质。这样会导致架构设计缺乏灵活性和可扩展性,对于一些特定的业务场景和需求无法满足,以及对技术人员的技术素养提出了较高的要求。

可见,架构师扯淡的表现形式有很多,其中涉及到技术能力、思维方式、责任心、全面性、实践经验以及沟通和协作能力等方面。

造成架构师扯淡的原因

造成架构师扯淡的原因主要有两个方面:架构师自身和组织团队。具体如下:

个人原因

以下是一些架构师自身上的一些不足,导致无法落到实处的原因:

  • 缺乏技术深度和广度:架构师需要具备广泛的技术知识和深入的技术理解,如果缺乏这些,就难以对系统进行有效的架构设计和决策。

  • 缺乏对业务的深入理解:架构师需要深入了解业务需求和业务流程,以便能够设计出符合业务需求的系统架构。如果缺乏业务理解,就很难做到这一点。

  • 缺乏团队合作精神:架构师需要和其他团队成员合作,包括开发人员、测试人员、运维人员等等。如果缺乏团队合作精神,就难以与其他团队成员有效沟通和协作,影响到系统的整体质量。

  • 缺乏责任心:架构师需要对系统的整体设计和决策承担责任。如果缺乏责任心,就可能会出现推卸责任、不负责任等不良行为。

  • 缺乏更新迭代意识:技术在不断更新迭代,架构师需要保持对技术的关注和学习,以便及时应对技术变化和提高自身技能水平。如果缺乏更新迭代意识,就容易过时和被淘汰。

  • 缺乏全局视野:架构师需要具备全局视野,能够将整个系统作为一个整体来考虑,而不是局限于某个模块或部分。如果缺乏全局视野,就难以设计出高质量的系统架构。

组织原因

除了架构师自身的原因,在组织设计和团队管理上的一些问题,也很容导致架构师成为扯淡的角色,具体如下:

  • 没有明确的职责和权利:如果组织对架构师的职责和权利没有明确的定义,或者架构师没有足够的权利来影响项目和决策,那么他们可能会感到无助和无控制感,从而扯淡化自己的角色。

  • 缺乏有效的沟通和合作:如果团队成员之间缺乏有效的沟通和合作,那么架构师可能会感到难以与其他团队成员协作,从而扯淡化自己的角色。此外,如果架构师没有足够的时间和机会与其他团队成员交流,也会导致扯淡化。

  • 管理层的不支持:如果管理层不重视架构师的角色,或者没有给予足够的支持,那么架构师可能会感到自己的工作被忽视和低估,从而扯淡化自己的角色。

  • 团队缺乏目标和方向:如果组织没有明确的目标和方向,那么架构师可能会感到自己的工作没有明确的目标,从而扯淡化自己的角色。此外,如果组织对架构师的期望不明确,也会导致扯淡化。

  • 组织架构设计不合理:如果组织将架构师岗位化,设置为专职的架构师和架构师部门,那他们就会和具体的研发工程团队之间缺乏有效的沟通和协作,或者他们被视为高高在上的存在,这样可能会导致扯淡架构师的产生。

所以,在组织的设计和团队的管理上,也需要考虑如何上架构的角色和职责落到实处,避免成为团队的摆设和瓶颈,让架构师的能力,正真的为团队提供持续的价值。

扯淡架构师的危害

不接地气,不承担责任的扯淡型架构师,其危害性表现在两个方面:一是对团队的危害,二是对自身职业的危害。

具体如下:

对团队的危害

不能躬身入局的架构师,对团队的危害有如下的5个方面,具体如下:

  • 技术决策的混乱:扯淡的架构师会导致技术决策的混乱,造成整个团队的技术方向偏离原有的目标,导致开发效率低下、项目延期、质量下降等问题。

  • 缺乏技术领导力:扯淡的架构师会导致团队缺乏技术领导力,无法对技术方向和开发流程进行有效的引导和管理,从而无法发挥团队的最大潜力。

  • 建立不良的技术文化:架构师扯淡化还会导致不良的技术文化在团队中蔓延,包括代码随意、缺乏规范、无法进行有效的代码审查等问题,这些问题会直接影响到团队的开发效率和质量。

  • 影响员工的工作积极性:扯淡的架构师化会影响到员工的工作积极性,因为员工可能会感到困惑和迷茫,不知道应该如何进行开发工作,从而降低工作的效率和积极性。

  • 损害团队的声誉和信誉:扯淡的架构师会损害团队的声誉和信誉,因为项目延期、质量不佳等问题会影响到团队的口碑和形象,从而影响到未来的发展和业务拓展。

对自身的危害

一个夸夸其谈的架构师,不但会给团队带来伤害,对其自身也由不小的负面影响,具体如下:

  • 技能退化:架构师扯淡化通常表现为对技术的忽视或者片面理解,导致架构师的技能难以得到提高和提升,无法跟上行业的发展和变化。

  • 影响声誉:只扯淡的架构师,通常不会受到同行和业内人士的认可和尊重,从而影响自己在行业中的声誉和职业发展。

  • 没有成就感:扯淡的架构师往往会走在错误的道路上,无法为团队和公司做出有意义的贡献,导致自己缺乏成就感和自我价值感。

  • 职业前景受限:架构师的职业发展需要具备全面的技能和能力,扯淡的架构师缺乏这些基础条件,因此职业前景会受到限制,无法实现个人职业目标。

总之,只会扯淡的架构师,会对个人职业发展产生非常严重的影响,因此架构师必须时刻保持对技术的敬畏和对工作的热爱,不断学习和提高自己的技能和能力。

如何成为一个优秀架构师

工程师如何才能成为一名不扯淡的架构师呢?

我认为主要有两个方面:一是对架构师有一个清晰的认知,而是要有一些有效的方法。

下面具体来说说我的理解:

架构是一项工程技能

首先,要理解的一点是:架构是软件工程中的一项核心技能。

架构设计,因为涵盖了软件系统设计和开发中最关键的方面,诸如:

  • 系统的可靠性:架构师需要确保系统在运行时是可靠的,即能够满足用户需求,稳定运行,不会出现崩溃、死循环等问题。

  • 系统的可扩展性:架构师需要考虑系统未来的发展和扩展,设计出具备良好扩展性的架构,以应对未来的业务需求变化。

  • 系统的性能:架构师需要确保系统在运行时能够保持良好的性能,以提高用户的使用体验。

  • 系统的安全性:架构师需要确保系统在运行时能够保持良好的安全性,以保护用户的数据和隐私。

  • 系统的可维护性:架构师需要确保系统在运行时能够保持良好的可维护性,即能够方便地进行维护和更新,以降低维护成本。

可见,架构师是不能脱离技术,也不能脱离实际业务,更不能脱离具体的团队。架构师在设计和开发软件系统的过程中,需要考虑到这些多个方面的因素,才能设计出一个既能够满足业务需求,又具备良好性能、可扩展性、安全性和可维护性的架构。

架构师是一个角色,不是一个职位

正如本文一开始所说,架构师是软件开发中的一个责任角色,而不是一个高大上的职位头衔。如果我们将架构师职位化,就很容造成误解和误用,让架构师陷入扯淡的危局之中。

架构师的职位化,有以下3个方面的危害:

  • 限制了架构师的角色:将架构师职位化可能会限制架构师的角色,使其只关注与职位相对应的任务和职责,而忽略了跨职能团队合作和领导能力的重要性。架构师可能会陷入“职位”的框架中,而忘记了其临时性和灵活性。

  • 对职位要求的过度强调:将架构师职位化可能会导致过度强调职位要求,如学历、工作年限等,而忽略了架构师的实际能力和经验。这可能会造成人才浪费,使一些有实际经验但没有符合职位要求的人才无法发挥其潜力。

  • 市场对职位的误解:将架构师职位化可能会导致市场对职位的误解,使架构师的角色被视为一种固定的职业。这可能会降低架构师的灵活性和创造力,使其无法适应不断变化的技术和业务需求。

在软件开发过程中,如果将架构师视为一种责任角色,会让架构师本人更注重其跨职能团队合作和领导能力的培养,同时也会让团队能够培养人才梯队。

成为优秀架构师的方法

作为工程师个体来说,如何成为真正的优秀的具有架构思维和能力的高级别技术型人才呢?

下面我总结一些可行的方法和建议:

  • 系统化学习:成为一名优秀的架构师需要系统化的学习,涵盖技术、领域知识、方法论等多个方面。可以通过参加培训、读书、做项目等方式来学习。

  • 多做实践:架构师不仅要学习理论知识,还需要在实践中不断提高自己。可以通过参加项目、写代码等方式来提升自己的实践能力。

  • 不断反思:作为一名架构师,需要不断反思自己的设计方案和决策是否合理,并进行总结和改进。

  • 注重团队合作:架构师不仅仅是技术专家,还需要具备领导能力和团队合作能力,能够与其他团队成员合作,推动项目的顺利进行。

  • 保持技术敏感度:架构师需要关注技术的新动态,保持敏感度,及时了解新技术的优劣,并在实践中进行验证。

  • 提高业务素养:架构师需要具备一定的业务素养,能够了解业务需求和业务流程,从而设计出更符合业务需求的系统架构。

  • 持续学习:技术的发展是日新月异的,作为一名优秀的架构师需要保持持续学习的态度,不断更新自己的知识和技能。

成为一名具有架构思维和能力的工程师和领域专家,需要具备系统化的学习、多实践、不断反思、注重团队合作、保持技术敏感度、提高业务素养和持续学习等多方面的能力和素质。

写在最后

随着软件行业的不断发展,软件架构师这一角色,也越来越受到企业和从业者们所热捧。

作为工程团队中的核心角色之一,架构师需要具备多方面的技能和素质,以保证系统的稳定性、可扩展性和安全性等方面的需求。

然而,一些对架构师的不够全面的理解和预期,也很容易造成诸如PPT架构师、框架架构师等扯谈性的岗位大量的存在,这会对整个团队和系统造成不良影响,甚至会导致项目的失败。

造成架构师扯淡的原因很多,其中既有个人原因,也有组织管理和设计上的原因。为了避免这种情况的发生,我们需要共同努力:一方面工程师们要提升工程的架构能力,人人都能成为架构师;另一方面,也需要工程在组织设计和团队管理上,让架构师能够真正的落到实处去解决问题。

架构是一项重要的工程能力,架构师是一个责任角色。

架构师,只有躬身入局,才能超越扯淡的困局。