如何成为一名优秀的软件架构师

简介:

随着软件行业的发展,软件人才的队伍不断壮大,但同时新老交替的速度也在不断加快,让很多技术人员开始有一种危机感。在这种大环境下,从事更高层次开发构架工作的软件架构师成为令人向往的角色。本期【开源访谈】邀请到华为 SCEF 产品软件架构师姚磊分享如何成为一名优秀的软件架构师。

【分享嘉宾】

姚磊,华为SCEF产品软件架构师,8年电信设备从业经验,进入华为以来一直从事华为EPC网络能力开放产品SCEF软件开发、设计工作,对SCEF产品架构、业务功能有深入的理解。


102858_3ZWM_2686220.jpg

【访谈实录】
1、请简单地介绍一下您自己(技术背景、学习经历、工作经历)。

答:大家好,我是姚磊,2010 年毕业于湖南大学。我一开始是在一家电信设备公司从事网管的工作,当时基于开源软件做了一个网络管理工具,算是一些比较简单的代码编写和模块开发工作;工作两三年之后,开始涉及一些模块的设计,可以说是一名优秀开发者了,但还算不上一个架构师;后来到了第二家公司主要做了一个协议的开发; 2014 年进入华为,刚开始的时候作为 SE 负责产品的开发,做的是开源代码的研究,就是考虑怎么把开源代码集成到我们的产品中去,后来担任的是华为的 MDE,研究平台的对接,再后来开始做一些独立性的设计。所以,从我个人来说看来,大部分时间只是在做开发的工作,真正作为一名架构师的资历还是比较浅的。

2、程序员与架构师的区别是什么?

答:程序员可能更多关注的是如何实现一个模块的功能,但做为一名架构师要有一个全局性的思维,关注的不是具体实现的细节,而是各个模块之间怎么去交互、部署,还有它们的性能、安全,以及跟 web 的交互,以及怎么去管理等等。把各个模块都部署好之后,还要把限制通讯的结果、交互的内容都清晰地定义好,考虑接口对接的时候采用什么样的协议这些层次的问题。

3、软件架构师的进阶除了日常工作上的积累,还需要哪些方面的学习?

答:作为一个架构师首先要关注技术方面的问题,但不仅仅关注于当前的产品的技术,还要关注整个行业的发展趋势,包括优秀的一些架构,比如优秀的开源技术架构等,如果你只是关注自己产品的架构的话,也许能满足当前的需要,一旦外部发生变更的时候,就可能不适用了。

除了技术方面的问题外,周边的东西或者日常生活的方方面面都要去留心观察。举个例子,我们架构部有个大拿,他在设计我们产品的一个主要架构的时候,想了很多方案都通不过,有一天他在路上看到交通管制,看交通梳理的时候灵感来了,他按照这个思路设计了一个架构之后投票一次就通过了。

4、软件架构师需要具备怎样的素质与职责

答:(1)过硬的技术。其实大部分的软件架构师都是软件出身的,所以至少是某一个技术方面的大拿,如果技术不过关的话,设计的框架的性能、安全性都会受到约束。即使是成为架构师之后写代码的机会少了,也要经常去研究一些比较优秀的代码、开源架构,还要学习别人优秀的实践经验等等。

(2)良好的沟通能力。作为一名架构师,设计好一个架构之后肯定要给别人介绍这么一个东西,告诉别人这个架构能解决别人的问题,这就需要一定的沟通能力。

(3)良好的书面表达能力。一个优秀的文档能更好地呈现你所设计的东西。现在一些比较规范的公司,写架构的时候都会要你写这个架构的模板,包括安全、性能、数据库都要有一个章节去分析。但是一些别的小公司没有那么规范,这时候就要去研究一下周边的一些大公司或者行业的标准。

5、作为 SCEF 软件的架构师,应该注重业务上的发展,还是技术上的发展?

答:因为我本身是做技术出身的,原来我的理解是技术的发展更重要。但后来发现一个问题,我们的工程师能把产品说得头头是道,但只是从工程师这个角度去给别人演示展示这个产品,当对象发生变化了,面对的不再是工程师而是客户的时候,就不能很好地用客户化的语言去描述。

所以作为一个架构工程师的话,技术是基础,业务方面的发展也很重要。程序员可以只关注自己的技术,但是作为 SE ,视野应该放宽,不能闭门造车。华为内部对职位的划分都是很详细的,在各个层级都有很专业的人才,像行销人员的业务能力就很强,我们就可以多到一线去跟行销人员和客户沟通,学习怎么用客户的语言来跟他们沟通。

6、您是如何看待“大部分码农做不了软件架构师”这一观点的?

答:从人自身的发展来看,成为架构师要比一般的开发者要付出更多的精力,但是很多码农会满足于目前的成就,不再愿意去学习提升自己,其实架构师写的文档都是可以看得到的,所以如果愿意去提升的话可以自己去学习、去实践,大部分的架构师其实都是在一步步摸索和实践中成长起来的;从行业的大环境来说,公司方面也不需要很多架构师,一个产品最多配备一两个架构师就够了,然后可能还需要个别优秀的开发者对架构师设计的模块进行理解,把这个模块进行消化,再由其他的开发人员去实现就可以了。

7、什么样的人更合适做软件架构师?

答:程序员能成为架构师,首先当然要热爱这门技术,再者我觉得应该有良好的沟通能力和表达能力,包括写文档的能力,还有视野要开阔,能主动地从生活中的点点滴滴去感悟和思考。

文章转载自 开源中国社区 [http://www.oschina.net]

相关文章
|
Kubernetes Cloud Native 架构师
现代软件架构师的 10 个技巧
现代软件架构师的 10 个技巧
138 1
现代软件架构师的 10 个技巧
|
敏捷开发 监控 数据可视化
从一个小角度观察敏捷实践
从一个小角度观察敏捷实践
111 0
从一个小角度观察敏捷实践
|
存储 架构师 程序员
为了成为一名架构师必须稳扎稳打,软件架构设计知行合一很重要
最近在看程序员向架构师转型这本书,同时也做了思维导图的笔记,确实也是有一些收获,在为做好一个架构师而做准备,通过学习架构设计的原则到设计架构的过程来对架构师的工作有更大而全的认识。
|
架构师 前端开发 JavaScript
工作中的“厨师”,生活上的诗人,其实也是架构师
你印象中的架构师是什么样的? 每天专注于确认需求与拆分系统? 每天游走于各种高级的技术会议? 就有这样一位前端架构师,他一心只想做个好“厨师”,能服务好大家,让所有人不会饿着肚子去作战就是他的追求。
179 0
工作中的“厨师”,生活上的诗人,其实也是架构师
|
运维 测试技术 持续交付
|
持续交付
敏捷软件开发宣言--常读常新
敏捷软件开发宣言 http://www.agilemanifesto.org/iso/zhchs/ 我们一直在实践中探寻更好的软件开发方法,身体力行的同时也帮助他人。由此我们建立了如下价值观: 个体和互动 高于 流程和工具 工作的软件 高于 详尽的文档  客户合作 高于 合同谈判  响应变化 高于 遵循计划 也就是说,尽管右项有其价值,我们更重视左项的价值。
1049 0
《软件工艺师:专业、务实、自豪》一2.4 《敏捷软件开发宣言》
本节书摘来华章计算机《软件工艺师:专业、务实、自豪》一书中的第2章 ,第2.4节,[英]桑德罗·曼卡索(Sandro Mancuso)著 爱飞翔 译, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1041 0
|
测试技术
《软件工艺师:专业、务实、自豪》一2.2 面向技术的敏捷软件开发原则
本节书摘来华章计算机《软件工艺师:专业、务实、自豪》一书中的第2章 ,第2.2节,[英]桑德罗·曼卡索(Sandro Mancuso)著 爱飞翔 译, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1230 0