草庐IT

优秀软件架构师成长之路

rayylee 2023-04-10 原文

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

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. 软件测试基础 - 2

    Ⅰ软件测试基础一、软件测试基础理论1、软件测试的必要性所有的产品或者服务上线都需要测试2、测试的发展过程3、什么是软件测试找bug,发现缺陷4、测试的定义使用人工或自动的手段来运行或者测试某个系统的过程。目的在于检测它是否满足规定的需求。弄清预期结果和实际结果的差别。5、测试的目的以最小的人力、物力和时间找出软件中潜在的错误和缺陷6、测试的原则28原则:20%的主要功能要重点测(eg:支付宝的支付功能,其他功能都是次要的)80%的错误存在于20%的代码中7、测试标准8、测试的基本要求功能测试性能测试安全性测试兼容性测试易用性测试外观界面测试可靠性测试二、质量模型衡量一个优秀软件的维度①功能性功

  2. ruby - Ruby 和 Ruby on Rails 中的三层架构 - 2

    我是一名决定学习Ruby和RubyonRails的ASP.NETMVC开发人员。我已经有所了解并在RoR上创建了一个网站。在ASP.NETMVC上开发,我一直使用三层架构:数据层、业务层和UI(或表示)层。尝试在RubyonRails应用程序中使用这种方法,我发现没有关于它的信息(或者也许我只是找不到它?)。也许有人可以建议我如何在RubyonRails上创建或使用三层架构?附言我使用ruby​​1.9.3和RubyonRails3.2.3。 最佳答案 我建议在制作RoR应用程序时遵循RubyonRails(RoR)风格。Rails

  3. 网站日志分析软件--让网站日志分析工作变得更简单 - 2

    网站的日志分析,是seo优化不可忽视的一门功课,但网站越大,每天产生的日志就越大,大站一天都可以产生几个G的网站日志,如果光靠肉眼去分析,那可能看到猴年马月都看不完,因此借助网站日志分析工具去分析网站日志,那将会使网站日志分析工作变得更简单。下面推荐两款网站日志分析软件。第一款:逆火网站日志分析器逆火网站日志分析器是一款功能全面的网站服务器日志分析软件。通过分析网站的日志文件,不仅能够精准的知道网站的访问量、网站的访问来源,网站的广告点击,访客的地区统计,搜索引擎关键字查询等,还能够一次性分析多个网站的日志文件,让你轻松管理网站。逆火网站日志分析器下载地址:https://pan.baidu.

  4. ruby-on-rails - 具有六边形架构和 DCI 模式的框架和数据库适配器 - 2

    我尝试用Ruby设计一个基于Web的应用程序。我开发了一个简单的核心应用程序,在没有框架和数据库的情况下在六边形架构中实现DCI范例。核心六边形中有小六边形和网络,数据库,日志等适配器。每个六边形都在没有数据库和框架的情况下自行运行。在这种方法中,我如何提供与数据库模型和实体类的关系作为独立于数据库的关系。我想在将来将框架从Rails更改为Sinatra或数据库。事实上,我如何在这个核心Hexagon中实现完全隔离的rails和mongodb的数据库适配器或框架适配器。有什么想法吗? 最佳答案 ROM呢?(Ruby对象映射器)。还有

  5. 【血泪建议】软件测试岗位现状,可惜之前没人告诉我,肠子都晦青了.... - 2

    谈到现状,国内的软件测试行情目前呈现了两极分化的极端情况。一个是早期的手工测试人员吐槽工作不好做,即使有工作也是外包,而且薪资太低;一方面是很多互联网企业感叹自动化测试人才难找,有技术的自动化测试工程师,高薪难聘。这两者其实并不矛盾。手工测试工作难找也确实是目前真实的行情早期从事功能测试的手工测试人员,在测试方面大多采用手动、人工执行的方式查找软件缺陷和BUG,用行业术语来描述就是“点点点”。这种测试方式耗费大量人力和资源,工作效率却十分低下。在早期软件复杂和迭代程度不高的情况下,有资本的企业会“供养”一批这样的手工测试人员。但对测试员本身来讲,毫无技术难度的工作,和几乎没有保障的薪资水平,直

  6. 设计一个亿级高并发系统架构 - 12306火车票核心场景DDD领域建模 - 2

    “架设一个亿级高并发系统,是多数程序员、架构师的工作目标。许多的技术从业人员甚至有时会降薪去寻找这样的机会。但并不是所有人都有机会主导,甚至参与这样一个系统。今天我们用12306火车票购票这样一个业务场景来做DDD领域建模。”开篇要实现软件设计、软件开发在一个统一的思想、统一的节奏下进行,就应该有一个轻量级的框架对开发过程与代码编写做一定的约束。虽然DDD是一个软件开发的方法,而不是具体的技术或框架,但拥有一个轻量级的框架仍然是必要的,为了开发一个支持DDD的框架,首先需要理解DDD的基本概念和核心的组件。一.什么是领域驱动设计(DDD)首先要知道DDD是一种开发理念,核心是维护一个反应领域概

  7. 焕新古文化传承之路,AI为古彝文识别赋能 - 2

    目录1古彝文与古典保护2古文识别的挑战2.1西文与汉文OCR2.2古彝文识别难点3合合信息:古彝文保护新思路3.1图像矫正3.2图像增强3.3语义理解3.4工程技巧4总结1古彝文与古典保护彝文指的是云南、贵州、四川等地的彝族人使用的文字,区别于现代意义上的彝文,古彝文指的是在民间流通使用的原生态彝文,多达87046字。古彝文的起源距今至少数千年,是世界上最古老的文字之一。对古彝文字集研究有助于理解尚未被翻译成汉文、用字尚未规范化的古籍,更深层、透彻地作用于传统文化保护。古彝文字义对照图(网络资料+邵文苑供图)古籍是不可再生的宝贵资源,应当得到妥善保护。中国的古籍在历史上迭经水火兵燹等自然灾害、

  8. ruby-on-rails - 什么是可以轻松集成到现有应用程序的优秀 Ruby on Rails 论坛? - 2

    什么是可以轻松集成到现有应用程序的优秀开源RoR3论坛?可选功能:OpenID支持Haml/SCSS模板支持表情符号、YouTube、图片等我可能会对其进行大量更改,而且我在Ruby方面仍然很薄弱,所以干净、带注释的代码以及良好的实践会很棒。谢谢:) 最佳答案 最近我在搜索类似的功能并遇到了discourse.您绝对应该检查一下。Discourseisthe100%opensource,next-generationdiscussionplatformbuiltforthenextdecadeoftheInternet.Whenev

  9. 0基础学习软件测试有哪些建议 - 2

    其实现在基础的资料和视频到处都是,就是看你有没有认真的去找学习资源了,去哪里学习都是要看你个人靠谱不靠谱,再好的教程和老师,你自己学习不进去也是白搭在正式选择之前,大可以在各种学习网站里面找找学习资源先自己学习一下为什么选择学软件测试?同学们理由众多!大概分这几类:①不受开发语言、行业产品变化限制;②入门更简单,对零基础、女生都友好;③软件项目都需要测试人员,职业生涯稳;④学习周期短,但薪资并不低。要想“肩扛”一条线?需掌握三大技能:技能1:掌握测试流程,熟悉系统框架能提前与开发人员一起制定测试计划,通过测试左移,推动代码评审,代码审计,单元测试,自动化冒烟测试,来保证研发阶段的质量。技能2:

  10. “网安三人行”盘点:软件供应链安全的那些事儿 - 2

    2022年伊始,默安科技联合数世咨询举办以“软件供应链安全的时与势”为主题的访谈活动,由数世咨询创始人李少鹏主持,邀请贝壳安全研发负责人李文鹏、北京邮电大学副教授张文博、默安科技副总裁沈锡镛三位行业大咖做客网安小酒馆,从产业、企业、学术的不同维度,共同探讨软件供应链安全建设的新思路,为业界呈现了一场开年网安盛宴。随着全球软件供应链安全事件频发,软件供应链安全逐渐成为业界关注焦点,也成为影响国家重要信息系统安全与关键信息基础设施安全的重要因素,以及网络安全保障体系和能力建设的重要环节。嘉宾们围绕软件供应链安全发展的主要驱动力、关基行业中的实施现状和落地难点、产学研成果转化、软件供应链安全的重要性

随机推荐