敏捷开发模式

一、什么是敏捷开发?

一种以人为核心,持续迭代的开发方法
迭代:将一个大任务分解为多个小任务,

          将任务进行分期开发,每一期完成

          后进行评审和总结

二、敏捷开发分为哪些呢?

Scrum (增量开发),注重开发过程

XP (极限编程),注重结果

三、敏捷开发 Scrum 怎么理解?

Scrum 将开发任务分为多个周期 (Sprint),

需要先对每个 Sprint 确定需要完成的需求

几个基本术语:

冲刺周期 (Sprint):中文译为冲刺、短跑,

是 Scrum 的专有术语,冲刺周期,通俗的

讲就是实现一个“小目标”的周期,一般需要

2-6 周时间

用户故事 (User Story):用户的外在业务需

,拿银行系统来举例的话,一个 Story

可以是用户的存款行为,或者是查询余额

等等,也就是所谓的小目标本身

开发任务 (Task):由故事拆分成的具体开

发任务

四、Scrum 里面的成员包括?

产品负责人(Product Owner):与客户沟通

需求,交付日期,与团队沟通需求,考虑

团队研发实力
流程管理员(Scrum Master):负责整体进

度,没有行政权力,不帮团队做决定,但

需要提出建议
团队成员(Scrum Team):一般是自组织

的,一般 5-9 人 (设计师,程序员,架构

师,测试等)

五、Scrum 工件包括?

产品需求列表 (Product Backlog):产品首

先将需求按照优先级进行排列,产生一个

Product Backlog

迭代需求列表 (Sprint Backlog):有了

Product Backlog,我们需要通过 Sprint

Planning Meeting (Sprint 计划会议) 挑选

出用户故事 (Story) 作为每次迭代完成的

目标

冲刺燃尽图 (Sprint burn down):它表示

的是剩余工作量与剩余时间的关系,用于

提醒大家项目进度和要完成的任务,说白

了就是记录当前周期的需求完成情况

六、Scrum 会议包括?

需求会议(Sprint Plan Meeting: Sprint):主要

产品负责人团队共同确定需求
每日站会(Daily Standup Meeting):只有团队

成员才可以发言,其他人只能旁听,每个人都

需要回答三个问题:

昨天完成了什么;

今天打算完成什么;

工作中遇到什么问题;
可以将三点内容写成标签放到任务版上(可以用

JIRA)
审核会议(Review Meeting):运营人员,产品,

邀请的用户操作后进行的功能评审
回顾会议(Retrospective Meeting):总结一段

时间后的开发遇到的问题,以便之后的迭代中

进行改进

开发一个 Sprint 时需要进行需求(Sprint 需求

会议确定),开发,测试等工作,需要每天开

Scrum 站会,主要让成员明白现在的开发情

况,进度,和提出遇到的问题 Sprint 时间结

束时,需要得出一个产品版本,用户会去用,

使用后进行反馈

 六、敏捷开发和瀑布式开发区别?

1. 工作方式:

瀑布式开发:

① 重视和强调过程文档,以文档驱动项目,

   将软件项目开发周期严格划分为几个固定

   阶段 (需求分析,系统设计,软件设计,

   编码,测试,交付),每个阶段结束都有

   对应的详细文档作为输出;

② 上一个阶段的输出就是下一个阶段的输

   入,直至完成整个开发流程

敏捷开发:

① 更加强调人和协作 (团队之间,客户与团

   队之间),在高度协作的环境中使用迭代方

   式进行增量开发

② 客户可对每次迭代的成果提出修改意见,

   开发人员进行调整和完善

③ 进行多次迭代直至完成完整产品交付

2. 优点:

瀑布式:

每个阶段目的明确,阶段人员完全专注

    于该阶段的工作,有助于提高阶段效率

② 由于存在详细的过程文档,在早期就能

    明确提出项目的范围和概况,能够更有

    效的组织和调配资源开展项目

敏捷开发:

阶段性成果可以在开发过程中被客户查

    验,从而降低软件开发风险性

灵活性高,需求的变更可在任何时候进

    行

3. 缺点:

瀑布式开发:

① 开发过程中大量的文档,极大的增加了

    工作量

② 项目后期才能展示成果给客户,增加了

    项目开发的风险

③ 需求变更成本高

敏捷开发:

① 最终交付的内容无法预测,预期和实际

    完成的内容经常会有很大差异

② 敏捷需要高水平的协作以及开发人员和

    用户之间的定期沟通,业务和IT人员在

    沟通前需要做大量的准备工作,在很多

    情况下,业务的沟通时间无法保证

适用项目:

瀑布式开发:软件需求十分明确并且不会

                     有频繁变化的项目

敏捷开发:需求不明确、具有创新性或者

                  需要抢占市场的项目

 

你可能感兴趣的:(java面试题,敏捷流程)