何为好的架构师

系统架构师是一个最终确认和评估系统需求,给出开发规范,搭建系统实现的核心构架,并澄清技术细节、扫清主要难点的技术人员。主要着眼于系统的“技术实现”。因此他/她应该是特定的开发平台、语言、工具的大师,对常见应用场景能给出最恰当的解决方案,同时要对所属的开发团队有足够的了解,能够评估自己的团队实现特定的功能需求需要的代价。 系统架构师负责设计系统整体架构,从需求到设计的每个细节都要考虑到,把握整个项目,使设计的项目尽量效率高,开发容易,维护方便,升级简单等。
中文名
系统架构师
外文名
System Architect
又称
企业架构师或者系统设计师
属性
职业
快速
导航
具备的能力职业定位主要功能工作职责架构分类职业概述作用具备能力角色区别评估成绩职业行情
知识结构
软件系统架构师综合的知识能力包括9个方面,即:
1、战略规划能力。
2、业务流程建模能力。
3、信息数据结构能力。
4、技术架构选择和实现能力。
5、应用系统架构的解决和实现能力。
6、基础IT知识及基础设施、资源调配能力。
7、信息安全技术支持与管理保障能力。
8、IT审计、治理与基本需求分析、获取能力。
9、面向软件系统可靠性与系统生命周期的质量保障服务能力。
作为系统架构师,必须成为所在开发团队的技术路线指导者;具有很强的系统思维的能力;需要从大量互相冲突的系统方法和工具中区分出哪些是有效的,哪些是无效的。架构师应当是一个成熟的、丰富的、有经验的、有良好教育的、学习快捷、善沟通和决策能力强的人。丰富是指他必须具有业务领域方面的工作知识,知识来源于经验或者教育。他必须广泛了解各种技术并精通一种特定技术,至少了解计算机通用技术以便确定那种技术最优,或组织团队开展技术评估。优秀的架构师能考虑并评估所有可用来解决问题的总体技术方案。需要良好的书面和口头沟通技巧,一般通过可视化模型和小组讨论来沟通指导团队确保开发人员按照架构建造系统。
具备的能力
(1)技术能力
技术能力,不用置疑肯定是最重要的。技术能力弱的架构不是一个好架构。所以,你需要知道所有主流技术的基本原理、应用场景,及快速解决问题的能力。所以,架构师必须要有见识,所需知识面肯定是要不断拓展的。你需要清楚在什么样的场景用什么样的技术比较合适,并知道可能存在什么样的风险。来了需求,你脑袋是空的,不知道用什么技术这是最可怕的。
(2)架构能力
这个可以表现为抽象能力、整体规划能力、及设计能力。你需要照在业务的角度进行系统分解、技术选型、架构搭建,以及规范制定。架构出来了至少可以满足最近的发展,或者可以很方便对现有架构进行扩容。有人说架构不需要懂业务,我面试过的就有明确表示不做业务架构。当然有方面的架构师,如中间件架构师,运维基础设施架构师等。但一般的后端架构师都是需要了解业务,不理解业务你如果进行系统分解,服务划分,及根据不同业务作出不同的架构。技术都是为业务服务的,不站在业务的角度设计架构,那架构就是空谈。[1]
(3)沟通能力
这个看起来不是最重要的,其实也非常重要。作为一个优秀的架构师,你需要清楚的知道客户的需求,需要不断和需求人员进行沟通,以达到客户真正的目的。不论是不是架构师,任何一个职场人,提高自己的沟通表达能力无疑是不可或缺的。有一句话怎么说的,领导就喜欢拍马屁的。做领导的大多不是技术特别牛的,但沟通能力肯定是很好的。
职业定位
系统构架,是对已确定的需求的技术实现构架、作好规划,运用成套、完整的工具,在规划的步骤下去完成任务。系统架构师做为系统架构的设计者,关系到应用系统成败的关键。[2]
主要功能
系统架构师的主要功能包括:
  (1)系统架构师是软件项目的总体设计师,是软件组织新产品的开发与集成、新技术体系的构建者。
  (2)系统架构师是在技术上对所有重要事情做出决定的人(系统架构师在整个软件开发过程中都起着重要作用,并随着开发进程的推进而其职责或关注点不断地变化)。
  (3)需求阶段,软件架构师负责理解和管理非功能性系统需求,比如软件的可维护性、性能、复用性、可靠性、有效性和可测试性等。审查客户和市场人员提出的需求,确认开发团队提出的设计;组织开发团队成员和开发过程的定义;协助需求分析师完成“用户需求说明书”、“需求变更说明书”。
  (4)设计阶段,架构师负责对整个软件架构、关键构件、接口的设计。协助系统分析师完成《系统概要设计说明书》。
  (5)编码阶段,架构师则成为程序员的顾问,并且经常性地要举行一些技术研讨会、技术培训班等。
  (6)测试及实施阶段,随着软件开始测试、集成和交付,集成和测试支持将成为软件架构师的工作重点。[3]
工作职责
系统架构师的职责就是设计一个公司的基础架构,并提供关于怎样建立
和维护系统的指导方针。具体来讲,系统架构师的职责主要体现于以 下几方面:
系统架构师培训
1 负责公司系统的架构设计、研发工作;
2 承担从业务向技术转换的桥梁作用;
3 协助项目经理制定项目计划和控制项目进度;
4 负责辅助并指导 SA 开展设计工作;
5 负责组织技术研究和攻关工作;
6 负责组织和管理公司内部的技术培训工作;
7 负责组织及带领公司内部员工研究与项目相关的新技术。
系统架构
8 管理技术支撑团队并给项目、产品开发实施团队提供技术保障。
9 理解系统的业务需求,制定系统的整体框架(包括:技术框架和业务框架)
10 对系统框架相关技术和业务进行培训,指导开发人员开发。并解决系统开发、运行中出现的各种问题。 系统架构师的目的:
11 对系统的重用、扩展、安全、性能、伸缩性、简洁等做系统级的把握。
————系统架构师的工作在于针对不同的情况筛选出最优的技术解决方案,而
不是沉在具体实现细节上。此外系统架构师是不可培养的,好的系统架构师也许不是一个优秀的程序员,但是不能不懂技术之间的差别,技术的发展趋势,采用该技术的当前成本和后继成本,该技术与具体应用的偶合程度,自己可以调配的资源状况,研发中可能会遇到的风险,如何回避风险。这些才是架构师需要考虑的主要内容。
架构分类
第一种是基础架构的设计规划,例如:OS,硬件,网络,各种应用服务器等等。
第二种是软件开发设计的架构师,他们负责规划程序的运行模式,层次结构,调用关系,规划具体的实现技术类型,甚至配合整个团队做好软件开发中的项目管理。
职业概述
系统构架师是最近在国内外迅速成长并发展良好的一个职位,它的重要性及给 IT业所带来的影响是不言而喻的。在我国虽然还存在一定的争论性、不可预测性、不理解性,不确定性,但它确实是时代发展的需要。IT 业各公司为了让他们现有的 IT 系统实现更大的价值,纷纷进行了重大的技术变革,
系统架构
这样一来,对高水平的架构师的需求激增。对负责架构的管理人员的需求不断增大,其增长速度比对 CIO 的需求还要快,这是因为,架构师会给一个组织带来大量专门技术。公司需要一些在架构方面有真才实学,而且学得深且广的人才。
在比尔· 盖茨的众多称谓中,据说他更偏爱“首席软件架构师”。同样,在网易创始人丁磊名字前,也有“首席架构师”这样的称谓。由此可见,对于企业来说,架构师就是灵魂的创造者。
作用
系统架构师该怎么来实现其“架构”企业的职能呢?尤其在设计企业 IT 策略时,该怎样体现架构师的价值?这里以实例说明:
摩托罗拉
摩托罗拉的副总裁 Toby Redshaw 说,架构师是“IT 策略中的中枢”,而且这一角色对公司的影响确实非常大。当 Toby Reshaw 在 2001 年进入摩托罗拉并担任其策略暨架构副总裁时,他俨然一位购房者对一套摇摇欲坠的公寓进行估价一样。他并不是仅仅只作些表面上的修改,而是拟定了一个重建摩托罗拉整个基础结构的计划,这个计划可以彻底修整公司的基础建设,就像一个建筑师设计一幢房子一样,Redshaw 拟出了一张技术构架蓝图,一座技术性的建筑,以便使被他称作“如意大利面条般错乱的应用程序,机器和管线”那些东西变得井然有序。他说,只要选择了正确的架构策略并用对了人,摩托就可以用比以前更快的速度生产出大量应用软件,而且可以减少维持重叠系统的费用。 Redshaw 说:“如果你连建筑架构都搞不好,就算你的石匠技术再高明,又有什么用?架构师是 IT 策略中的中枢。” 像 Redshaw 这样的系统架构师们在企业内部的影响力非常大。很久以来,虽然他们一直在信息技术部门担任重要职务,但是他们经常受委托提供全面概况分析,并提出一些关于如何遵照标准执行这些任务的建议,而这些对日常运作的影响极其有限。随着各公司都在寻找重建他们的 IT 系统,使其更能有效节省成本,更灵活的方法,架构师愈来愈被看作是至关重要的因素。
系统架构
一个定义明确的架构的目标在于降低运行复杂的运算系统的费用。一个公司可以采用一种特定的数据库配置,如微软的数据库,进而将系统标准化,而不需要让公司的每个部门安装它们自己所需要的数据库服务器。
Express
Express 的技术架构副总裁 Andy Miller 说:“如果你没有一项强有力的架构策略,人人各行其是,最后以得到六种服务器和软件平台而告终,你的系统变成了大杂烩,而那将使你的费用激增。”把架构师独立出来有很多好处,比如系统的整体把握,质量上的保障,技术上的先进性,架构的灵活性,高效性,还可有效地降低成本。试想,1 个月薪 1w 的架构师+10 个月薪5k 的工程师,肯定比 11

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