欢迎来到天天文库
浏览记录
ID:10696780
大小:26.56 KB
页数:10页
时间:2018-07-07
《如何评价架构的优劣》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、如何评价架构的优劣这是我在今年上海参加亚太软件研发团队管理年会时,InfoQ对我的一次采访内容(我自以为普通话还算行,听了视频,才觉得自己的普通话真是糟透了。而且在采访之初,看得出来,我有些小小的紧张啊)。本次发言,仅代表个人观点,未必正确。如有不妥,敬请指正。视频请链接:张逸谈如何评价架构的优劣大家好,我现在是在亚太软件研发团队管理年会,坐在我旁边的是《软件设计精要与模式》的作者张逸。张逸你好。你好。能给我们读者先介绍一下您自己吗?我叫张逸,是麦思博(MSUP)的金牌讲师,主要负责架构和设计的培训和咨
2、询工作。在今年的上半年,我刚刚完成我这本书的第二版。目前从读者的反馈来看,这个书本的情况还是比较满意。我对开发和设计架构的经验,大约有十年左右的时间,先后在中兴通迅、惠普和中软国际工作,担任的职务也有普通的开发人员、软件开发工程师、架构师、项目经理、技术总监,在技术这块很多角色我都担任过,主要是在.NET方向有一定的经验,是2006年到2010年连续四年的微软的MVP。同时,我主要是在基于架构和设计掌握了一定的知识,也愿意和大家一块来分享架构和设计这一块,我的一些心得体会,谢谢。那您是如何看待架构师这个
3、角色的?因为架构师都包括很多职责,那您认为他的主要的职责都有哪些,而其中最重要的又是什么?说到架构师,从在技术方面讲,它应该是很高的一个级别。我们都知道软件的这个架构是从建筑学里边引喻过来的,我们称为架构Architecture,架构师是Architect。那么相对于建筑行业来说,架构师就相对于是建筑的设计师。但是软件行业,它跟建筑行业还有很大的区别,那么从我们业界来说,从几个不同的视角来看,一般的架构师可能会把它分解为,业务架构师、系统架构师、软件架构师。那么整体来看,我可以打一个比方,比如说这个项目
4、是坐在一个车上,项目经理就是这个开车的司机,那么架构师,他的职责应该是来规定汽车的行驶的路线,保障在这个车在整个行驶过程中不会出现任何问题,并且能够毫无障碍的最后能够达到我们的目标位置,我觉得架构师就应该在把握整个技术,这个项目的方向,行驶的方向。那么他的职责,首先从技术方面,要非常满足客户需求。同时,在非功能需求方面,也能够满足要求的这样一个解决方案。第二,他是要在业务和技术人员两者之间搭建一个很好的桥梁。在日本的外包开发里面,把架构师有时候称为Bridge,桥梁的工程师,它的意思就是相当于把架构、技
5、术和业务之间搭建一个沟通的桥梁,怎么样把业务需求给理解分析,得到我们的领域模型。同时,再把这个分析后得到的结果用模型设计出来。设计出来之后,由我们的开发人员来进行实现,这是第二方面。第三方面应该是一个技术的带头人,就是负责在项目当中出现的技术问题,我们的开发人员应该首先通过架构师得到比较好的指导的意见。第四个应该是作为一个规划师,就像我们整个改革开放有一个规划,几步走,分几步走,这样一个规划。那么对架构师来说,更多的是着眼于大局,而不是细节的这种实现,尤其是针对产品开发来说,产品研发来说,有一个产品线的
6、这样一个规划,这个整体的规划,我认为是架构师非常重要的一个职责。那刚才您也提到了架构师与项目经理不同的职责,那如何来权衡一个好的团队中架构师与项目经理之间的责权呢?首先,不同的开发团队,不同的开发周期,选择不同的软件开发生命周期,可能在职责方面,他们的关系方面是有些区别的。从传统的软件开发管理来说,比如说瀑布式的、迭代的、RUP的,这些方面的组织结构相对来说,不是一个平行的结构,是有一个上下级的这种关系。但是在这种团队里面,项目经理和架构师应该是两个不同的关系,一方面是一个上下级的关系,也就是说架构师还
7、是要向项目经理来负责,项目经理负责安排架构师的一些工作,这是一方面的关系。但是另外一个更重要的关系是,架构师和项目经理应该是一个Partner的关系,就是合作的这种关系。因为项目经理是负责整个项目管理这一块,他更多的是操心的是怎么完成项目的进度,进度的安排,任务的跟踪,还有跟客户的协调。而架构师则是从技术方面以及业务的分析方面来完成,所以他们两个在这个层面上来说,应该是一个平行的这种关系。但是在很多敏捷的团队里边,因为这个角色的划分就不是很清晰。例如以Scrum来说,那么ScrumMaster就相当于是
8、我们传统所谓的项目经理,但是他的管理的职责权限被弱化了很多,而更多的是起到一个指导以及配合的这样一个作用。同时ScrumMaster主要是负责把我们这个团队,把Scrum这个团队能够更好的运作起来。那么在这个团队里面,就没有所谓架构师这样一个职责,那么也许每个团队成员可能都会成为架构师。像这样一个情况的话,根据我以前呆的项目来看的话,如果我们过于强化这种架构师的这种角色,有可能会对我们整个团队,会造成一定伤害。像这种情况,我们就需要每个团队
此文档下载收益归作者所有