微软的软件开发过程.ppt
《微软的软件开发过程.ppt》由会员分享,可在线阅读,更多相关《微软的软件开发过程.ppt(80页珍藏版)》请在三一办公上搜索。
1、微软的软件开发过程,重庆大学计算机学院曾一,-软件开发过程与案例 陈宏刚 熊明华 林斌 张高 张益肇 张亚勤,1.微软解决方案框架MSF,1.1 观点:技术不是项目成功与否的惟一决定因素。一个成功的IT项目中,开发人员、开发过程以及风险管理等因素起着至关重要的作用。预见性地、可持续地管理和控制项目风险有效地进行协作和沟通确保技术方案与商业需求的一致,1.微软解决方案框架MSF,1.1 观点:技术不是项目成功与否的惟一决定因素。项目失败的五大因素不完整的需求描述缺少用户参与缺乏资源-经费、人员、场地、时间等不现实的项目目标缺少管理层的支持,1.微软解决方案框架MSF,1.2 什么是微软解决方案框
2、架MSF?MSF(Microsoft Solution Framework)是微软公司根据自身的实际经验为企业设计的一套有关软件开发的工作模型、开发准则、成功经验和应用指南。MSF的设计目标是为企业IT系统的规划(Planning)、建设(Building)和管理(Managing)提供支持和帮助。,1.微软解决方案框架MSF,1.2 什么是微软解决方案框架MSF?MSF可以帮助企业解决以下问题将企业的商业目标同技术目标有机地结合起来确立明确的项目目标和完善的项目职责体系积极有效地管理项目风险实施以里程碑为主导的渐进项目管理过程管理和控制项目的需求变化,1.微软解决方案框架MSF,1.3 微软
3、解决方案框架MSF中的模型企业架构模型 Enterprise Architecture Model解决方案设计模型 Solution Design Model风险管理模型 Risk Management Model组队模型 Team Model过程模型 Process Model应用模型 Application Model,1.微软解决方案框架MSF,均衡三角形影响项目成败的三个关键因素资源(人和费用)进度(时间)功能(组成一个相互关连、相互依赖的三角形求得三者之间的平衡三角形任何一边的改动都必须迫使另两边的改变,否则项目可能失败。,1.4 微软解决方案框架MSF中的开发准则,2.组队模型 T
4、eam Model,2.1 什么是组队模型总结了MS在成功的项目中组织人力资源、安排工作任务的基本原则和方法定义了项目组内的角色分工、任务分配和人员职责为项目组成员提供了有关在项目生命周期中如何实现目标的指导性建议,2.组队模型 Team Model,2.2 组队模型的基本原则1)按层次结构和职能单位划分的小型的、多元化的项目组(small,multidisciplinary team)Bill Gates说:“在那些有着严格的经费预算和确定的时间期限、其组员在处理问题时享有充分自由的小型项目组中,人们通常拥有最高的生产效率。”多元化的体现即指在一个项目组内,甚至在一个角色内,通常有多种不同的
5、工作方式,需要其成员具有不同的工作技能或经验水平。在小型的、多元化的项目组中,交流成本、运营成本、管理成本低,决策和执行速度快,产品发布周期短,产品质量高。,2.组队模型 Team Model,2.2 组队模型的基本原则2)角色依赖和职责共享(interdependent roles and shared responsibilities)在项目组内,每一个角色都对项目本身以及他们各自的主管部门负责,以实现该角色的工作目标。整个项目的各项工作职责通过对等团队的结构被项目中不同的角色和成员共享,项目目标也通过不同角色的工作目标得以实现。在项目组内,不同角色的工作无法完全孤立,这可促使这些角色主动
6、发表意见和贡献力量。,2.组队模型 Team Model,2.2 组队模型的基本原则3)专深的技术水平和业务技能(deep technical and business acumen)透彻理解用户需求熟悉客户的业务流程和业务模式熟练掌握相关技术把握产品目标,2.组队模型 Team Model,2.2 组队模型的基本原则4)以产品发布为中心(focus on competency and shipping products)强烈的产品意识按时发布产品的显著标识产品单元的内部代码,2.组队模型 Team Model,2.2 组队模型的基本原则5)明确的目标(clear goals and obje
7、ctives)统一的方向明确的目标目标与需求的一致,2.组队模型 Team Model,2.2 组队模型的基本原则6)客户的主动参与(active customer participation)客户对产品特性的实时反馈产品管理角色以客户身份出现客户直接担任产品管理角色,2.组队模型 Team Model,2.2 组队模型的基本原则7)分享产品的前景(shared project vision)项目组内所有成员都应该对产品前景有清晰和明确的认同每一位成员都应该在产品前景的激励下努力工作每一位成员都应该能为产品的美好前景贡献力量而自豪,2.组队模型 Team Model,2.2 组队模型的基本原则
8、8)所有人都参与设计(everyone participating in design)有意义的建议有价值的信息使产品趋于完善和合理,2.组队模型 Team Model,2.2 组队模型的基本原则9)认真从过去的项目中吸取经验(deliberate efforts to learn from past projects)总结反省分析,2.组队模型 Team Model,2.2 组队模型的基本原则10)共同管理、共同决策(shared project management and shared decision-making)每一个成员都对项目管理和项目组中的重要决策负有一定的职责,应当参与每一
9、个决策每个角色的负责人应该集思广益才能做出最终决定,2.组队模型 Team Model,2.2 组队模型的基本原则11)项目组成员在同一地点办公(team members working together at one site)更高的沟通效率更好的工作业绩非正式的交流增多:电梯间、餐桌边等,2.组队模型 Team Model,2.2 组队模型的基本原则12)大项目组也象小项目组一样运转(large teams working like small teams)大项目团队的拆分结构清晰、目标明确、可灵活管理的小项目组小项目组的管理和角色划分小项目组之间的并行关系对大项目组,每隔36个月对其小项
10、目组重组成功的项目组有经验的项目负责人、积极参与项目决策并主动贡献力量和承担责任的组员、以产品发布为共同目标即最高使命、共同分享项目前景。,沟通,沟通,2.组队模型 Team Model,2.3 组队模型的六种角色,六种组队角色,程序管理角色,发布管理角色,测试角色,用户体验角色,开发角色,产品管理角色,对等团队结构,程序经理,发布和后勤经理,开发经理,产品经理,用户经理,测试经理,2.组队模型 Team Model,2.3 组队模型的六种角色产品管理角色(product management)产品管理角色的主要使命是提高客户满意度产品经理的主要工作内容代表客户的想法和意见管理客户的需求定义-
11、为其他角色准备一份书面的客户需求说明书开发、管理和提供业务用例说明管理客户的预期目标控制产品特性和开发周期之间的关系管理市场宣传和公共关系,2.组队模型 Team Model,2.3 组队模型的六种角色程序管理角色(program management)程序管理角色的主要使命是在规定的项目资源、期限等限制条件下,确保产品能够如期发布。程序经理-项目开发过程的组织者和管理者,而不是项目组的领导者,主要工作内容如下:推动产品开发过程-一种保证产品的期限和特性符合需求管理产品范围和产品特性说明-相当于一份契约推动项目组内的交流和讨论-组织和协调管理产品开发进度、汇报项目状态-一种服务控制项目开发中关
12、键的取舍和决策-拥有最终决定权,2.组队模型 Team Model,2.3 组队模型的六种角色开发角色(development)主要任务是使用适当的技术和工具实现项目目标、满足客户需求;进行技术咨询,帮助防范风险;提供解决方案,参与设计过程。开发人员的主要工作内容如下:产品特性的物理设计-即实现程序经理的所有功能规范承担技术顾问的职责确保每一个产品特性在规定时间内完成使产品达到可发布的状态-需要编写特定的安装和配置程序,提供给测试人员和最终用户使用,2.组队模型 Team Model,2.3 组队模型的六种角色测试角色(testing)主要任务是在产品最终发布之前找到尽可能多的缺陷或错误测试人
13、员的主要工作内容如下:制定测试策略和测试计划确保产品的所有特性都经过了严格的测试,也同时负责测试所需要的软件工具、脚本程序和技术文档等的编写工作向项目组提供翔实、准确的测试报告,确保所有已发现的软件故障都在项目组的有效管理和控制中,2.组队模型 Team Model,2.3 组队模型的六种角色用户体验角色(user experience)主要任务是协助用户更好地使用产品,排除用户在使用产品时遇到的问题和障碍。主要工作内容包括以下:在产品设计阶段确保产品可被最终用户接受对产品的国际化功能提供支持(全球化和本地化globalization/localization),(全球化和本地化globali
14、zation/localization)全球化指设计和开发那些可以用最少代价满足世界上不同地区市场需求的产品。本地化指将软件产品的用户界面、帮助文件、印刷或联机文档、市场资料及WEB站点等内容转换为符合特定地区市场地区市场中语言、文化习惯的形式。,2.组队模型 Team Model,2.3 组队模型的六种角色发布管理角色(release management)主要任务是确保产品的顺利发布,为项目的正常运营提供服务和支持。主要工作内容如下:代表项目组协调公司内的运营、支持、发布渠道等部门的工作项目组的后勤和基础设施管理-办公环境、采购、IT系统管理产品发布事宜-制定和执行计划、协调市场和渠道参与
15、、管理并支持相关的项目决策过程管理产品的认证或许可模式-产品序列号、许可协议,2.组队模型 Team Model,2.3 组队模型的六种角色六种角色的授权/权利自主抉择self-selecting 自主管理self-managing自我激励self-motivating自我评估self-evaluating自我改进self-improving,2.组队模型 Team Model,2.4 组队模型中的项目组的六大工作目标项目组的六大工作目标与六大角色的关系提高客户满意度-产品管理角色增强产品的可用性-用户体验角色严格依据用户的业务需求和 产品功能说明书开发产品-开发角色在充分测试、定位了所有 已
16、知问题的前提下发布产品-测试角色在有限的时间和资源条件下开发产品-程序管理角色做好产品的发布和后续的管理工作-发布管理角色,2.组队模型 Team Model,2.5 组队模型的灵活应用大项目组(多于10人)拆分成多个小项目组每个小项目组负责产品的一个特性或一个功能模块小项目组依据各自的工作目标,并行地完成整个项目组开发工作小项目组定期交流和沟通,以保证项目进展同步另一种拆分方法是按照职能拆分,当项目组中某个或某几个特定的职能角色需要更多资源配置的时候,这种拆分方法格外有效有时不可能要求每一个职能都由专人来负责担任,因此需要角色合并,一人身兼数职,2.组队模型 Team Model,2.5 组
17、队模型的灵活应用小项目组角色合并的基本原则项目组内的开发人员不能兼任其他角色不要试图合并两个有明显利益冲突或制约关系的职能角色,n不能合并,p可以合并,u可以合并,不建议合并,2.组队模型 Team Model,2.5 组队模型的灵活应用例1,一个最小的项目组可以只有三个成员即程序经理兼发布管理的角色,产品经理兼测试和用户体验的角色,开发人员即开发角色。例2,按职能划分项目组的产品管理项目组可以是由如下角色组成(分工更加细致):产品总体管理、产品规划、市场调研、市场工作、宣传、公共关系等。例3,按职能划分项目组的程序管理项目组可以是由如下角色组成:程序总体管理、版本管理、项目协调、产品架构设计
18、。,2.组队模型 Team Model,2.5 组队模型的灵活应用例4,开发角色也可以拥有内部的项目组结构,开发人员可以按照用户层、业务逻辑层、数据层的原则分成不同的团队。例如,开发项目组:开发管理、用户界面、数据库、系统服务例5,测试项目组:测试管理、压力、功能、集成、配置测试等例6,用户体验项目组:用户体验管理、用户资源管理、媒体管理、文档编撰、本地化例7,发布管理项目组:发布管理、系统管理、项目沟通、项目运营、渠道管理、支持平台、内部培训,2.组队模型 Team Model,2.6 组队模型中的交流和沟通Communication在MSF组队模型中最重要的、最具有决定性的因素是交流和沟通
19、。需要特别指出的是在,MSF组队模型中,项目组内部测试角色和开发角色之间的沟通直接影响着产品的质量,是项目组内部最为关键的沟通渠道之一。,2.组队模型 Team Model,2.6 组队模型中的交流和沟通Communication两类沟通基于商业视角和基于技术视角的沟通,开发,测试,发布管理,产品管理,用户体验,程序管理,最终用户,最终用户,客户,商业视角,技术视角,业务设计和规划人员,技术委员会,运营和支持部门,3.MSF过程模型Process Model,MSF过程模型是一种基于里程碑的、目标驱动的开发模型MSF过程模型包含5个主要阶段和5个主要里程碑MSF过程模型中,项目均衡三角形起着至
20、关重要的作用,3.MSF过程模型Process Model,3.1 什么是MSF的过程模型软件开发项目的全过程(1)新项目的启动阶段:提出项目设想,组建项目组,完成筹备工作(2)市场调研阶段:调查相关产品的市场情况,寻找和设计产品未来的市场定位(3)技术论证阶段:分析、论证产品在技术上的可行性,评估技术风险,3.MSF过程模型Process Model,3.1 什么是MSF的过程模型(4)项目计划和日程制定阶段:设计和制定项目整体的进度表,为整个项目过程阶段划分工作阶段、界定任务目标。(5)管理层评审阶段:寻求管理层对项目的认可。(6)产品特性描述阶段:将客户需求转变为产品特性,对其进行技术的
21、精确描述。(7)资源分配阶段:在项目组内、外调配项目的可用资源。(8)产品开发和发布阶段:通过软件开发过程实现产品的所有特性,满足客户需求,发布到客户手中。,3.MSF过程模型Process Model,3.1 什么是MSF的过程模型MSF过程模型是一种基于阶段的、由里程碑驱动的、递进(螺旋)的软件开发模型。它可以用于传统的应用开发环境,也可用于电子商务、WEB分布式应用等企业级解决方案的开发和部署。,里程碑,3.MSF过程模型Process Model,MSF过程模型的特点目标驱动而非任务驱动为什么要开发这个产品?产品为谁服务?最终要发布的产品将具备哪些特性?任何一项任务都必须围绕最终的项目
22、目标制定,否则必须调整任务。外部可见的里程碑里程碑与工作阶段对应,应提交项的变更管理使用基线对源代码、系统配置、日程表、设计文档、用户手册、预算等应提交项进行变更管理项目中的所有变更的记录、跟踪、确认、回溯都依据已制定的基线来管理。递进的版本发布策略先有核心功能的版本再向其中添加功能,3.MSF过程模型Process Model,MSF过程模型的特点风险驱动的进度管理风险最大的产品特性应当首先被安排开发项目组集体参与项目开发的每一个特定阶段与一种特定的组队角色关联责任与义务管理产品质量质量管理意识和方法质量保证策略贯穿项目始终,3.MSF过程模型Process Model,微软软件开发过程的基
23、本原则制定计划时兼顾未来的不确定因素通过有效的风险管理减少不确定因素的影响经常生成(Daily Build)过渡版本并进行快速测试(生成验证测试-Build Verification Test)来提高产品的稳定性及可预测性确保每次Check-in都不会破坏产品的整体结构,快速循环、递进的开发过程从产品特性和成本控制出发创造性地工作创建确定的进度表使用小项目组并发完成工作,并设置多个同步点里程碑将大型项目分解成多个可管理的单元,以便更快地发布产品可有效缩短产品发布周期,3.MSF过程模型Process Model,用产品的前景目标和概要说明来指导项目的开发工作-先基线化,后冻结避免产品走形-应当
24、检查和审视当前状态是否和客户需要及产品的功能说明书相吻合使用概念验证原形进行开发前的测试-早期论证零缺陷观念-所有的Bug都在控制范围之内且可在适当时机得到修正,非责难式的里程碑评审会以改进工作为主要目的会议内容将对此后的项目过程产生影响,3.MSF过程模型Process Model,3.2 MSF过程模型的阶段划分和里程碑设置1前景/范围得到认可2项目计划得到认可3开发完成4可发布版本准备就绪5发布完成里程碑的使用可以帮助我们在项目的不同阶段中合理分配(组队角色)职责和义务,调动所有团队成员的积极性,3,2,1,4,5,计划阶段,构想阶段,开发阶段,稳定阶段,发布阶段,3.MSF过程模型Pr
25、ocess Model,1构想阶段产品管理角色起推动作用提交项包括:前景范围说明书风险评估说明书项目组织结构说明书,3.MSF过程模型Process Model,2计划阶段提交项包括:功能说明书风险管理计划项目总体计划书和总体进度表,3.MSF过程模型Process Model,3开发阶段阶段提交项包括:源代码和可执行程序安装脚本和用于发布的配置信息已冻结的功能说明书关于产品使用的支持要素测试说明书和测试用例,3.MSF过程模型Process Model,4稳定阶段应提交项包括:黄金版本版本注释关于产品性能的支持要素测试结果和测试工具源代码和可执行程序项目文档里程碑评审记录,建议的临时里程碑B
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微软 软件 开发 过程
链接地址:https://www.31ppt.com/p-6225876.html