《软件开发过程与案例》读后感
本书由清华大学出版社出版,作者全部是微软中国的资深技术经理或研究员,他们是: 陈宏刚,熊明华, 林斌, 张高, 张益肇, 张亚勤。
这本书比较详细地介绍了世界第一软件巨头微软公司在软件开发过程中的一些经验,从微软解决方案(MSF)的框架开始,介绍了一些重要的模型,如MSF组队模型(Team Model)和MSF过程模型(Process Model)等,并以IE浏览器项目,XML Web Service,面向自然用户界面的语音技术为实例,讲解了软件开发过程中的各个环节和关键之处,总结了这些项目成功的经验;介绍了微软公司特有的工程职位:程序经理(Program Manager, PM)以及它在微软公司软件开发中的作用,并就软件测试等一些重要问题进行了探讨。
现代的软件越来越大,功能越来越强,想要通过一两个天才级的程序员写出一个能在市场中站稳脚跟的程序几乎是不可能的。在社会化大生产的背景下,和其他行业一样,软件的开发也越来越需要人的分工和协作,像微软的王牌, Windows和Office都是有好几千个工程师在维护和在开发。复杂的生产线需要更加科学合理的调度,这就是微软解决方案框架诞生的原因,如何有预见性地,可持续性地管理和控制项目风险,如何在项目过程中有效地进行协作和沟通,如何确保技术方案与商业需求的意志,这些问题都直接关系到IT项目的成败,微软解决方案对这些关键问题设计了风险管理,团队管理,过程管理等模型,可以为项目团队提供有效的指导和帮助。比如,组队模型清晰地定义了团队中每一个角色的职责和目标,比如说在微软软件项目中,主要有程序经理,开发工程师和测试工程师,而过程模型提供了一种基于里程碑的,可交互的,灵活的项目生命周期管理框架,比如微软的软件经常是有很多个Milestone来组成的,每一个Milestone,都有特定的目标需要完成,比如我们现在做的Academic family tree就有两个Milestone,现在是处于M2~。
在这本书中,我感受比较深的是讲程序经理这一章,因为这个算得上的是“微软特色”了,微软把一个整个的产品部门划分为程序经理部,开发经理部,测试经理部,程序经理们一般不需要写代码,他们是项目的领导者,项目资源的调度者,是项目的协调人,他们保证按时发布满足客户需求的软件产品。在软件开发过程的各个阶段,程序经理的职责都不一样。书中还特别列出来了程序经理和一般意义上的项目经理的几个显著的不同点,比如项目经理通常是一个人管理一群人,而程序经理通常是一组人负责管理一个项目。总的来说,一个项目对于程序经理的综合素质还是要求比较高的,在IQ方面,有用户界面设计,API设计,理财能力,市场调研能力等等,EQ方面对于领导才能,自我意识,商业谈判,时间管理要求比较高,不禁感叹,一个PM真的是不好当,就像现在我们Team的Xiaoming一样。