一直有很多的人在说他是架构师,他是高级软件工程师,他是中级。。。。。。。。anyway,好吧。
最近有一个公司某某项目组招聘一个fe,确切地说是web开发工程师(意思就是后端java必须会)技术主管问了点问题,厄,因为自己以前就是专门做企业级的ui组件开发的,无论是业务还是组件设计,多是经历过的人。应该很合胃口吧。转天hr电话,hrMM人还是很好的,说那边已经有几个3年以上的人在那天做了,问问我现在的工资什么的。。。。。。。其实我暂时没有跳的冲动,如果条件好的话。
其实自己一路走了,虽然工龄还是比较短的,但是自己一直对自己的要求是高成长度,李翊(IBM中国研究中心(IBM China Lab)资深系统架构师)说过:IT精英的必备素质是:扎实的基础知识+架构的潜质
今天看博文的时候正好看到一篇关于架构师的文章,贴在这里,纪念一下,若干年的自己看到此时的我写下这篇文章,也许感觉又是不一样。对不起,我不是架构师,不是高级软件工程师,不是中级软件工程师。我只是一个放弃研究生生涯而热衷于前端技术的IT小民工,俗一句讲:出来工作,不容易。低调生活,高调做事。
。。。。。。。。。。。。。。漂远了,拉回来,正题。。。。。。。。。普及知识,学习学习再学习
架构师需要参与项目开发的全部过程,包括需求分析、架构设计、系统实现、集成、测试和部署各个阶段,负责在整个项目中对技术活动和技术说明进行指导和协调。
架构师主要职责有4条:
1、确认需求
在项目开发过程中,架构师是在需求规格说明书完成后介入的,需求规格说明书必须得到架构师的认可。架构师需要和分析人员反复交流,以保证自己完整并准确地理解用户需求。
2、系统分解
依据用户需求,架构师将系统整体分解为更小的子系统和组件,从而形成不同的逻辑层或服务。随后,架构师会确定各层的接口,层与层相互之间的关系。架构师不仅要对整个系统分层,进行“纵向”分解,还要对同一逻辑层分块,进行“横向”分解。
软件架构师的功力基本体现于此,这是一项相对复杂的工作。
3、技术选型
架构师通过对系统的一系列的分解,最终形成了软件的整体架构。技术选择主要取决于软件架构。
Web Server运行在Windows上还是Linux上?数据库采用MSSql、Oracle还是Mysql?需要不需要采用MVC或者Spring等轻量级的框架?前端采用富客户端还是瘦客户端方式?类似的工作,都需要在这个阶段提出,并进行评估。
架构师对产品和技术的选型仅仅限于评估,没有决定权,最终的决定权归项目经理。架构师提出的技术方案为项目经理提供了重要的参考信息,项目经理会从项目预算、人力资源、时间进度等实际情况进行权衡,最终进行确认。
4、制定技术规格说明
架构师在项目开发过程中,是技术权威。他需要协调所有的开发人员,与开发人员一直保持沟通,始终保证开发者依照它的架构意图去实现各项功能。
架构师与开发者沟通的最重要的形式是技术规格说明书,它可以是UML视图、Word文档,Visio文件等各种表现形式。通过架构师提供的技术规格说明书,保证开发者可以从不同角度去观察、理解各自承担的子系统或者模块。
架构师不仅要保持与开发者的沟通,也需要与项目经理、需求分析员,甚至与最终用户保持沟通。所以,对于架构师来讲,不仅有技术方面的要求,还有人际交流方面的要求。
3.3 架构师的误区
1、架构师就是项目经理
架构师不是项目经理。项目经理侧重于预算控制、时间进度控制、人员管理、与外部联系和协调等等工作,具备管理职能。一般小型项目中,常见项目经理兼架构师。
2、架构师负责需求分析
架构师不是需求分析员。需求分析人员的工作是收集需求和分析需求,并与最终用户、产品经理保持联系。架构师只对最终的需求审核和确认,提出需求不清和不完整的部分,他会跟需求分析员时刻保持联系。架构师是技术专家,不是业务专家。
3、架构师从来不写代码
这是一个尚存争论的问题。目前有两种观点:
观点1:架构师不写代码,写代码纯体力活,架构师写代码大材小用。架构师把UML的各种视图交给开发人员,如果有不明确的地方,可以与架构师随时沟通。
观点2:架构师本来自于程序员,只是比程序员站的层面更高,比程序员唯一多的是经验和知识,所以架构师也免不了写代码。
我个人觉得这两种说法是与架构师的出身和所处的环境有关。
架构师首先是一个技术角色,所以一定是来自于技术人员这个群体,比如系统架构师,多是来自于运维人员,可能本身代码写得并不多,或者说写不出来很漂亮的代码。软件架构师多是来自于程序员,有着程序员的血统和情怀,所以在项目开发过程中,可能会写一些核心代码。我们的理想是架构师不用写代码,但事实上有时候过于理想。架构师写不写代码,可能取决于公司的规模、文化、开发人员的素质等现实情况。另外,架构师也不是跟程序员界限分得那么清楚,按照能力也有高中低之分,写不写代码不是区分两者的根本标准。
3.4 架构师的基本素质
周星驰有个片子《喜剧之王》,剧中的尹天仇整天揣着本《演员的自我修养》,一个好演员不仅需要天赋,也需要一定的理论指导,无师自通的人毕竟是少数。架构师的成长过程也是这样。从普通程序员到高级程序员,再到架构师,是一个经验积累和思想升华的过程。经验积累是一个方面,素质培养是另一个方面,两者相辅相成,所以我觉得有必要把架构师的所要具备的素质罗列一下,作为程序员努力的方向。
1、沟通能力
为了提高效率,架构师必须赢得团队成员、项目经理、客户或用户认同,这就需要架构师具有较强的沟通能力。沟通能力是人类最普遍性的素质要求,技术人员好像容易忽略,想成为架构师就不能忽略。千万不要抱着这样的观念:怀才跟怀孕似的,时间久了总会被人发现的。还是天桥上卖大力丸的哥们说得对:光说不练假把式,光练不说傻把式。看看你周围的头头脑脑们,哪一个不是此中高手,我们千万不要鄙视,认为这是阿谀奉承、投机钻营,凡事都要看到积极的一面,“沟通”的确是一种能力。我认为自己是一个略内向的人,因为我是农村出来的孩子,普通话都说不好,以前或多或少带有点自卑感,幻想着是金子总会发光,所以在职业生涯中吃了不少亏。现在,我深深懂得了沟通的重要性,我会很主动地跟同事们,跟老大们不定时地沟通,感觉工作起来顺畅多了。
这一条我认为最为重要,所以排在首位。我甚至认为下面几条都可以忽略,唯一这一条得牢记,而且要常常提醒自己。
2、领导能力
架构师能够推动整个团队的技术进展,能在压力下作出关键性的决策,并将其贯彻到底。架构师如何来保证这种执行力?这就需要架构师具有领导能力。
架构师的领导能力的取得跟项目经理不太一样。项目经理主要负责解决行政管理,这种能力与技术关系不大,他有人权和财权,再扯上一张“领导”的虎皮,采用“胡萝卜加大棒”的方式,基本上可以保证执行力。架构师在项目里面可能更多地使用非正式的领导力,也就是我们常说的影响力,里面包括个人魅力、技术能力、知识传递等等。
3、抽象思维和分析能力
架构师必须具备抽象思维和分析的能力,这是你进行系统分析和系统分解的基本素质。只有具备这样的能力,架构师才能看清系统的整体,掌控全局,这也是架构师大局观的形成基础。你如何具备这种能力呢?一是来自于经验,二是来自于学习。架构师不仅要具备在问题领域上的经验,也需要具备在软件工程领域内的经验。也就是说,架构师必须能够准确得理解需求,然后用软件工程的思想,把需求转化和分解成可用计算机语言实现的程度。经验的积累是需要一个时间过程的,这个过程谁也帮不了你,是需要你去经历的。但是,如果你有意识地去培养,不断吸取前人的经验的话,还是可以缩短这个周期的。
4、技术深度和广度
架构师最好精通1-2个技术,具备这种技术能力可以更加深入的理解有关架构的工作原理,也可以拉近和开发人员的距离,并形成团队中的影响力。
架构师的技术知识广度也很重要,需要了解尽可能多的技术,所谓见多识广,只有这样,才可能综合各种技术,选择更加适合项目的解决方案。有的人说,架构师技术广度的要求高于技术深度的要求,这是很有道理的。
总而言之,一句话:架构师是项目团队中的技术权威。
ps:写于2011-10-1 pm 20:00@百度大厦
分享到:
相关推荐
- **职位名称**:高级Java工程师/架构师 - **工作经历**:至少具有三年以上的Java开发经验,其中包括担任高级软件工程师或架构师角色的经历。 - **薪资范围**:根据不同公司规模与性质,年薪范围可能在15万至30万...
架构师是一个职业名称,而不是一个技术高下的职位名称。要想成为一个优秀的架构师,需要具备“个人特性”和“技术技能”两个方面的能力。“个人特性”包括人际关系的能力和业务能力,而“技术技能”则包括技术专业...
这个压缩包中的文件名称表明,它包含了从2009年至2018年每年的系统架构师考试真题。通过这些真题,考生可以了解历年的考试难度,分析高频考点,掌握答题技巧。例如,可能会发现某些年份的试题特别注重某一技术领域,...
虽然企业架构师、解决方案架构师和领域架构师这三个角色在名称上有一定的相似性,但它们各自承担着独特的职责,对项目的成功至关重要。企业架构师负责整体战略的规划与制定;解决方案架构师关注于具体问题的解决方案...
### 架构师感悟知识点详述 #### 一、架构师的角色与重要性 - **定义与职责**:架构师是软件行业中一个重要的角色,主要负责系统的全局分析、设计与实施,以及关键技术的选择与决策。他们在项目初期将客户需求转化为...
2. 考试名称:系统架构设计师,说明这是一门针对系统架构师角色的高级考试,考察对象是具备系统设计能力的专业人员。 3. 考试部分:下午试卷Ⅱ,这暗示考试包含多个部分,其中下午试卷Ⅱ可能更注重实际案例分析和...
系统架构师是IT行业中至关重要的角色,他们负责设计、规划和优化复杂的计算机系统,确保系统的高效、稳定和可扩展性。这份"2018年下半年系统架构师真题及答案【整理版本】"资料,无疑是备考系统架构师资格考试或者...
【标题】2021 ArchSummit全球架构师峰会PPT汇总67份,是针对当前信息技术领域中架构设计和管理的重要活动的成果展示。这个压缩包文件包含了来自ArchSummit这一顶级架构盛会的丰富资源,旨在为技术爱好者提供最新的...
根据给定的文件信息,以下是对“北京游戏产业行业大数据架构师岗位介绍JD模板”中的关键知识点进行的详细解析。 ### 一、岗位名称及关键词 #### 岗位名称: - **大数据架构师** #### 关键词: - **Hadoop**:...
【标题】"2009架构师考试参考答案"涉及的是一个针对架构师资格认证的考试复习材料,可能包括了当年考试的相关问题及答案解析,旨在帮助备考者理解和掌握架构设计的关键概念、技术和最佳实践。 在架构师考试中,重点...
系统架构师的角色是设计和规划这些组件,确保它们满足性能、可靠性、可扩展性、安全性和成本效益等关键指标。 在2011年,系统架构的一些热门话题可能包括: 1. **服务导向架构(SOA)**:这是一种设计方法,它将...
《软考高级-系统架构设计师-讲义(1-5章)》涵盖了计算机科学与技术领域的核心知识,主要针对软考高级系统架构设计师这一专业资格认证的备考者。以下是根据提供的压缩包文件名称所涉及的知识点进行的详细解读: 1. ...
**岗位名称**:技术架构师(Software Architect),主要负责软件开发的架构设计、原型实现以及部分开发工作。此岗位的核心职责在于确保软件系统的结构稳定、高效,并具备良好的扩展性和可维护性。 ### 二、工作地点...
架构师不仅仅是一个技术高下的职位名称,而是一个职务,需要具备较高的个人素质和技术能力。架构师能力模型由“个人特性”和“技术技能”两个方面构成,其中“个人特性”包括人际关系能力、业务能力和抽象思维能力等...
压缩包内的文件名称“叁仟智慧灯杆大样图及系统架构图-20200903.dwg”和“叁仟智慧灯杆图册电子版-20200903.pdf”表明,用户可以获取到2020年9月3日版本的详细CAD设计图和一个包含更多相关信息的图册。DWG文件是Auto...
【标题】"2010系统架构师大会资料"揭示了这次大会的主要关注点在于探讨和分享关于系统架构设计的最新趋势和实践经验,特别是在2010年这个时间点上。系统架构师是信息技术领域中的关键角色,他们负责设计、规划和实施...
### 北京游戏产业行业大数据架构师岗位介绍 #### 岗位名称:大数据架构师 #### 岗位关键词: - Hadoop - Spark - Hive - 数据仓库 - Java - Python #### 职责描述: 1. **参与数据中台建设**:负责相关大数据平台...
互联网Java架构师面试题.pdf 作为一名IT行业大师,我将从给定的文件中生成相关知识点,并详细说明标题和描述中所说的知识点。 Java 架构师面试题 本文档涵盖了 Java 架构师面试的相关知识点,包括 Java、MyBatis...
苏州计算机软件行业非标自动化架构师岗位介绍JD模板.pdf 文件中,描述了一份非标自动化架构师的岗位介绍,主要包括岗位名称、岗位关键词、职责描述、岗位要求等几个方面。 首先,岗位名称是非标自动化架构师,这是...
【标题】"2010年系统架构师试题"揭示了这是一份关于2010年度系统架构师资格认证考试的试题集。系统架构师是IT行业中一个至关重要的角色,他们负责设计、规划和实施复杂的计算机系统,以满足业务需求。这份资料可能是...