本文转自:http://baike.baidu.com/view/1291436.htm
MSF(Microsoft Solution Framework)微软解决方案框架结构是一组建立、开发和实现分布式企业系统应用的工作模型、开发准则和应用指南。它帮助企业融合商业和技术的目标,降低采用新技术后系统整体的费用,以及成功的应用微软技术整合商业过程的方法。MSF揭示出为成功设计、构建和管理技术基础结构或商业解决方案,所需了解的重要风险、重要的设计基础假设和关键的依赖关系。它包括明确的知识库(KB Knowledge Base)、应用指南和实践经验,如:
企业结构设计方案—采用交互的方式,侧重于制定长期规划,同时也能完成短期目标。
项目开发准则—包含组队模型和过程模型,用于建立高效的项目组,管理项目的生命周期。
项目设计过程和多层结构的应用程序模型—用于支持设计复杂的分布式企业应用。
企业信息基础设施的实施方法—使用组队模型和过程模型支持实现、操作和技术上的方案。
一、概述
MSF是一个经验知识库,它包括以下方面的内容:
* 企业结构设计方案—采用交互的方式,侧重于制定长期规划,同时也能完成短期目标。
* 项目开发准则—包含组队模型和过程模型,用于建立高效的项目组,管理项目的生命周期。
* 项目设计过程和多层结构的应用程序模型—用于支持设计复杂的分布式企业应用。
* 企业信息基础设施的实施方法—使用组队模型和过程模型支持实现、操作和技术上的方案。
它是一种框架结构
框架结构重点解决一个基本的问题:它提供解决总体问题和作出有效决策的轮廓。
框架结构可以增强分析和开发大型项目的能力。MSF 能够确定项目最大的风险在何处,强调制定计划和确定进度,确保成功发布一个产品所必备的条件。
MSF基于一组工作模型,这组模型是由微软公司及其合作伙伴,在与客户成功开发分布式计算和客户服务器应用程序的经验得来的。
框架结构不是一种预先决定工作结构、工作任务和发布产品具体方法的方法论,而是提供了灵活的方式、应用有创造力的方法去解决实际存在问题的思想。
象任何明确定义的工作模型一样,MSF积累了三个关键的成功因素:
* 一种帮助提供技术决策指南的观点。
* 一组反复跟踪、监控和管理项目及其进展的参考方法。
* 一致的重用性保证在灵活的计算环境中有效的利用已有的知识和技能。
一个资源的集合
MSF收集了一组集成的资源和准则来指导项目组走向成功。它包括明确的概念、详细的工作指南和微软最好的实践经验,保证您能立即开始工作。
这些资料可由以下途径得到:
* 联机资料
* CD-ROM知识库
* 教学课程
* 完整的参考手册
因为CD光盘中的内容是由HTML文档组成,所以要使用Microsoft Internet Explorer阅读这些资料。此外,CD光盘中还有更详尽的指南讨论在参考手册中提出的概念。
您如何得到它
MSF在世界范围内由微软顾问咨询部及微软认证的培训中心提供培训。
它在不断发展
MSF是一个框架结构,它不是一成不变的。相反,MSF会随我们从微软的客户和合作伙伴那里的学习而不断的发展和完善,新的思想和准则会不断地被引进MSF。这些发展将适应技术的更新、商业需求的变化,并支持构建更好的软件解决方案。
技术上的变化会导致MSF作出相应的变化。我们会不断地在参考资料上增加更多的指南、介绍和更新的概念,根据当前的思维增进我们的教学课程。例如:我们认识到Internet强大的生命力和影响力,我们就在我们的资料上很快的作了针对Internet的更新, 补充介绍我们的概念如何应用于开发基于Internet/Intranet基础和结构的应用程序。
MSF将一个项目中不同阶段的工作人员分为六个角色,通过这六个角色,项目可以得以迅速、完善地实施。这也体现了项目开发的六个重要质量指标,它们在全球是一致的。这六个角色分别是:
•产品经理。他了解用户特征,尤其是商业特征,明确用户的需求以及需求的期望值。之所以强调用户需求的期望值,是因为用户的商业化特征比较强,需求无尽,无法界定到底如何才算需求得到了满足。而确定了需求期望值后,用户的商业目的就非常明确,实施起来也比较顺畅。
•程序管理员。他负责制定计划,每天找出完成该计划的风险所在,排除风险,每天交付应该完成的内容,确保计划按质、按量实施。
•用户教育。设计友好的用户界面,对用户进行培训,确保用户能够并且愿意和喜欢使用开发出的产品。
•开发。开发者在开发前期就参与用户需求分析和项目计划制定,他最清楚具体的开发过程。在开发期开始后,他负责进行代码开发,在每一个阶段,交付每一项内容的代码。
•测试。负责开发出的代码的测试。测试者并不是要找到每一个开发者的每一段代码的每一个错误(bug),而是要找到代码错误之间的关系,解决最根本的错误,掌握错误的状态,从而迅速排除错误。
•后勤。后勤人员负责将实验室的产品商品化,变成实际可以运行的产品,达到最初制定的商业目的,取得商业效益。这项工作在以往的项目中可能比较简单,因为实验室的环境可能和实际环境几乎一致或差别不大。而现在却不同了,实验室环境可能十分简单,而实际环境可能非常复杂,比如分布式环境、Internet/Intranet环境等,尤其是大企业,实际环境比实验室环境复杂得多,因而将实验室产品运用到实际环境中是一项非常重要的工作。这项工作没有完成好,往往使整个项目前功尽弃,功亏一篑。
二、MSF简史
1994年,基于微软产品开发的经验和教训以及微软微软咨询服务的业务经验,微软推出了Microsoft? 解决方案框架 Microsoft Solution Framework (MSF)。当时的MSF只是这些经验教训的松散集合。在以后的几年中,MSF 进一步吸收了微软各个部门和微软的合作伙伴在实际项目中的经验,在2002年,随着Visual Studio.Net 的发布,微软发布了一系列关于MSF 3.0的白皮书,针对MSF 3.0 的大规模培训也在中国开始。
2006年,MSF 4.0 随着Visual Studio Team Foundation 2005 发布。它增加了不少敏捷开发的内容,并且明确刻画了团队典型的流程和在新的团队协作软件包VSTS 中的应用。
我们可以不用管MSF 演化的细节,要记住所有模式都不是一成不变的,关键是要掌握变化的原因。
三、MSF的基本原则
MSF的核心有八个基本原则:
•推动开放的沟通
•为共同的前景而工作
•充分授权和信任
•各司其职,对项目共同负责
•重视商业价值
•保持敏捷,预期变化
•质量投资
•学习所有的经验
四、MSF的一些特点
MSF是微软在总结自身多年项目管理经验的基础上提出的一套项目管理界方案,主要特点是实用性和可操作性强,有许多方面值得我们借鉴。现对其要点作一描述。需要注意的是,微软有国内企业不能比拟的优势:如人力资源优势等,所以并不一定完全适合国内的软件行业,但我们可以发现,他们的很多做法是我们已经意识到并有所改进,有些做法我们可能已经体会到但还没有有上升到一个管理原则的高度。
1、Code Review 原则
是指程序员定期向其他人讲解自己源程序的活动,这个方法被众多公司采用并被认为是一个行之有效的方法。主要优点有:
因为要向大家讲解自己的程序,程序员会更重视自己的工作进度、代码质量。
可以互相学习,共同提高,及时发现问题。
程序员可掌握他人的程序设计思想和方法,利于维护他人程序
2、版本管理方法,采用统一的版本管理服务器管理项目源程序,每个人的程序,必须经另外一个程序员检查后才能Check in, 每天晚上都有build所有程序,如果build不能通过,程序员必须立即修改自己的程序。每隔一段时间配合进度里程碑release一个内部版本。主要优点:
从开始程序就是一个整体,而不是到最后才整合在一起。
互相检查才能Check in可以减少错误的发生。
里程碑的设定,对大项目的管理尤其有益,既不会因为计划时间较长而有松懈,也能做到有张有弛。
3、文档管理,MSF的文档崇尚实用简洁,尽量避免事后没人看得文档,资料的积累和经验的继承通过加强程序员的交流来解决(如Code Review, Check in 前的互相检查)。微软认为,一个项目的存在是和项目组的存在相关联的,如果项目组整个离开了团队,那么有再多的文档也没用。在不同的开发阶段,微软也有不同的文档要求,但应该注意到,微软开大的是办事系统软件,和一般的应用软件开发相比会有所不同。
4、人员招聘培训,人员招聘首先注重人格因素,其次是技术因素。人员的培训最有效最方便的手段是利用网络以多媒体、电子文档的方式提供。
5、项目角色的组成:程序管理、产品管理、开发、测试、部署、用户培训,但微软并不是每个项目都配全了这些角色,尤其是小的项目角色会有重叠。强调最好由用户来充当产品管理角色。
6、项目测试人员和开发人员的比例为1:1,微软通常是2:1,微软通常会雇用大量的学生等临时人员来进行开发和测试。
7、强调进行风险管理,对项目风险进行确认并全程跟踪。
8、项目开发过程进行里程碑的建立和管理。
9、项目总结制度。每个项目完成后,对其失败和成功的地方进行总结
五、为什么应用MSF?
商业问题
商业策划者在面对世界上不断变化的复杂技术时,必须确定自身企业总体技术策略的方向。最大的挑战来自于保证商业目标和技术目标间的一致。
当前,信息技术的投资较以往越来越高。投资以不仅仅局限在数据中心方面,更多的倾向于分布式网络的增值、群组工作软件和提高使用者的生产力,保证信息技术投资得到有效的控制。
即便完全不考虑这些投资,错误的使用技术给商业带来的负向费用的影响,也是不容质疑的。所以新技术的成功实现将给企业带来重要的机会:
今天的分布式组件技术允许更大的弹性,包括集成不同的协议、应用程序接口、应用程序、操作系统和硬件。
今天的技术也通过消息传递、事务处理协调、复制、数据仓库、多层结构的设计和鲁棒性的客户机/服务器开发工具包提供对商业处理过程和活动的支持。
基于组件的技术提供了一种在商业方案中集成组件行业最好产品的能力。组件同样也允许随企业结构和商业处理过程的变化,更快地重新配置应用系统。
今天的技术能够在不瓦解企业的基础结构设施的情况下,不断的适应发展变化中的商业需求。多层结构的应用程序允许分离用户、事务和数据服务,保证新版本的组件在不影响整个系统的情况下加以实现。
降低费用
客户机/服务器技术可以降低系统整体费用。但是企业必须重新评估它们的基础结构设施和商业运作过程,来保证多余的费用真正被消除(例如:传统的功能转移到更低廉的平台,旧系统停止使用,新的商务处理过程最大的提供了增值能力等等。)