主题1:敏捷需求开发
一、敏捷需求分析思维模式
1.问题收集:学习者需求分析中遇到问题
2.敏捷需求适应“客户用户的无休止的需求变化”
3.创新型需求与改进型需求
4.面面俱到的需求分析与快速迭代的需求分析
5.互联网思维-以用户体验为中心的需求分析
6.经验分享:敏捷需求分析*实践路线图
二、需求的源头
1.一句话的需求-客户用户“灵光一闪”的想法
2.问题驱动的需求-客户用户在“体验上”的不满意
3.技术缺陷导致的需求-客户用户在使用上出现“故障”
4.表面上的需求与真实的需求-客户用户背后的需求是什么?
5.经验分享:洞悉语言文字中关键字眼
6.拒绝需求-客户用户的需求合理吗?
三、需求的故事化
1.入境-进入客户用户的需求境界场景中
2.出境-描述客户用户的需求场景
3.快速情境板-可视化方式的故事沟通
4.故事描述方式-故事板结构定义
5.演练:借助情境板快速进入客户的需求场景
四、需求的原型化
1.快速线框图-用户故事转化
2.找出构成原型的基本元素
3.基本元素的分类、标签、导航与搜索
4.线框图布局勾勒、元素填充编排
5.快速线框图标与图像
6.演练:快速线框图训练
五、需求的改进
1.演示:眼动仪的可用性测试带来的启示
2.提取用户的关注点-你*眼看到了什么?
3.描述用户阅读路径-你是如何读我的原型的?
4.确认用户行为-你真的想这样操作吗?
5.发现用户不方面的行为-请尝试操作多次,感觉如何?
6.快速修正您绘制的线框原型
7.演练:针对自己绘制的原型进行改进
六、需求的细节化
1.隐喻:从故事到剧本的转化
2.程序员视角的细节化
3.测试者视角的细节化
4.辩论:用例文档表达的问题在哪里?
5.需求细节化的角度-如何思考更缜密?
6.演练:需求快速细节化的过程
七、需求的模型表达
1.讨论:UML是敏捷的天敌吗?
2.敏捷建模-一图顶万言,便于阅读者理解您的分析成果
3.用例建模的敏捷化
4.全局俯视您的所有需求-一览众山小,便于更准确把握用户需求
5.演示:基于EA工具的敏捷需求建模过程
八、需求的实现进化
1.需求为何发生变化?探究变化的方向
2.整个软件工程如何快速应对变化
3.案例研究:Google如何快速应对变化
4.不变偶然的,变化是必然的
5.归纳总结:敏捷需求之道
主题2:敏捷设计
一、敏捷中的架构设计师扮演者
1.敏捷中的三个角色-Product Owner、Master与Owner
2.Product Owner的产品架构师
3.Master的技术架构师
4.架构师的业务教练与技术教练
5.架构师是敏捷开发中路线制定者
6.讨论探索:敏捷十二个指导原则中“简单设计”的内涵
二、快速短迭代与架构设计
1.敏捷产品的基因-框架平台设计
2.框架平台驱动下的敏捷开发
3.产品架构结构决定迭代计划
4.基于关键核心的快速迭代
5.产品的可持续开发模式
6.案例分析:Google云的基因
7.动手实践:依据案例场景完成迭代计划方案
三、骨架代码与面面俱到的文档
1.讨论探索:详尽的架构文档有哪些问题?
2.代码驱动的架构问题-骨架代码
3.骨架代码验证架构设计可实现性
4.测试驱动开发TDD-取代详细设计文档
5.基于骨架代码的不断迭代完善
6.案例代码与开发路线图
7.案例分析:Linux 0.01版源代码的作用
四、及时反馈与架构重构
1.开发过程中的Owner反馈架构问题信息
2.测试过程中的Tester反馈架构问题信息
3.运行过程中的维护者反馈架构问题信息
4.架构结构不断渐进的重构与完善
5.建立反馈问题信息管理机制
6.动手实践:依据案例场景完成架构重构设计
五、架构设计快速响应未来的变化
1.未来变化的根源视角
2.业务变化波及面分析与架构结构耦合设计
3.用户体验变化与用户体验架构师
4.运行中问题与质量设计
5.运维点设计减轻运行维护的成本
6.案例分析:SAP运维中免疫机制设计
六、精益的架构设计
1.架构设计如何满足各种质量属性的要求?
2.借鉴:精益六西格玛的工业质量设计方法
3.QFD质量展开设计应用到软件架构设计
4.Product Owner功能展开设计
5.Master技术展开设计与工艺展开设计
6.动手实践:依据案例场景的可靠性设计
七、架构沟通
1.架构师如何表达自己架构设计-让Owner理解自己的设计
2.业务沟通语言、技术沟通语言与模式语言
3.架构任务分解与Master任务下达
4.技术攻关中团队沟通
5.每日例会中强化架构技术路线
6.探索谈论:如何综合归纳不同的意见,融合到架构设计中
八、架构创新设计
1.创新思维与创新的TRIZ方法论
2.架构设计中逆向思维
3.案例分析:微软ERP产品AX数据库表设计中逆向思维
4.架构设计中抽象思维
5.案例分析:开源产品ERP5中的抽象思维
6.架构设计中多学科融合思维
7.案例分析:云框架中的经济学与社会学思维
主题3:敏捷编程与测试
一、敏捷编程实践
1.讨论:结对编程为何没有流行开?
2.实践:码工与匠艺编程的差距?依据讲师提供的案例完成代码编写实践
3.讨论:如何能达到匠艺编程的效果?为什么他们能多想一些?
4.解释TDD测试驱动开发内涵
5.实践:基于讲师指定的案例完成测试驱动开发
6.对比测试驱动开发与单元测试
7.讨论:如何减少TDD与unit test*量?
8.code review与结对编程的结合
9.工具:使用工具快速阅读代码
10.重构:编程者每日的短迭代*代码质量
11.快速编程:启发性编程策略模型
12.防御性编程:处理各类约束条件
13.讨论:重构的*目的是什么?是减少代码行数吗?
14.基于软件工厂模式的代码编程
15.编程路线图与编程类型划分
二、敏捷测试
1.探索性测试提升黑盒测试效率
2.快速测试:HTSM启发性测试策略模型
3.持续集成构建的冒烟测试
4.讨论:哪里测试中最消耗时间环节
5.测试数据构造与复用
6.风险驱动的测试技术
7.隐式业务规则探索测试
8.技术漏洞探索性测试
9.基于各种质量属性测试的敏捷测试
10.自动测试与探索性测试成本分析
11.基于思维导图的快速测试文档编写
12.基于测试专业化的“零文档”
13.实践:基于建设银行漏洞的快速测试
主题4:敏捷过程工具
九、平稳的*效率
1.个体时间管理-番茄时间法、A4时间法等
2.番茄钟*法与Personal Backlog
3.减少敏捷*者的“干扰因素”
4.“独立思考”减少对互联网的依赖
5.及时发现每一天、每一个阶段的问题
6.团队时间管理-拦截干扰*的因素
7.过程中间结果反馈的收集
8.团队个体的自觉性与内驱力墨家、道家与儒家思想巧妙结合.
9.“信任与公正”实现团队自组织
10.问题解析:研发管理人员“忙碌却无成效”的原因剖析
11.动手实践:依据案例完成个人Work Backlog
十、精益开发的质量意识
1.项目经理的质量思维与任务
2.质量的正向作用于反向作用
3.人人是质量*者
4.质量是测试出来的吗?
5.建立质量评估委员会
6.过程数据分析发现质量问题
7.需求、设计、代码、测试质量*策略
8.如何使用“六西格玛操作模型DMAIC
9.案例分析:从对日外*给出的图表中您发现了哪些质量问题?
10.案例分析:Six Sigma软件研发中的成功案例
十一、敏捷配置管理
1.软件全生命周期可追踪管理的方法
2.复杂软件版本配置管理策略
3.文档配置管理策略
4.配置管理与软件过程度量
5.统一配置管理与统一变更管理
6.案例分析:从Linux研发过程中配置管理感悟到什么?
7.百家争鸣:敏捷的变更与正规的变更如何取舍?
十二、构建项目健康度评价体系
1.积压项卡片的统计分析
2.燃烧图的团队“指纹”
3.Team健康的指标评价体系
4.可视化展示Team健康状况
5.敏捷关键过程域数据收集
6.发现敏捷开发中的问题
7.敏捷过程的不断改进
8.案例分享:讲师十年的项目过程度量经验分享