---所有内容来自于网络
一、MSF的主旨和目标
MSF(Microsoft Solution Framework)即解决方案框架,它是一套微软总结的以往的经验、原理、模型、准则、概念、指南等的集合。
MSF的重点是放在如何推动技术项目的成功上。MSF 会帮助项目团队直接解决导致项目失败的大多数常见原因,以提高成功率、解决方案的质量和业务影响。
MSF认为没有任何一个单一的组织结构或者软件过程能够适应所有项目的环境和要求。因此MSF是一套灵活的、可伸缩的框架,它对软件项目具有很强的适应能力。MSF是一种对软件项目的指导方针,它没有去规定实施很多的限制性的细节。
MSF 的一个基础原理是“学习所有的经验”。
二、MSF的适用项目类型
l 软件开发项目
l 基础结构部署项目
l 打包的应用程序集成项目
l 以上项目组合的项目
MSF把重点放在了“人员和过程”的管理以及技术元素的管理上。
三、软件项目成功的障碍
1. 过程管理不够灵活,难以适应项目的变化
众所周知,软件工程中唯一不变的原则就是“永远在变”。面对各个项目的性质不同、需求的变化、技术的发展、组织的变更、人员的流动、思想的波动等等的变化原因,不可能用一种软件过程管理来应对所有的这些变化。因此这是导致项目不成功最大的因素。
2. 无法以一个团队的方式进行沟通和运作
当团队内的信息无法顺畅地在成员之间进行流转的情况。那么项目很难成功。成员之间沟通不及时,掌握的信息不对等,往往意味差工作成果的倒退,一个成员认为是“正确的功能”,在整个项目来看,很可能是不必要的,甚至是错误的。这就使整个项目很难向前推进,最终使项目无法成功。
3. 缺乏共同的语言和过程
由于没有共同语言,使团队成员在沟通时,非常容易出现沟通出错的情况。最为典型的是:同一句话,两个人有各自不同的解释。这种情况破坏性很大,往往是过很长时间以后,这个理解上的差别引起的错误已经很大了,才会被发现。这时就是降低了开发效率、做了无用功。
缺少共同的过程,往往造成“你不知道我在干嘛,我也不知道你在干嘛”,这种情况也是对软件项目成功的很大的危险因素。
4. 业务和技术过分分离
技术是承载业务过程的手段。业务过程最终会以代码的形式体现于技术中。当业务和技术完全进行分离的时候,这就给软件项目引入了实现过程中的风险。因此,在我们公司的软件过程中,建议让技术人员提前介入在业务设计的过程中,这样他们可以从技术的角度提出一些建议或意见。这比后来发现某某功能在技术上不能实现或很难实现,所造成的影响或损失要小得多。
5. 目标和职能相分离
软件项目团队没有一个统一的目标,各个子团队各有自己的“职能”。于是,各个子团队的目标有很有可能不一致,使团队在协同工作的过程中出现冲突。不利于软件项目的进展。例如,当开发团队和测试团队的目标不一致时,很容易就出现两个团对的敌对情绪。当测试团队和设计团队目标不一致时,最终的软件也不会有很高的质量。当设计团队与开发团队目标不一致时,所开发的软件就偏离了原始的意图。
以上这些都是我们在软件项目过程中需要注意避免的。
四、软件项目团队如何克服软件项目成功的障碍
1. 理解业务的方向、目标和机会
2. 保证IT目标支持业务目标
3. 保持与业务不断地交流与沟通
4. 形成主动的工作环境
5. 组织团队有效地工作。
最后一点是关于对软件团队成员的意识层面的改变:IT的首要目标不是更多的技术,而是将其主要力量和丰富的技术知识同“人和过程”结合起来,为整个组织服务的。
五、MSF的模型和准则
MSF有两个模型,分别为:团队模型和过程模型。
MSF有三个准则,分别为:项目管理准则、风险管理准则和就绪管理准则。
目前仅了解MSF的大体情况,随着学习的深入,在以后的学习报告中会逐个进行总结。
六、MSF适用于软件项目生命周期中哪些阶段
从这个图可以很清楚地看到,在软件项目的生命周期中,MSF负责指导计划阶段的中期和后期、软件构造阶段、部署阶段前期和中期的任务。而软件项目生命周期的其余阶段,即部署阶段的后期、运营期、计划期的前期均是在微软运营框架(MOF)负责。(MOF不在此文档的范围之内)
七、MSF的团队模型
MSF的团队模型为复杂的软件项目解决了哪些方面的问题:
序号 | 复杂项目的典型问题 | 成功项目的目标 | 谁应该为此目标负责? |
1. | 项目延期交付并且超支 | 按项目约束交付软件 | ? |
2. | 生成的软件不是客户真正想要的 | 按规格说明书构建软件 | ? |
3. | 软件运行情况难以预测,客户总能找到错误 | 确定并找到问题后才发布,使符合质量标准 | ? |
4. | 软件不能在客户已有的软硬件环境中稳定运行或部署困难 | 平滑/方便地部署、为以后日常平稳地运行做好充分准备 | ? |
5. | 使用极困难,不符合用户操作习惯 | 用户使用顺手,方便,提高用户的使用效率 | ? |
6. | 软件不符合用户的预期,用户不满意 | 使客户满意 | ? |
7. | 项目信息总不能及时共享给目标人群 | 建立良好的沟通机制 | ? |
可以从上表中看出,每一个条目均代表了软件项目的一个方面,某一个方面做不好,则会对软件项目的影响都非常大。但是团队中谁应该为项目的某一或某些方面的问题或质量负责呢?MSF团队模型针对上面表中的每个具有代表性的方面均给出了相关团队负责处理相关方面的问题。