不只是在一本书中提到,软件架构师其实和建筑师在某些地方的确存在着异曲同工之妙,在我看来也的确如此,在之前由于没有真正了解过建筑师的工作,所以我对这一观念理解的还不够深刻,但是经过本次课堂观看《梦想改造家》这一节目,通过节目的观看、老师的指引、个人对王平仲老师设计的分析以及题目的解答,我突然认识到,无论是调查需求、发现问题,还是说进行架构,交付工程,建筑设计师的工作如此,软件架构师也是这样,工作流程一般无二。
我认为可以按下面从三个过程对软件架构师的工作流程进行分析与总结,分别是:调研需求、实施工程、交付工程。
一、调研需求
软件架构师受邀来到客户处,客户提出当前出现的问题,架构师分析问题所在,总结出客户的需求根本,寻求解决方案。同时,还要多方面征求意见,了解软件的不同客户层对软件的不同期望与要求,对它们依次进行记录、总结。实地考察客户的工作现场,亲身体验软件所要进行的整个工作流程,发现那些客户不曾注意到的,但是确实会对整个软件起着重要作用的关键,并就这些问题与客户进行交流,共同商讨,寻求最佳的解决方案。最后要与客户就软件交付时间、交付质量进行商议,探讨出两方都能够接受的规则。待调研完毕后,汇总客户的问题,对整个需求进行总结,构思出一个具有合适的软件架构的整体实施方案。
二、实施工程
在总结出了合适的实施方案后,寻找制作软件的有关人员,分配工作给不同的人员,让每个人员都能做适合他的任务,人员找的要得当,不能太多,也不能太少,做到每个人都有一些事做,这样既能在期限内完成,又不会让人员承担过多或过少的工作。在工作分配结束后,软件开始进入开发阶段。在这时候,软件架构师也不能停下,或者说任务更多,一方面,他作为软件开发的主管者,要监督软件的开发进度,督促软件开发的每一方面都能够保持进度,保证每天的工作量,以使软件能够保质保量的按时完成,另一方面,软件架构师还需要继续和用户进行交流,时时审视工程是否有所遗漏,是否能够符合用户的预期,在出现差错时,即时把开发引上正路,同时,架构师自身也要多多对各个方面的问题思考,对那些难以解决的问题进行考虑,为工程贡献自己的力量。
三、交付工程
在工程完成后,对整个工程进行质量把关,检查软件是否真正符合用户的期望,能否投入到实际的工作中去,以帮助用户解决问题。如若还存在瑕疵,则查看问题原因,试图解决问题,并向用户说明情况,保证在下次升级中能够完成预期;如果没有问题,则将软件的最终成果完美的展示给用户,先让用户体验整个软件的使用过程,对于用户在使用时出现的问题给出解答,让用户对使用的流程进行评价,提出用户仍然遗留的问题,对问题进行查看,如果能及时解决,则当场完成修改,否则及时对软件进行升级,以保证软件能够符合用户的使用。
在这个过程中,我认为能学习的不仅仅是和建筑设计相似的软件架构流程,建筑设计师王平仲的所作所为也值得我学习。他认真倾听客户的问题,引领客户更多关于房间的需求,善解人意,和客户打成一片,和善待人,他的确称得上是一位好的设计师,而我想,应用到软件工作流程中这样做的话,软件需求征集与架构也不会成为难事。