【文摘】中国IT从业者的职业——系统架构师

系统架构师

【职业名称】
系统架构师(System Architecture)
【职业定位】
系统构架,是对已确定的需求的技术实现构架、作好规划,运用成套、完整的工具,在规划的步骤下去完成相应地任务。
  系统架构师(又称企业架构师或者系统设计师)是一个最终确认和评估系统需求,给出开发规范,搭建系统实现的核心构架,并澄清技术细节、扫清主要难点的技术人员。他/她主要着眼于系统的“技术实现”。因此他/她应该是特定的开发平台、语言、工具的大师,对常见应用场景能马上给出最恰当的解决方案,同时要对所属的开发团队有足够的了解,能够评估自己的团队实现特定的功能需求需要的代价。
   系统架构师负责设计系统整体架构,从需求到设计的每个细节都要考虑到,把握整个项目,使设计的项目尽量效率高,开发容易,维护方便,升级简单,等等。
【工作职责】
系统构架师的职责
  系统架构师的职责就是设计一个公司的基础架构,并提供关于怎样建立和维护系统的指 导方针。具体来讲,系统架构师的职责主要体现在以下几方面:
  1 负责公司系统的架构设计、研发工作;
  2 承担从业务向技术转换的桥梁作用;
  3 协助项目经理制定项目计划和控制项目进度;
  4 负责辅助并指导 SA 开展设计工作;
  5 负责组织技术研究和攻关工作;
  6 负责组织和管理公司内部的技术培训工作;
  7 负责组织及带领公司内部员工研究与项目相关的新技术。
  8 管理技术支撑团队并给项目、产品开发实施团队提供技术保障。
  11 理解系统的业务需求,制定系统的整体框架(包括:技术框架和业务框架)
  12 对系统框架相关技术和业务进行培训,指导开发人员开发。并解决系统开发、运行中出现的各种问题。 系统架构师的目的:
  13 对系统的重用、扩展、安全、性能、伸缩性、简洁等做系统级的把握。
  ————系统架构师的工作在于针对不同的情况筛选出最优的技术解决方案,而不是沉在具体实现细节上。此外系统架构师是不可培养的,好的系统架构师也许不是一个优秀的程序员,但是不能不懂技术之间的差别,技术的发展趋势,采用该技术的当前成本和后继成本,该技术与具体应用的偶合程度,自己可以调配的资源状况,研发中可能会遇到的风险,如何回避风险。这些才是架构师需要考虑的主要内容。
  另外,还必须注意,架构分为两种,
  第一种是基础架构的设计规划,例如:OS,硬件,网络,各种应用服务器等等。
  第二种是软件开发设计的架构师,他们负责规划程序的运行模式,层次结构,调用关
  系,规划具体的实现技术类型,甚至配合整个团队做好软件开发中的项目管理。
 【能力要求】
一、系统架构相关的知识和经验。
二、很强的自学能力、分析能力、解决问题的能力。
三、写作、沟通表达、培训。
【职业概述】
    系统构架师是近几年来在国内外迅速成长并发展良好的一个职位,它的重要性及给 IT业所带来的影响是不言而喻的。在我国虽然还存在一定的争论性、不可预测性、不理解性,不确定性,但它确实是时代发展的需要。IT 业各公司为了让他们现有的 IT 系统实现更大的价值,纷纷进行了重大的技术变革,
  这样一来,对高水平的架构师的需求激增。对负责架构的管理人员的需求不断增大,其增长速度比对 CIO 的需求还要快,这是因为,架构师会给一个组织带来大量专门技术。公司需要一些在架构方面有真才实学,而且学得深且广的人才。
在比尔• 盖茨的众多称谓中,据说他更偏爱“首席软件架构师”。同样,在网易创始人丁磊名字前,也有“首席架构师”这样的称谓。由次可见,对于企业来说,架构师就是灵魂的创造者。
【系统构架师的作用】
  系统架构师该怎么来实现其“架构”企业的职能呢?尤其在设计企业 IT 策略时,该怎样体现架构师的价值?
  这里以实例说明:
  摩托罗拉的副总裁 Toby Redshaw 说,架构师是“IT 策略中的中枢”,而且这一角色对公司的影响确实非常大。当 Toby Reshaw 在 2001 年进入摩托罗拉并担任其策略暨架构副总裁时,他俨然一位购房者对一套摇摇欲坠的公寓进行估价一样。他并不是仅仅只作些表面上的修改,而是拟定了一个重建摩托罗拉整个基础结构的计划,这个计划可以彻底修整公司的
  基础建设。 就像一个建筑师设计一幢房子一样,Redshaw 拟出了一张技术构架蓝图,一座技术性的建筑,以便使被他称作“如意大利面条般错乱的应用程序,机器和管线”那些东西变得井然有序。他说,只要选择了正确的架构策略并用对了人,摩托就可以用比以前更快的速度生产出大量应用软件,而且可以减少维持重叠系统的费用。 Redshaw 说:“如果你连建筑架构都搞不好,就算你的石匠技术再高明,又有什么用?架构师是 IT 策略中的中枢。” 像 Redshaw 这样的系统架构师们在企业内部的影响力非常大。很久以来,虽然他们一直在信息技术部门担任重要职务,但是他们经常受委托提供全面概况分析,并提出一些关于如何遵照标准执行这些任务的建议,而这些对日常运作的影响极其有限。今天,随着各公司都在寻找重建他们的 IT 系统,使其更能有效节省成本,更灵活的方法,架构师愈来愈被看作是至关重要的因素。
  一个定义明确的架构的目标在于降低运行复杂的运算系统的费用。一个公司可以采用一种特定的数据库配置,如微软的数据库,进而将系统标准化,而不需要让公司的每个部门安装它们自己所需要的数据库服务器。
  Express 的技术架构副总裁 Andy Miller 说:“如果你没有一项强有力的架构策略,人人各行其是,最后以得到六种服务器和软件平台而告终,你的系统变成了大杂烩,而那将使你的费用激增。”把架构师独立出来有很多好处,比如系统的整体把握,质量上的保障,技术上的先进性,架构的灵活性,高效性,还可有效地降低成本。试想,1 个月薪 1w 的架构师+10 个月薪5k 的工程师,肯定比 11 个月薪 6k 的高级工程师效果要好。一般来说,级别越高的架构师,经验更丰富,争相聘请的人也多,他们也是与公司全部的 IT 策略密切相关的专业人员。
【系统构架师应具备的能力】
  作为软件开发的设计架构师,那么必须拥有一定的编程技能,同时有高超的学习新的架构设计、程序设计技能。另外,我觉得作为软件架构师,还必须了解一定的硬件、网络、服务器的基本知识。要不然,你都不知道有些什么材料可以用,你怎么去根据实际情况去规划你的软件架构呢?忽视程序设计能力的持续跟新,是永远不能够成为一个成功的系统架构师。
  一般来讲,系统架构师应该拥有以下几方面的能力:
  1:具备 8 年以上软件行业工作经验;
  2:具备 4 年以上 C/S 或 B/S 体系结构软件产品开发及架构和设计经验;
  3:具备 3 年以上的代码编写工作经验;
  4:具备丰富的大中型开发项目的总体规划、方案设计及技术队伍管理经验;
  5:对相关的技术标准有深刻的认识,对软件工程标准规范有良好的把握;
  6:对 .Net/JAVA 技 术 及 整 个 解 决 方 案 有 深 刻 的 理 解 及 熟 练 的 应 用 , 并 且 精 通WebService/J2EE 架构和设计模式,并在此基础上设计产品框架;
  7:具有面向对象分析、设计、开发能力(OOA、OOD、OOP),精通 UML 和 ROSE,熟练使用 Rational Rose、PowerDesigner 等工具进行设计开发;
  8:精通大型数据库如 Oracle、Sql Server 等的开发;
  9:对计算机系统、网络和安全、应用系统架构等有全面的认识,熟悉项目管理理论,并有实践基础;
  10:在应用系统开发平台和项目管理上有深厚的基础,有大中型应用系统开发和实施的成功案例;
  11:良好的团队意识和协作精神,有较强的内外沟通能力。
【系统构架师与其他角色的区别】
  系统构架师与产品经理的关系及区别
  产品经理通常是指负责产品设计的“专人”。一个优秀的理想的产品经理,应同时具备较高的商业素质和较强的技术背景。产品经理要有深厚的领域经验,也就是说,对该软件系统要应用到的业务领域非常之熟悉。比如,开发房地产销售软件的产品经理,应该对房地产公司的标准销售流程了如指掌,甚至比大多数销售人员还要清楚。如果开发的是通用产品,他/她还具备对市场、潜在客户需求的深刻洞察力。
  那么,系统架构师与产品经理有什么不同呢?
  我们不应该把二者混为一谈,这是不少论述和实践常犯的错误。我看来,如果把开发软件比作摄制电影,产品经理之于系统架构师,就正像编剧之于导演。产品经理虽然要有一定技术背景,但仍应属于“商业人士(business people)”,而系统架构师则肯定是一个技术专家。二者看待问题的立场、角度和出发点完全不同。
  系统构架师与项目经理的关系及区别
  软件项目经理是指对项目控制/管理,关注项目本身的进度、质量,分配、调动、协调、管理好人、财、物等资源的负责人。对于软件项目经理来讲,包括项目计划、进度跟踪/监控、质量保证、配置/发布/版本/变更管理、人员绩效评估等方面。优秀的项目经理需要的素质,并不仅在于会使用几种软件或是了解若干抽象的方法论原则,更重要的在于从大量项目实践中获得的宝贵经验,以及交流、协调、激励的能力,甚至还应具备某种个性魅力或领袖气质(Charisma)。
  由此可见,项目经理和系统架构师在职责上有很大差异。混同这两个角色,往往也会导致低效、无序的开发。特别是,从性格因素上讲,单纯的技术人员倾向于忽视“人”的因素,而这正是管理活动的一个主要方面。另外,就像战争中的空军掩护(Air Cover)一样,专职的项目经理能够应付开发过程中大量的偶发事件和杂务,对于一个规模稍大的项目,这些杂务本身就能占用一个全职工作者的几乎全部时间。在一个项目中,推动项目发展的是系统构架师,而不是项目经理。项目经理的职责只是配合系统构架师,提供各个方面的支持。主要职责是与内外部沟通和管理资源(包括人)。系统构架师提出系统的总体构架,给出开发指导。一个项目中,项目经理的角色什么?如果他即使管理人员又是设计人员,则必须比别人强,能够有让别人服的东西。如果他只是项目管理人员,系统构架师有专门人员,就可以不用精通或者说了解 it 各个方面的知识,如果了解更好。另外,如果在一个项目没有人在技术构架上和开发指导上负全部责任,而是每个人都负责一快的架构、分析、设计、代码和实施等,最后肯定会失去管理。
  系统构架师与系统分析员的关系及区别
  系统分析员(System analyst)是指对系统开发中进行分析、设计和领导实施的人。一般意思上讲,系统分析员的水平将影响系统开发的质量,甚至成败。但在一个完善的系统开发队伍中,还需要有业务专家,技术专家和其他辅助人员。所以,系统分析员只是其中的角色之一。但我国许多的 IT 公司,一般只有系统分析员而没有技术专家。系统分析员固然是对特定系统进行分析、设计。所以他的任务、目标是明确的。他只是去执行任务,完成系统的最终设计。
  系统架构师应该和系统分析员分开,但架构师必须具备系统分析员的所有能力,同时还应该具备设计员所没有的很多能力。 系统架构师是指导、检督系统分析员的工作,要求系统分析员按什么标准,什么工具,什么模式,什么技术去设计系统的。同时,系统架构师应该对系统分析员所提出的问题,碰到的难题及时地提出解决的方法。并检查、评审系统分析员的工作。
【如何评估系统构架师的工作成绩】
  优秀的系统架构师是保证软件系统强大生命力的核心人物。专业架构师能够帮助公司全面研究现有架构和设计模式、评估系统设计的优缺点和可能存在的风险,通过一系列的专题指导和具体案例帮助公司掌握先进的、成熟的设计模式,简化复杂的业务逻辑和需求,确定系统最适合法人方案。在必要的情况下,还可就特定领域或课题,为开发人员提供定制指导。通过上面的介绍,我们对系统构架师有了的较深刻的认识,我们明白了系统构架师的地位,作用,工作职责及任职条件,同时还区别出与其他角色的不同,那么如何评估系统构架师的工作成绩,
  如何识别一个合格的优秀的系统构架师是不难的。
  具体来讲,我们可以通过以下几方面来评估系统构架师的工作成绩:
  1:系统构架师是否是某一技术领域的专家;
  2:系统构架师能否指导分析员的设计工作,发现并指出设计存在的问题并提出解决方
  法,评审他们的工作;
  3:系统构架师能否指导软件工程师进行开发工作,发现并指出编码存在的问题并提出
    解决方法,评审他们的工作;
  4:系统构架师能否协助好项目经理制定项目计划和控制项目进度;
  5:系统构架师能否及时有效地解决设计、开发人员所提出的问题,解决技术上的难
    题;
  6:系统构架师能否制订并规范系统设计和开发文档、工具、模型;能否让其他人员容
    易理解;
  7:系统构架师能否经常组织并带领公司内部员工研究、学习与项目相关的新技术;
  8:系统构架师能否组织和管理好公司内部的技术培训工作,技术研究和攻关工作;
  9:系统构架师能否组织和管理好公司内部的技术培训工作,技术研究和攻关工作;
  10:系统构架师是否有良好的团队意识和协作精神,有较强的内外沟通能力;
  11:系统构架师是否能管理好技术支撑团队并给项目、产品开发实施团队提供技术保
    障;
  12:系统构架师所设计的系统架构是否合理,技术是否先进,能否满足客户的要求;
  13:系统构架是否有扩展性,安全性,能否经受压力测试,网络流量在超用户数下如何
  14:控制;系统边界如何处理,瓶颈问题如何解决等;
  15:系统设计前期、中期、后期所要解决的问题,是否有阶段性,里程碑的标识;
  16:是否有分析、识别并尽可能地回避风险,降低风险所引发问题成本的能力;
  17:能否给公司降低开发成本,提高效率;

 

你可能感兴趣的:(系统架构)