软件架构师是如何工作的

         软件体系结构的第一节课,我们并没有直接去了解软件架构和软件架构师。而是通过对一段建筑设计师的工作的视频来了解了建筑设计师这一行业的工作细节。在课下的时间里,自己通过对相关资料的检索和各大论坛博文的阅览发现其实软件架构师这一行业与建筑设计师其实在工作的很多方面都有其共性。两者都需要与客户进行接触,通过自己的设计或架构来实现对用户所提出的需求进行最大化的满足。

         软件架构师是开发软件时在用户需求分析与系统设计阶段的灵魂人物,与传统的系统分析员相比,软件架构师的工作能为接下来的代码设计,以及将来的运行都提供更好的指导。有人把架构师的工作定义为分解系统模块以及定义相互之间的关系,也有人认为架构师就是对软件设计核心环节设计的一系列决策;之所以架构师在现代软件开发体系中越来越重要,还与目前流行的软件开发组织结构有一定的关系。软件架构师是软件行业中一种新兴职业,工作职责是在一个软件项目开发过程中,将客户的需求转换为规范的开发计划及文本,并制定这个项目的总体架构,指导整个开发团队完成这个计划。主导系统全局分析设计和实施、负责软件构架和关键技术决策的人员。总而言之,架构师的主要任务不是从事具体的软件程序的编写,而是从事更高层次的开发构架工作。他必须对开发技术非常了解,并且需要有良好的组织管理能力。可以这样说,一个架构师工作的好坏决定了整个软件开发项目的成败。

       了解了何为软件架构师,作为一名软件架构师应该有以下工作职责:

    1、  负责公司系统的架构设计、研发工作。

    2、  承担从业务向技术转换的桥梁作用。

    3、  协助项目经理制定项目计划和控制项目进度。

    4、  负责辅助并指导系统分析开展设计工作。

    5、  负责组织技术研究和攻关工作。

    6、  负责组织和管理公司内部的技术培训工作。

    7、  负责组织及带领公司内部员工研究与项目相关的新技术。

    8、  管理技术支撑团队并给项目、产品开发实施团队提供技术保障。

    9、  理解系统的业务需求,制定系统的整体框架(包括、技术框架和业务框架)。

    10、 对系统框架相关技术和业务进行培训,指导开发人员开发。并解决系统开发、运行中出现的各种问题。

  而一个软件架构师所应具有的基本素质则可以大致囊括为:较强的沟通能力和自我表达、有一定的魄力和感染力、有广阔的知识领域、有过硬的技术能力和丰富的编程经验、多方位思考分析能力、需求整理分析能力、系统分解能力、领导决策技术选项、系统设计能力、对团队的培训与指导。

  当具备所有成为软件架构师的条件后就可以进行软件架构的工作了。

  • 售前阶段:给予商务支持,提供系统解决方案和架构咨询。
  •  需求阶段:与需求分析师一起,参与需求沟通,协助完成技术/业务咨询和需求模型。(好的架构师同时是业务专家)
  • 架构阶段:进行系统分析和设计,进行系统抽象,设计系统模型,进行技术原型,开发架构原型等
  • 设计阶段:指导设计人员完成详细设计;
  • 开发阶段:指导开发人员按设计实现,解决技术难题。
  •  测试阶段:指导测试人员测试工作,特别是非功能需求的测试。
  • 发布阶段:指导部署人员按照部署架构进行部署,及时解答或反馈试运行期间的架构问题。
  • 其他工作:技术选型,人员培训,技术指导。

  从一个普通的程序员成为一个架构师就是通过一个个项目和不断地学习,实践,总结,个人进步和能力成长过程。从最初的开发工程师到高级工程师,再到系统架构师,然后是资深架构师,最后就是技术总监、CTO、技术副总裁。有人说过,“不想成为架构师的程序员不是好程序员”。程序员的修炼之道任重道远。需要我们在不断的学习成长和日常积累中不断摸索前进,让自己始终保持最前端的技术手段和最长远的职业规划。不断完善自己的个人能力和知识技能储备。

        

       

原文地址:https://www.cnblogs.com/Againzg/p/6437956.html