2019年2月14日星期四

Scrum_001:什么是 Scrum ?

Scrum 是当前最流行的一种敏捷开发方法论。
Scrum 的本意是橄榄球运动的争球,把一个开发流程的名字取名为 Scrum,是希望在开发软件时,大家像打橄榄球一样富有战斗激情和合作精神。

Scrum 五大核心价值
  1. 专注 Focus
  2. 勇气 Courage 
  3. 开放 Openness
  4. 承诺 Commitment 
  5. 尊重 Respect
Scrum 三大理论基础
  1. 透明性 Transparency
    开发过程的各个环节保持高度的可见性。
  2. 检验 Inspection
    开发过程中的各方面均可检验。
  3. 适应 Adaptation
    发现偏差,及时调整。
1. 什么是敏捷开发?
敏捷开发是一种以人为核心的、迭代增量式的、循序渐进的开发方法。
它是一种软件开发的流程,指导我们用规定的环节去一步一步完成项目的开发;而这种开发方式的主要驱动核心是人;采用迭代式开发,即整个开发过程由若干个短的迭代周期组成。

敏捷开发宣言(Manifesto for Agile Software Development)

  • 个体和互动 高于 流程和工具
    Individuals and interactions over processes and tools 
  • 可以工作的软件 高于 详尽的文档
    Working software over comprehensive documentation
    最好的文档是代码和团队。
    直到迫切需要并且意义重大时,才编写文档。
  • 客户合作 高于 合同谈判
    Customer collaboration over contract negotiation 
  • 响应变化 高于 遵循计划
    Responding to change over following a plan 

也就是说,尽管右项有其价值,我们更重视左项的价值。
That is, while there is value in the items on the right, we value the items on the left more.

2. 为什么敏捷开发是以人为核心的开发方法?
瀑布式开发模型是以文档为驱动的,在其整个开发过程中,需要写大量的文档,一切以文档为依据,开发人员都是根据需求和设计文档开发,测试人员根据测试文档测试。而敏捷开发只写最最必要的文档,它注重的是人与人之间的面对面的交流,所以它强调以人为核心。

3. 什么是迭代(Iteration)
迭代是指把一个复杂且开发周期很长的开发任务,分解为很多小周期可完成的任务,这样的一个周期就是一次迭代的过程。每一次迭代都可以生产出一个可以交付的软件产品。
在 Scrum 中,迭代称为冲刺(Sprint),Sprint 原意是短距离赛跑的意思,也就是说,我们要把一次迭代的开发内容以最快的速度完成它,这个过程我们称它为 Sprint。

切记,敏捷不是目的,敏捷是过程,为了敏捷而敏捷会导致萝卜快了不洗泥,导致 quick and dirty 式的开发。

没有评论: