InfoQ

InfoQ

新闻

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

软件架构师应该具备的素质

作者 Abel Avram 译者 王丽娟 发布于 2009年1月22日

领域
过程 & 实践,
企业架构
主题
领导能力 ,
架构 ,
企业架构 ,
团队工作 ,
协作
标签
管理

软件/企业架构师是一项很重要的工作。架构师的职责很多,要胜任的话,需要具备特定的领导、沟通、技术技能。

Gabriel Morgan在最近的一篇帖子里从Daniel Goleman的情感智能(EI)——自我意识、自我管理、社会意识和关系管理——切入,谈论了企业软件架构师应该具备的素质

自我意识

  • 情绪自我觉察
  • 准确的自我评估

自我管理

  • 自控
  • 透明度
  • 适应性
  • 成就
  • 主动
  • 乐观

社会意识

  • 同理心
  • 组织意识
  • 服务

关系管理

  • 感召力
  • 影响力
  • 发展他人
  • 变革催化剂
  • 冲突管理
  • 团队精神与合作

卡内基·梅隆大学软件工程研究所从不同软件工程师那里收集了很多他们对软件架构师的职责、技能及知识所持的观点。对于架构师必备的技能,一部分观点如下:

David Cornish(英国伦敦摩根大通公司的技术架构师):

跟技术团队和商务团队都有良好的沟通

丰富的设计经验和技术知识

分析思维和整合思维

冲突解决

Theo Gantos(美国密歇根弗林特TEKA公司的咨询师):

架构师是一位博学多才的人。在各种方法学领域都要有咨询、交际、组织、概念化、抽象思维、逻辑推理、数据建模的能力,自我检讨的能力,快速适应,演讲和沟通技巧,编程知识,写作技巧,销售技巧,个人魅力,金融和投资回报率计算技能,对付难弄、安于现状的人,有幽默感。

Venkatesh Krishnamurthy(印度班加罗尔市Valtech印度公司的技术架构师):

  • 有创造力
  • 艺术家
  • 政治家
  • 强有力的意志
  • 优秀的沟通技巧
  • 出色的演讲技巧
  • 有人缘
  • 成熟
  • 表达能力强
  • 勇于决策,并能坚持
  • 挑战者
  • 好的观察者
  • 协商者

Victor Alejandro Baez Puente(墨西哥墨西哥城Grupo Nacional Provincial公司的CTO):

  • 对带有财务审计、合同管理、企业工作流、业务流程整合、资产管理组件的企业应用,有设计经验。
  • 有SOA相关经验。
  • 作为首席架构师参与过J2EE项目成立到交付的整个过程。
  • 有在高可用、集群化环境部署J2EE(富)Web客户端应用的经验。
  • 专长于针对软件系统工件构建和文档化的UML。
  • 宽泛的IT知识(应用开发、测试、部署、操作、文档、标准、最佳实践、安全、硬件、网络、操作系统、数据库管理系统、中间件等)。
  • 擅长轻量级、快速开发、敏捷方法学,并有相关经验。
  • 有估算、度量项目速度的经验。
  • 有处理遗留系统和分阶段应用集成的经验。
  • 对细节有敏锐的注意力。
  • 书面、口头、图示沟通的技巧。

例子有很多。有些人把重点放在领导/沟通技巧上,而另一些人则重视具体的技术技能。亲爱的InfoQ读者,你认为软件/企业架构师应该必须具备哪些技能?

查看英文原文:The Qualities of a Software Architect

译者 王丽娟 王丽娟,04年大学毕业后持续从事Java EE中间件产品的开发,现在主要关注Java技术及中间件产品在云计算环境中的发展趋势和应用。

简直神人的要求 发表人 梁 非 发表于
个人对于软件架构师的理解 发表人 Huang Helen 发表于
架构师需要将业务知识、从业经验和技术知识的融合 发表人 Liu Leo 发表于
受益匪浅,好文章 发表人 Zhang 伯乐族 www.ibole.cn 发表于
这是架构师吗? 发表人 郑 亚东 发表于
Re: 这是架构师吗? 发表人 Wu Junyin 发表于
Re: 这是架构师吗? 发表人 麦 书 发表于
Re: 这是架构师吗? 发表人 麦 书 发表于
Re: 这是架构师吗? 发表人 麦 书 发表于
Re: 这是架构师吗? 发表人 wang joe 发表于
架构师和软件架构师 是有职责区分的,不能混为一谈 发表人 Shen Sharper 发表于
业务与技术的结合体~ 发表人 钟 代麒 发表于
梦想 发表人 geng gavin 发表于
  1. 返回顶部

    简直神人的要求

    发表人 梁 非

    架构师难做啊

  2. 返回顶部

    个人对于软件架构师的理解

    发表人 Huang Helen

    首先,作为一名软件架构师,对于软件开发的流程应该熟悉,软件开发技能应该有专长并广博,能够在架构设计时给予充足的技术指导;其次,架构能力,统观全局,处理好需求以及人的关系。因为,个人是比较中庸的一个观点,领导/沟通技巧以及技术技能都很重要,而实际对于软件架构师的需求应该会跟公司的业务发展方向有一定的关联。能够成为一名软件架构师的人,在我看来,这人已经很了~~~

  3. 返回顶部

    架构师需要将业务知识、从业经验和技术知识的融合

    发表人 Liu Leo

    我的个人理解:
    首先,架构师要非常熟悉要架构的业务,而不是根据需求规格说明书来熟悉,毕竟说明书上的只是需求分析人员对需求的理解,不一定是客户的真实需求。不是有一句话吗,“客户的真实需求一般不变,变的是每个人对需求的理解”;
    其次,架构师要在其应用的知识领域要有深入的研究,最好有过完整的项目经历,当然不见得是以架构师的角色参与
    最后,架构师要有很好的沟通能力,你的设计成果要让客户、公司领导、同事和所在团队能理解并认可。

  4. 返回顶部

    受益匪浅,好文章

    发表人 Zhang 伯乐族 www.ibole.cn

    受益匪浅,好文章,该文章已经被伯乐族网站 www.ibole.cn 收藏。

    伯乐族 www.ibole.cn -- 程序员的世界很精彩!

  5. 返回顶部

    这是架构师吗?

    发表人 郑 亚东

    你确实这是架构师,而不是项目经理?

  6. 返回顶部

    Re: 这是架构师吗?

    发表人 Wu Junyin

    项目经理负责项目内部的管理多一些。(非技术上的)
    但软件架构师负责项目架构上的设计,审核。

    有一些共同之处,比如都要有良好的表达能力。
    都要有比较好的交际能力。

  7. 返回顶部

    Re: 这是架构师吗?

    发表人 麦 书

    直接看看MCA和SCEA的要求大概就知道了。
    明明一个职务而以,怎么社区里有真么多山寨的说法。

  8. 返回顶部

    Re: 这是架构师吗?

    发表人 麦 书

    架构师了解工程经济学和心理学倒是必要的。
    至于项目进度这些破事项目经理作就好了,还用花那么大成本用A来管理,浪费么。

  9. 返回顶部

    Re: 这是架构师吗?

    发表人 麦 书

    擅长轻量级、快速开发、敏捷方法学,并有相关经验。

    有必要么?

  10. 返回顶部

    Re: 这是架构师吗?

    发表人 wang joe

    這個條件我個人覺得因該是PM的條件
    架構師因該Focus on技術,領導團隊開發為主

  11. 返回顶部

    架构师和软件架构师 是有职责区分的,不能混为一谈

    发表人 Shen Sharper

    架构师和软件架构师 是有职责区分的,不能混为一谈

  12. 返回顶部

    业务与技术的结合体~

    发表人 钟 代麒

    业务与技术的结合体~

  13. 返回顶部

    梦想

    发表人 geng gavin

    也想成为一个架构师啊......

深度内容

"伤得起"的云计算应用——对云端应用之架构的思考

2011年4月21日至22日是值得云计算从业者纪念的日子。Amazon的IaaS服务出现故障,导致许多商业网站的服务中断,影响非常严重。作为云计算用户,我们需要思考的是,如何保证即便在云服务不可用的情况,我们的应用架构仍然能够屹立不倒?本文正是站在云计算用户的角度试图探讨这一问题。

让交付的速度跟上思考的速度

12人的技术团队,4组刀片服务器,每月20亿的访问量,每日1次准时部署,99.9%的可用性。这可能吗?当然。想知道如何做的吗?百姓网将与您分享他们在DevOps实践过程中的经验和技巧。
本次演讲视频录制于QCon杭州2011

架构之路——穿行在产品和业务之间

篱笆作为一家起源于社区的电子商务公司,反映到技术层面就是同时要面对产品和业务,以及经营战略的变化调整。如何在产品和业务的夹缝之间完成技术架构的抽象与平衡,寻找更有效的价值定位,这当中有些经验教训和个人感悟愿与众人分享。
本次演讲视频录制于QCon杭州2011

特性注入:成功三部曲

本文将对特性注入以及相关方法做一个扫盲性的介绍。我们会解释这个框架的关键要素,并附上实例来证实它们。为了让文章保持相对较短,我们不会深入到某个工具或方法中,而是会给出一些参考资料,以便大家做进一步的研究。

解析JDK 7的动态类型语言支持

随着JDK 7的发布,字节码指令集终于迎来了第一位新成员——invokedynamic指令。这条新增加的指令是JDK 7实现“动态类型语言(Dynamically Typed Language)”支持而进行的改进之一,也是为JDK 8可以顺利实现Lambda表达式做技术准备。在这篇文章中,我们将去了解JDK 7这项新特性的出现前因后果和它的意义。

Java Remoting远程服务(下)

随着互联网应用的发展,Java分布式远程服务技术受到越来越多的关注,本文将对各种相关实现以示例的形式逐一介绍,并总结其中的优缺点,使读者能够在技术选型时有所准备。这是文章的下篇。

深入浅出Node.js(四):Node.js的事件机制

专栏的第四篇文章《Node.js的事件机制》。之前介绍了Node.js的模块机制,本文将深入Node.js的事件部分。

采访和书评:精通HTML5和CSS3设计模式

《精通HTML5和CSS3设计模式》一书记录了目前HTML5应用程序的许多常见设计模式。InfoQ对该书作者之一Dionysios Synodinos进行了采访,谈到了该书以及HTML5应用的相关内容。