成为一名优秀架构师,是很多程序员努力的方向。相关的讨论也从没停过,除了大家说烂了的那些架构师的特质和需要具备的技能外,还有很多是我们可以在工作和学习过程中重点培养和关注的能力。

1. 在软件工程师职业发展的各个阶段中,架构师担任着怎样的定位?

• lv.1 程序员
主要实现软件功能、编写代码、处理漏洞等。经过沉淀,程序员可以晋升为高级程序员,负责某些模块具体和复杂功能的设计和开发,并编写核心代码。• lv.2 技术Leader
这个阶段,可能负责一个小团队,关注技术管理,如交付效率和交付质量,同时关注任务评估,最大化利用资源。此外,他们还注重代码质量(如编码规范)、核心模块的架构设计、项目管理和团队管理等。• lv.3 技术总监
负责一个技术方向或者产品线,需要搭建企业的某个技术平台,建立相应的研发体系,并领导技术团队进行持续交付,管理产品线,打造明星产品,并建立技术壁垒,形成技术竞争力。• lv.4 架构师
注重架构设计,包括企业架构的实现和相关评审。架构师主要进行企业架构的规划和实现,并且根据业务规划和应用场景进行前瞻性的建模,同时识别非功能性需求,如性能、可扩展性、安全性、高可用及易部署性等,还需要进行架构治理,识别架构缺陷,提出重构建议并推动执行。  • lv.5 CTO
企业内负责技术的最高管理者,负责提供技术产品战略规划,提升企业技术竞争力,并且通过技术赋能业务。他们有敏锐的商业洞察力,进行深入的产业研究,参与企业战略规划,并思考未来3~5年的技术发展趋势及技术发展给企业带来的机遇和挑战,为企业提前布局,同时建立企业的架构治理体系及进行组织文化建设。

2. 架构师的特质和需要具备的技能

架构师在程序员的职业生涯中处于非常高的位置,其也是整个企业数字化转型中的核心。

成为架构师没有捷径,除了一些架构师的特质和需要具备的技能,我们还可以在工作和学习过程中重点培养和关注以下几点。

3.架构师能力的培养

3.1 全局视野

架构师在做决策时,需要更多地跳出当前组织、局部领域,从全局视角、用户视角、业务视角、企业战略视角出发。具备全局视野是架构师的核心能力,比如在开展会员业务时,架构师不仅要做好会员的基础管理,还要关注与会员相关的交易、商品、店铺、导购等,了解整体链路,从更高层次看待问题,定义场景及进行架构规划。

3.2 开放心态

架构的本质是权衡和取舍,既需要更多的知识和输入,也需要和多种角色交流。在这个过程中,架构师的心态要更加开放,充分与人交流、沟通,既要关注当下痛点也要符合未来的发展,既要保留未来的可扩展性也要避免过度设计。其实,开放并不意味着一味地妥协,需要坚持基本的架构原则。

3.3 保持前瞻性

前瞻性指的是架构师需要尽可能多对未来考虑一些,如同下棋一样,往往棋手会多考虑几步棋。这就需要架构师多从不同领域、不同视角、不同的上下游和合作伙伴进行沟通,更多地了解业务战略和技术趋势,不断学习,关注业界动态,从实战角度,提高洞察能力,从架构设计层面更多地考虑扩展性及灵活性。

3.4 解决问题

架构师应该是问题的终结者,他们需要把解决复杂问题作为自己的使命,包括电商领域的高并发、高可用问题,业务角度的库存挤压和订单寻源问题等。这就要求架构师对于问题的发现、定义和分析等有清晰的脉络,并可以结合多方资源最终解决问题。

3.5 能拿结果

架构师并不是画几张图就可以了,而是需要将企业架构落到实处,帮助业务和技术人员拿到结果。在这个过程中,需要架构师具备很强的推动和沟通能力,有鲜明的观点,能说服他人。架构师需要换位思考,从对方的KPI角度出发,找到共识点,同时需要推动项目落地,在关键时刻“救火”。

4. 架构师的关注重点

在实践过程中,架构师需要充分分析周边的环境,建大图、定方向、找打法、冲业绩,以理论与实践相结合为原则,步步推进。

架构师一方面要协助企业领导做出正确决策,另一方面要推动项目落地,建议架构师重点关注以下实践能力。

•  业务方面 :业务愿景、关键指标、组织架构、业务现状、业务流程、风险控制等。•  团队方面 :团队使命、价值观、人才梯度、角色分工、团队协作方式、组织文化等。•  个人定位 :团队期望、架构目标、个人规划、能力匹配、资源匹配等。•  技术功底 :保持编码、参与社区、团队CodeReview,技术是根本。•  技术体系 :技术现状、技术风险、技术债务、技术趋势、云原生技术体系、研发体系、质量保障、稳定性体系等。•  应用建模 :业务领域知识、领域建模、领域服务、服务管理等。•  项目管理 :目标管理、里程碑、计划管理、风险预警、协同与沟通、项目复盘等。

5.有关技术管理的几点建议

一般架构师也会承担一定的组织管理工作,有些企业的架构师需要带技术团队,担任技术Leader的角色,这里就技术管理提出几点建议。

架构师的工作涉及团队建设,毕竟架构师一个人是很难完成架构设计和落地的。一个好的架构师就像一座灯塔,会照亮和影响整个团队。另外,架构师与团队成员之间的充分交流和对焦是非常重要的,通过交流可以达到目标的共识,有效地处理资源上的冲突等,这些都非常考验架构师的技术管理能力。

有关技术管理的几点建议如下所示:

  • 因材施教,根据不同人员的优势、劣势和意愿,合理安排工作,激发他们的主动性。
  • 打造良好的团队氛围,比如开展团建、下午茶、知识分享等活动。
  • 为团队提供清晰的业务大图和技术大图的解读。
  • 制定一致的工作原则,明确团队要什么、不要什么。
  • 鼓励创新、独立思考,勇于承担责任。
  • 勤与团队成员进行一对一的交流、KPI讨论和复盘,给出具体的建议和方向。
  • 做好招聘,注重Coding能力,注重技术、架构、业务三位一体,注重文化认同等。
  • 做好团队的目标管理,建议使用OKR来激发团队成员的主动性。
  • 鼓励团队多与周边团队(包括客户、上下游、业务方等)协同。
  • 建立团队文化:工程文化、DevOps文化、Ownership文化、客户第一文化等。

本文节选自王思轩博士的著作《数字化转型架构:方法论与云原生实践》一书。

优秀软件架构师成长之路相关推荐

  1. 程序员突破内卷大法:软件架构师成长之路(干货系列,说人话接地气)

    内卷严重,最近一直有人问我,怎么才能成长成为一名真正的软件架构师,我沉思良久. 回首看从业20年所走过的路,从技术小白一步一步成长起来,做了十多年的架构师和首席架构师,做CTO也六七年了,略有一些心得 ...

  2. 软件架构师成长之路: Master Plan for becoming a Software Architect

    Roadmap of a Software Architect 软件架构师在软件开发团队中扮演着高级的角色,这一角色需要时间和经验的积累,需要跨职能的技能和知识.除了技术方面的挑战,还要求架构师具备良 ...

  3. CSDN付费专栏写作感悟及成长之路、兼论学习会员模式的创作者协同效应

    CSDN付费专栏写作感悟及成长之路.兼论学习会员模式的创作者协同效应 目录 CSDN付费专栏写作感悟及成长之路.兼论学习会员模式的创作者协同效应 #首先.感恩. #其次,责任. #再次,初心与收益. ...

  4. 刘知远、赵鑫、施柏鑫:AI青年科研人员成长之路

    整理 | 刘冰一 在6月2日举办的智源大会青源学术年会举办的一个圆桌"青年科研人员成长之路与经验分享"上,清华大学计算机系副教授刘知远.中国人民大学高瓴人工智能学院长聘副教授赵鑫. ...

  5. 从开源小白到 Apache Member,我的成长之路

    2019独角兽企业重金招聘Python工程师标准>>> 我们走过的每一步路,都会留下印记,越坚实,越清晰. 近日,Apache 软件基金会(ASF)官方 Blog 宣布全球新增 40 ...

  6. 阿里 10 年:一个普通技术人的成长之路

    作者 | 宋意  阿里巴巴高级技术专家 来源|阿里巴巴云原生公众号 导读:不管是什么角色,成长是我们每个人都必须经历的过程.作为一个技术人,成长不仅是技术上的不断精进,也包括日常工作中的方方面面.本文 ...

  7. 写作—开启技术成长之路

    一.前言 作为一名程序员,经常在网络上查找各种各样的资料.此时,会检索到很多优秀的技术文章.一篇好的技术文章,可能不仅仅会解决我们的问题,更能在阅读的过程中带给我们一些美好的体验. 许多时候我们也憧憬 ...

  8. Web架构师成长之路

    Web架构师成长之路 本人也是coding很多年,虽然很失败,但也总算有点失败的心得,不过我在中国,大多数程序员都是像我一样,在一直走着弯路.如果想成为一个架构师,就必须走正确的路,否则离目标越来越远 ...

  9. 架构师成长之路:如何提升技术掌控力?

    架构师成长之路:如何提升技术掌控力? 简介: 在很多人眼里,架构师就犹如古代的将军一般,既能运筹帷幄决胜千里,又能独闯敌营取人首级,是所有士兵们崇拜的偶像...好了,其实我只是想说:能成为一名优秀的架 ...

最新文章

  1. 一起谈.NET技术,在.NET Workflow 3.5中使用多线程提高工作流性能
  2. Google Map App 问题集锦
  3. Unicode(UTF-8, UTF-16)令人混淆的概念
  4. python最佳实践笔记
  5. Qt字符串转日期时间-毫秒
  6. 一个失败的创意:GPGPU纹理化通用加速kD树的实现
  7. spring mvc 前后端数据交互笔记(解决415,400问题)
  8. [转载]JSP利用组件实现文件上传的全攻略
  9. html图片过渡,CSS3 过渡
  10. C++11Lambda表达式捕获变量(Capturing the Variable)与本地变量(Local Variable)
  11. Method_Confusion_Attack_on_Bluetooth_Pairing
  12. c c++ 信息服务查询服务器
  13. 安装tensorflow出现 Cannot uninstall 'wrapt'. It is a distutils installed project and thus we cannot accu
  14. quartus 使用技巧
  15. dirbuster暴力破解工具
  16. 思想,坚持,信仰,一切
  17. Tkinter实现人员管理系统(mongodb版)
  18. 2022年秋季期寒假总结
  19. word缺失字体问题
  20. 如何做好图片页面seo 优化

热门文章

  1. Kubernetes 版本锁定到1.12.3
  2. spring+redis自主实现分布式session(非spring-session方式)
  3. java八大基本类型介绍
  4. 【深度学习系列】用PaddlePaddle和Tensorflow实现GoogLeNet InceptionV2/V3/V4
  5. 《基于MFC的OpenGL编程》Part 14 Quadrics
  6. 13.SpringMVC核心技术-异常处理
  7. Linux命令之mv
  8. vs2008 调试时不会命中断点,源代码与原始版本不同,解决办法
  9. ViewPager切换滑动速度修改
  10. 一个第三方Dart库导致的编译错误!