【大话IT】系统架构已死!?这事你怎么看(获奖名单已公布)
在本次图书出版活动中,获得精选图书的网友有:jieforest
bbzsxjj
yehuafeilang
bfmo
kh888
请以上获奖者在2016年9月30日前将姓名,公司,职务,行业,电话,邮箱,QQ,地址,所选纪念品,站内短信发送给王楠w_n以便及时给您快递奖品。
发不了站短的,请在原帖下方跟帖留言。
至于QQ现因两个编辑轮番值班登陆,可能会有遗漏的情况,有任何问题请尽量在原帖下方跟帖留言或在站务版块反馈,谢谢!
注:因特殊原因,每次活动的获奖者我都会通知各位,如果大家在截止日期之前还未联系到管理员,那么本次活动的得奖资格将被取消,所以请大家及时的与管理员取得联系,谢谢合作!
==============================================================================================
故事背景:
之前在网络上看到一篇文章,关于“架构师”轻度思考,下面引用一小段简短说明:
2006年的职场出奇的冷清,相比前几年,简历的数量和质量都大为不如,很难得找到三年工作经验以上的人,有一个不是特别笨,就是特别怪。就是么,干得好谁没事换工作啊!Simon是一家外企软件公司的总经理,最近给这个问题愁坏了。项目一个接一个的接下来,人手越来越紧张。虽然Simon是个极限编程的粉丝,但也不得不批准了一份又一份的加班申请。HR经理把这个问题归结到房价上,他的妙论是“怕失业了还不上房款,不敢跳槽”。
这天,K项目组长Allen终于忍不住了,带了一个只有一年工作经验的小伙子要Simon面试,“很聪明!经验少了点。”
Simon皱了皱眉毛,说:“你不知道这个职位最低要求是三年工作经验吗?”
Allen说:“这已经是三个月里通过技术考试中最好的一个了,老大,试试吧。”Allen是Simon多年的哥们,比较随便。
抵到面子上来,Simon只好让Allen把小伙子带进来。
Simon的面试通常是三步曲:
问题一:你能说说毕业后的主要工作经历吗?
问题二:再说说你在公司的地位?
问题三:你的发展目标是什么?等回答后,比如说构架师,他就跟着问:想象一下你当构架师的一天,说给我听听?
小伙子回答第一问题很快很清楚,一年工作当然没什么东西。Simon觉得小伙子挺聪明。所以在小伙子回答了第二个问题后,问了一个发散性的问题:“你刚才说你在公司里处于中等水平,那比你差的人为什么会比你差呢?”
这个问题是个陷阱。
小伙子冒冒失失回答说:“我觉得他们每天工作是为工作而工作,工作没有责任感。”
Simon点点头说:“是吗?那真是糟糕的员工。那你刚好比糟糕的员工好一点了?”
小伙子的脸一下子红了,“我不是这个意思……”
“好了,那你说说比你好的人为什么比你强?”
“我觉得他非常努力,工作很多年了还在学习各种构架,水平很高。”于是Simon就问那最后一个问题。果然,小伙子回答的是要成为构架师。大概70%的人想成为构架师。但是构架师是什么呢?
Simon问道:“那你为什么要成为构架师呢?”
小伙子一愣,大概还没有人这么置疑过他。“年纪大了,不能老写程序吧。”这个回答,让Simon想起关于他对什么是老的定义:当你希望做年轻人做的事情时,你就还年轻;如果你希望做老年人做的事情,你就老了。这和你出生了多长时间是没有关系的。
Simon接着问:“好吧,那你说说你成为构架师以后,每天都会做什么?”
小伙子说:“我还没想过,不过,我想应该主要是需求分析,设计构架吧……”这大概是现在年轻人的通病,年轻人很容易追逐一些自己也不清楚的目标。
Simon问:“那设计构架具体都做些什么呢?”
小伙子这次的回答是:“比如,选择程序框架,决定用Spring或Struts等等。”
“哦,那我问你,你怎么说服别人是用Spring还是Struts呢?”
“如果我有经验,我会知道哪个更好……”
“是吗,但关于Spring或Struts的知识任谁都可以很容易得到。如果别人不同意你的建议,你怎么说服他?如果同意你的建议,那你不过是作出了和别人一样的认识,别人又凭什么认可你呢?”
小伙子没想过构架师日子里还有一个说服人的工作,说:“我是构架师,我应该有权力做决定吧?”
Simon想起权力的三种层次,第一层,任命;第二层,专业;第三层,品德。
Simon问:“如果在一个成熟的软件企业里没有你所想象的构架师呢?或者说,构架师这种职业已经死亡或消失了呢?你会怎么定位你的职业?”
小伙子显得很震惊。
Simon画了一个系统构架,然后又给小伙子看了一段代码。
“那一个更难懂?”Simon问。
小伙子指着代码说:“代码难懂。”
Simon的解释是:“这就是为什么实际上所谓的构架师不存在的原因。一个更简单的东西怎么会更有价值呢?每个人都能够画出这种构架图,但不是每个人都能写出好的代码。”
送走了小伙子,Simon有点难受。他有点喜欢这个小伙子,但是,这又是一个被愚蠢的教育和误人子弟的技术杂志污染的家伙。Simon在自己的笔记本中加了一句话:中国程序员最愚蠢的认识之三:我想当构架师。前面两个赫然是:
35岁后写不动程序了;
我只要做Java(C++);
故事结局不免让人唏嘘,那么,你对“架构师”这个职业又是如何理解?
以下三个问题,大家可以任选一个来讨论:
1. 架构师应该做什么工作?
2.有了架构师我们会收益什么?
3. 架构师需要什么能力?
讨论时间: 2016年7月18日——8月18日
话题奖励:
话题结束后,我们将选取5个优质回复,各赠送精选图书一本。
亲爱的CUer们:
2016中国系统架构师大会已正式起航,这是我们推出架构师大会的第八个年头,欢迎大家关注并报名参与!
大会官网地址:http://sacc.it168.com/
大会主题:架构创新之路
大会时间:2016.10.27~10.29(周四---周六,共三天)
大会地址:北京万达索菲特大饭店
今年是中国系统架构师大会第八个年头,大会以"架构创新之路"为主题,云集了国内外顶尖专家,共同探讨云计算和大数据等技术背景下,如何通过架构创新及各种IT新技术来带动企业转型增效。
共设置两个主场分享时段,24个技术交流专场时段;邀请来自互联网、电子商务、金融、电信、政府、行业协会等20多个领域,150多位技术专家及行业领袖来分享他们的经验;并将吸引4000多名系统运维、架构师、及各种企业的IT决策人士参会,为他们提供最具价值的交流平台。
更多信息访问我们的大会官方网站:http://sacc.it168.com/
大会门票:
详情请咨询大会官网: http://sacc.it168.com/
本帖最后由 forgaoqiang 于 2016-07-22 11:42 编辑
故事好长 看了半天 。。。
1. 架构师应该做什么工作?
故事中的“小伙子”说的也不错呢,架构师就是应该根据客户需求设计整个系统的大框架,大部分工作在于系统架构的管理,引用《人月神话》中的说法就是:
工作需要易于管理,清晰的划分 体系结构设计 和实现之间的界限,架构师必须一丝不苟地专注于体系结构。
架构师要保证系统概念的一致性。
2.有了架构师我们会收益什么?
架构师是一个宏观的管理者,他能够设计整个系统的整体“长相”,了解整个系统应该如何实现。能够给出整个产品的定义。
3. 架构师需要什么能力?
还是人月神话中说的外科手术式中的外科医生——“极高的天分、丰富的经验和数学、业务数据处理或其他方面的大量系统知识和应用知识“
需要有丰富的项目经验,了解系统运行原理,不仅在整体结构上有深刻认识,还是对实现惯例有认识。
1. 架构师应该做什么工作?
2. 有了架构师我们会收益什么?
3. 架构师需要什么能力?
这三个问题放在一起,都可以谈一点。
“为了架构而架构师”的思想是不可取的,像这样的认识“35岁后写不动程序了,因此而想当架构师”,是对架构师职位没有正确的理解。
对于在企业求职谋生的程序员而言,发展道路主要有两条:要么继续做技术;要么走向管理岗位。
就技术这条路线而言,架构师是程序员到资深程序员,再到下一阶段的沉淀的产物,是程序员在对技术、业务理解到非常深刻的阶段,经验也累积的足够多以后,具备的任职资格。
那么,架构师应该做什么工作呢?大致如下:
1)分析具体的业务需求,把抽象的、含糊的业务需求逐一理顺,变成具体的、清晰的可操作的实际需求。
2)根据实际的需求,选择最佳的技术栈。这个技术栈是可以是多种开源技术、框架的组合,也可以包含公司积淀的公共组件。当然,对于同样的需求,不同的架构师,不同的技术团队,选择的技术栈也可能有所不同。技术栈的选择需结合团队的技术现状、技能的掌握程度相结合。
3)根据技术栈提出解决方案,完成各种方案文档、设计文档。提交审批。
还想说一些,作为架构师,要保持学习的心态,每天都要坚持学习,IT技术发展太快,技术更新迅猛,不学习意味着被淘汰。
作为架构师,还要注意不要彻底脱离编程,最好能参与或带头攻克技术难点,脱离编程久而久之容易变成夸夸其谈,脱离实际。
1. 架构师应该做什么工作?
架构师应该从系统宏观层面让代码写起来更高效
让系统运行起来更健壮
从产品的角度考虑随着功能的升级,架构如何应变以便于代码写起来更简单
用丰富的经验解决实际中的代码实现上的难题
2. 有了架构师我们会收益什么?
合格的架构师会让项目的进度能按时按质完成
合格的架构师会让代码写起来更轻松
合格的架构师是架起产品和DEV之间的桥梁
3. 架构师需要什么能力?
应该是一个有丰富经验的代码牛人
一个有丰富经验的项目经理
一个有丰富经验的产品经理
其实,我个人觉得现在的devops其实就是和架构师基本上是重叠的概念,但是在实际过程中,由于各种原因,导致这2个职业都是歪曲了本身。
比如:
在架构师很火的时候,大家都是架构师,随便培训班直接就培训架构师,大学刚毕业考个证就直接叫架构师
在devops当下很火的时候,你就发现是个运维都称为运维开发,是个开发都自称开发型运维,都成了一种时尚,是个公司招人就喊着运维开发、开发运维,所有的培训班
都加班生产各种运维开发,python成为了运维必备技能,姜戈这个人物也为大家所熟知。 1. 架构师应该做什么工作?
这里主要讨论的是系统/软件架构师吧,对此我觉得主要有以下方面:
1).负责/参与技术架构设计、重构、优化,根据业务规划及技术规划制定应用架构方案;
2).负责/参与系统的架构设计和系统设计、详细设计;
3).参与技术难题攻关,进行技术验证;
4).参与核心功能的架构与代码编写,开发与维护系统公用核心模块;
6).分析系统瓶颈,解决各种疑难杂症,对系统进行性能调优;
7).承担核心功能代码编写,重点项目架构设计开发;
8).深入理解业务需求,分析和发现系统的优化点,负责推动产品性能和架构优化;
9).新人指导、培训,主导技术难题攻关,提升团队整体技术水平;
10).负责公司的技术方向、技术规划,为公司业务发展提供全面的技术保障;
11).研究决策公司技术发展路线,规划公司产品的技术架构;
12).负责协调项目开发或实施的各个环节,把握项目的整体进度;
13).指导建立完善、规范的软件开发流程和高品质的管理体系并参照执行。
2.有了架构师我们会收益什么?
架构师在整个软件开发过程中都起着重要的作用,并随着开发进程的推进而其职责或关注点不断地变化,在需求阶段,架构师主要负责理解和管理非功能性系统需求,比如软件的可维护性、性能、复用性、可靠性、有效性和可测试性等等,此外,架构师还要经常审查客户及市场人员所提出的需求,确认开发团队所提出的设计;在需求越来越明确后,架构师的关注点开始转移到组织开发团队成员和开发过程定义上;在软件设计阶段,架构师负责对整个软件体系结构、关键构件、接口和开发政策的设计;在编码阶段,架构师则成为详细设计者和代码编写者的顾问,并且经常性地要举行一些技术研讨会、技术培训班等;随着软件开始测试、集成和交付,集成和测试支持将成为软件架构师的工作重点;在软件维护开始时,架构师就开始为下一版本的产品是否应该增加新的功能模块进行决策。
3. 架构师需要什么能力?
一般来讲,系统架构师应该拥有以下几方面的能力:
1:拥有10年以上从业经验,8年以上技术开发及团队管理经验,有大中型项目开发经验;
2:具备 4 年以上 C/S 或 B/S 体系结构软件产品开发及架构和设计经验;
3:深厚的技术背景,熟悉多线程开发、服务器集群、负载均衡;
4:具备丰富的大中型开发项目的总体规划、方案设计及技术队伍管理经验;
5:对相关的技术标准有深刻的认识,对软件工程标准规范有良好的把握;
6:具有面向对象分析、设计、开发能力(OOA、OOD、OOP),精通 UML 和 ROSE,熟练使用 Rational Rose、PowerDesigner 等工具进行设计开发;
7:精通大型数据库如 Oracle、Sql Server 等的开发;
8:对计算机系统、网络和安全、应用系统架构等有全面的认识,熟悉项目管理理论,并有实践基础;
9:在应用系统开发平台和项目管理上有深厚的基础,有大中型应用系统开发和实施的成功案例;
10:具备良好的客户需求分析能力、业务和技术方案策划和设计能力;思路清晰,具备很强的文档撰写能力和良好的语言表达能力;
11:精通多种软件构架、设计模式、很强的解决项目开发中技术难题的能力。 1. 架构师应该做什么工作?
架构师是负责设计整体架构的,从需求到设计的每个细节都要考虑到,使设计的架构尽量符合效率高、开发简便、维护方便、升级简单等要求。架构师的日常工作主要涉及以下问题:商业问题、系统问题、子系统问题、构件问题、技术问题、架构流程问题、项目管理问题,团队建设问题
3. 架构师需要什么能力?
架构师具备能力:设计规划能力是成为架构师最需要具备的能力,其次是全面的技术实力,紧随其后的两种能力是沟通协调能力和解决现有问题的能力,最后是管理决策能力和抽象能力。
从本质上讲,架构师应当是一个成熟的、丰富的、有经验的、有良好教育的、学习快捷、善于沟通和决策能力强的人。
2.有了架构师我们会收益什么?
架构师起到作用:
1、能领导团队设计出符合要求的系统架构;
2、能培养团队,比如开展技术讲座;
3、能在工作中解决技术难题、起到技术带头人的作用;
4、能制定合理的工作计划,并有效地按照计划完成工作。
1. 架构师应该做什么工作?
一个公司或一个产品的整体技术定位及方向,比如所在公司属于移动互联网业务,采用什么样的技术来满足日益变化的市场及精确捕捉市场热点来提升公司的业务范围和市场。我不觉得技术特别新颖就一定是好的,能带来业务的增长的,才是合格的架构师。
2.有了架构师我们会收益什么?
好比打仗一样,有了好的司令和指挥,才能团结起来,打胜仗,这个例子最恰当。
3. 架构师需要什么能力?
精通业务及技术知识面广,最好在以前的技术领域是专家级别。再打个比喻吧,大家都想做武林第一人,当然要有好的功夫,但武林掌门人,不一定要所有门派功夫都会吧,至少你要了解武林中都有哪些门派和功夫,一个道理。还是那句话,能带来业务增长的架构师才是好的架构师,技术不是越新越好,能在原有业务基础上不断创新并来带持续业绩的,才是好的架构师。 咱简单说两句,架构师高大上,薪水待遇都不错
具体干啥,咱涉足不到 呵呵,又是个可以说一堆的话题 好的架构师,是在经历了大量的成功和失败,再经过分析和总结,形成有用的经验,帮助在后面的工作中做出正确的选择,少走弯路。
架构师需要分析、抽象和归纳能力,沟通表达能力,在技术上需要有一定的深度和广度。 任选一个自己的角度聊聊:victory: 回复 3# demilich
其实有时候我会将架构师和技术总监区别不开{:qq10:} 回复 4# hellioncu
王楠w_n 发表于 2016-07-19 10:03 static/image/common/back.gif
其实有时候我会将架构师和技术总监区别不开 回复 4# hellioncu
总监层次更高,要从公司局面整体考虑,一般只吹牛,不做具体的事情了{:qq23:} 系统架构的取舍,决定了产品后期的成就。
一旦系统的架构确定了,产品的后续方向就确定了。 莫名混肴了架构师与产品经理的职责分配{:qq10:} 回复 8# chenyx
大部分公司的架构师都名不副实,小公司就更不谈了,需要的是挽起袖子一个当几个用,测试运维都懂的快速出活的码农,至于架构啥的,无所谓啦。