课程前言
传统的软件研发方法思想面临着体系庞大、操作不便等诸多问题,而以敏捷开为核心的研发思想受到广大软件开发工程师的青睐,并成为智能时代下的软件研发管理的主流方法。
本课程全面介绍敏捷开发的的理念、原则到开发过程中的基本实践、关键点,对主要敏捷开发技术的主要特点、适用性及关键技术进行比较和分析。与CMMI方法进行比较与融合,本课程对学员实际应用环境的分析评估,让学员了解敏捷开发技术应用的策略和要点,重点掌握敏捷SCRUM项目管理方法及其应用特点,剖析如何建立SCRUM团队及运作,SCRUM团队主要职能及行为要素。
**课堂的理论学习、实例练习、课程研讨,课后的敏捷教练、工作坊,让学员亲身体验SCRUM团队工作的模式,同时指导构建《敏捷开发实践指南》,发挥敏捷开发SCRUM在实际工作中的积极有效应用。
课程目标
& 了解敏捷开发中的常用方法及其特点,掌握SCRUM方法及其应用要素;
& 结合项目特点,灵活运用敏捷开发中的常用方法;
& 比较传统软件工程、CMMI软件研发管理方法的差异性,认识敏捷开发SCRUM优劣势;
& 掌握SCRUM的五种会议方法;
& 应用敏捷需求的形式和方法进行需求管理;
& 根据团队经验和技能水平对需求进行成本估算;
& 应用敏捷方法,按迭代划分系统的功能和交付顺序管理项目;
& 学员能够结合项目和组织特点,掌握构建敏捷开发实践指南的技能;
课程对象
& 产品经理、研发主管、研发经理,研发总监;
& 项目经理、开发经理、开发主管;
& 业务需求分析师、架构分析师、软件开发工程师、软件测试工程师;
课程大纲
第1部分 软件研发模型介绍—智能化时代变化下的软件开发管理利器
1.1 信息化建设发展趋势
1.2 传统的软件开发生命周期模型的特点
n 迭代模型、瀑布模型、增量模型、原型模型、极限模型、螺旋模型
n 课堂提问:各种软件研发模型的优缺点分析,以及软件开发模型选择的思考。
1.3 软件项目生命期概念
n 项目管理生命期、软件研发生命期、产品实施生命期
n 课堂提问:生命期的比较分析,以及项目经理/软件开发工程师关注度分析比较
1.4 传统的软件开发生命周期模型面临的哪些挑战,以及敏捷思维产生的背景?
第2部分 敏捷开发简介—普及敏捷开发思维
1.5 敏捷思维
n 软件开发三大元素:过程、产品、人
n 过程
传统的预测性
当前的经验性
预测性与经验性的特点
预定义过程控制VS经验性过程控制
游戏练习1:翻牌游戏
n 人
传统人
传统团队
敏捷团队
敏捷沟通
游戏练习2:老板与员工;
n 产品
什么是项目与什么是产品?
保持精益
游戏练习3:把手弄脏
什么是敏捷
n 敏捷概念
n 敏捷宣言的由来
n 敏捷宣言/敏捷原则
课程研讨:敏捷开发Agile与CMMI传统软件工程的优劣势比较分析
第3部分Scrum概述—核心的框架与精华
1.6 Scrum概要、框架及流程
n SCRUM价值观、起源、历史
n SCRUM概要、框架、流程
n Sprint燃尽图
n Sprint评审会
n Sprint回顾会
n 潜在可交付的产品增量
n SCRUM三大支持
n 知识比较:Scrum项目管理与一般意义上项目管理的比较分析。
1.7 Scrum精要
n Sprint破解、Sprint误用、Scrum会议、Scrum团队、Scrum Master、产品负责人
1.8 案例分析:简单的陷阱
第4部分 敏捷需求管理—以用户故事为主的需求管理
1.9 敏捷需求概述
n 从一个经典的例子看需求
n 在我们的需求体系中会遇到什么?
n 需求是涌现式的
n 需求管理是一个知识发现的过程
n 需求管理是一个依赖于沟通协调的活动
n 需求管理的本质
n 使用用户故事作为需求管理的载体
1.10 用户故事
n 用户故事定义
n 用故事的特点
n INVEST用户故事
n 一个卡通产品电子商务网站的例子
n 练习:编写用户故事
n 如何描述需求细节?
n 细节**更小的子故事实现
n 细节**验收条件来表现
n 如何分解用户故事
n 用故事树把故事串起来
n 用户故事的大小
n 为什么要使用用户故事
1.11 产品BACKLOG
n 产品BACKLOG
n 一个产品BACKLOG的例子
n 产品BACKLOG的金字塔
n 产品BACKLOG优先级排列技巧
n 梳理产品BLACKLOG
n 优先级排列需要考虑到因素
n 优先级计量方式
n 练习:产品BLACKLOG优先级的排列
n Sprint计划会议与Sprint Backlog高阶技巧
n Sprint评审会议与Sprint回顾会议高阶技巧
n 产品负责人与产品Backlog高阶技巧
n 发布计划会议高阶技巧
n Scrum Master高阶技巧
第5部分 敏捷估算与计划—相对估算与近清远糊计划
1.12 敏捷估算
n 讨论:估算以下四个案例要花费多少时间?
n 敏捷估算的基本策略:估算规模
n **规模推算时间表
n 用户故事估算
n 用户故事规模的计量单位
n 估算的技巧
n 估算的方法
n 练习:使用估算扑克进行估算
n 如何将用户故事拆分到任务
n 任务估算及计量单位
n 任务估算的特点
1.13 敏捷计划
n 敏捷计划的特点
n 多层次的计划
n 产品/发布/Sprint计划
n 满意条件驱动计划的执行
n 发布计划
n Sprint计划
n Scrum项目的进展跟踪及报告机制
l 任务板的作用及示例
l 关于卡片
l Sprint燃尽图及反映Sprint进展状况
1.14 练习(1.5小时):Scrum项目管理实践
1.15 知识练习:《敏捷开发知识知多少》?
第6部分 敏捷开发管理**实践—除开SCRUM的其它敏捷工程实践
1.16 敏捷工程实践
n XP的12个有效实践
n 持续集成(客户特别关注点,代码需要重构)
n 自动化测试
n 结对编程(客户特别关注点,结对编程)
n 看板管理(客户特别关注点)
1.17 思想
u 架构设计的发展趋势
u 架构设计决策的未来性
u 减法设计 vs. 加法设计
u 造形(Form)设计:领悟唐代的”诗同形”意义
1.18 方法
n 架构设计阶段
n 代码开发阶段
l 重构技术(客户特别关注点,重构技术)
l 编码有效性(客户特别关注点,持续重构)
1.19 模式
n 架构模式
n 测试模式
第7部分 敏捷团队建设—与传统的团队建设有所不同
1.20 团队规则与纪律
1.21 团队合作模式
n 典型的敏捷TDD驱动模式
n CMMI合作模式
n ToGAF的ADM合作模式
1.22 Scrum团队
n Scrum Master
n 产品负责人
n 案例分析:简单的陷阱
1.23 大型团队的Scrum实施
n 产品负责人团队
n 多Scrum团队的Sprint计划会议
n Scrum of Scrums 进行沟通和协作
1.24 Scrum Of Scrum与多项目管理的比较分析
1.25 角色转换
n 分析员、项目经理、架构师、职能经理、程序员、测试员
n 角色转换的共同挑战
第8部分 敏捷开发实践导入—在您的组织中导入敏捷开发实践
1.26 Scrum导入模式
n 成立实施推进小组
n ETC职责
n 改善计划的Backlog示例
n 制定Backlog的基本方针
n 设置和管理期望
n Scrum实施评估
n 全面转型VS小团队试点
1.27 导入敏捷工程实践的建议
n 案例名称:Sales Force的全面转型
n 选择什么项目试点
n 在CMMI软件研发模式下的敏捷成功之路
n 我们该如何进行敏捷的成功之路
第9部分 敏捷开发实践指南案例分析—两种软件开发管理依据的学习与比较
1.28 软件研发管理体系案例分析:一个“庞然大物”是如何构建“基于IPD CMMI AGILE”研发管理体系,从而用AGILE激活整个研发管理体系;
1.29 敏捷开发实践指南案例分析:ZJRC敏捷开发实践指南文件分享。
第10部分 敏捷开发实践指南构建—在快速开发上构建指南指引方向
1.30 传统软件研发管理体系构建介绍与分析
1.31 敏捷开发实践指南的评估分析
n 组织级实践评估分析;
n 项目组实践评估分析;
n 工程类实践评估分析;
1.32 敏捷开发实践指南的设计与发布
1.33 敏捷开发实践指南的敏捷教练与工作坊
""