软件项目管理流程培训
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二次 功能 C 增量 功能 D
需求 …
测试
第三次 增量
…
…
第一次 迭代
功能 A 功能 B 功能 C
需求 … 测试
第二次 迭代
细化功能A 细化功能B 细化功能C
需求 … 测试
第三次 迭代
…
…
第一次 迭代
(计划风评实施客评)
第二次 迭代
(计划风评实施客评)
计划
全部功能: 需求 功能 A 功能 B 设计 功能 C 功能 D 开发
CMMI、标准的软件项目流程
4 公司的软件项目流程
公司的人员、职责、软件项目流程
5 提问
学员回答培训相关问题、学员向培训师提问
3
1 软件、软件工程
软件
计算机系统中与硬件相互依存的另一部分,它是程序、文档的完整集合
其中:
程序是按实现设计的功能和性能要求执行的指令序列 文档是程序开发、维护使用有关的图文材料(例如用户手册、帮助文档等)
软 件 移
交
试
指导和控制增量集成
指导下一个增量的选择
特 点
首先对系统最核心或最清晰的需求进行分析、设计、实现、测试并集 成到系统中。再按优先级逐步对后续的需求进行上述工作,逐步建设
成一个完整系统的开发方法。
15
1 软件、软件工程
软件生命周期模型 -- 增量模型
优点
• 有利于增加客户对系统的信心; • 降低系统失败风险; • 提高系统可靠性; • 提高了系统的稳定性和可维护性;
缺点
• 整个的模型几乎都是以文档驱动的 ,这对于非专业的用户来说是难以 阅读和理解的。
• 无法解决软件需求不明确或不准确 的问题。很多的问题在最后才会暴 露出来,风险是巨大的。
• 当阶段之间规定过多的文档时,会 极大地增加系统的工作量。
• 开发者常常被不必要地耽搁。在项 目的开始和结束阶段会造成阻塞。
4、开发人员给出计划完成时间 1)开发人员计划出自己负责的每个 Story 的计划完成时间, 并提交给测试人员,方便测试人员安排测试计划。
5、开发人员开始编码 1)过程中,需要进行每日站立会议(Daily Scrum Meeting), 会议要求如右图 2)每日站立会议后,每个人要更新看板(看板的定义如右图) 的任务状态和燃尽图(Sprint burn down) 3)过程中,版本负责人(项目经理)负责监控一个迭代的状 态,觉察到风险要尽早调整并通知到团队 4)做到每日集成,也就是每天都要有一个可以成功编译、 并且可以演示的版本
缺点
• 增量粒度难以选择; • 确定所有的基本业务服务比较困难
16ຫໍສະໝຸດ Baidu
1 软件、软件工程
软件生命周期模型 -- 迭代模型
是一种软件生命周期模型,又是一种支持面向对象软件开发的工具, 它将软件开发过程要素和软件工件要素整合在统一的框架中 。
每一个迭代相当于小型的瀑布式项目,都包括需求、设计、实施、部 特 署和测试活动。
软件项目流程培训
仅代表个人观点,欢迎讨论指点,请勿做商业用途
1
主讲人:**** ---------------------------------
职位:*********
2
培训内容导航
1 软件、软件工程
软件、软件工程、项目类型、生命周期
2 大家眼中的软件项目流程
众人的软件流程整合
3 标准的软件项目流程
个人总结:
要开发和维护一个软件,不仅需要最好的技术,还需要使用过程化的方法和 正确的管理。
5
1 软件、软件工程
项目类型
产品
合同项目
内部自用项目 维护项目
外包项目
自有产品的研发 ,对于需求要增 加市场调研报告 ,可行性分析报 告
具备完整生命周 期模型(从售前 到验收)
自主开发的项目 ,提供给公司内 部员工使用的, 满足公司的信息 化管理需求
1 软件、软件工程
软件生命周期模型 -- 瀑布模型的改进 -- V 模型
制定计划 用户需求获取 系统和软件需求分析 概要设计 详细设计
编码
验收测试 系统测试 组装测试 单元测试
1 软件、软件工程
软件生命周期模型 -- 瀑布模型的改进 -- W 模型
制定计划 用户需求获取
用户需求V&V 验收测试准备
特 点
用户通过使用原型系统,提出修改意见,从而减少用户与开发人员对 系统需求的误解,使需求尽可能准确。
原型方法主要用于明确需求,但也可以用于软件开发的其他阶段。
13
1 软件、软件工程
软件生命周期模型 -- 快速原型模型
优点
缺点
• 有助于增进软件人员和用户对系统 服务需求的理解 ;
• 文档容易被忽略。 • 建立原型的许多工作会被浪费掉 。 • 项目难以规划和管理。
特 等组成的,它只是一种态度,不是一个说明性过程 。
点
AM是对已有生命周期模型的补充,它本身不是一个完整的方法论,在 应用传统的生命周期模型时可以借鉴AM的过程指导思想 。
21
1 软件、软件工程
软件生命周期模型 -- 敏捷模型
1
个人和交互胜过过程和工具
响应变化胜过遵循计划
4
价值观
2
客户合作胜过合同谈判
验收完后,进行 的需求开发、设 计、编码和测试 活动
可能某个阶段的 的工作由客户完 成
6
1 软件、软件工程
软件生命周期/模型
软件 生命周期
同任何事物一样,一个软件产品或软件系统也要经历孕育、诞生、成长、 成熟、衰亡等阶段,一般称为软件生命周期(Life Cycle)。
为了使规模大、结构复杂和管理复杂的软件开发变的容易控制和管理,人们把 整个软件生命周期划分为若干阶段,使得每个阶段有明确的任务,整理出软件 生命周期模型。
14
1 软件、软件工程
软件生命周期模型 -- 增量模型
下一增量开发
定 确定 义 增量 需 内容 求 及其 框 优先
架级
设计 系统 体系
结构
增量开发
增量分析 增量设计 增量实现 测试 增量集成
下一增量内容的确定
用户使用增量产品 提出反馈意见:修
改、补充需求
和用户沟通探索下 一增量内容的初步
需求
系统
确认 测试 和用 户验 收测
如何确定本次迭代要完成的 Srory? 例如迭代周期一个月 20 个工作日,开发人员和测 试人员一共 10 人,那么确定要开发的 Story 总工 作量不能超过 20*10=200 人天,一般留出一部分 时间来做其他的事情,例如会议等,所以列入开 发范围的总工作量可以打个折,例如 170 人天。 (等历史项目的数据积累后,可以更好的决策这 个打折打多少)
3、任务分解 1)开发人员各自回去进行 Story 分解,形成更细化的任务。 2)细到每个任务的工作量在 2 天内能完成
工作量评估方法: 开发人员、测试人员每人手上都有一套“计划纸牌” (每张纸牌代表不同的人天数),评估一个 STORY 的时候,所有参与评估的人员都同时举起一张纸 牌,采取少数服从多数和取中间值的原则,如果 A 和 B 两人的评估相差太大,则 A 和 B 分别表达观 点,重新讨论后重新评估。
软件 生命周期
模型
在整个软件开发的发展过程中,为了要从宏观上管理软件和开发和维护, 而对软件的发展过程进行归纳总结的软件生命周期的典型实践参考。
7
1 软件、软件工程
常见的软件生命周期模型
瀑布模型(V模型、W模型) 快速原型模型 增量模型
迭代模型 螺旋模型 敏捷模型
8
1 软件、软件工程
软件生命周期模型 -- 瀑布模型
特 通过强制性的要求提供规约文档来确保每个阶段都能很好的完成任务。 点 每个阶段经过严格的评审和测试。
每个阶段的结束和所有产品都要经过SQA审核同意。
1 软件、软件工程
软件生命周期模型 -- 瀑布模型
优点
• 提高了软件开发过程的透明性和可 管理性。
• 文档驱动型,便于产品的维护
点
可视化软件建模:使用UML(Unified Modeling Language,统一建模 语言)进行软件建模。
所有的阶段(需求及其它)都可以细分为迭代。每一次的迭代都会产
生一个可以发布的产品,这个产品是最终产品的一个子集。
17
1 软件、软件工程
软件生命周期模型 -- 迭代模型
优点
• 降低了在一个增量上的开支风险。 • 降低了产品无法按照既定进度进入
系统和软件需求分析
系统和软件需求 V&V,系统测试准备
概要设计
概要设计V&V 组装测试准备
详细设计
详细设计V&V 单元测试准备
交付
验收测试
部署 组装
系统测试 组装测试
单元测试
编码
1 软件、软件工程
软件生命周期模型 -- 快速原型模型
原型方法指在获得一组基本需求后,通过快速分析构造出一个小型的
软件系统原型,满足用户的基本要求。
4
1 软件、软件工程
软件工程
英文名Software Engineering,是一门研究用工程化方法构建和维护有 效的、实用的和高质量的软件的学科。
它涉及到程序设计语言、数据库、软件开发工具、设计模式等方面。
目前比较认可的一种定义认为:
软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去 开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能 够得到的最好的技术方法结合起来。
7、当所有 Story 完成,召开演示会议 1)我们要进行演示会议(Srpint Review Meeting),也称为 评审会议,产品负责人(需求提出者)和客户都要参加, 最好本公司老板也参加。 2)每一个开发成员都要向他们演示自己完成的软件产品 (这个会议非常重要,一定不能取消);
每日站立会议: 每次会议控制在 15 分钟左右,每个人都必须发言, 并且要向所有成员当面汇报你昨天完成了什么,并 且向所有成员承诺你今天要完成什么,同时遇到不 能解决的问题也可以提出。
2、 任务的估算与指派:计划会议(Plan Meeting) 1)全员参与,包括需求、开发、测试。 2)首先,会议上需求人员先进行 Story 的讲解 3)所有人对 Story 进行逐个评估工作量(评估方法如右图), 每个 Story 的估算包含了开发和测试的时间。 4)根据迭代周期确定可完成的 Story(确定方法如右图), 具体由 Story 的优先级,工作量,团队能力和版本时间 这些因素来决定。 5)开发人员开始挑选任务,一般让资历低一点的先挑。
什么是看板? 任务看板公开展示了每个人的工作进度和完成 情况。其中包含每个 Story 的状态,例如未完成、 编码中、测试中、测试完成 的工作状态,假设 你今天把一个编码中的工作已经完成,那么你 要把小卡片从编码中区域贴到测试中区域。如 果有一个人的工作任务在某一个位置放了好几 天,大家都能发现他的工作进度出现了什么问 题(成员人数最好是 5~7 个,这样每人可以使 用一种专用颜色的标签纸,一眼就可以从任务 版看出谁的工作进度快,谁的工作进度慢)
实用的软件胜过面面俱到的文档
3 22
1 软件、软件工程
软件生命周期模型 -- 敏捷模型
敏捷开发
1、 需求来源:Backlog(待办库) 1)每个人都可以新增条目到待办库。 2)条目的类型可以是新需求(定义为 Story),也可以是 BUG(测试人员,或开发人员发现的问题)。 3)排序(RANK)很重要,决定条目被开发的优先顺序。 一般有人定期去调整这个顺序。 4)需求人员有新需求加进来,要定期告诉所有人。
8、最后就是回顾会议(Sprint Retrospective Meeting)
23
1 软件、软件工程
软件生命周期的选择 - 1
瀑布模型
增量模型
迭代模型
螺旋模型
计划 需求 设计 开发 测试 维护
全部功能:
功能 A 功能 B 功能 C 功能 D
需求
第一次 核心功能: 增量 功能 A … 功能 B 测试
市场的风险。 • 加快了整个开发工作的进度。 • 迭代过程这种模式使适应需求的变
化会更容易些。
缺点
• 在项目早期开发可能有所变化 ,需 有一个高素质的项目管理者和一个 高技术水平的开发团队
18
1 软件、软件工程
软件生命周期模型 -- 螺旋模型
螺旋模型最大特点就是引入了明确 的风险管理。
特
点 主要针对大型软件项目的开发。 螺旋模型就可以理解为瀑布+迭代+ 原型+风险的一种生命周期模型。
19
1 软件、软件工程
软件生命周期模型 -- 螺旋模型
优点
• 提高系统质量 • 降低项目风险;
缺点
• 难于管理 • 只适合于大风险大型复杂软件项目 • 软件开发人员要擅长风险分析
20
1 软件、软件工程
软件生命周期模型 -- 敏捷模型
沟通
简单
态度
勇气
反馈
谦逊
敏捷建模(Agile Modeling,AM)是由Scott W. Ambler从许多的软 件开发过程实践中归纳总结出来的一些敏捷建模价值观、原则和实践