【51CTO独家特稿】成为一个软件架构师往往需要具备十年以上的软件开发经验,入门的门槛是相当高的。而架构师的工作与实际项目经验密不可分,尤其是在互联网产品愈发重要的当下,一个软件架构师往往需要掌握多项技能。程序员如果想要修炼为一个架构师,究竟需要培养自己的哪些技能?近日,51CTO开发频道对广州铁克司雷网络科技有限公司(techsailor.cn)梁远华先生(Leung)进行了邮件专访。梁先生现在是网络社区平台聚聚呀(jujuya.com)项目的项目总监。
架构师个人简历
聚聚呀项目总监梁远华先生
梁远华先生有十年的IT工作经验,在铁克司雷公司负责了整个聚聚呀项目的架构与实施。梁先生接触过各种各样的工作,做过的工种也是多种多样,服务过的公司也是类型多样,并且曾经和朋友一起两次创业。曾经从事计算机教学,网管,程序员,网站项目管理等工作,并曾在信息产业部第五电子科研所及地球村计算机科技公司积累了不少宝贵经验。
以下是此次访谈的具体内容。
51CTO编辑:软件架构师必须具备哪些技能或素质?哪项技能(素质)是您认为最重要的?
梁远华:就我的经验,下面三点是十分重要的。
1、整合分析能力
就拿聚聚呀来说吧,我们的宗旨是“让大家结识共同兴趣爱好人群的平台,可以方便让每个人创建和管理自己社区的平台”,这个是我们现在的核心,对于一个架构师应该有很强的分析能力,能够根据产品的宗旨,目标,分析产品的定位和产品业务,整合现有的技术领域用***的方式来实现产品的概念。
2、产品实现规划能力
对于任何一个互联网产品如何实现是架构师的重要责任之一,需要保证产品功能的现实,产品功能的可持续性,产品的稳定性及产品的可用性等。产品的这些需求都依懒于架构师对产品技术的规划。我们团队在产品的现实规划上有自己明确的目标和具体的可行性实施方案,以满足产品在升级,改版的需要。
3、横向沟通能力
一个产品它会分成多个部门的合作,各部门沟通的有效性直接会影响到产品的质量和产品的进度。聚聚呀产品现在有7个部门的同事协同工作,对于架构师的溝通要求是需要去同各个部门间进行沟通,交流,获得更多的产品信息,业务数据,运营指标,产品需求等各种信息的汇集才能作为产品架构决策的基础数据。
51CTO编辑:要成为一个架构师,是否存在快速成长的捷径?普通程序员如何一步步向架构师的目标靠近?
#T#梁远华:成为架构师严格上来说是没有什么捷径的,架构师从产品的生命周期上来看,他所涉及的层面很广,而且他所需要的知识面也会很广,需要过程更需要时间的学习和磨练。
我们的团队也会有一个培训机制,会挑选出一些比较有发展潜力的开发人员通过引导培训方式让他们走上架构之路。
我们的经验是从以下几个方面着手:
1、 扩大知识面:提升对互联网行业的认知度,对互联网产品的分析,并且通过小团队分享方式对互联网“热门现象”进行案例分析。
2、 专业度训练:提升横向和纵向的技能培训,特别是对专业态度的培训很重要,要求开发人员对自己的做的工作有强烈的责任心。
3、 分析思维训练:提升开发人员对产品功能需求的分析以及对产品业务需求的分析整合能力。
51CTO编辑:假设有三名优秀的程序员,A尤其擅长沟通与团队管理;B的编程功底深厚,且对新技术能快速掌握;C在逻辑思维和抽象能力方面表现优秀。您会重点培养哪位程序员成为架构师?
梁远华:我会选择C在逻辑思维和抽象能力方面表现优秀,架构师需要很强的抽象能力。
51CTO编辑:在一个软件项目中,通常有哪些问题是架构师最难把握的?
梁远华:我感觉有下面两点——
1、 对问题的定位,分析
2、 权衡取舍
以上二点在做聚聚呀产品过程中有深刻的体会,特别是第二点,一个产品会有很多的东西要做,什么是可做的,什么是重要的,什么是将来能做的,每天都做做选择题。