`
wanxiaotao12
  • 浏览: 457339 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

软件架构师的能力与特质【转】

 
阅读更多
软件开发工程师的职业发展无非两大类:一是做“官”,从事管理工作;二则继续从事技术工作。对于后者,软件架构师(software architect)是很多软件开发工程师追求的理想岗位。在这我想谈一谈软件架构师所需的几大能力和一些特质,以便读者能更好地规划自己的职业发展。
 
1)需要很好的逻辑思维能力。对于软件开发工程师来说,由于大多从事编程工作,所以很容易以为自己的逻辑思维没有问题,足以满足软件架构师一职所需。实则不然!就我的观察,不少工作近十年的工程师仍存在思维不清的问题。主要表现在和他讨论问题时,你问他A,他回你B,且很容易跑题和抓不住重点。软件架构师在工作中需要“咬文嚼字”地理解文字和沟通,此时清晰的思维就是关键。
 
2)需要很强的概念(括)能力。软件架构师在很多情形下是管理层与工程师之间的桥梁,除了掌握技术细节,还要对技术细节进行一定的抽象概括使管理层理解问题所在,以便管理层恰当地参与决策。此外,软件架构师在日常工作中也会面临各种各样的技术问题,良好的概念能力有助于把握住问题的本质,从而有效率和效果地解决问题。
 
3)需要熟练运用UML(Unified Modeling Language,统一建模语言)的能力。软件架构师由于需要从事大量文字描述性的技术工作,不可避免地需要借助图,而UML就是一种较通用和接受程度较高的图形化建模语言。软件架构师对于UML的掌握,不能只局限于明白各种图型的意义,还得能熟练地查阅UML规范,以便精准地了解各种术语和图型的含义,从而实现对模型的精确表达。记住,“好图胜过千言万语”,图要好就得追求表达的精确性,这就离不开对UML的精准掌握。
 
4)需要很强的业务能力。对于系统架构师(system architect),业务能力可能包括对行业规范的熟悉、对组织结构和客户关系的清晰了解和研发流程的深刻理解等。对于开发架构师(development architect)业务能力则可能包含对行业规范的理解、对开发环境(编程语言、开发平台与框架、开发流程等)的熟悉和很强的软件查错能力等。
 
5)需要较强的组织能力(含沟通)。软件架构师在日常工作中需要做不少的协调工作,包括组织技术会议的召开和带领团队攻坚,这些都需要一定的组织能力。拿组织会议来说,有些工程师不喜欢在会议之前进行事先准备和与相关人员进行允分沟通,而是喜欢开会时事无巨细地讨论,这势必造成会议低效。面对这样的会议,软件架构师需要很好地判断是终止会议重新安排呢,还是继续进行。如果继续进行就得在会议中很好地掌控会议的话题和节奏,并依据自己的概念能力让与会者更有效地达成共识。
 
6)敢于承担责任。软件架构师在不少情形下是技术层面的决策者,他必须敢于“拍板”,这就要求他承担起相应的责任。当然,责任的承担不能“人有多大胆,地有多大产”那样,而应建立在自己的职业素养和能力之上。软件架构师如果不勇于承担责任,那就容易造成开发工作开展不下去的局面。
 
7)面对挑战的勇气。其实,这一点对于每一个职场人士都很重要,但对于软件架构师尤为重要。与软件开发工程师相比,软件架构师所面临问题的复杂度更高,既会有技术因素,也会有人为因素。解决这些问题有时是很大的挑战,也让人觉得痛苦。有挑战就意味着其中一定蕴涵着其中存在可收获的内容,每克服一次我们的能力就获得了提高。在面对挑战时,我喜欢对自己说“没有痛苦就没有成长”;也会设想自己在面对挑战的环境中工作了一年、几年后将会有多大的收获啊!这种设想会给我们的职业发展带来更大的想象空间,使得自己面对挑战时更具耐心、信心和勇气。
 
如何获得前面所提及的一些能力相信是读者比较关心的,我的回答是“需要时间和坚持”。有些能力的获得不是简单地掌握技术知识就行了,而是需要一定的人生阅历,比如概念能力就是这样的。对于开发软件架构师,如果要设计出一个好的软件架构,除了接触和学习已有的出色设计外,还得需要一定的行业积累和很好的概念能力。对于概念能力,我认为它是依托于生活的,这就需要时间。这种理解也解释了为什么业内流传着成为软件架构师得30岁以后才更可能。
 
至于坚持,它同样很重要。一个人的能力是有限的,很难做到这个也懂那个也会。某种程度上,所掌握知识的广度对于我们的职业发展是有益的,但这是基于我们在某一方面很精这一前提的。要精于某一方面,就一定离不开在同一领域的不断坚持。坚持意味着我们在那个领域会碰到更多的问题和做更多的思考,这是成为领域专家的唯一途径。
 
或许有读者会问,在这些能力中为什么没有谈及文档编写能力呢?原因不是因为它不重要,相反,这是软件架构师所需具备的最基本能力之一。其实,文档编写能力考验的是前面提到的逻辑思维、概念和运用UML的能力。一个说话没有障碍的人,只要具备这三大能力就一定能写出好的技术文档。在日常工作中,如果某人不喜欢写文档、或认为写文档不重要,那是因为这三大能力还不过关的缘故。也正因如此,我建议工程师不要想当然地以为“只要会写代码,文档编写能力并不重要”。如果这样想,那么软件架构师一职也就离我们远去了。
 
本文出自 “李云” 博客,请务必保留此出处 http://blog.csdn.net/hzliyun/article/details/7078959
分享到:
评论

相关推荐

    软件架构师教程 软件架构

    0_架构师与设计师.pdf 01_软件流程实施方案选择.pdf 02_软件架构文档设计.pdf 03_软件架构风险管理.pdf 04_如何描述和评估软件架构质量.pdf 05_设计模式与软件架构设计.pdf 06_AOP开发实践.pdf 07_软件架构通用服务....

    高级软件架构师培训讲义

    高级软件架构师培训讲义,共分24章: 00_架构师与设计师 01_软件流程实施方案选择 02_软件架构文档设计 03_软件架构风险管理 04_如何描述和评估软件架构质量 05_设计模式与软件架构设计 06_AOP开发实践 07_软件架构...

    DevOps软件架构师行动指南

    DevOps:软件架构师行动指南 首部从软件架构师视角全方位解读DevOps实践的完全指南,通过经典案例,系统讲解在不同场景下应用DevOps实践的方法,盛大游戏和唯品会的资深DevOps专家联合倾情翻译

    软件架构师培训资料,软件架构师培训资料,软件架构师培训资料

    软件架构师培训资料:01_软件流程实施方案选择.pdf,02_软件架构规范的制订.pdf,03_软件架构文档设计.pdf,04_软件架构风险管理.pdf...26_软件工厂.pdf

    做架构师——架构师能力模型解析.pdf

    做架构师——架构师能力模型解析.pdf

    软件架构师教程

    软件架构师教程

    《高级软件架构师培训讲义》.rar PDF

    非常棒的一部内部讲义,强烈推荐高级软件架构师 目录: 00 架构师与设计师 01 软件流程实施方案选择 02 软件架构文档设计 03 软件架构风险管理 04 如何描述和评估软件架构质量 05 设计模式与软件架构设计 06 AOP开发...

    软件架构师教程,系统架构师讲义

    软件架构师教程全套,是系统架构师考试的很好的参考教材,免费提供

    软件架构师入门教程,成功架构你的软件

    软件架构师入门教程,培训软件工程师在软件架构方面的经验和能力,

    软件架构师成长之路

    很多人都想成为软件架构师,但很少有人知道软件架构师都要会些什么,这篇文章介绍了。。。。。。

    软件架构师教程1

    软件架构师教程 面向对象应用建模 软件设计师的必经之路

    高级软件架构师阶段一大纲

    高级软件架构师阶段一大纲高级软件架构师阶段一大纲高级软件架构师阶段一大纲高级软件架构师阶段一大纲

    高级软件架构师教材

    中科院高级软件架构师培训教材,适合有一定软件理论基础的程序员学习

    软件架构和架构师

    随着软件系统的规模越来越大,复杂程度越来越高,软件设计的核心已经...软件架构师作为软件架构的设计者是关系到软件成败的关键因素。然而,有关软件架构师的角色定位以及教育培养问题,仍然比较模糊,没有一致的结论

    【系统架构设计师】论软件架构师的角色和培养

    第2节讨论软件架构师在整个软件项目中所充当的角色,包括软件架构师的职责、软件架构师与系统分析师(系统分析员)的区别。第3节研究软件架构师的资格,包括知识体系和任职条件。第4节主要讨论如何评估软件架构师的...

Global site tag (gtag.js) - Google Analytics