《软件开发过程与案例》是由微软公司的资深技术人员编写的一本书,书中详细介绍了微软解决方案框架(MSF)这一套“根据自身实践经验为企业设计的一套有关软件开发的模型、准则和成功经验”。
应该说,每个公司都有自己的一套企业文化、行为方式,微软作为当今软件界的巨头,在软件开发领域实践多年,自然对于软件开发有着独到的见解。当今软件行业的一大特点就是“变化”,能否适应这样快速的变化是决定企业竞争力的重要因素。对于一个小企业,甚至是工作室这样的开发体系,自然可以通过一些个人能力跟上变化,随时修改,随时调整。而对于微软这样会把上成千上万发人员集合起来,花多年的时间共同工作的企业,一套可行、高效而又灵活的“方法”就是必不可少的了。MSF就代表了微软对于这个问题的视角。
解决方案框架认为,技术并不是成功与否的唯一决定因素,开发人员、开发过程及风险管理等因素都起着至关重要的作用。而解决方案框架要达到的具体目标就是:
1.将企业的商业目标同技术目标有机地结合起来。
2.确立明确的项目目标和完善的项目职责体系。
3.积极、有效地管理项目进程。
4.实施以里程碑为主导的渐进项目管理过程。
5.管理和控制项目的需求变化。
为了达到这些目标,处理好企业在实际中遇到的关键问题,解决方案框架专门针对这些方面设计了相应模型:企业架构模型、解决方案设计模型、风险管理模型、组队模型、过程模型、应用模型等。
解决方案框架的开发准则就是影响项目成败的三个关键因素——资源、进度、功能——组成一个三角形。这三个方面相互关联和依赖,任何一方面的变动都回迫使其他两方面作出调整,如何在三者之间找到最佳平衡就是项目管理的重中之重。
本书比较有意思的是程序经理(Program Manager,PM)的章节,微软的程序经理是其一大特色。“在开发过程中,程序经理对按时、保质地向客户提交正确的产品负有全部责任”。粗看起来,这类似项目中领导的职位,但是程序经理并没有什么赋予的权力。在项目组中,PM和开发、测试人员是平级的,PM需要通过自己的努力赢得其他成员的认可,进而完成组织、协调及决策的任务。这样的方式实际上保证了项目组自身的灵活性,决定是通过内部成员之间的认可达成的,而不是上级的指定。
本书在其他章节中着重介绍了组队模型和过程模型,分别对应着三角中的资源和进度两方面,这些章节加深了对于均衡三角形的理解。然后还有IE浏览器的开发、
XML Web Service实例、面向自然用界面的语音技术的实例,可以帮助理解上述理论的实际应用过程,同时了解一下微软这些方法是如何产生于开发过程的。
最后,MSF给我影响深刻的一点就是,它不是一种严格的、可度量的理论体系,而是尽量保持了框架的灵活性和适应性。这样一种设计可以更容易满足不断变化的需求。