浅谈软件架构师的工作过程
本周上课王老师给我们放了一段关于房屋设计师从实地考察到各种问题的剖析发现再到实际进行设计和解决的整个过程,这一套解决问题的过程和作为一名软件架构师的工作过程极为相似,通过观看和学习进行对比,今天在这里对软件工程师的工作过程进行初步的学习总结。
首先,软件架构师的工作职责是在一个软件项目开发过程中,将客户的需求转换为规范的开发计划及文本,并制定这个项目的总体架构,指导整个开发团队完成这个计划。主导系统全局分析设计和实施、负责软件构架和关键技术决策的人员。在能力方面,要求架构师在技术全面、成熟练达、洞察力强、经验丰富,具备在缺乏完整信息、众多问题交织一团、模糊和矛盾的情况下,能迅速抓住问题要害,并做出合理的关键决定的能力 l、具备战略性和前瞻性思维能力,善于把握全局,能够在更高抽象级别上进行思考。
梦想改造家上面的王平仲设计师在对房子的各种比较严重的构造问题和根据人的居住习惯问题进行了细致的考察后,对整体的房屋的改观做了比较细致的设计构思,因为之前受到房屋构造严重的限制,家里的构造很是不合理,给一家人造成了生活不便,但是经过重新构造之后不仅满足了一家人为了生活起居方便的心愿,还满足了一家人对猫的期待,最终一家人也是对王平仲设计师的改造非常满意。
作为软件架构师也应该先对整个项目做一个系统的分析和需求调查,应该能够在初期的时候就能够发现系统的核心和可能会存在的一些问题,从一个新的高度去看待整个系统,衡量整个系统,统筹兼顾之后选择一个正确的开发方向,指导整个团队进行计划。在前期需要对客户的需求进行比较细致的调查,首先要将客户的实际需求调查清楚,将实际需求的实现放在整个项目的核心位置上,然后在边缘的范围内,从实际需求调查的基础上能够发现和挖掘到客户的潜在需求和有一定延伸性的东西,即使在设计开发的过程中并不一定会真的具体去实现这些潜在的需求,但是调查的清楚,总会在设计开发的项目中给客户一种舒服感。在整个项目开发的过程中,架构师需要实时了解项目开发的进度,并且及时同开发设计人员进行沟通,以应对开发过程中随时可能出现的实际性问题,并且提出解决或者修改方案,以使整个项目能够在客户满意的基础上更加添彩。对整个项目从各个方位都要考虑到是作为一个架构师必备的职业素质,虽然软件架构师不需要进行实际的开发和具体的编程操作,但是对系统全局的分析设计实施以及决策关键技术的时候,就需要比较强的职业能力了。另外还需要比较良好的组织管理能力,能够将一个团队中每个角色都照顾到、考虑到,这也将关系到整个项目的开发是否会顺利和最终的成败。
当然作为一名架构师应该时刻关注新的开发技术和设计理念,不断从已有的工作经验中总结,探索新的更加有效的工作方法以及开发语言和设计模式的配合使用,不仅要熟练已有的技术知识,还要不断学习新的更加有效的技术方法,将其慢慢使用到开发项目中并且快速适应,但是软件行业中的技术真的是日新月异、层出不穷,所以一定要在选择之前有所了解和慎重的考虑,因为一旦不能成功便是对客户的直接经济和时间损失,同时也是对自身的损失,所以一定要对进行分析比较,选择更加能够适应变化的方法和技术。
综上所述,作为一个软件架构师所应具有的基本职业素质则可以大致包括:较强的沟通能力和自我表达能力、有一定的魄力和感染力、有广阔的知识领域、有过硬的技术能力和丰富的编程经验、多方位思考分析能力、需求整理分析能力、系统分解能力、领导决策技术选项、系统设计能力、对团队的培训与指导能力。能在千丝万缕的问题中迅速找到核心问题,并且能够快速对于核心问题提出初步的解决方案或计划,把握全局进行思考。可见要想成为一名合格的软件架构师,就必须对各个方面进行细致的学习培养,只有通过自身的不断努力才能有所成就和收获。