架构师的人文情怀

来源 :博览群书 | 被引量 : 0次 | 上传用户:cecil666666
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  在北美从事软件架构师的工作近20年,一直以为这样的工作远离普通大众的生活。普通人即便不懂钢琴或者绘画,也能够从艺术大师的表演和作品中获得享受。然而,软件架构师的工作过程及其结果无论多么完美,总是“其牙机巧制,皆隐在尊中”,“不足为外人道也”。我最近出版了一本关于如何成为软件架构师的(技术)书后、邀我从人文角度写一篇让普通大众了解架构师的文章时,我惶恐了几周的时间,出版这本书的准备工作花了一年的时间,但所针对的读者群,一直是很“小众”的架构师和程序员群体。如何向普通大众展现这其中深层次上的思考,对我来说还真是一个不小的挑战。
  回顾过去的20年,软件应用的确是越来越贴近普通人的生活了。无论是城市还是偏远的山村,越来越多的人在日常生活里越来越离不开各种软件应用,比如网购、社交、出行、就业等的软件平台和应用。就像有一百个人吃了鸡蛋,总会有几个人好奇想去看看那下蛋的母鸡 ——大家可能会想:能设计出这些越来越复杂的软件应用的到底是些什么样的人呢?
  在英文里,软件架构师和建筑师使用的是同一个词 ——Architect。其实,软件架构的理论,尤其是早期的理论中也经常将建筑学中的术语和方法论借鉴过来。“蓝图”一词即是个例子。
  20年前的软件系统大多比较简单,很多时候程序员直接进行编程、而跳过了架构设计这个环节。然而,近20年来,软件系统本身越来越复杂,不仅需要提供的功能越来越庞杂、牵涉到的其他的现有系统也越来越多。另外,软件项目外包、第三方实施等的现实,也要求有人来对整个项目的规划和设计负责。由此,软件架构师这个角色就变得举足轻重了,在大多数大型软件系统和应用的项目里直接决定着项目的成败。如果将软件系统和应用的项目团队比作一只部队,那么架构师的作用就是总参谋长加上一部分总司令的作用。
  我先来分享一下亲身经历过的几个架构设計的项目。
  某跨国石油公司的能源交易部门于2002年希望建立一个全球范围内能源产品( 包括石油、天然气、电力、污染排放指标等)的交易结算和风险评估平台,能源产品可在全世界各地进行交易、交易实时地与交易对方进行结算、本部门所持有能源产品组合的细节及其系统风险同时被实时地更新。如果交易的一方或双方隶属于某个母公司时,母公司本身所持有能源产品组合的细节及其系统风险也被实时地更新、任何过度风险的情形都会被及时预警。
  美国某著名的航空快递公司在2005年时寻找一个高效、耐用的消息交换平台,能够每天交换8亿6千万个在邮件递送过程中由每一个处理中心的进出扫描而产生的消息。而这些消息在全天中的任何时间、在世界上的任何地方不断地产生着。在此平台上需要进一步构建供广大消费者使用的邮件跟踪服务。到2010年,这个平台的消息总处理能力达到了每天50亿。并且同一个母公司下以不同注册名称独立运营的所有分公司所使用快递服务的总量,及其使用模式可以被按母公司累加起来、为下一年针对不同母公司的大客户进行更好的服务定价提供可靠的依据。
  美国某知名零售连锁店有800多家店面,销售包括服饰、家电、日用品等在内的上万种商品。每个星期,总店都会在不同的商品上推出各种不同的促销折扣以及减价券。有些时候这些促销折扣和减价券的有效期只有某一天中的几个小时。促销折扣及减价券的推出上线必须经过特定权限的批准。在整个过程中完全不允许出现停机现象。
  美国某玩具公司拥有多个世界上最著名的玩具品牌。在2012年引入的产品生命周期管理软件系统成为玩具产品设计、制造、市场开发、销售、服务等几乎所有的企业职能部门共同需要的平台。然而,由于历史的原因,这些职能部门目前使用的外购和自己开发的应用系统超过了50个。加之这些职能部门扩散在北美、欧洲、中国、东南亚等多个地区,实际上根本不可能让这些职能部门全面放弃已经使用了十几年,甚至几十年他们熟知的系统。然而,所有围绕玩具产品的各类职能的数据已经全部转移到新的产品平台上。如何保证这些职能部门将继续使用的现有系统能够从新的产品平台上及时有效地获得不断被更新的相关数据?
  既然架构师的角色这么重要,具备什么样知识和素质的人才能成为架构师呢?
  首先,一个好的架构师不但要是IT技术上的专家、还必须是所解决的业务问题方面的杂家。对需要解决的问题都不了解,怎么能保证设计出来的架构方案能够完美地解决被指定的业务问题呢?IT技术和每个行业都在日新月异地发展和变化。有能力持续不断地、努力地并有效地进行学习,是成为一名优秀架构师的必备条件。
  谈到学习,人们往往认为只是对知识和事实的记忆和掌握。其实,任何学习的过程应该有三个境界:知识、洞察及影响。
  在“知识”阶段,主要活动是搜集有关的基本信息、进行整理,并根据现有的知识和理论体系推导出比较直接的结论。
  在“洞察”阶段,主要活动是在第一阶段中得到的事实和基本信息的基础上进行梳理、挖掘和思考,力图找出更深层次上的关系、得出更进一步的结论。
  而在“影响”阶段,主要活动是围绕着如何根据前面二个阶段中得到的知识和洞察来确定行动方案,以达到预定的目标或效果。“影响”,即能够对人或者事产生积极的、根本性的变化,是前面两个阶段中积累的真正目的。如果没有“影响”,前面两个阶段的努力除了“自娱自乐”外毫无意义。而对“影响”的定义,为团队的共同努力确立了共同的目标。
  其次,完美地完成架构师的工作需要技术、人员和流程三足鼎立,缺一不可。而技术只是其中的三足之一,除了扎实的专业技能,架构师还必须在另外两个方面表现出超强的领导力,并在必要时说服项目的利益相关人,保证项目的顺利完成。这些“软实力”,其实和架构师专业技能的“硬实力”同样地重要。这些“软实力”可能包括诸如区别手段和目的、处处讲究形式逻辑、利用抽象思维的能力、因对象的不同进行表述和交流、坚持原则但也知道妥协、知之为知之,等等。   还有,优秀的架构师应该对自己所在的以及相关的技术领域的发展现状和未来走向,具备清晰的把握,并就这些技术的发展对经济、社会,及人们日常生活可能产生的影响不断地进行思考且有所洞察。否则,一个架构师充其量不过只是一个工匠,而无法成为完成高质量的、对企业业务具有深远影响的IT项目的领军人物。
  当然,如何成长为一名优秀的架构师绝不仅仅是架构师本人的事。除了自身的积累和历练外,架构师所处的大环境也起着重要的作用。国家政策、高等教育、企业文化、社会科普等等都会对架构师的培养和成长产生影响。由于软件架构师的整体素质在很大程度上决定了一个国家各个行业里企业级应用系统和软件的水平,有关部门应该给予足够的重视和政策上适当的安排。
  1.架构师的职业规划
  年龄歧视在国内的各个行业里普遍存在。很多行业、公司的招聘条件里明确地写着“35岁以下”。信息技术、软件行业里的技术岗位更被认为是“一碗青春饭”。于是,我们看到程序员们不到30岁就对自己的职业前途忧心忡忡。其实在北美,最优秀的架构师大多在45-55岁。他们已经积累了丰富的理论和实战经验;开始对人文方面有了比年轻人更多更深的思考,而且体力尚佳。一个行业里如果没有这些高端的技术人才,这个行业的整体水平就无法提高。这是软件行业整体战略的大问题。我呼吁企业及有关部门给那些希望走技术路线的技术人员一条职业规划的康庄大道,并在薪酬、福利、培训等方面的政策上进行倾斜。
  2.软件工程问题与业务问题的分离
  在为企业的IT项目提供解决方案時,有两种做法。一种是利用最基本的计算机语言和工具,尽量一切自己开发;另一种是利用已有的平台、框架、工具,尽量只专注于解决具体的业务问题。这就是常提到的“造还是买”的问题。
  随着企业业务问题越来越复杂,以第一种方式在要求的时间和预算内,以要求的质量完IT项目的可能性越来越小。企业应对市场竞争和数字化转型所必须具备的敏捷性,要求业务IT项目的技术平台必须要有一个很高的起点;业务项目只专注于解决各自独特的业务问题,而将平台和工具的问题交给IT软件公司来解决。IT软件公司不仅具备解决这些技术问题的能力,它们的产品也有着更广大的客户群、有机会得到更多的验证、丰富和提高。想一想SAP、Oracle、MicroSoft、IBM等公司的软件之所以越做越精致,是因为它们有着成千上万的企业用户。将IT技术问题抽象出来单独进行解决,对于一个国家软件工业水平的提高大有益处。
  和制造业一样,软件工业的水平可以体现一个国家的整体工业水平、是其他任何行业的基础;软件工业的战略必须提到国家发展战略的高度来进行考虑和安排。国家、政府应该制定出相应的法规和政策、对软件工业进行有效的扶持。
  在以往,由于软件版权保护及其他方面的综合因素,国家整体的软件工业水平并没有得到充分的发展,至少与高校的软件教育水平、及从业人员的数量和整体水平等因素不相匹配。在云计算和云平台不断被广泛采用的新形势下,软件用户不再需要得到软件的拷贝,而更多地改为付费订阅的软件版权使用模式。这一转变也将有利于软件版权和知识产权的保护、鼓励软件工业的发展。
  3. 高校计算机软件课程设置与现实对架构师要求的匹配问题
  继续将业务IT项目分成解决业务问题和解决软件工程问题两个部分这个话题:解决这两部分的问题的技术人员关心的侧重点不同、所需要的硬实力和软实力也不同。
  对比高校计算机软件教育的课程设置(包括中国和美国的顶尖高校),我发现,几乎所有课程都是软件工程方面的,而与解决企业实际的业务IT问题有关的课题却涉及的很少,比如大型复杂系统解决方案的架构和方法论、IT咨询技能、还有软实力的具体内容等等。这样就造成了高校的相关课程设置与工作市场和企业IT项目具体要求不相匹配的情况:我们的高校并没有教授给学生进入工业界后立即就需要的相关技能,短期内只能靠他们自己摸爬滚打。而在高校的计算机教育之外,似乎也没有在大范围内、系统教授这方面的知识和技能的地方。
  与解决企业实际的业务IT问题有关的课题,不仅在战术上直接关系到各个行业、各个企业的IT项目的成败,还会在战略上反过来促进软件工业的整体发展,并对企业能否顺利完成数字化转型、在新的互联网经济的大环境中生存和发展具有至关重要、决定性的意义,因此也是高大上、“诗和远方”的东西。高校的本科计算机软件基础教育,应该在高年级增加诸如大型复杂系统解决方案的架构和方法论、IT咨询技能及软实力等方面的课程,并像商学院、医学院、法学院、军事学院和体育学院那样,在课程中增加对实际案例的分析、以实践来加深学生对理论的认识。
  总之,未来对软件架构师的需求会越来越多。如何系统地培养优秀的软件架构师,也将成为一个热门的话题。
  (作者系资深系统解决方案架构师,著有系统架构及如何培养架构师的专著《现代 API - 通往架构师之门》。)
其他文献
有学者曾说过,人类文明的发展史,都承认曾经有一个辉煌的“轴心时代”。因为生产力的发展出现了“铁器时代”的飞跃,无论东方西方,就都可以“养”出一大批“吃饱饭找事干”的坐下来深入思考的“闲人”,于是都在异地、于同时,不约而同地共同思考和探讨“我是谁,我从哪里来,我到哪里去”这样一些人类永恒思考的基本问题,其中当然也包括最基本的“人性”问题。而后来的思想无论如何进化、发达和丰富,总要回到或围绕这些“原点
一、教材分析  本课选自江苏省《小学信息技术(下册)》,是制作幻灯片的拓展和延伸。通过本课的学习,使学生学会在幻灯片中插入剪贴画与图片文件的操作方法,培养学生的审美能力和创造能力。  二、教学目标  知识与技能:掌握在幻灯片中插入剪贴画和图片文件的方法。  过程与方法:利用知识迁移规律学习新知识,提高学生的探究能力。  情感、态度与价值观:激发学生学习的主动性和积极性;培养发现美、创造美的意识,提
一、教学内容分析    本节内容是广东教育出版社教材《网络技术应用》第二章第二节内容。在学习接入因特网内容后,教材安排了对IP地址知识的学习。有些教材会把这部分内容的学习放在域名知识之后,待学生学习这部分知识后,再回过头讲述域名的解析过程,不利于学生理解技术发展的思想和过程。本教材的安排是在完成了IP地址的学习后,学生了解到IP地址不便于人们记忆,因而提出了域名系统来帮助人们解决问题,再分析域名与
七年前,18岁的我来到清华,在这里度过了成年后的青春岁月。七年后,站在这里的我,就像一个即将离开故乡的孩子那样,自豪而感伤——自豪于,自己的岁月没有被虚度。感伤于,无论有没有被虚度,这段岁月终究还是过去了。  今天,我想讲的第一部分是,人文学院教会了我们什么。  我是哲学系学生。入学之前,我以为哲学在讨论“什么是真理”。然而,如今我早已明白,哲学讨论的是,在某时某地,真理被定义为什么?是谁来做出这
《博览群书》编辑部:  墨学有一些必须回答而又难于准确回答的问题,这些问题涉及到“墨经”、“墨辩”、《墨子》、墨子、墨家,其中包括:  ——《墨子》书中的七十一篇是否均为墨家作品?特别是《亲士》《修身》和《所染》前三篇、《迎敌祠》至《杂守》等最后四篇是不是墨家的作品?  ——晋人鲁胜所说“有上下经,经各有说,凡四篇”的“墨辩”,是不是同于《庄子·天下》所言天下墨者所共诵的“墨经”?如果不是,那么“
移动性已成为这个世界越来越突出的特点。近年来,随着移动通信速率的提升、资费的下调以及手持式移动设备计算性能与存储能力的增强,我们口袋中的手机、掌上电脑和PDA(Personal Digital Assistant,个人信息助理)等手持式移动设备,可以让我们在任何时间或地点获取、处理和发送信息,使交流无处不在,也为我们依托手持式移动设备和无线网络开展教育活动、传递教育信息,实现人类终身学习提供了可能
教学设计是教师根据教学实际确立教学目标、安排教学内容、设计教学活动、解决教学问题、促进学生学习的过程。目的是为了学生更好地学习。一份好的教学设计有四个方面的特征:教学有价值、教学有效果、教学有效率、教学有魅力。因此,我们需要对教学设计进行深入的分析和优化。只有当教学设计最优化时,才能实现最佳的课堂效能。现以“搜索引擎”的教学为例,谈谈教学设计的优化。    一、深入解读教材,优化教学目标    解
运行或发布ASP Web应用程序一般有两种方法:一种是发布在专用的Web服务器上,从客户机键入服务器的域名或IP地址,从而运行网络应用程序;另一种是用户和开发者在个人电脑上安装PWS、IIS或Apache等Web应用程序发布软件,用来浏览或调试程序。虽然这些方法很实用,但是有时如果缺乏相应的服务器设备、移动电脑或相关的IIS等软件,那么这时要随时运行ASP动态网页程序,可能会遇到很多困难。在这种情
编者按:  北京市西城区教育信息化工作一直以科学发展观为指导,以提高信息化效益为目标,加强应用研究和服务支持。其重点是优质资源的共建共享。西城教育人抓住课程改革的机遇,全面提升区域教育信息化工作的水平,为教师的专业发展、学生的全面发展,为全区基础教育高标准、高质量均衡发展提供全方位支持,为西城教育的腾飞插上了翅膀。    体系建设:教育信息化可持续发展的保证    2005年,西城区教育系统信息化
1.问:我有一些十分重要的文档,希望能将其保护好,使其不可见,也无法进行修改、删除等操作。如果仅仅将其属性设置成隐藏还是不牢靠,请问有没有方法能提高安全性?  答:一般的文件夹都有一个图标和一个文件名,经过设置,可将一个普通的文件夹变成一个既无图标也无文件名的透明文件夹。看上去就像没有一样,可起到保护、隐藏的作用。下面以在D盘建立这样一个文件夹为例说明其建立的过程。  在资源管理器中的空白地方单击