微软解决方案框架MSF
9个基本原则
MSF(Microsoft Solution Framework)是微软公司关于软件开发的思想和宣言,它有一套思想框架,包括9条基本原则:
1、推动信息共享与沟通(Foster open communications)
2、为共同的愿景而工作(Work toward a shared vision)
3、充分授权和信任(Empower team members)
4、各司其职,对项目共同负责(Establish clear accountability and shared responsibility)
5、交付增量的价值(Deliver incremental value)
6、保持敏捷,预期和适应变化(Stay agile, expect and adapt change)
7、投资质量(Invest in quality)
8、学习所有的经验(Learn from all experiences)
9、与顾客合作(Partner with internal and external customers)
推动信息共享与沟通
这个原则就是所有信息都保留并公开,讨论要包括所有涉及的角色,决定要公开并告知所有人。
这种原则否认了原来“老板让你知道你就会知道”的思想,随着项目复杂度增加,没有这个原则是不行的。有些情况下拿不准是否要通知某些人员,宁可过分沟通,也不能不沟通。所有人的提交和修改都要保留不能删除,包括已经犯了的错误,留给大家去参考,达到问题及时解决的目的。
为共同的愿景而工作
指定产品的目标,所有的工作朝着这个目标努力。如果搞不清楚项目的目标,或者每天的工作和目标无关,那么就是在做无用功。
充分授权和信任
所有成员都应该能得到充分的授权,他们有权在职权范围内按照自己的承诺完成任务,同时他们也充分信任其他同事的承诺。
MSF团队模型是网状的,而不是层次结构,所以不能用命令来驱使。这样做的好处有两点:
1、被授权的人会承担起自己对项目的责任
2、每个人有充分的权利估计并决定自己的任务需要多久,让真正做这件事的人按照自己的估计去完成任务
作为一个组长,给组员充分授权后,他只要通过管理系统就能查看工作进展,在最关键的时候提供指导和帮助。
团队中充满了信任,这样每个人可以充分发挥他的特长,带领其他成员对项目的某一个方面进行改善。
各司其职,对项目共同负责
团队中的每个角色都有自己的职责,如下表,如果出了问题这个角色就要负责任:
当要做一件事情,周围人有不少意见时,对此事负责任的角色要自己拿主意。
对于每一项任务,每个人都要明确几件事:谁负责?做什么?什么时候开始和结束?为什么是这样安排?什么情况下可以变更?
重视商业价值,提供渐进的价值
要重视商业价值,将目标和商业价值联系起来。
保持敏捷,预期和适应变化
我们是预期变化,而不是期望变化。适应需求的变化、技术的变化、人事的变动。
即使预期变化,每一个步骤的代码也要保持高质量。
投资质量
我们希望用恰当的时间去提升质量,但是没有说质量第一,因为解决用户的问题第一。
学习所有的经验
强调把经验总结出来和分享经验两个方面。MFS在每一个里程碑结束时都要做一个里程碑回顾,而不必等到项目结束后,因为大家对最近的成败都记忆犹新,能提供比较准确和全面的反馈。如果发现了错误,可以马上研究解决方案,在下一个里程碑中通过实践来验证。
与顾客合作
项目的商业价值要由用户说了算,及早和用户沟通,通过讨论将模糊的需求共同变得具体。
MSF团队模型
这种团队模型定义了小组同级成员的一些角色和职责:
任何一个角色无法实现其目标,都将危及整个项目,因此每个角色被认为是同等重要的。
有些问题目前不能得到完美的解决,但是可以提出一个让用户满意的方案。
讨论处理方案时,每个角色从自己的质量目标出发并对其负责,通过讨论共同决定方案,不要怕冲突和矛盾,这是对产品质量负责的态度,你要代表你角色的利益,如果你有充分的授权和信任,你就要直言不讳。
MSF过程模型
下图是MSF过程模型的生命周期简图:
它把瀑布模型中基于里程碑的规划优势和螺旋模型中增量迭代的长处结合了起来。
MSF过程模型的基本元素是阶段和里程碑,团队用里程碑来检查工作是否结束和同步各个角色的进度,以此来确定当前阶段的目标是否已经实现。同时里程碑标志着各个阶段的结束,此时团队应该引导成员转移工作的重心,并鼓励队员以新的视角来看待下一个阶段的目标。