引言: 在当下的互联网时代,架构师是互联网行业的热点关键词,人云亦云者居多,那互联网架构师到底是做什么的,如何来评价互联网架构师的优劣呢?

1. 架构师产生的历史渊源

互联网应用脱胎于传统软件应用,伴随着要求更为快捷与面向未知需求的互联网应用的兴起,对技术团队的要求也陡然升高,不再是按部就班的开发,而是需要快速迭代、快速响应来自市场和用户的需求和反馈,互联网应用的反应和迭代快慢决定了生死的微妙差别。
互联网时代的变更也带来了技术团队中组织结构和技术栈的快速升级与变化,所有的这些都来自于行业的快速演进和进化。于是乎之前的项目经理带领一帮高级程序员、中级/初级程序猿的组织结构显然已经不太适应时代的需求,产品经理、技术经理、系统架构师、数据架构师、运维架构师、前端开发与架构师等等诸多的细分职位与之伴生而为大家所接受和理解。
在这里,我们重点需要讨论的是互联网项目中的软件系统架构师的这个职位。

2. 众人眼中的”架构师”

在技术团队中,除了众多开发工程师、项目经理、技术经理和产品经理之外,还有一个架构师,通常大家都是把这个职位当作高级工程师中的资深工程师,经验和阅历都很丰富,有问题找他来解决就是了。
整个技术团队的主要管理内容包括: 人员管理、资源协调、进度管理、技术管理等等内容,分别分配到项目经理、技术经理和架构师等类似的职位上,一般架构师这个职位不承担技术之外的管理职能,主要专注于项目所使用的技术栈的评估与选取,关键的技术问题的分析与解决、核心代码和系统的设计与实现等任务;但是在实际的工作中,架构师和技术经理的角色在技术选型和关键部分的把控方面是由冲突和重叠的;另外,在技术团队中,人员和技术方面的工作实际上是无法分开的,重要的原因是人员大部分都是技术人员,其主要的工作是技术工作,很多时候都是需要听取来自专业技术方面的意见和反馈之后,才可以制定相应的排期以及计划,包括风险管理、工作量评估等内容。
在项目经理以及诸多的领导眼里,架构师就是做技术的,技术大牛,整个项目的技术架构以及技术问题都由其来承担和负责,出了问题就是架构师的问题。其实在实际情况中,一个项目出现了问题,固然有技术方面的因素,但是绝大多数情况下,技术都是次要的因素,技术之外的因素往往扮演了各种复杂的角色;产品的成败由业务线(比如产品经理)来负责,产品本身的质量由技术团队来负责,当然这个只是理想的状况下的自然推理。实际的情况,往往南辕北辙,彼此都是纠缠在一起的,业务方面深刻影响了技术架构的选择与设计,快速的业务变化带给技术架构以及技术团队的混乱与损耗都是非常巨大的。

3. 架构师的职责

架构师的职责应该是立足于技术和业务之间的中间角色或者平衡点, 在针对业务深刻理解的基础上,针对业务中存在诸多变数,挑选适合的技术架构和技术方案;结合现有的技术团队的水平与特点,选择合适的技术栈进行落地和实现。
架构师在做每一个决定之时都会受到诸多的因素的限制,比如高效的技术栈需要很高的学习曲线,在工期与人员素质之间需要权衡。精妙的技术架构并不能解决业务的快速迭代和变化,技术架构都是后知后觉的,无法准确的预知业务层面的变更与方向,故只能是跟随的角色,这样就必然会面临技术架构迭代和升级的需求,技术架构从来都不是建立了之后,就无需修改,可以承载各方的多重期望;事实上恰恰相反,技术架构是需要与时俱进的,是不断迭代和升级出来,根据不断变更的需求和团队情况来动态调整的。

4. 架构师的应变与坚持

架构师这个职位的优势所在是将技术方面重要的决定由专门的角色来进行负责和跟踪。当然这个职位的出现是基于现有团队功能的重新划分,将原来从属于技术经理的技术职能剥离出来独立成为架构师,必然带来了彼此之间的职能灰色地带;这也就带来一个巨大的隐患冲突: 技术经理和架构师之间的职责边界以及合作沟通。
技术架构的保持、重构与升级都与架构师的沟通技巧、坚持以及妥协技能息息相关,在技术团队之外,其余的角色和上层领导对于技术都是理解肤浅或者不甚了解的;除了自身的关注点之外,对于技术团队所为的技术架构以及业务的变更对于系统的冲击影响不甚关心;一般都是结果导向,在没有如期实现业务功能和目标之前,所谓的“技术架构”的稳定、重构与保持都是没有任何意义的。 所以,架构师需要与业务不停的沟通妥协,在面对对技术架构深远和错误的影响之时,需要有所坚持和信仰,对于对的方向和原则有所坚持;帮助技术团队规避一些人为或者外界带给系统和项目的各种冲击。
所有的这些都是建立在各个层面可以沟通和愿意承担的基础上,如果各个层面不满足这个基本原则,架构师所有的坚持与妥协都会让自身陷入不利的境地,过程中承担各种抱怨,来自技术团队、业务方和公司高层。建议此时,妥协第一,不必坚持,满足业务需求,尽力做好预防性设计,不做错误解决,已是万幸。

5. 总结

在其位,谋其政,站在架构师的职位上,架构师要本着对团队支持、对系统负责,对领导和业务相关方充分沟通与建议的基本准备,充分利用自身的经验与阅历,帮助团队规避各类或深或浅的系统之坑陷,保证业务线的正常运转,同时保持系统具备一定的灵活性、稳定性和可持续开发性。 尽人事,知天命,有所为,有所不为,架构师其实是技术、业务、管理和资源等各类因素之间进行妥协、沟通和协调的角色,混很容易,做好很难。

互联网时代架构师的职责与思考相关推荐

  1. 架构师的职责、核心能力、能力修炼手册

    孔庆龙,一线架构师,多年金融架构经验,具备 SOA 服务化.服务治理.系统优化. 分布式系统项目经验.目前关注于互联网金融技术架构设计.分布式架构.微服务架构. DevOps 实践.大数据等领域. 在 ...

  2. 互联网优秀架构师必读书单V2.0

    一篇文章搞懂高级程序员.架构师.技术经理.技术总监.CTO,从薪资到技能要领的区别,我提到了架构师的准确定义和所需工作年限,以及最重要的架构师的职责等. 从程序员进阶到架构师,6大核心技能详解,提到了 ...

  3. 架构师的职责是什么?

    在当今时代,随着信息技术的不断发展,各种软件系统和应用程序变得越来越复杂,其架构设计和开发难度也越来越大.因此,架构师的作用和重要性也越来越受到关注.架构师是一个拥有丰富经验和广泛技术视野的高级职位, ...

  4. 技术主管和架构师的职责

    技术主管的职责要求: 技术职责 研发任务管理 工作量评估 任务分解.分配 代码审核 风险识别 技术能力提升 代码规范制定和推广 生产力工具研发和推广 最佳实践总结和推广 关键代码实现 组织职责  协调 ...

  5. 《.NET应用架构设计:原则、模式与实践》新书博客--试读-1.1.2 架构师的职责

    1.1.2   架构师的职责<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" ...

  6. 微服务架构师的职责——《微服务设计读书笔记》

    如何定义架构师 架构师从英文单词Architect翻译而来,在英文中,Architect原来的意思是"建筑师".作者吐槽英文中架构师与传统的建筑师单词相同,但实际的工作性质并不相同 ...

  7. 架构师的职责都有哪些?

    架构师这个角色在任何软件开发项目中都是最有挑战性的. 1. 架构师的领导与决策能力 首先,架构师是一位技术领导,这意味着架构师除了拥有专门的技能外,还必须拥有领导能力,领导能力也要能体现在组织中的职位 ...

  8. .NET 高级架构师0003 架构师之路(2)---架构师的职责

    2 架构师的职责     近来看到CSDN上有个CTO俱乐部,里面聊得是不亦乐乎.我怀着无比崇敬的态度,拜读了一下牛人们的发言.里面有个哥们发起一个话题:"CTO, 你多久没有写程序了?&q ...

  9. 架构师之路(3)---架构师的职责

    3 架构师的职责 近来看到CSDN上有个CTO俱乐部,里面聊得是不亦乐乎.我怀着无比崇敬的态度,拜读了一下牛人们的发言.里面有个哥们发起一个话题:"CTO, 你多久没有写程序了?" ...

  10. [架构] 架构师的职责

    每个公司对于架构师的职责定位不同, 一般来说架构师的职责主要体现在以下几方面: 1.         负责公司系统的架构设计.研发工作: 2.         承担从业务向技术转换的桥梁作用: 3.  ...

最新文章

  1. qt的exe启动时隐藏图标_系统小技巧:Win10桌面图标问题多 常见3种这么解
  2. [C#]手把手教你打造Socket的TCP通讯连接(三)
  3. git push被拒绝_规范git项目提交并自动生成项目commit log
  4. 关于 java 实现 语音朗读
  5. 在google map上显示Instagram的照片
  6. 【Spring】Spring NoSuchMethodError okhttp3.internal.platform.Platform.log(ILjava/lang/String;Ljava/lan
  7. 95-120-042-源码-Cluster-SessionClusterEntrypoint
  8. java堆栈_Java堆栈– Java堆栈
  9. 说一说javascript跨域和jsonp
  10. blender烘焙法线贴图
  11. 抽象 封装 继承 多态
  12. matlab latex emf 乱码,latex 使用中的一些问题
  13. tfrecord 训练时报错 DataLossError corrupted record at 12
  14. 告别2016迎接2017,分享一些第三方插件
  15. Kafka KSQL实战
  16. 4K(不是价格)电视机选购指南
  17. movie_recommendation_spark1
  18. class AdamWeightDecayOptimizer(tf.train.Optimizer): AttributeError: module ‘tensorflow._api.v2.tra
  19. 论计算机叫兽们与林纳斯·托瓦兹
  20. 三国群英传霸业之王服务器维护,20190723维护公告

热门文章

  1. 安卓 IOS上架流程
  2. 从项目中学习Django 天天生鲜---------前台首页分析
  3. java applepay_【苹果支付】添加ApplePay的支持
  4. Unity中项目资源管理与优化
  5. 【运维工程师】运维工程师日常摘记
  6. MySQL学习笔记10(流程控制、函数)
  7. [luoguP3627][APIO2009]抢掠计划
  8. MSP430G2553学习笔记
  9. java info()方法_Java Provider getInfo()用法及代码示例
  10. 企业工商信息数据接口说明