i007.cc

i007.cc

优先队列-降维打击

敏捷项目开发方略及最佳实践

敏捷项目开发方略及最佳实践

前言

个体和交互胜过过程和工具;可以工作的软件胜过面面俱到的文档;客户合作胜过合同谈判;响应变化胜过遵循计划……当这些脍炙人口的敏捷宣言在耳边响起时,不知不觉中我们已经进入了一个敏捷时代。这个时代需要敏捷,他不仅是一种软件开发的方法,更是一种生活态度。

欲善敏捷开发,必先利敏捷思维,本次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生命周期 分为四个阶段:计划,分阶段,开发和发布。

 

 

 

 

 

 

 

 

 

 

 

发表回复