本文的作者Armel Nene是ETAPIX Global公司的首席架构师,他居住在伦敦,他参与过的开源项目包括 Apache Lucene,,Apache Nutch, Liferay 和 Pentaho等。
如今很多的公司的IT部门仍然认为招聘一个资深的程序员,他同样也能承担软件架构师的角色。
资深程序员对整个软件生命周期很了解,他们可以经过培训成为架构师,但他们不等同于架构师。一个软件架构师首要的和最重要的是他的远见。如果一个架构师拥有一些软件开发经验,那会更好,但大多时候,他们面对的是一个多语言的复杂环境。在第一行代码开始编写之前,架构师需要制定出业务需求如何转变成解决方案。这不仅仅需要业务环境的相关知识,从业务操作到客户环境,他还需要向公司上级勾画出一个令人信服的系统。如果有些问题不事先考虑,如扩展性,访问延迟问题,安全问题,系统开始开发时就会忽略这些。而资深程序员了解自己的团队,了解他们的能力。资深程序员知道如何管理工作进度,确保开发中的软件如何实现架构设计的目标。
架构师能决定的是需求应该如何开发才能满足业务需要,例如:这个业务分布全球,业务在需求上需要网站响应延迟不超过3秒——不管用户在什么地方,网站最少要能承受10万以上的用户访问量。
上面的需求涉及的是系统的架构,而不是形如我们如何用Oracle数据库来对用户安全认证的问题。
有很重要的一点需要注意,很多的软件架构师在之前都是资深程序员(比如我自己),尽管如此,很多的资深程序员对架构设计并不感兴趣。决定一个系统是该使用Tomcat还是Glassfish,是否要用Apache Webserver做负载均衡,这属于架构事务。做代码审查,确保设计模式被正确的应用,这是资深程序员的事务。资深程序员可以决定开发方法,比如使用敏捷开发方法,但需要项目经理的认可。架构师要参加项目各方一起的会议:用户,经营方,基础设施提供方,开发,测试人员。当用户询问为什么系统缓慢时,他们会找架构师,架构师则会找资深开发负责人研究目前的开发是否达到了架构设计目标,或看看架构设计上是否有缺陷。
我是一名软件架构师,我可以轻松的把我的见解表达给开发团队,但同时我也是一名资深程序员,我仍然热爱编程。我在一个软件架构协会工作,经常会遇到一些没有开发经验的架构师,我不认同他们的这种出身。软件架构师应该了解各种语言的特点,而不是只偏爱自己喜欢的那种。
我希望有更多的软件公司能认识到在软件项目中架构师的价值——不论项目有多大有多小。
文章来源:http://ningboxiao.iteye.com/blog/1998556
转载自:http://www.aqee.net/a-software-architect-is-not-a-senior-developer/
相关推荐
《软件架构设计:程序员向架构师转型必备》是一本旨在帮助程序员提升技能,迈向更高层次——架构师的著作。在IT行业中,架构师的角色至关重要,他们不仅需要掌握编程技术,还需要具备系统设计、项目管理以及业务理解...
架构师并不仅仅是高级程序员,他们更像是一名技术领航者,负责整体系统的设计和规划,确保系统的可扩展性、稳定性和性能。他们需要具备扎实的技术基础,对计算机科学原理有深入理解,并能将这些理论应用到实际项目中...
对于系统分析师来说,理解软件架构是必不可少的。教程将探讨他们在需求分析、系统设计和项目管理中的职责,以及如何有效地与架构师和其他团队成员沟通。 七、高级软件架构师技巧 这部分内容针对有经验的架构师,...
0_架构师与设计师.pdf 01_软件流程实施方案选择.pdf 02_软件架构文档设计.pdf 03_软件架构风险管理.pdf 04_如何描述和评估软件架构...因附件大于16M被分成了两个包上传,请下载软件架构师教程1.rar 软件架构师教程2.rar
再次,软件架构师应关注的不仅仅是技术层面,还包括与业务相关的决策。他们需要掌握业务知识,理解业务需求,并将这些需求转化为软件功能。同时,架构师必须理解业务的优先级,并在设计软件架构时将其作为指导原则之...
软件架构师的成长路径通常包括从程序员、资深开发者逐渐发展到技术领导角色。这个过程中,不断学习新技术、积累项目经验、提升沟通和管理能力是非常关键的。 在"软件架构师职业导读"这份资料中,可能会涵盖这些方面...
本视频教程仅面向有兴趣转型向Java系统架构师,大数据系统架构师的学员,主要包括四部分内容:一、程序员VS架构师 ;二、架构设计与架构师 ;三、架构风格与架构模式 ;四、架构师转型模型 ;五、面向对象设计原则
- **软件知识**:架构师需要熟悉多种编程语言和技术栈,包括但不限于Java、Python等,并且了解如何利用开源框架和技术来构建高性能的应用程序。 - **网站优化**:针对高流量的互联网应用,架构师还需要具备网站优化...
虽然软件架构设计更多地关注于技术层面,但数学基础对于理解和解决某些复杂问题是必不可少的。本章节会涵盖离散数学、概率统计、线性代数等基本数学工具,为解决实际工程问题提供理论支持。 ### 十、系统安全性与...
中科院高级软件架构师培训教材,适合有一定软件理论基础的程序员学习
高级软件架构师培训讲义,共分24章: 00_架构师与设计师 01_软件流程实施方案选择 02_软件架构文档设计 03_软件架构风险管理 04_如何描述和评估软件架构质量 05_设计模式与软件架构设计 06_AOP开发实践 07_软件架构...
java程序员简历-14套(含高级工程师,项目经理,架构师等相关经验)java程序员简历-14套(含高级工程师,项目经理,架构师等相关经验)java程序员简历-14套(含高级工程师,项目经理,架构师等相关经验)java程序员...
非常棒的一部内部讲义,强烈推荐高级软件架构师 目录: 00 架构师与设计师 01 软件流程实施方案选择 02 软件架构文档设计 03 软件架构风险管理 04 如何描述和评估软件架构质量 05 设计模式与软件架构设计 06 AOP开发...
《软件系统架构师》这本书是为那些希望深入理解软件架构设计和实践的读者精心准备的。作为一本电子读物,它涵盖了软件架构的基础知识、关键概念以及实际应用,旨在帮助读者提升在软件开发领域的专业素养。 软件系统...
如何从普通程序员晋升为架构师 如何从普通程序员晋升为架构师 如何从普通程序员晋升为架构师
Java 架构师之路是指程序员已经掌握了 Java 编程和良好的编程习惯,需要学习应用软件整体架构的书籍。推荐的书籍包括《Expert One-on-One J2EE Design and Development》、《Expert One-on-One J2EE Development ...
系统架构师的学习笔记,通常是资深架构师或者对架构有深入研究的专业人士根据个人经验和学习总结所撰写的学习资料,它可以帮助开发工程师向系统架构师的职业发展道路上迈进。 从提供的内容来看,系统架构师的学习...