软件架构师不等同于资深程序员

标签: 架构师 心得体会 | 发表时间:2013-01-28 00:10 | 作者:Aqee
出处:http://www.aqee.net

本文的作者Armel Nene是ETAPIX Global公司的首席架构师,他居住在伦敦,他参与过的开源项目包括 Apache Lucene,,Apache Nutch, Liferay 和 Pentaho等

如今很多的公司的IT部门仍然认为招聘一个资深的程序员,他同样也能承担软件架构师的角色。

资深程序员对整个软件生命周期很了解,他们可以经过培训成为架构师,但他们不等同于架构师。一个软件架构师首要的和最重要的是他的远见。如果一个架构师拥有一些软件开发经验,那会更好,但大多时候,他们面对的是一个多语言的复杂环境。在第一行代码开始编写之前,架构师需要制定出业务需求如何转变成解决方案。这不仅仅需要业务环境的相关知识,从业务操作到客户环境,他还需要向公司上级勾画出一个令人信服的系统。如果有些问题不事先考虑,如扩展性,访问延迟问题,安全问题,系统开始开发时就会忽略这些。而资深程序员了解自己的团队,了解他们的能力。资深程序员知道如何管理工作进度,确保开发中的软件如何实现架构设计的目标。

架构师能决定的是需求应该如何开发才能满足业务需要,例如:


这个业务分布全球,业务在需求上需要网站响应延迟不超过3秒——不管用户在什么地方,网站最少要能承受10万以上的用户访问量。

上面的需求涉及的是系统的架构,而不是形如我们如何用Oracle数据库来对用户安全认证的问题。

有很重要的一点需要注意,很多的软件架构师在之前都是资深程序员(比如我自己),尽管如此,很多的资深程序员对架构设计并不感兴趣。决定一个系统是该使用Tomcat还是Glassfish,是否要用Apache Webserver做负载均衡,这属于架构事务。做代码审查,确保设计模式被正确的应用,这是资深程序员的事务。资深程序员可以决定开发方法,比如使用敏捷开发方法,但需要项目经理的认可。架构师要参加项目各方一起的会议:用户,经营方,基础设施提供方,开发,测试人员。当用户询问为什么系统缓慢时,他们会找架构师,架构师则会找资深开发负责人研究目前的开发是否达到了架构设计目标,或看看架构设计上是否有缺陷。

我是一名软件架构师,我可以轻松的把我的见解表达给开发团队,但同时我也是一名资深程序员,我仍然热爱编程。我在一个软件架构协会工作,经常会遇到一些没有开发经验的架构师,我不认同他们的这种出身。软件架构师应该了解各种语言的特点,而不是只偏爱自己喜欢的那种。

我希望有更多的软件公司能认识到在软件项目中架构师的价值——不论项目有多大有多小。


本文由 外刊IT评论网( www.aqee.net)原创发表,文章地址: 软件架构师不等同于资深程序员

相关 [软件 架构师 不等] 推荐:

软件架构师不等同于资深程序员

- - 研发管理 - ITeye博客
本文的作者Armel Nene是ETAPIX Global公司的首席架构师,他居住在伦敦,他参与过的开源项目包括 Apache Lucene,,Apache Nutch, Liferay 和 Pentaho等. 如今很多的公司的IT部门仍然认为招聘一个资深的程序员,他同样也能承担软件架构师的角色. 资深程序员对整个软件生命周期很了解,他们可以经过培训成为架构师,但他们不等同于架构师.

软件架构师的沟通修炼

- - 博客 - 伯乐在线
在架构师的角色中,沟通是要求有效果的必备技能与工具. 换句话说,沟通是架构师指示别人或群体完成特定行动唯一真正有效的手段. 架构师通常没有对为其项目工作的他人的直接管理权. 他们的项目往往是跨部门的,也可能会跨好多个行业单位. 由于不能直接管理他人,所以架构师指示别人或群体完成特定行动的能力就受到限制.

软件架构师的职责

- - 研发管理 - ITeye博客
架构师需要参与项目开发的全部过程,包括需求分析、架构设计、系统实现、集成、测试和部署各个阶段,负责在整个项目中对技术活动和技术说明进行指导和协调.     在项目开发过程中,架构师是在需求规格说明书完成后介入的,需求规格说明书必须得到架构师的认可. 架构师需要和分析人员反复交流,以保证自己完整并准确地理解用户需求.

【译】软件架构师之路

- - 掘金架构
今天给大家带来一篇自己翻译的干货《软件架构师之路》. 本周Github上升很快的项目. 其内容对致力于成为软件架构师(不论前后端)的同学应该都会有极大的帮助. 中文地址 github.com/gamedilong/…. 原文地址 github.com/justinamill…. 如果有看完英文原文,发现本文翻译内容中存在问题或者错误的欢迎到中文Git地址PR,如能够对大家起到一定的帮助也欢迎star.

软件架构师是一个角色,不是一项工作

- - 博客园_知识库
   英文原文: Software Architect – A Role, Not a Job.   一个产品开发组织结构中,软件架构的团队与开发团队分离,可能成为功能失衡、质量低下、士气不振的祸因.   在公司晋升体系中,软件开发者可以成长为软件架构师. 架构师通常位于一个架构团队,这个团队负责早期应用架构设计,开发节点的验收,产品发布前的批准.

如何做一个好的软件架构师

- - Dawei XU
最近有人问我一个好的架构师需要哪些能力,我回想了一下自己差不多10年的架构师生涯,又去网上搜了一些什么是好的架构师的文章,把自己觉得重要的东西总结在了下面. 技术方面就不多说了,这篇文章主要谈谈非技术方面的软实力. 我们首先从架构师的日常工作开始说起,当然每个架构师的工作会不尽相同,我下面列了一些我日常工作中需要做的事情.

对大宋下一代系统软件架构师的七个期望

- joyoner - 弯曲评论
有诗云:人之老,其言真;人之去;其行善. 系统软件设计是软件系统的皇冠中的宝石. 在系统软件,特别是通信系统软件的设计上,有没有一些可以提炼的方法论. 今身处幽州(北平),心在大宋. 谈谈我对大宋年轻一代的系统软件工程师的期望. 年轻人都以为有些事情需要粗,有些事情需要厚. 系统软件一定要越细越好;越薄越好.

软件架构师应该知道的97件事(极致总结)

- - CSDN博客推荐文章
 软件架构师是IT 行业里独一无二的职业,既要精通软件开发技术,又要掌握业务知识,还要周旋于公司不同部门之间,协调各种予盾. 简洁的总结下,希望对读者有帮助. 1.客户需求重于个人简历. 为了自己的简历更炫而采用新技术是沽名钓誉,往往事与愿违. 2.  简化根本复杂性 ,消除偶发复杂性. 根本复杂性指的是问题与生俱来的、无法避免的困难.

资深架构师的经验分享——软件项目开发和决策

- - Java - 编程语言 - ITeye博客
参与项目决策的人必须意识到他们的决定对项目的成功和成本以及时间和金钱的影响. 对于我20多年的软件开发经验和10多年的咨询工作,我作为架构师或开发人员参与了许多项目 - 其中大多数成功,有些失败,但每个项目(无论成功与否)都涉及好的和不好的决策由各种人制作. 本文的目的是通过提倡根据我的经验做出的决定以及避免错误的决策来为项目成功奠定基础.