敏捷项目开发方略及最佳实践
敏捷项目开发方略及最佳实践
前言
个体和交互胜过过程和工具;可以工作的软件胜过面面俱到的文档;客户合作胜过合同谈判;响应变化胜过遵循计划……当这些脍炙人口的敏捷宣言在耳边响起时,不知不觉中我们已经进入了一个敏捷时代。这个时代需要敏捷,他不仅是一种软件开发的方法,更是一种生活态度。
欲善敏捷开发,必先利敏捷思维,本次Cleader特邀在敏捷开发方面拥有多年实战经验的章国新老师,从训练敏捷思维开始,带领大家一步步地踏入敏捷的阵营。除了系统地讲述敏捷开发的思想和方法外,章老师将按照SCRUM的敏捷项目开发周期,指导大家分组进行一次项目实战模拟训练,真正的做到学以致用。
一、课程特点
1、从实际应用的角度出发,介绍了敏捷开发的思想和方法。
2、通过与CMMI的比较来帮助大家认识敏捷的思想和理念。
3、帮助项目开发组通过学习而变得敏捷。
4、根据敏捷项目开发的实际过程,归类讲解了敏捷实践。
5、结合示例讲解了敏捷软件开发设计的原则。
6、从敏捷开发的角度,讲述了如何构建团队和管理项目。
7、学以致用,基于SCRUM敏捷项目开发,让学员在指导下动手实践一个项目案例。
8、总结了敏捷开发的经验教训,以便在敏捷的道路上,少走歪路。
二、培训对象
软件开发成员、项目经理及软件项目领导,希望通过学习,来理解和掌握敏捷开发的实践、原则和模式。学会用敏捷开发方式来管理和开发项目,以在规定的时间和预算下,高质量的完成项目。
三、培训形式
1、专业完整的课程内容设计
2、丰富生动的案例实践解析
3、寓教于乐的动手实践
4、自由开放的互动交流
5、face to face 的个体辅导
四、课程逐一解决的重要问题
1、从敏捷开发的思想和方法
2、回答了项目开发组如何才能变得敏捷
3、如何理解敏捷开发实践
4、如何进行敏捷开发
5、敏捷开发的经验和教训
五、讲师介绍
章国新,任Kulicke & Soffa(库力索法)Scrum开发团队主任和Scrum master,应用scrum敏捷方法管理和开发软件项目有丰富的经验和切身的体会。 曾任Qimonda IT开发中心任软件质量经理 和Agilent通讯测试部门任软件开发主管。行业背景知识包括银行,电信,网络通讯,半导体生产制造自动化,嵌入式实时系统。精通项目管理,设计模式,CMMI、Agile、RUP方法和流程。
六、课程大纲
| 时间/章节 | 课题 | 阐述 |
| 第一天
敏捷思想和敏捷实践 |
1. 什么是敏捷
敏捷是个价值系统 敏捷联盟 n 敏捷软件开发宣言 n 敏捷软件开发原则 XP 概述 SCRUM概述 2. 为什么敏捷? 原因 动机 3. 如何变得敏捷 改变思维 n 管理风格 n 人,责任 n 学习是项目的主要成本 敏捷思维训练 n 头脑应变快 n 要学会灵活运用头脑 n 训练案例 精益思想(Lean thinking) 核心-去除浪费 原则一-确定产品价值 原则二-识别价值流 原则三-使价值连续流动 原则四-拉动 原则五-改善无止境 |
敏捷开发不是一个具体的过程,而是一个涵盖性的术语,用于概括具有相同价值观和原则的方式和方法。 其中包括极限编程XP,SCRUM等,都着眼于快速交付高质量的工作软件,并做到客户满意。
XP是敏捷方法中最著名的一个。它由一系列简单却互相依赖的实践组成。XP是通用的软件开发方法,可以拿来直接采用,也可以增改一些实践后再采用。
Scrum被认为是目前全球最流行与最有效的敏捷项目管理理念与方法之一,在软件业发达地区被众多知名企业广泛采纳。
要变成敏捷,关键在于改变思想,训练敏捷的思维。
|
| 4. 团队合作
持续集成 自动编译 集体代码所有权 代码标准 团队设计 |
Karl Popper的“协作活动第一定律”:你永远不可能找到超过五个人对任何事物的意见都会保持一致. 这里阐述了团队协作,团队精神的重要性。
|
|
| 5. 沟通
开放工作空间 每日例会 循环周期开始 循环周期回顾 客户代表
|
沟通的重要性不言而喻,它贯穿于整个项目开发的始末。
|
|
| 6. 用户故事
7. 计划游戏 发布计划 迭代计划 可持续的进度
|
用户故事,计划游戏,集成测试,简单设计,快速实现,单元测试,反复重构,迭代渐进。如果把这一系统的迭代活动串联起来,它的名字叫“测试驱动开发”。
|
|
| 8. 简单设计
单一职责原则 开放-封闭原则 Liskov 替换原则 依赖倒置原则 接口隔离原则 重用发布等价原则 共同封闭原则 无环依赖原则 稳定依赖原则 稳定抽象原则
|
敏捷设计是一个持续的应用原则、模式和实践来改进软件结构和可读性的过程。
|
|
| 9. 快速实现
结对编程 单元测试
|
软件开发是一种需要简单设计、快速实现、
|
|
| 10. 反复重构
提炼 替换 |
反复重构,以婴儿步前进的活动。
把源代码看作是一份工程文档。 保持代码的简洁。 |
|
| 11. 验收测试
集成测试 迭代渐进
|
在不改变代码外在行为的前提下对代码作出修改,以改进代码内部结构。
|
|
| 第二天
一个敏捷项目案例的开发实战训练 |
1. 项目案例说明
n 项目 n 可预见性和控制之间的交换 n 学习是项目的主要成本 2. 分组 项目组确定 角色分配 n Customer n Product owner n Scrum master n Developer |
实践出真知。按照SCRUM的敏捷项目开发周期,进行一次实战模拟训练。在具体实践中学习和体会敏捷开发的思想。
至少分成两个Sprint(迭代周期)。
|
| 3. 各组按照SCRUM的开发方法进行项目案例开发
Sprint 计划 Sprint 分阶段 Sprint 设计,开发 Sprint 发布和验收演示 4. 各开发组陈述 n 开发成果展示 n 经验教训 5. 总结 n 敏捷开发成功经验 n 敏捷开发注意事项
|
Sprint生命周期 分为四个阶段:计划,分阶段,开发和发布。
|
