当前位置:文档之家› 《软件开发项目管理模型》

《软件开发项目管理模型》

《软件开发项目管理模型》
《软件开发项目管理模型》

讲题目录
软件开发项目管理的模式
栾跃
项目经理 微软总部中国事务办公室
Bill Luan Program Manager Redmond China Office, Microsoft Corporation BLuan@https://www.doczj.com/doc/d912711909.html,
引言 灵活性模式和其实践指南 问答
引言
灵活性模式和其实践指南
管理模式的比较
总结
自我介绍
80年代第一代自费留学生:美国南伊利诺州立
软件开发管理的演变历史和现状
微机软件最早期的无章法的运作
完全靠个人英雄主义
大学(SIUE)电机工程学士(1984)及硕士学位(1985)
1985 – 1998 历任 Owens-Illinois, Reynolds Metals, OwensAttachmate, Motorola 等公司的高级工程师、软件
逐渐采用参照其它工程项目的管理模式
传统的瀑布式、螺旋式等 PMI 对传统模式的推动 (PMBOK)
开发工程师、产品项目经理
1998年加入微软,98-2001为ActiveSync 3.x产品发 98-
行项目经理,2001-2004 为 Windows XP Embedded 2001嵌入式操作系统的产品设计项目经理
3/2004至今为微软总部中国事务办公室项目经理
学术界的一些努力和影响(CMM) 近年来业界和其它行业的一些影响 (RUP, RUP,
Six Sigma, ISO, etc.) Sigma, ISO,
传统模式有成功的也有失败的
引言
灵活性模式和其实践指南
管理模式的比较
总结
引言
灵活性模式和其实践指南
管理模式的比较
总结
传统的和其它的管理模式受到挑战
被认为太死板和官僚 效率高低受到疑问 太重规章制度而被认为是开发的枷锁 在执行起来太过于繁重 (Heavy Process) 可能违背需要智力高度集中的软件开发 工程管理的特性 因此这几年来开始有人唱反调… 因此这几年来开始有人唱反调…
繁重模式的典范之一: 六西格码 繁重模式的典范之一:
请看Six Sigma的条条框框:
1. 2. 3. 4. 5. 6. 7. 8. 9.
项目设定过程 – 共有28 页纸的规章叙述 共有28 衡量项目进行的过程 – 20 页纸 分析过程阶段– 16 页纸 分析过程阶段– 改进过程阶段– 8 页纸 改进过程阶段– 控制过程阶段– 20 页纸 控制过程阶段– 项目启动阶段– 18 页纸 项目启动阶段– 系统分析阶段– 10 页纸 系统分析阶段– 系统设计阶段 – 10页纸 10页纸 编程阶段 – 4页纸
10. 测试和质量管理阶段 – 10页纸 10页纸 11. 发行管理阶段 – 8页纸 12. 更改控制管理 – 10页纸 10页纸 13. 系统维护和支持 – 11页纸 11页纸
TechEd 2003
2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
1

引言
灵活性模式和其实践指南
管理模式的比较
总结
引言
灵活性模式和其实践指南
管理模式的比较
总结
繁重模式的典范之二: Rational Unified Process 繁重模式的典范之二:
请看 RUP 模式所要生出的辅佐物 (artifacts) artifacts)
Vision Document/ Business Case Glossary Software Development Plan
Risk List Project Plan Measurement Plan CM Plan Integration Build Plan Test Plan
实际的软件开发过程… 实际的软件开发过程…
早上该8点上班但9点半才到(跟老板讲原因是路上塞车厉害) 早上该8 点上班但9 点半才到( 跟老板讲原因是路上塞车厉害) 到办公室后先和几个同事聊聊天,谈昨晚电视转播的比赛… 到办公室后先和几个同事聊聊天,谈昨晚电视转播的比赛… 打开电脑后,看到有两个必须要Fix的Bugs。哼,等下再说吧… 打开电脑后,看到有两个必须要Fix的Bugs。哼,等下再说吧… 先看看朋友的Email,再将几个笑话转给朋友… 先看看朋友的Email,再将几个笑话转给朋友… 再跟女朋友发几个短消息… 对了,还得给我那两哥们儿发个明天下班后 再跟女朋友发几个短消息… 去逛电子商场的约会。 赶快看看新浪网上有啥新鲜的…女朋友来电话,不得不接。 赶快看看新浪网上有啥新鲜的… 阿呀,忘了去倒杯咖啡喝… 隔壁同事讲eBay上有卖我想要了很久的数码 阿呀,忘了去倒杯咖啡喝… 隔壁同事讲eBay上有卖我想要了很久的数码 相机,赶快去看看… 咦!真快,午饭时间已到了! 相机,赶快去看看… 吃完饭,打开我那两个bug看看… 有点晕,先去拿瓶可乐醒醒脑… 吃完饭,打开我那两个bug看看… 有点晕,先去拿瓶可乐醒醒脑… 再玩几分钟Solitaire打牌的游戏… 再看看bug,也不知道该怎样Fix。 再玩几分钟Solitaire打牌的游戏… 再看看bug,也不知道该怎样Fix。 算了,把 Function Name 改一下,行了。该提交代码了,Check-in… 改一下, 行了。该提交代码了,Check-in… 电话铃响,老板在骂:“你的什么垃圾代码,将今天整个团队的Build 电话铃响,老板在骂:“ 你的什么垃圾代码,将今天整个团队的Build 全都 Break了!” 唉,这该死的Job! Revert Check-in… Check- in… Break了!” 唉,这该死的Job!
Architecture Description
Use case view Analysis view Design view Deployment view Implementation view
Iteration Plans Iteration Assessments Use Case Model Analysis Model Design Model Deployment Model Implementation Model Test Model
User Interface Prototype Interfaces Analysis Packages Design Subsystems Implementation Subsystems Components Test Cases Test Procedures Test Components Test Evaluations Defect Lists
谢天谢地,4点半到了。看看外面,路上好挤,早点回家吧… 谢天谢地,4 点半到了。看看外面,路上好挤,早点回家吧…
引言
灵活性模式和其实践指南
管理模式的比较
总结
引言
灵活性模式和其实践指南
管理模式的比较
总结
实际的软件开发过程…
当然不是这样,但是… 当然不是这样,但是… 如果是毫无章法的任意性管理… 如果是毫无章法的任意性管理…
则可能遭到这样的消极怠工或混日子
你可以采取
传统的项目管理运作流程… 传统的项目管理运作流程…
你也可以采取
比较新型的项目管理模式… 比较新型的项目管理模式…
如果是让人无法忍受的规章制度或过于 沉重的运作流程… 沉重的运作流程…
则可能遭到消极抵抗或完全无视规章
灵活性模式
引言
灵活性模式和其实践指南
管理模式的比较
总结
引言
灵活性模式和其实践指南
管理模式的比较
总结
灵活性模式的概念和实践
1.
轻型计划的象征: 没有事先的计划 轻型计划的象征:
加州大学俄凡分校在建校园的时候,他们只盖了大 楼,铺了草地,却不修建让人走路的路边人行道。第 二年,建校的人回来,在草地上由人们走出来的路径 上,修建了让人走路的人行道。Perl语言就是这样一类 的语言。它并没有事先全设定好的规则。Perl语言就是 那些在草地上由人们走出来的人行道。
When they first built the University of California at Irvine they just put the buildings in. They did not put any sidewalks, they just planted grass. The next year, they came back and put the sidewalks where the trails were in the grass. Perl is just that kind of language. It is not designed from first principles. Perl is those sidewalks in the grass.
轻型的计划(Light Weight Planning)
信奉改变(Embrace Change):从整个的项目开始 信奉改变( 起就期望计划、需求、和设计都会改变 整个开发过程有客户的经常参与,甚至邀请客 户来到开发团队的工作处,对正在进行开发的 半成品使用、审核、提意见 客户直接参加项目的计划的修改 整个开发计划是个不断更新的过程
Larry Wall, Perl 的发明者
TechEd 2003
2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
2

引言
灵活性模式和其实践指南
管理模式的比较
总结
引言
灵活性模式和其实践指南
管理模式的比较
总结
灵活性模式的概念和实践
2. 经常性的发行 (Frequent Releases)
灵活性模式的概念和实践
3. 简化的设计 (Simple Design)
短期的重复开发周期 采取所谓的“时间盒” 方法 – 将预定的周期锁 采取所谓的“ 时间盒” 定为一个发行周期 保持产品接近发行的状态
先对那些已经确定了的功能进行设计
使用 YAGNI (you aren’t going to need it) aren’
意识到任何多余的功能,一旦加入到软件产品 中,会增加修改和维护的费用
好处
为团队提供一种完成任务的快乐和成就感 给用户提供了在开发早期进行回馈的机会
好处
便于返车重新设计和开发。每次改动都可能会影 响其它部分的功能组件
引言
灵活性模式和其实践指南
管理模式的比较
总结
引言
灵活性模式和其实践指南
管理模式的比较
总结
灵活性模式的概念和实践
4. 以测试为驱动的开发(Testing Driven Development – TDD )
灵活性模式的概念和实践
5. 重新组合 (Refactoring)
编写产品的程序前先写测试的程序 单元测试 (Unite Test)应该全部自动化 单元测试的运行应该成为开发的日常工作
重组:在不改变功能和行为的前提下,对软件的内 部结构为更容易理解和更方修改动而进行设计和编 程上的改动 采用渐进式的设计方式来逐渐完善程序
好处
保证测试部分按质按量完成 以这种方法写出的程序质量较高
好处
帮助推动渐进式的设计方式,使得软件的设计避免 一次性做完、却又带有费用昂贵的必需的改动 常常重组, 再加上利用TDD, 改动的费用会降低
引言
灵活性模式和其实践指南
管理模式的比较
总结
引言
灵活性模式和其实践指南
管理模式的比较
总结
什么时候进行重组?
当你发现你必须在一个软件程序里加一个新的功 能、但现有的程序的结构却无法让你很方便地加 入这个新的功能的时候,你应该先重新组合现有 的程序,使得它能够让你方便地加任何新的功 能,然后再加入你想加的新功能。
马丁. 佛勒 马丁.
When you find you have to add a feature to a program, and the program’s code is not structured in a convenient way to add the feature, first refactor the program to make it easy to add the feature, then add the feature. Martin Fowler
灵活性模式的概念和实践
6. 连续性的整合 (Continuous Integration)
将开发团队多人开发的各功能组件进行整合,最后 生成完整的软件系统或产品,应该是一个经常进行 的、连续不断的过程。 每天或每几个小时进行总汇编和产品建造 (Daily Build)
好处
帮助开发团队及时发现 Build Breaker并采取纠正措施 对任何由于设计差错无法完善地与整个系统进行整 合的功能组件能及时进行设计改动
TechEd 2003
2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
3

引言
灵活性模式和其实践指南
管理模式的比较
总结
引言
灵活性模式和其实践指南
管理模式的比较
总结
灵活性模式的概念和实践
7. 及时文件编辑 (Just-In-Time Documentation) Just- In-
软件开发管理模式的简单介绍和比较
Traditional (Waterfall) RUP CMM Scrum ASD Crystal eXtreme (XP) DSDM MSF
将产品或系统的使用手册、维护条例、使用参考等等 一系列文档根据各功能开发的进展进行编辑 趁着概念新鲜明确,将它们写入文档
好处
避免编辑多余的不必要的文档或不必要的内容 但是也要注意不要将文档工作放到最后,而造成文件 内容缺乏或遗漏
引言
灵活性模式和其实践指南
管理模式的比较
总结
引言
灵活性模式和其实践指南
管理模式的比较
总结
SCRUM
由Ken Schwaber 和Jeff Sutherland 提出和倡导 是一种极为轻型的灵活性模式的翻版
“Scrum is superimposed on top of and wraps existing engineering practices” practices”
Adaptive Software Development (ASD)
由Jim Highsmith 提出和倡导 也是一种轻型的灵活性模式,强调在混乱的边 缘上争取平衡 不要求执行者完全按照流程规则来做 在项目周期里安排一个学习阶段,具体解决哪 些是重要的开发任务 将项目的历程分成 3 个阶段:思索、合作、学 习(speculate, collaborate, and learn) learn) 讲究在合作阶段进行循环式的重复渐进,采取 “时间盒”(Time Boxed) 的方法 时间盒”
非完整的:没有整个流程的定义。 采用所谓的“sprints” ,即一般是一个月为周期,来进 行循环式的短期性的开发和发行管理。 每天进行15 分钟的团队“scrum会议” 每天进行15 分钟的团队“ scrum会议” 采用每天进行项目的最新状态汇报,发表“burn down
graph” graph”
适合于整个开发团队在同一个大房间里一起工作
引言
灵活性模式和其实践指南
管理模式的比较
总结
引言
灵活性模式和其实践指南
管理模式的比较
总结
Crystal
由Alistaire Cockburn 提出和倡导 灵活性模式的一种,尊重不同大小的项目在管 理上需要有不同程度的正式性管理规章,强调 在完成目前的开发项目的同时,要将眼光放在 开发团队和企业未来的位置 使用几个不同的管理方式:透明、黄色、桔 黄、红色等模式 采用轻型化的规章制度 比较注重项目文档的用途,要求管理人员使用 各种文件来帮助管理。
eXtreme Programming (XP)
由Kent Beck, Ward Cunningham, 和Ron Jeffries 提出和倡导 在所有的灵活性管理模式中是最著名的 使用所谓的“故事卡”进行项目的计划规划 使用所谓的“ 故事卡” 要求在开发过程中一直有客户的参与 很短的开发周期:任何一个开发分段都不超过 3 个星期 群体式负责制: 任何人可以参与任何部分的开发 群体式负责制: 使用重新组合(Refactoring)对进行渐进式设计 Refactoring) 采用TDD和连续性整合 要求每周40小时工作时间
TechEd 2003
2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
4

引言
灵活性模式和其实践指南
管理模式的比较
总结
引言
灵活性模式和其实践指南
管理模式的比较
总结
Dynamic Systems Development Method (DSDM)
是一个通常由来推动的管理方法 将开发周期分成 5个部分:
可行性认证、商业需求认证、功能模式循环、设计和建造循环、 以及最终的开发 (Feasibility, business study, functional model iteration, design and build iteration, and implementation)
MSF - Microsoft Solutions Framework
由Randy Miller, Paul Haynes 提出,微软倡导 是基于传统模式的基础上发展起来的 属于比较正式的模式,但最新版本包含了灵活 性的模版,加入了使用者角色(Personas)的概念 推行一个从角色到使用方案的设计流程 开发过程采用循环型的3星期的周期 要求单元测试的程序与开发程序的原代码一起 提交 要求100%的原代码执行测试 (Code coverage)
是一种偏向于繁重规章制度的模式 开发的计划和设计采取渐进式的 目前有一些商业工具可以用来帮助使用这种方 式进行项目管理 类似RUP, 但是有明确的风险管理指南,能达到 较好的灵活性
引言
灵活性模式和其实践指南
管理模式的比较
总结
引言
灵活性模式和其实践指南
管理模式的比较
总结
到底应该做多少事先的构架设计和计划?
管理流程设计的一些准则和指南
团队成员之间的通顺的交往是任何项目管理 不可缺少的。有时非得用面对面的交流 规章制度太多会变成繁重的负担。选择对开 发的灵活性和软件质量最有利的规章去执行 通常情况下大型的团队管理规章可以多些 将自我调节的能力设计和利用到流程管理中 去。
摘自: Balancing Agility and Discipline, Barry Boehm and Richard Turner
引言
灵活性模式和其实践指南
管理模式的比较
总结
总结
不同大小的项目可以采取不同的、能够最佳适 合于它的管理方法 灵活性模式有很多传统模式所没有的灵活性 灵活性模式对建立团队文化很有效 灵活性模式也有它的局限性。 采用时可以考虑逐步采取其中的一部分先执 行,根据效果再做调整
进一步参照
由笔者所著、由上海交大出版社 2004 年出 版发行的 “软件开发的项目管理” 一书 软件开发的项目管理” 更多详细内容和章节:
各种需求管理和产品设计的具体技巧 各种流程运作中帮助思考、审核的对照表 微软的项目管理的文化和优秀传统 怎样进行界面设计的艺术 做一个高效的项目管理人员的素质和艺术 等等
TechEd 2003
2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
5

问答
谢谢大家 !
栾跃
项目经理 微软总部中国事务办公室
Bill Luan Program Manager Redmond China Office, Microsoft Corporation BLuan@https://www.doczj.com/doc/d912711909.html,
附录
原作:栾跃 原作:栾跃
2004 Copyright, Bill Luan
BLuan@https://www.doczj.com/doc/d912711909.html,
2004 Microsoft Corporation. All rights reserved.
This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
TechEd 2003
2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
6

相关主题
文本预览
相关文档 最新文档