技术开发 频道

Scrum实施情况调查案例分析

【IT168 技术文档】

    作者李剑,在InfoQ中文站上发表了一篇"Scrum在中国——企业实施情况调查实录"。这份调查实录,分别调查了五个实施SCRUM的公司,其中三家公司实施成功,二家公司失败。我建议所有准备或者正在实施SCRUM的人们都能来读一下。 

    在此,我们会对这篇文章中的案例分类进行分析、诊断。并探讨什么是敏捷开发方法、什么是SCRUM、使用敏捷方法需要什么条件、它可以解决什么问题以及如何在团队中合理的使用敏捷方法。

什么是敏捷开发方法?什么是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
相关文章