和 IBM 体系结构专家亲密接触。了解他们为何要做目前所做的事以及如何达到目前的职位。探索他们职业生涯中遇到的种种曲折,了解他们如何通过这些经历最终进入 IT 体系结构领域中……
引言:杂家还是博学家?
长大后,您想干什么?虽然我已经工作了很长时间了(已经到了不愿意公开自己的工作年限的地步了),我仍然在考虑这个问题。或许您也是这样。事实上,如果您和我一样是生育高峰期出生的,您可能将不断问自己这个问题,给出各种不同的答案,直到有一天极不情愿地被推入退休队伍中为止。
本月我们将询问专家组一个类似的问题(不过我们将问的是他们的过去,而不是他们对将来的看法):
为什么您觉得 IT 体系结构方面的工作适合您,为了成为架构师,您走过了什么样的路?
正如您将看到的,IBM 技术带头人也经历了同样的心路历程。事实上,他们似乎都有一个共同的特点,就是始终都在积极地尝试获得新的经验和知识。或许这使得他们有些像杂家, Grady Booch 就使用这个词来描述自己,而这又被 Merriam Webster 定义为“闲人”或“不安分的人”。(此处并不是说“不诚实或没用的人”。)更可能的是,这使他们成为博学家(即 Merriam Webster 所说的“具有各方面知识”的人)。他们日子过得似乎都不错!
对于希望成为 IT 架构师的普通人,这可能会使他们望而却步。那么,究竟在 IT 领域中工作的哪些人如此有创造力而同时又过得这样快乐呢?但他们每个人都是很久以前从普通人开始一步步做起的。他们并不是一下子就获得了成为 IT 架构师的所有技能,他们经历了漫长而艰难的过程,并深入各种不同领域才得到了所需的技能。设计方面也是如此。其他人则是在尝试了其他角色后才选择这个职业。
考虑到我们的专家组成员对新鲜事务的好奇心,我忍不住认为这可能并不是他们中的任何人的最终归宿。如果我们要讨论的是他们以后的职业生涯,我想会发现他们在将来承担起新的任务、对新的挑战发起攻击。我们都经历了很长的成长过程,但我认为他们有可能还会继续这个过程。因此,如果下次问他们这个问题也会非常有意义:“长大后,您想干什么?”让我们拭目以待吧。
放下清高,亲近现实
任何方面都能推动架构师的工作:客户、他的团队、体系结构、小故障和各种问题。我认为体系结构更多的是一种态度、完美地建起软件“大厦”的热情,但现实却往往使得这不那么完美。不过,追求完美的想法与现实之间的平衡会让架构师保持一定的清醒态度,因为他必须向客户交付一个正常运行且性能良好的系统。
回忆:我看到自己参加会议、在白板上画图、处理一个接一个的问题。在团队的帮助下,我尝试利用过去所积累的知识在问题领域中的各种力量和约束之间求得平衡。模式?或许吧。我喜欢体会团队活力在周围流动的那种感觉——每一分钟,我都能在同事仔细描述各种情况的细枝末叶时获得启发和学到新的东西:为什么这个情况略有不同,因而必须修改模式,以处理实际情况。
编写代码的日子:编写代码是孤独的探寻过程。这个探寻过程同时也是永不停止的。有时候还没有回报。找到错误,会得到表扬。如果最终的交付内容/版本中没有错误,则不会提到这些代码中的重要性和您在其中投入的精力!
我喜欢编程——不过现在很少进行此类工作了,仅在学术中需要时才会做这样的工作。处理项目时,我已不再进行代码编写工作了。
香港,1980 年:我开始使用 BASIC 和 Fortran 进行编程。我非常喜欢编程。转眼到了 1995 年,我开始进行 Java™ 编程,享受接口实现和松散耦合所带来的纯粹乐趣。但应该如何设计系统结构呢?
即使获得了最好的运行代码,仍然需要一个能够承受非功能需求冲击的结构。因此,您需要能够对各种相互冲突的约束进行权衡,在重复考虑当前情况的细微差异的前提下进行决策。
我比较认可“模式生成体系结构”这样的学术流派。从蓝图(一组基本模式)开始,然后根据自己的实际情况进行扩展和自定义。这就在最佳实践和现实具有特定的无名品质(QWAN,Quality Without a Name)之间获得了最佳的平衡点,这一点我非常喜欢。