软件架构师工作过程
软件架构师(英文名称:SoftwareArchitect),是指在软件项目开发过程中,根据客户的需求以及行业市场的需求将软件所要实现的需求功能转换为规范的软件开发计划及文本,将软件开发过程中所涉及的流程与架构进行设计和管理,制定项目的总体架构并指导整个开发团队实施的专业人员。
相信大家在很多书上或者论坛上都能看见软件架构师其实和建筑师在某些地方的确存在着异曲同工之妙。在看了《梦想改造家》中的王平仲设计师对于一个很乱很小的房屋进行一系列的规划,设计之后出来的结果,让我对软件架构师其实和建筑师在某些地方的确存在着异曲同工之妙这个观点有了深刻感受和理解。通过节目的观看以及老师的指引,无论是对于需求的调研和分析,需求的分解与规划,工程的实施和问题的解决,最后交付给用户这些流程,不仅是建筑设计师的工作,更也是软件架构师的工作流程。
总结来说,对于一个软件架构师的工作流程可以分为,需求调研,需求分析与规划,工程实施,交付用户。在整个过程中,还会不断遇到各种各样的问题,所以在整个流程上都有问题解决。
一:需求调研
首先就是从客户那儿了解需求,在听用户述说的同时快速记录,并且对于不太明白的地方要及时和用户进行沟通,同时分析用户是否还有潜在的需求没有表达出来,可能这种需求会在以后的软件中起到重要作用,然后总结出客户的需求。并且就一些可能出现的问题与用户商讨,探讨出两方都能够接受的规则。通过不断的与客户交流,最后整理出需求规格说明书。在得到软件架构师的认可和肯定之后那么就开始作业。
二:需求分析与规划
软件架构师在掌握了所有需求之后,就开始对用户的需求进行分析,如何能好的,快的,准确的解决用户的需求。这时,软件架构师就要对需求进行分析规划了。根据系统场景(软件系统中各个功能模块之间的交流、数据传输和存储、对信号的接受或拒绝等验证功能等等。)和用户场景(用户触发或者受用户控制的场景,如用户创建表单,检索或者浏览产品等等。)把整个项目划分为多个模块,进行逐层分解,层层分离,逐渐探究出问题的本质问题。在设计的同时,必须满足各个模块之间的高内聚低耦合。在做了所有的规划设计以及预算之后,与客户交流,将所需要的费用,时间等等与用户协商达成一致。最后在总结出具体实施方案。开始作业。
三:工程实施
在总结出了合适的实施方案后,寻找制作软件的有关人员,分配工作给不同的人员,让每个人员都能做适合他的任务,人员找的要得当,不能太多,也不能太少,做到每个人都有一些事做,这样既能在期限内完成,又不会让人员承担过多或过少的工作。要让每个人都能适宜的完成交代给自己的工作任务,同时要保证任务在确定的期限内完成。同时呢,架构师需要继续与用户沟通开发当中出现的问题,同时作为软件开发的主管者,要监督软件的开发进度,督促软件开发的每一方面都能够保持进度,保证每天的工作量,以使软件能够保质保量的按时完成。架构师自身也要多多对各个方面的问题思考,对那些难以解决的问题进行考虑,为工程贡献自己的力量。
四:交付用户
在之前的几个阶段需要经过不断的测试,力求每个地方都做到很好。在每个阶段测试的时候若还存在瑕疵,则查看问题原因,试图解决问题,并向用户说明情况,保证在下次升级中能够完成预期;如果没有问题,则将软件的最终成果完美的展示给用户,先让用户体验整个软件的使用过程,对于用户在使用时出现的问题给出解答,让用户对使用的流程进行评价,提出用户仍然遗留的问题,对问题进行查看,如果能及时解决,则当场完成修改,否则及时对软件进行升级,以保证软件能够符合用户的使用。
作为一个合格的软件架构师。应该具有这些能力:
1.熟练的专业技能,有丰富的经验;
2.具有很强的洞察力,能抓住问题的主要矛盾,及时解决问题;
3.具备领导素质,软件架构师需要在各小组之间推进新技术,需要领导人员进行项目计划的实施;
4.具有良好的沟通能力;
5.具有多方位思考分析能力;
6.遇到问题之后,软件架构师需要对问题进行多方位的思考分析,并制定可行的解决方案;
7.具备团队精神;善于学习。