很多技术小伙伴都在问我,架构师是不是很牛逼,那么为什么自己不能成长为一名优秀的架构师呢?而总是作为工程师资源被项目打包带走,并周而复始的完成领导的业务开发需求任务。
架构师的工作职责?
为了方便技术小伙伴理解架构师的工作职责,我这里拿一个具体的项目来分析,比如你们公司要开发一个电商项目,而公司的主营业务为短视频或者直播,也就是这个项目需要完全的从0到1的去落地。
作为这个项目的架构师,你的职责是什么呢?
(1)你要将电商项目的雏形搭建起来,也就是说你要利用架构元素,将电商项目的整个架子给画出来,并配合产品经理和需求方去给技术开发人员做业务功能和技术的布道,并让他们知道该做什么,如何去做,怎么去落地等思路,也就是这个是架构师必须要完成的工作。
至于怎么去完成,每个架构师都有自己的方法论,但最终的目的是一致的,那就是需要你架构师从架构的视角去解释这个电商项目,并让技术开发都懂你的架构理念。
(2)你要将需求方和产品侧的需求原型转换为技术开发人员可以理解的架构图,比如功能架构、服务架构等,也就是说你要解决这个电商项目从需求到任务,再到开发工作量的转换,让技术人员更加熟悉自己工作内容,其实真正的高手架构师,他做出来的架构,就算是一个初级工程师,比如一年左右的新人,他拿到你的需求和任务,他也会很快的参与落地项目,这个就是衡量架构师架构水平的最高标准,你做的每一件事情就是为了让相关责任方都能够理解架构和需求,从而发挥开发人员最大的能动性,并提高项目落地的效率。
(3)你要能够快速的完成项目相关技术的选型,且要求快准狠,也就是说你的技术选型原则上来看,应该是拿来主义,也就是需要从你自己的技术库中顺手拈来,而不是靠别人去做技术调研。当然这个也是衡量架构师水平的一项硬性指标,原则上讲,一个优秀的架构师也是某一个领域的技术专家,也就是说架构师必须要具备很强的技术硬实力,他才有资格去做一个实干型的架构师,而不是虚头巴脑的理论派。
(4)你要能够Hold住这个电商项目,也就是说你需要项目中的技术开发人员能够服你,换句话说,你要具备绝对的权威。
当然这个权威并不是靠一个职级去压出来的,而是靠你的技术领导力,去取得技术开发人员的信任,让他们依赖你,并按照你制定的项目架构计划去落地,大概率都是没问题的。
这个信任并不是靠一两件事能够获取的,而是需要架构师在日常工作的过程中就能体现出“问题终结者”的角色,让技术开发人员觉得,任何技术和业务问题,到你这边都能够解决,并且还总是能够找到当下的最优解。
(5)你要能够做电商项目的长期规划, 这个其实很好理解,那就是你应该非常的清楚功能和技术的取舍,也就是我们常说的技术革新和业务功能占比的平衡。但是你必须要有一个非常清晰的项目的技术和业务发展的演进路线。很多人或许会问,这些事情不是该技术负责人去解决的吗?这里就告诉大家,技术负责人主要还是解决项目资源问题,也就是说他需要架构师去辅助他,完成项目的落地,那么架构师就应该非常清晰的给他阐述出项目的演进路线,并一起拍板完成项目的规划,从而更有效的去管理资源,比如技术开发的技术和业务储备以及开发的培养和纳新等。
(6)你要想尽一切办法让技术开发人员和技术负责人觉得你的角色是非常重要的,而不是可有可无的。
其实这个也是很多架构师非常头疼的事情,架构师很容易被边缘化,这个是很多业务产品团队都会碰到的问题。当一个架构师没办法参与到核心业务项目中,并贡献自己的架构经验,帮助项目去高效的落地,那么这个架构师很可能会被边缘化,最终就会出现高开低走的局面,最终的结果就是人走茶凉,一地鸡毛。
架构师是拼出来的,而不是指派的?
很多技术小伙伴其实都会有这样一种疑惑,那些公司中优秀的架构师,难道真的是天生就是架构师的料,他一开始就是做架构师,且还不用参与业务项目中代码的落地吗?
答案是否定的,一个优秀的架构师绝对是靠业务和代码堆出来的,也就是他以前肯定是一个业务和代码高手,当然个别例外哈(一些水货)。
架构师必须是从业务产品线中培养出来的,才会接地气,否则肯定是空中楼阁,让人看不明白他的架构理念。
说了这么多就是想告诉大家,架构师是自己评出来的,而不是领导指派的。你能力强,技术和业务都强,落地能力强,项目实战能力强,自然你就成为团队中的架构师,水到渠成之后,你的领导只需要官宣一下就行。
架构师来源于业务,因此业务的规模和复杂度非常的重要,这个也是我要说的“为什么大厂出来的架构师那么吃香的原因”,一个优秀的架构师必须要有一个超大规模的业务产品去滋养。
一个优秀的架构师必须要参与足够多的大型项目的落地,他才能积累更多的,且让人信服的架构经验。
程序员如何成为架构师?
一个程序员如何让自己成为架构师,这个是没有捷径的,但是你必须从日常的代码工作中去寻找突破口。
首先,你一定要聚焦于你现有的项目,也就是你一定要理解你做的业务,无论它是否复杂,但是你一定要将它展开,看看行业类的其他竞品是如何做的,并从全局的角度去看业务,从而转换为架构元素。
其次,你一定要有自己专业的技术栈,也就是你必须要有自己拿得出手的技术,比如微服务架构(Spring Cloud Alibaba等技术),当然这些不仅仅是会用,而是真正的将这些技术变成自己的工具。
最后,一定要会展示自己的能力,也就是你要学会布道自己的技术水平,并在团队中推广自己的架构理念,从而提高自己的影响力,这样你才会有机会成为一个架构师。
架构师必须要会沟通,假如你只想搞技术,那么你也可以专心的做技术,成为一名技术专家。