Agile的哲学是“结果是最重要的,所有的过程手段都是为结果服务的;
如果过程导致结果不理想,那就改进这个过程”
经验主义的三个支点是透明(transparency)、观察(inspection)、调整(adaptation)
Scrum是基于经验主义建立的敏捷开发框架,是一个增量迭代的开发过程 由Ken Schwaber创建
Scrum 强调通过经验性的过程,逐步检查和调整团队的协作和工作模式,持续改善。
团队在哪些方面做得好,应该坚持;哪些方面有待改进,并挖掘其本质原因,
定义具体的改进计划,以在下一个sprint去切实实施。
为保证回顾会议的有效,组织和团队都应该承诺愿意做出适应性的改变
Scrum适合开发复杂多变的产品
Scrum增量迭代开发过程:
伪码来源 http://www.infoq.com/cn/articles/scrum-pseudo-code
void run_scrum() {
const int Sprint_Length = 10;
int velocity = get_past_performance();
// Scrum 中的三个角色
Role team, product_owner, ScrumMaster;
// Scrum 中的制品
Product_Backlog product_backlog;
Sprint_Backlog sprint_backlog;
Burndown_Chart sprint_burndown_chart, release_burndown_chart;
Product_Increment product_increment;
//开始项目的三个准备条件
setup_team(team);
define_Definition_of_Done(team, product_owner);
initial_project(&product_backlog ); //标红的为输出参数,将带回值,下同
//每一次while 循环为一次迭代
while (!is_empty(product_backlog)) {
run_sprint_planning_meeting(product_backlog, velocity, &sprint_backlog);
//每一次for循环为一个工作日
for(num_of_day = 1; num_of_day <= Sprint_Length; num_of_day ++){
run_daily_scrum_meeting(&sprint_burndown_chart);
do_development_activity(sprint_backlog, &product_increment);
}
run_sprint_review_meeting(product_backlog, product_increment);
run_retrospective_meeting();
update_product_backlog(&product_backlog, &release_burndown_chart);
update_velocity(&velocity);
}
}
如果过程导致结果不理想,那就改进这个过程”
经验主义的三个支点是透明(transparency)、观察(inspection)、调整(adaptation)
Scrum是基于经验主义建立的敏捷开发框架,是一个增量迭代的开发过程 由Ken Schwaber创建
Scrum 强调通过经验性的过程,逐步检查和调整团队的协作和工作模式,持续改善。
团队在哪些方面做得好,应该坚持;哪些方面有待改进,并挖掘其本质原因,
定义具体的改进计划,以在下一个sprint去切实实施。
为保证回顾会议的有效,组织和团队都应该承诺愿意做出适应性的改变
Scrum适合开发复杂多变的产品
Scrum增量迭代开发过程:
伪码来源 http://www.infoq.com/cn/articles/scrum-pseudo-code
void run_scrum() {
const int Sprint_Length = 10;
int velocity = get_past_performance();
// Scrum 中的三个角色
Role team, product_owner, ScrumMaster;
// Scrum 中的制品
Product_Backlog product_backlog;
Sprint_Backlog sprint_backlog;
Burndown_Chart sprint_burndown_chart, release_burndown_chart;
Product_Increment product_increment;
//开始项目的三个准备条件
setup_team(team);
define_Definition_of_Done(team, product_owner);
initial_project(&product_backlog ); //标红的为输出参数,将带回值,下同
//每一次while 循环为一次迭代
while (!is_empty(product_backlog)) {
run_sprint_planning_meeting(product_backlog, velocity, &sprint_backlog);
//每一次for循环为一个工作日
for(num_of_day = 1; num_of_day <= Sprint_Length; num_of_day ++){
run_daily_scrum_meeting(&sprint_burndown_chart);
do_development_activity(sprint_backlog, &product_increment);
}
run_sprint_review_meeting(product_backlog, product_increment);
run_retrospective_meeting();
update_product_backlog(&product_backlog, &release_burndown_chart);
update_velocity(&velocity);
}
}