软件架构师如何工作

 

        要了解软件架构师是如何工作的,我觉得第一步就是要清楚什么是架构师。架构师必须是一个组织的领导人,有权利调动这个组织的架构,才能够更好的发挥架构师的作用,更好的把利益的调整落到实处。架构师是要去平衡别人的利益,甚至会调整别人的利益的。一旦架构师是全心全意的为别人的利益服务,自然而然的架构师就拥有了强有力的影响力,肯定会是一个 leader。但是只是民意上的 leader 是没有用的,不能完全发挥架构师的能量。一个优秀的软件架构师应具有的基本素质则可以大致囊括为:较强的沟通能力和自我表达、有一定的魄力和感染力、有广阔的知识领域、有过硬的技术能力和丰富的编程经验、多方位思考分析能力、需求整理分析能力、系统分解能力、领导决策技术选项、系统设计能力、对团队的培训与指导。

       软件架构师的主要任务不是从事具体的软件程序的编写,而是从事更高层次的开发构架工作。软件架构师最终目标是解决别人的问题,只专注与解决自己工作的问题没办法称为软件架构师,为别人的利益服务是架构师的义务。义务与权力是相辅相成的,有为别人利益着想的架构师也必须有领导权力的架构师,架构师作为组织领导,组织内部每个人的权力与义务会得到均等的划分,每个人都会得到发展。而要做好架构,首先需要识别需要解决的问题,识别出问题了,那么目标就不难实现,而识别问题的前提就是找出这个问题是谁的,找到这个问题的主题,这样才可以知道问题的边界,从而了解真正需要实现的目标是什么,才能真正的认识到问题是什么,然后是实现目标。发现问题要比解决问题更重要,如果一味的解决问题,但是并没有弄清楚问题是谁的,真正的目标是什么,那么解决问题只是空谈,而架构师的能力很大程度就体现在发现问题源头上面。

  作为一名软件架构师应该有以下工作职责:负责公司系统的架构设计、研发工作。承担从业务向技术转换的桥梁作用。协助项目经理制定项目计划和控制项目进度。负责辅助并指导系统分析开展设计工作。负责组织技术研究和攻关工作。负责组织和管理公司内部的技术培训工作。负责组织及带领公司内部员工研究与项目相关的新技术。管理技术支撑团队并给项目、产品开发实施团队提供技术保障。理解系统的业务需求,制定系统的整体框架(包括、技术框架和业务框架)对系统框架相关技术和业务进行培训,指导开发人员开发。并解决系统开发、运行中出现的各种问题。这是一个软件架构师不同于程序员的地方。

  很多人会问,特别是做软件行业的,架构师是不是需要学习技术,甚至是学习语言? 如果一个架构师还有这个困扰就如问这个问题的人,说明目前还不具备做架构师的能力,或者说还不具备对自己领域 -- 哪怕是技术领域 -- 的自信,更别谈业务领域了。

因为技术和语言,都是用来识别和解决所服务的主体的权责,保护并提升所服务的主体的权利的。特别对于软件领域来说,必须明白软件本身是怎么回事,解决什么问题,还要解决软件所服务的对象的领域本身是怎么回事,解决什么问题,这就要求更高了。语言和技术应该是随手拈来才对,对于架构师这些都是工具。学习技术和语言,如果明白了这些技术和语言要解决的是谁的问题,什么问题,学起来是非常快,非常容易的

   从一个程序员成长为一名软件架构师,需要学习的地方还很多。不光是技术上的学习,我觉得更多的是意识上的不同。一个优秀的软件架构师思考问题所占的角度一定是站在全局角度上的。这一点我觉得是值得去思考的。

 

部分摘自漫谈架构系列

 

 

猜你喜欢

转载自www.cnblogs.com/xuange1/p/12330909.html