技术开发 频道

Scrum 敏捷开发基础及失败成功案例分析

【IT168 技术】  什么是敏捷开发方法?什么是SCRUM?

  有人在这个字面上下功夫,说敏捷就是反应要灵敏,动作要快捷;有人还在字面上进行延伸,说敏捷就是又好又快,或者就是多快好省;有人说敏捷就是光写代码不写文档;有人觉得敏捷就是没有制度,管理松散的工作方式;有人觉得只要敏捷了,就代表高软件交付水平。

  那么,敏捷这个词到底由何而来呢?在九十世纪中期,涌现了一批软件行业的激进人士,他们反对那些以过程为本的重型软件开发方法(例如:传统的瀑布开发方 法)。在2001年,17位软件业界的专家们齐聚一堂,讨论正在兴起的轻量级开发方法(Lightweight methods)。专家们给这类轻量级的方法学起了一个新的名字叫做敏捷,并发布了敏捷开发者宣言。

  敏捷方法强调以人为本,专注于交付对客户有价值的软件。在高度协作的开环境中,使用迭代式的方式进行增量开发,经常使用反馈进行思考、反省和总结,不停的进行自我调整和完善。

  敏捷开发方法是这些轻量级方法的总称,它旗下有很多具体的开发过程和方法。主要的有:极限编程(XP)、特征驱动软件开发(FDD)、SCRUM开发方法 等等。SCRUM开发方法是由Jeff Sutherland在1993年创立,Jeff也是制定敏捷宣言的17位专家之一。SCRUM借用了橄榄球运动中的术语——一个团队拿球向前冲。

  严格的说,SCRUM是遵循敏捷方法的一个软件开发框架。在SCRUM框架中,融入敏捷开发的精神和思想,就被称作SCRUM开发方法。SCRUM是一个 什么样的开发框架呢?简单说,它由三个角色(Role),三种会议(Ceremonie),三项工件(Artifact)组成。

  角色(Role):产品主管(Procuct Owner),他负责项目的商业价值;SCRUM师傅(ScrumMaster),他负责团队的运转和生产;以及自组织的团队。

  会议(Ceremonie):迭代计划会议,每日晨会(daily scrum meetings),迭代回顾会议。

  工件(Artifact):用来排列任务的优先级和跟踪任务。待开发任务列表(product backlog),迭代任务列表(the sprint backlog),进度图(burndown chart)

  在敏捷刚出现的时候,极限编程(XP)一直是主流。但是,在敏捷方法开始在全世界流行的今天,为什么最红火的却是SCRUM?这是因为SCRUM更容易普 及和推广。其实极限编程包容了SCRUM方法。我们从工程学的角度,可以把软件开发分成两部分:过程(分解任务,排列优先级和迭代计划)和代码实现(高质 量的代码和自动化的代码保障体系)。其中最难的就是代码,最有直接商业价值的是过程。SCRUM则回避了最难的部分,加强和创新了最能直接体现商业价值的 过程部分。

  这就是SCRUM!

0
相关文章