观点与展望,第 3 部分: 什么是最有价值的 IT 体系结构技能,如何学习
观点与展望,第 3 部分: 什么是最有价值的 IT 体系结构技能,如何学习?IBM 技术带头人回答有关 IT 体系结构的各种亟待处理的问题 ![]() |
![]() |
级别: 初级 Editorial staff ([email protected]), developerWorks, IBM 2006 年 8 月 10 日 IBM 专家将提供各自的个人观点,以推动 IT 体系结构实践方面的发展,从而帮助您更好地担当架构师这一职责。 引言:IT 体系结构不像电视节目 注意:有关观点与展望 专栏的全面的信息,请参阅以前的部分:
我希望能有电视节目展示 IT 架构师的生活。但您知道在电视上的样子。人们都很了不起,通常长得很好看,手边有所有需要的东西,他们都异常的聪明——而且所有部分都非常轻易地就整合到一起了。您可能看着这样的节目,而忘记了他们的实际工作有多困难。暂时逃避一下现实。而且,每周您都有机会假装这就是真实的生活。 我们都知道,和生活一样,IT 体系结构并不是这样的。(真是的,撰写这个专栏甚至也不那样简单,只是纯粹说说才很简单。)需要进行培训,需要努力工作,需要使用技能技巧,会犯很多错误,而且需要很多的耐心。当然,说需要一定天分也未尝不可。 知道了成为一个成功的 IT 架构师需要投入多少工作后,我们就想知道哪些因素对成为一个不错的架构师起决定性作用。因此,我们向专家组提出了这样的问题:“什么技能对 IT 架构师最有价值,架构师如何学习这些技能?” 可以在很多地方找到成为好的架构师所需的技能列表——书上、培训课程、大学、有关体系结构的其他网站上等等。例如,IBM 的内部专业提高网站就提出以下几点 IT 架构师的理想特征:
和可能看到的很多其他列表类似,这个列表相当泛泛,可能并不如您所期望的那样有可操作性。而这正是我们询问前面的问题的原因所在:帮助您确定一个明确的方向。 我们希望对此问题的讨论能为您提供帮助。我们鼓励您在 IT 体系结构讨论论坛发表您对这些观点的看法。如果您有任何问题希望我们的专家进行答复,请与我联系。充分利用专家资源——他们非常乐意为您提供帮助,非常愿意能推动 IT 体系结构方面的实践。 Paul Dreyfus,编辑 另,为了避免对我们的排序方式的意见,我们已根据专家的名字按字母顺序对专栏进行了排序。不过,请一定阅读全文;您肯定不希望漏掉 Walker Royce 的连珠妙语。 ![]()
权衡各个相互冲突的需求 架构师必须 学习权衡各个相互冲突的需求的技能。在调和体系结构的各个组成部分时,我们必须对各个看起来截然相反的事项进行权衡,如下面这些事项:
无论从技术角度出发,还是就业务角度而言,我们都需要对经常冲突的各种考虑和各个侧面进行权衡。在看起来似乎无法解决的情况下进行正确的权衡是架构师成功的关键。 这经常意味着要首先确定有哪些约束,理解这些约束为何存在冲突,并确定如何在问题空间对这些考虑进行权衡,从而解决所面临的问题。
了解各个相关部分以及它们彼此如何结合
这就是体系结构:专门化的彼此不同的部分一起协作,形成完整的应用程序。IT 架构师知道如何将问题划分为专门化的各个部分,并使其作为整体一起协同工作。 那么,什么是对 IT 架构师最具价值的技能呢?就是要了解这些不同类型的服务器以及其提供来帮助解决问题的不同功能,并要了解如何将它们一起使用来开发和部署应用程序。成为一个引擎方面的专家也非常诱人,如数据架构设计人员、规则专家、J2EE 开发人员。团队也需要这样的人员,但他们不是架构师。IT 架构师至少对所有这些方法都有所了解,了解哪个引擎适合用于执行应用程序中的何种任务,知道如何将应用程序分解成各个专门化的部分以及如何使这些部分一起工作。 实际上,这是 IT 软件 架构师。真正的 IT 架构师不仅需要了解软件,也要了解以下内容——甚至可能还要包括其他方面的东西:
需要学习很多内容,但软件方面无疑可以作为一个很好的起点开始学习。 如何学习这些技能呢?您需要逐个学习各个部分,并学习如何将其作为整体结合使用。首先要学习如何实现各个部分,如何使用每种类型的引擎。不知道工作流到底是什么?获取 WebSphere Integration Developer 并实现 HelloWorld 业务流程执行语言(Business Process Execution Language,BPEL)流程。不了解消息传递?阅读 developerWorks 上介绍如何使用服务集成总线的简单示例的文章。学习了每种服务器的细节知识后,请将这些细节放在一边,而将精力放在每种引擎所能完成的任务的全局状况上。消息传递、规则、工作流、数据和自定义代码——这些都彼此不同,但差异在哪里呢?了解了这一点后,您将能够把应用程序划分为多个部分,从而利用每种引擎的独特功能。 此时您就成为了一名 IT 架构师。
快速学习 快速学习新事物的能力。这一点适用于我们这个不断发展的行业的很多角色,而不仅是 IT 架构师。 那么,如何学习这个技能呢? 我是在读大学时学到这项技能的。从那以后,我们忘记了在那里学习过的很多东西,包括 Lisp、微分方程等。但我保留了快速学习这一技能。
沟通和推动力
显然,对这个职位而言,沟通和推动力是其关键的技能。IT 架构师使用他们的经验和直观推断来将暂时的定义欠佳的问题空间简化为能够构建和交付的内容,并同时始终以客户的需求为工作的核心。
沟通和倾听
如何学习这项技能?练习,练习,再练习。
进行连接
这就是将架构师与专业人员区分开的一项技能:通过全局性的视图,可以更全面地看待整个系统并了解其他一些注意事项,从而帮助您确定哪些是重要内容,哪些是干扰信息。此技能也能在不同角色身上和不同情况下发挥作用,不受技术、行业和职务级别的影响。具有这种能力的技术架构师可以帮助在业务和技术之间建立联系。 如何获得此技能:体验学习。接触架构师工作的解决方案的子项目或子组件,不断询问自己这些问题:“为什么这个重要?”和“我的这一部分解决方案与什么相关?”尝试了解各个部分如何形成更大的完整程序。从外向内了解各个部分。
如何学习此技能:我发现,对于尝试学习和进行全局思维实践的人来说,一种称为思维导图的创造性思考技术异常有用。(思维导图是由 Tony Buzan 于 20 世纪 60 年代末提出的,用以帮助人们开发大脑潜能。)这项技术可帮助您捕获和组织各个想法(或组件),能在单页中体现各个组件的多层次分解和组件的相关关系。由于与某个主题相关的所有内容的全貌都呈现在单个页面上,这就训练大脑在相关上下文中看待所有事项,并允许对有兴趣的主体进行进一步分解,且同时保持对全局情况的了解。
对可能遇到的问题进行预先估计
很多工程方面的造诣依赖于理解和分析故障以了解根源的实践。而这个技能正是我所要讨论的技能——系统地对故障和性能问题进行分析,然后对问题进行细化,以确定根源。IT 架构师首先需要能够对潜在的吞吐问题进行预先估计,并设计恰当的解决方案来防止发生此类问题。
基本学习:学习如何进行学习
除了通过固有的基本学习能力外,还可以通过一些其他方式来获得此技能:
深入研究,同时眼观全局
例如,在分析 Web 应用程序的性能时,如果所耗的大部分时间(如 90%)都花在数据库服务器上的密集型数据库搜索、查询和数据聚合上了,则通过调整 Web 表示层的算法并不会带来太多改善。关键是能够处理查询性能问题(如果您是专家)或找到能够及时解决问题的专家。进行此类推理要求具有分析技能,能考虑更大范围内的情况和进行恰当的折衷,并同时对特定技术领域进行深入分析。 那么如何学习这项技能呢?通过实际接触多个项目、向同事学习以及了解和利用体系结构模式和最佳实践。
合成正确的解决方案
有能力的架构师是天生的,而不是培训出来的。有潜质的人可以进行培养,但如果您天生就不能领悟多维的“美丽”,您可以永远也学不会。因此,一个更好的问题是,如何能确定那些天生就具有架构师能力的人并培养他们的相关技能呢? 这方面我也不确定。
|
转载:http://www-128.ibm.com/developerworks/cn/webservices/ar-itio3/