敏捷软件开发

敏捷软件开发

课程背景

21世纪是“快鱼吃慢鱼”的时代!

现代企业的竞争就是“速度”的竞争!!

谁能尽快开发出符合客户需求的产品,谁就是大赢家!!

如何使产品开发周期显著缩短?如何促使企业充分利用外部资源,寻求合作设计、开发和制造的机会,让新产品上市时间更快?

“敏捷化开发”是国外最新提出的着眼于速度竞争的新产品开发管理模式,其基于一系列先进的研发管理方法,采取产品开发与市场投入的速度领先战略,以获得产品开发的时间领先优势,使企业在竞争日趋激烈的环境中获取利益最大化。

软件系统的日益复杂化和用户需求、软件更新的频繁化,加之开发团队分散的工作方式,项目的沟通和平滑管理变得越来越困难。另一方面,如何在多角色分工的情况下,紧扣用户提出的需求,监控其实施,确保用户需求最终落实到产品的各个版本中去,并在产品发行和用户支持等方面提供帮助,响应用户新的需求,推动新的开发周期。

新的开发方法-敏捷开发,有助于开发人员、测试人员和管理人员更快的适应客户需求的变化,快速的发布和提交版本。使得软件的发布能更快捷的满足客户的需求。

敏捷软件开发过程中,有一些新的开发手段,把开发活动和测试活动结合起来。通过敏捷项目管理,可以更好的发挥团队特长,并行开发,合理控制软件版本,有效地提高生产率。

本课程在介绍了敏捷项目一般管理方法基础上,深入地讨论了如何将敏捷化开发应用于其它行业的产品研发活动,使学员同时掌握以上两种方法,在实际工作中能按照实际情况灵活应用。

培训收益

•了解敏捷开发和测试的过程;

•了解敏捷开发过程中,测试用例的编写和测试的执行过程 ;

•介绍如何进行重构;

•了解敏捷项目管理等等;

课程对象

企业CEO/总经理、研发总经理/副总、公司总工/技术总监、研发项目经理/产品经理、PMO(项目管理办公室)成员、研发骨干、测试、QA等。

课程特色

本工作坊的主要特点是:

  • 体验式学习:大量采用体验式练习,而不是灌输知识,让团队自己生成新的理念、原则、方法等,寓教于乐,更容易被大家接受。

  • 以演练的方式学习:巧妙地将敏捷软件开发方法以研讨与演练的方式来展示,形象生动,又能把握商业模式创新的关键点。

  • 采用教练方式:采用教练而不是培训、咨询的方式,更赋能,具有激发团队潜力、向内挖掘资源等特点。

讲师具有近二十年软件开发、软件设计、需求分析及项目管理经验,长期战斗在软件项目钱眼,精通SCRUM、极限编程及MSF并用于全公司的项目管理,参加多次CMMI5级评估,并有使用敏捷软件开发通过CMMI评估的案例。讲师有多年的授课经验,讲课深入浅出,注重引导学员思考,善于将主题内容融于简单的例子中,让学员通过体会实例掌握知识。

课程大纲

一、案例分析

1.1 工作坊:案例项目存在哪些管理问题

1.2 背景了解

1.3 问题收集

1.4 关键问题辨析


二、什么是敏捷软件开发

2.1 研发中项目管理的典型问题

2.1.1 质量

2.1.2 交付周期长

2.1.3 效率低下

2.1.4 交付延期

2.1.5 交付不被市场/客户接受

2.2 软件管理方法总览

2.3 什么是敏捷项目管理

2.4 敏捷项目管理的解决之道

2.4.1 总体框架:“需求-构建-发布”的快速迭代

2.4.2 卓越交付:保证正确的构建正确的产品

2.4.3 自组织团队

2.4.4 短周期迭代

2.4.5 可工作的完成标准

2.4.6 价值驱动

2.4.7 基于反馈的改进2.4.8风险前移

2.5 敏捷项目管理的精要 

2.5.1 创造力来源于小而美团队

2.5.2 短迭代的可工作的交付

2.5.3 客户参与

2.5.4 响应变化

2.5.5 交付的价值优于完成的任务

2.5.6 效率通过演进的流程获得

2.6 核心价值观

2.7 我是否该敏捷?

2.8 什么时候可以引入敏捷实践?

2.9 敏捷实践清单

2.10 敏捷开发如何提升生产率? 

2.11 敏捷开发如何提升质量

2.12 敏捷对企业的价值

2.13 研讨与演练:软件开发,我们的痛点在那里?


三、理解敏捷过程

3.1 敏捷过程的本质

3.1.1 以人为根本

3.1.2 以最终交付的软件为目标

3.1.3 进度的推进策略

3.1.4 团队工作文化

3.2 敏捷过程的最佳实践

3.2.1 小版本,现场客户

3.2.2 隐喻,简单设计,重构

3.2.3 测试驱动开发,持续集成,结对编程

3.2.4 代码共有,编程标准

3.2.5 工作空间与时间


四、敏捷项目管理提升研发流程的具体实践

4.1 项目团队管理-人是最重要

4.1.1 敏捷团队的三个核心角色

4.1.2 敏捷团队的角色职责

4.1.3 Scrum Master工作检查单

4.2 敏捷项目策划

4.2.1 敏捷估计-估算扑克

4.2.2 Delphi估算

4.2.3 研讨与演练:我的故事要多少工作量?(使用客户内部开发需求),扑克牌法

4.2.4 敏捷估算方法2:NASMA

4.2.5 NASMA和功能估计的相同点和不同点

4.2.6 NASMA估算的估算精度4.2.7通过速率估算开发周期

4.3 敏捷项目计划管理

4.3.1 迭代计划会

4.3.2 计划会序曲-猪与鸡的故事

4.3.3 猪与鸡的行为模式

4.4 项目过程与风险管理

4.4.1 每日立会 

4.4.2 燃尽图 

4.4.3 “迭代期内无变更”

4.4.4 故事板 Kanban

4.5 项目质量管理-高质量的交付

4.5.1 评审会与反思会

4.5.2 评审会 

4.5.3 反思会

4.6 敏捷风险管理

4.6.1 SPIKE和Story的风险评估

4.6.2 发布计划和迭代计划中的风险处理策略

4.6.3 设计中的风险处理

4.6.4 开发过程中的风险处理

4.7 大型项目管理的敏捷项目管理实践

4.8 研讨与演练:基于客户团队的实际痛点进行讨论,从敏捷项目管理的角度讨论解决方案


五、敏捷软件开发工程实践

5.1 项目需求管理-用户故事-交付最有价值需求

5.1.1用户建模 

5.1.2用户故事 = 用户 + 功能 + 价值

5.1.3用户故事描述的语法规则

5.1.5超越敏捷-现实世界的用户故事

5.1.6需求优先级排序

5.2 史诗故事

5.2.1 用户故事的颗粒度

5.2.2 什么是史诗故事?

5.3 用户故事地图

5.3.1 为什么要建立用户故事地图?

5.3.2 用户故事地图建立的步骤

5.4 敏捷架构和简单设计

5.5 技术债务

5.6 团队结构与日常开发活动

5.6.1 办公环境

5.6.2 “特性小组”

5.6.3“松结对编程”

5.6.4“松结对编程”的小组长责任

5.6.5 “松结对编程”的工作习惯

5.6.6 结对编程的几种结对形式

5.7 静态语法检查与代码质量

5.7.1 为什么要做代码审查?

5.7.2 编码规范

5.7.3 自动化的审查代码

5.7.4演练:使用静态语法工具进行代码质量分析

5.8 TDD(测试驱动开发)及静态语法检查

5.8.1 什么是TDD

5.8.2 如何进行TDD

5.8.3 演练:对一个功能进行TDD设计

5.8.4系统级TDD

5.9 重构

5.9.1 重构的定义

5.9.2 为什么需要重构

5.9.3 何时需要重构

5.9.4 代码的坏味道

5.9.5 各种重构的方法 

5.9.6 重复的代码

5.10 敏捷测试

5.10.1 持续集成

5.10.2 测试用例设计

5.10.3 构建管理 持续集成 发布管理

5.10.4 持续集成和每日构建

5.10.5 自动化测试


六、大规模的敏捷实践

6.1 大规模敏捷框架

6.2 大规模敏捷项目管理的层次

6.2.1 多级项目规划

6.2.2 项目/产品愿景

6.2.3 项目/产品路线图

6.2.4 版本发布计划

6.2.5 迭代计划

6.2.6 每日实现

6.3大规模敏捷组织结构

6.3.1 Super Scrum Master

6.3.2 团队协作与管理

6.3.3 团队交流渠道

6.3.4 团队互相激励方法

6.3.5 公共目标的驱动

6.3.6 工作结果布告

6.4 平台化与定制


七、敏捷开发过程中的度量

7.1 敏捷软件开发的度量体系

7.2 精益软件度量什么

7.2.1 组织目标

7.2.2 决策场景

7.2.3 指标框架

7.2.4 度量元

7.2.5 价值评价

7.3 常见的敏捷度量指标

7.3.1 产能度量

7.3.2 内部质量的度量

7.3.3 外部质量的度量

7.3.4 组织能力的度量

7.4 部分度量案例展示

7.4.1 规模

7.4.2 工作量

7.4.3 进度

7.4.4 技术债务

7.4.5 能力

7.5 度量的实施和推进

7.6 演练:我们需要什么度量


八、组织级敏捷部署与绩效管理

8.1 敏捷三步走

8.2 敏捷成功与否的衡量标准是业务结果(质量、TTM)的改进

8.3 首次实施敏捷的参考步骤——八步曲

8.4 敏捷角色

8.5 项目组团队的组建方式:特性项目组和模块项目组优劣对比

8.6 项目级敏捷通用过程模型

8.7 项目级敏捷过程样例(版本中项目组全都实施敏捷)

8.8 敏捷团队绩效管理

8.8.1谁来管理团队中的个体?

8.8.2敏捷团队的目标

8.8.3从团队外部认识团队目标

8.8.4敏捷开发中的目标管理意识

8.9执行与实施层面的敏捷实践


九、总结


【详细完整版的课程介绍,请选择在线客服,或致电0755-86718676,免费索取。】

客户评价

  • 老师讲解的一些敏捷开发的流程、工具的使用方法都非常实用,有助于项目效率的提升,希望所有的研发人员都能参加这样的培训。

  •  此次的学习让我看到了开发方法上的差距,老师对敏捷开发的讲解及案例分析很有深度,个人收获非常大,很感谢老师的认真讲解。

  • 课程内容很系统,老师讲解也很全面,通过学习,对敏捷开发有了新的认知,对我们研发在改进测试方案和思路方面启发很大。