软件开发的流程及微软的产品开发实践.ppt

上传人:sccc 文档编号:5784036 上传时间:2023-08-19 格式:PPT 页数:57 大小:1.63MB
返回 下载 相关 举报
软件开发的流程及微软的产品开发实践.ppt_第1页
第1页 / 共57页
软件开发的流程及微软的产品开发实践.ppt_第2页
第2页 / 共57页
软件开发的流程及微软的产品开发实践.ppt_第3页
第3页 / 共57页
软件开发的流程及微软的产品开发实践.ppt_第4页
第4页 / 共57页
软件开发的流程及微软的产品开发实践.ppt_第5页
第5页 / 共57页
点击查看更多>>
资源描述

《软件开发的流程及微软的产品开发实践.ppt》由会员分享,可在线阅读,更多相关《软件开发的流程及微软的产品开发实践.ppt(57页珍藏版)》请在三一办公上搜索。

1、软件开发的流程及微软的产品开发实践,微软 嵌入型操作系统部项目经理 栾跃,Bill LuanProgram ManagerWindows Embedded,MicrosoftBLuanM,讲题目录,引言:项目管理理论的介绍 项目软件开发的流程及特征软件产品和系统开发项目的管理微软的传统文化及关键实践介绍问答,项目管理的定义,项目管理是为了完成一个项目的需求和目的所进行的管理工作。它应由专门的项目管理人员来负责,使用必要的知识、技术、工具等将项目管理的九个领域的知识对整个项目的五个阶段的流程运作进行管理来达到项目的最终目的。项目管理人员不仅要完成项目预定的范围、时间、费用、和质量的目标,他们还必

2、须建立并充分利用与五个流程相对应的规章制度来促进项目的顺利进展、满足所有项目参与者的期望和他们的工作要求。,引言:项目管理理论的介绍,项目管理的九个领域性知识项目综合的管理(Project Integration Management)项目范围的管理(Scope Management)项目时间的管理(Time Management)项目费用的管理(Cost Management)项目质量的管理(Quality Management)项目人才资源的管理(Human Resource Management)项目信息交流的管理(Communication Management)项目风险的管理(Ris

3、k Management)项目外包的管理(Procurement Management),引言:项目管理理论的介绍,参见 Schwalbe,Project Management 2002,项目流程的概念及五个流程阶段流程(Process)指的是完成每项工作的先后顺序和特定的运行周期 项目流程的管理是指对项目运作过程的管理项目管理理论将项目流程划分了五个阶段:项目的起动阶段项目的计划阶段项目的执行阶段项目的控制阶段项目的结束阶段,引言:项目管理理论的介绍,项目流程管理的基本概念,引言:项目管理理论的介绍,讲题目录,引言:项目管理理论的介绍 项目软件开发的流程及特征软件产品和系统开发项目的管理微软

4、的传统文化及关键实践介绍问答,软件开发项目的流程概念和管理,项目软件开发的流程及特征,软件开发项目的流程-被重复的计划和执行阶段,项目软件开发的流程及特征,对以上开发操作里程的分析(1)此通用流程时间表为各种开发项目的参考。各工作项目的时间长短需要视项目具体的要求来决定,且有的里程(如RC1,RC2)可有可无.关键点:功能需求必先于设计构划.程序设计必后于设计构划.设计构划书的周密严谨关系到整个产品开发的成败和质量.测试要与程序设计同步进行,以便及时纠错.,项目软件开发的流程及特征,对以上开发操作里程的分析(2)关键点:每个项目的时间进度表的制定应包括所有重要的里程碑.项目进度的跟踪以它们为准

5、.对开发前期的工作项目花的工夫越多,如功能需求总结和设计构划书的撰写尽量做到周密严谨,和用户同一认识,后期的工作项目如编程测试等造成返工重做的机率就越小,会对整个项目的高效率和低开支起很大的促进作用.,项目软件开发的流程及特征,讲题目录,引言:项目管理理论的介绍 项目软件开发的流程及特征软件开发项目管理的指南微软的传统文化及关键实践介绍问答,软件开发项目管理的指南软件项目需求管理的指南软件设计规范书撰写的指南开发管理的指南测试的管理指南团队建设的指南,软件项目需求管理的指南功能需求是描述一个产品或项目该做什么,该提供什么功能,该完成什么任务的总结任何一个项目在开发前都有一列功能需求它可来自客户

6、的要求,或市场的反馈,或利用新技术增加新功能以便使产品更新换代的驱动它是一个项目的最前期的管理,也是把握项目范围的关键-设计是建立于功能需求的基础上的:功能需求总结越完善,设计就会越周密,测试就会越彻底,项目的质量就越好.,软件开发项目管理的指南,软件项目需求管理的指南如果没有完善的功能需求总结会发生什么?功能需求不正确会导致设计错误,导致推翻设计重新来过,造成人力和时间的浪费和客户对功能需求的理解不一致,导致客户最终不接受产品或系统,或不断要求再加新功能模糊不清的功能需求总结导致关键功能缺失,或开发人员瞻自加入不需要的功能,造成浪费不完善的功能需求总结导致无法建立准确的项目计划和时间表,也使

7、项目进度的追踪困难大,软件开发项目管理的指南,软件开发项目管理的指南,软件项目需求管理的指南功能需求总结是受多方面因素影响的,软件开发项目管理的指南,软件项目功能需求总结撰写的指南(1),软件开发项目管理的指南,软件项目功能需求总结撰写的指南(2),软件开发项目管理的指南,软件项目功能需求总结撰写的指南(3),软件开发项目管理的指南,从使用方案到功能设计的三步法,使用方案对客户产品使用产品的方法和过程的具体描述,功能需求每一个使用方法中解决具体问题所需要的功能,功能设计每一个具体的功能和性能特点的设计,软件开发项目管理的指南,从使用方案到功能设计的三步法,怎样管理功能需求总结的流程?(1)制定

8、一套功能需求改变的流程:任何需求改变的决定都得经过这套流程的批准组建一个需求改变管理班,核审任何需求改变对任何功能需求改变的要求,都要进行此改变对已在进行的项目中其它部分影响的分析对任何已批准的需求改变作受其影响的跟踪,记录由此带来的对设计,编程,测试,文档编写等其它项目部分的带来的工作增量及时间的推迟,软件开发项目管理的指南,怎样管理功能需求总结的流程?(2)制定功能需求的基准线:将项目开始时和客户已经同意的功能需求作一记录.以后任何不同于此基础线的需求改变都得经过事先设定的功能需求改变流程的审核和批准.对任何需求改变的历史都做档案记录 日期,要求,改变的理由,内容,工作量,版本,等等.衡量

9、项目功能需求的稳定性项目中改动有多少,以便有具体的数字来做控制需求改变的指南.,软件开发项目管理的指南,当你有了这套需求改变的管理制度你能向客户展示你项目管理的流程中怎样控制需求改变你更便于和客户对项目的要求统一认识完善的控制需求改变管理将帮助你”守住你的防线”保护项目质量,时间表,及你的利润使客户能更好地理解你为什么可以拒绝需求改变或设计改变的要求,或为什么需求改变或设计改变会导致费用升高或质量降低.,软件开发项目管理的指南,软件开发项目管理的指南软件项目需求管理的指南软件设计规范书撰写的指南开发管理的指南测试的管理指南团队建设的指南,软件设计规范书撰写的指南设计规范书(Design Spe

10、cification)是什么?设计构划书是描写软件产品或系统具体功能特性和设计方案的文件它是整个产品或系统的蓝图-开发设计和测试计划都以次为基础进一步撰写它由设计项目经理负责撰写,组织核审,并根据开发过程中的由编程设计改动作随时的订正,使文件中的设计与具体的编程随时保证同步.,软件开发项目管理的指南,软件开发项目管理的指南,软件设计规范书撰写的指南(1),软件开发项目管理的指南,软件设计规范书撰写的指南(2),软件开发项目管理的指南,软件设计规范书撰写的指南(3),软件开发项目管理的指南,软件设计规范书示例-用表列出使用行为,软件开发项目管理的指南,软件设计规范书示例-用图示来解释设计及使用,

11、软件开发项目管理的指南,软件设计规范书示例-用图示来解释设计及使用,软件开发项目管理的指南,软件设计规范书示例-每个性能都加入测试的要求,软件开发项目管理的指南软件开发的种类软件项目需求管理的指南软件设计规范书撰写的指南开发管理的指南测试的管理指南团队建设的指南,开发管理的一些指南(1)写任何程序前一定要先有设计构划书任何复杂的系统程序要先有构架设计书对系统组件有明确的功能定义.对组件的接口的设计事先有完整的纪录.构架设计书由构架设计师或开发工程师的领导人员来撰写.构架设计书要通过项目经理和测试人员在内的审核及通过,才能开始编写程序.,软件开发项目管理的指南,开发管理的一些指南(2)建立程序原

12、代码的提交库,并建立完整的原代码的提交的流程管理制度原代码只允许一人改动.改动前先要从提交库申请出原代码.改动后再送进提交库.改动完先要在开发工程师的机器上编译,与其它组件一起运行过,确证没有致命的缺陷后,才能送进原代码的提交库.在产品发行前,整个提交库都被锁上,只有被批准的缺陷修补的原代码才能提交进库.,软件开发项目管理的指南,开发管理的一些指南(3)建立原代码互审的管理制度每个软件开发工程师遍写的原代码都有致少一个以上的同事对程序进行审查.建立原代码编写的规范每个软件开发工程师都应按照规范进行程序设计,包括编写的风格,格式,组件接口的规范,解说词的撰写,等等.,软件开发项目管理的指南,测试

13、管理的一些指南(1)根据设计构划书撰写测试计划测试计划要请项目经理和开发工程师一起进行审查.测试计划用列表式将所有的测试方案写下.每个具体地的测试方案都有专人执行,并记录每个测试方案的结果.任何缺陷都记录下来.测试与开发同步进行在部分组件编写完后就进行.,软件开发项目管理的指南,测试管理的一些指南(2)测试计划执行中的注意事项由测试员发现的缺陷分给开发工程师修改纠错.修改完毕由测试员先进行初步质量验证(Smoke Test),通过后才能由开发工程师送进原代码的提交库.每次任何影响到其它组件的程序纠错改动,不仅是经过改动的程序要重新测试,任何可能受到影响的其它组件或程序也必须重测(Regress

14、ion Test).发行前要进行全程测试(Full Test Pass).,软件开发项目管理的指南,团队建设及管理的艺术建立分工清晰的团队从项目管理,产品或系统的设计,编程,测试,到使用书的编写,都有专人负责。具体的分工不能越职,如设计师搞测试。并将各部分该完成的时间表统一在整个项目的时间表里,公布于整个团队。,软件开发项目管理的指南,软件开发队伍的组织结构及功能,开发团队常用的人员配备及工作分配(1)发行经理(Release PM)作用:项目流程的总管负责产品发行和开发项目流程的管理-对整个项目的流程设定规章制度 制定项目的时间进度表和里程碑,和产品发行够格的衡量标准对整个项目的进程进行追踪

15、、并向整个团队通报,对出现的问题及时协调并解决.掌握“除害三国会议”(Bug Triage)和“战争会议”(War Meeting)负责软件产品发行工作的管理,软件开发项目管理的指南,开发团队常用的人员配备及工作分配(2)设计经理(Feature PM)作用:产品功能的设计师和使用客户的代言人确定项目范围和做需求管理总结。负责产品种各功能和性能的设计.撰写产品功能设计构划书(Specification)进行功能设计和使用界面设计帮助其它团队制定开发计划、测试计划、和文档计划对功能设计作随时的必要调整和修改与发行经理通气、合作、对所负责的功能的开发进度进行追踪、对时间表进行随时的必要调整,软件开

16、发项目管理的指南,开发团队常用的人员配备及工作分配(3)其他附助经理(Other Auxiliary PMs)作用:对项目的成功提供其它的必要支持 负责产品的初版使用客户联络和支持与市场部门和销售部门协调合作进行与文档和界面设计团队协调合作进行与产品所依靠的其它内部团队协调合作,软件开发项目管理的指南,开发团队常用的人员配备及工作分配(4)软件开发工程师(Software Developer Engineer):撰写产品编程的设计构划书(Develop spec.).根据产品功能设计构划书和编程的设计构划书,编写产品开发的程序.软件测试工程师(Software Test Engineer):根

17、据产品功能设计构划书编写产品测试的构划书,并执行测试构划书定下的测试计划对产品和组件进行测试(白箱及黑箱应测试,等).,软件开发项目管理的指南,开发团队常用的人员配备及工作分配(5)测试工具工程师(Software Developer in Test):这是在测试部门的开发工程师.他们的任务不是开发厂品,而是编写产品测试所需要的自动测试的程序和工具.使用界面及性能设计师(UI Designer):这是负责设计厂品可用性的人员.他们专做厂品的使用界面的设计,负责界面的设计统一性,布局的美观,使用流程的合理性.,软件开发项目管理的指南,团队建设及管理的艺术鼓励团队精神从项目的一开始就让所有成员都清

18、楚地知道开发的目的和要求(Project Vision)掌握好工作强度的松紧:时间计划要有张弛,避免长时要求员工加班加点,并定期举办给成员放松的活动。只紧不松只会降低效率.定期召开团队全体成员会议,通报项目进度,及开诚布公所遇到的问题。每次项目结束后召开成败总结经验会议,改进以后的流程。,软件开发项目管理的指南,讲题目录,引言:学习项目管理的重要性项目管理理论的介绍软件开发项目的管理的指南微软的传统文化及关键实践介绍问答,微软的传统文化及关键实践介绍,设计在先,编码在后没有设计规划书就不写一行编程码所有的编码要有员工间的核审Code Review,Buddy Test所有的编码在加入整体汇编前

19、必须在开发工程师的机器上先汇编“吃你自己的狗食”:产品发行前全体团队成员要自己使用尚未完善的产品,并报告缺陷.,微软的传统文化及关键实践介绍,专门的汇编团队负责整个产品的建造,并每天进行汇编。任何造成整体汇编失败的编程必须由写此程序的开发工程师立即修改纠错 除害虫(Fix Bug).整个公司所有团队使用统一的缺陷报告数据库工具.但每个团队掌握控制自己的数据库.任何问题都通过缺陷数据库来跟踪.被修改后已解决的缺陷(Fixed Bug)必须由找到缺陷的人(通常是测试人员)验证.,微软的传统文化及关键实践介绍,被修改后已解决的缺陷还必须通过再测试,验证修改的编码没有造成新的害虫.所有的害虫被分类成三

20、种严重性的级别及三种修改的优先权的级别.所有团队员工被要求必须先除级别高的害虫.有的团队执行“害虫监狱”(Bug Jail)制度:害虫数字超过 5 个以上的开发工程师在除完害虫前不准编新的功能的编码.,微软的传统文化及关键实践介绍,所有关键性的害虫在产品发行前都要由“三国会议”(Triage Meeting PM,Dev,QA)讨论决定是否要除,才能改动。每次一项功能编程完成后,团队全体成员进行“抓虫大扫除”(Bug Bash):每人在规定的时间内使用新的功能,将找到的害虫及时报告.大扫除结束后抓虫的统计向全队报告.产品发行前团队召开定时的“战前会议”(War Meeting),由团队各领导成

21、员审核所有的害虫.,总结对开发项目的种类和特性有清醒的认识有助于项目计划和安排.掌握好一个产品或系统开发项目的关键取决于掌握好对功能需求管理的总结、及完善的设计构划书和测试计划的撰写。项目的运作流程管理有赖于完整的流程里程表和里程碑的设定、对进度的跟踪、及即时根据出现的问题做修正.建立一个分公清楚、职责分布完善、大家遵守制度的团队也有助于项目的成功.,软件开发的流程及微软的产品开发实践,进一步参照,2003年初由笔者所著、交大出版社出版发行的“软件开发项目的管理艺术”一书更多详细内容和章节:各种需求管理和产品设计的具体技巧各种流程运作中帮助思考、审核的对照表怎样进行界面设计的艺术怎样运用 CMM 准则来帮助建立高效的开发组织和培养高效的开发人员做一个高效的项目管理人员的素质和艺术等等,?,?,?,?,?,?,?,问答,请与微软 嵌入型操作系统部 项目经理 栾跃 联系 Bill Luan,Microsoft,BLuanM,谢谢大家!,微软 嵌入型操作系统部项目经理 栾跃,原稿:微软,嵌入型操作系统部 项目经理 栾跃2002 年 11月 Original Author:Bill Luan,Microsoft,BLuanM,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号