敏捷开发的基本概念:
1.什么是敏捷开发?
1)敏捷开发是一种以“人为核心,迭代式(循环渐进)”的开发方式,也就是一种软件开发流程
2)为什么说是以“人为核心”?
a.相对于瀑布开发模型,它是以文档为驱动
b.敏捷开发只选优必要的文档,或尽量少写文档,敏捷开发注重的是“人与人之间,面对面的交流”,所以它强调的以“人为核心”
3)什么是迭代?
a.指把“一个开发周期很长且负责”的开发任务,分解成“多个开发周期短且可以完成”的任务,其中每一个短周期就是称为一次迭代(一般为二周)
b.同时保证每一次迭代结束后,有一个“可交付”的软件演示产品
关于Scrum 和 XP
前面说的敏捷开发是一种“指导思想或开发方式”,它没有明确的告诉我们到底怎么做,而Scrum 和 XP就是敏捷开发的,具体方式:
1.Scrum:一种迭代式增量
软件开发过程
2.XP(极限编程):任何一个软件项目都可以从四个方面入手进行改善:加强交流,从简单做起,寻求反馈,勇于实事求是
3.Scrum偏重于过程
,XP 则偏重于实践
,实际开发中两者结合使用;
这里主要讲Scrum:
Scrum开发流程中的三大角色
1.产品负责人(Product Owver)
主要负责确认产品功能
,指定软件的发布日期和交付的内容
, 同时拥有权利接受或拒绝开发团队的工作成果
2.流程管理员(Scrum Master)
主要负责整个Scrum流程在项目中的顺利实施和进行,清除
挡灾客户和开发工作之间的沟通障碍,使得客户可以直接驱动开发
3.开发团队(Scrum Team)
负责开发工作,保质(可交付性)
的完成每个迭代(Sprint)的任务
如何进行Scrum开发?
Scrum开发模型
.首先由产品负责人(Product Owver)确定一个Product Backlog(按优先顺序
排列的一个产品需求列表)
。Scrum Team根据Product Backlog列表,做工作量的预估和安排
(开工作预估会议:让每个人负责的部分做工作量预估,精确到
每人天)
。下面就是开
迭代会议
,从中挑选出一个Story(可交付的任务)作为本次迭代完成的目标,这个Story一般控制在两周。开发团队成员从Story中认领自己的任务(
认领任务过程有一个纸牌游戏
)。将自己这个迭代任务再细分,拆成多个小任务,一般精确到
每人天
,将自己分类的这些小任务贴到任务墙上,任务墙分为5栏:未完成的任务(根据不同的颜色进行标注显示不同的优先级),正在进行的任务,已完成的任务,测试,集成
. 在迭代的过程要进行
每日站立会议
,一般控制在15分钟以内
:会议内容:
1.主要汇报昨天任务的完成情况,以及遇到不能解决的问题,可以提 出来大家一起解决 2.明确今天的任务,要完成什么,会议结束后在任务墙上更新自己的任务
. 做到
每日集成
,至少保证单元测试
通过(单元测试很重要,主要保证一些可预知的bug不会发生). 每个迭代任务完成后要进行一次
交付演示会议
,也称评审会议,会上产品负责人 和 客户都要参加. 演示会议后团队内部还要针对这次迭代开一次
总结会议
,说说这次迭代种遇到的问题,并解决它,以及在下面的迭代种避免类似的问题再次发生.之前我们就遇到如下问题:`1.写后台的同事,文档接口更新了,默默的完成下一个任务,而前端和移动端的同事不知道就傻傻的等,大大浪费了开发的时间
2.开发人员打测试包的时候就直接把包的下载链接给测试人员,啥也不说,测试的哥们懵逼了:“这个包我需要测试的是哪些内容?难道我从头到尾再来测试一次?”
再提出问题后,那么就需要解决:
我们实行互相监督的方式:
A 监督 B 每次发布测试包的时候要标明修改了哪些,如果没有标明A 提醒B
B 监督C 文档接口更新了 未说明,B 提醒C
`