敏捷软件开发

与传统方法相比,Scrum和敏捷软件开发方法可以显著减少时间并提高项目质量。这是如何。

通过丹尼斯Brandl 2009年7月1日

在每个软件项目中,不可避免地会有人说:“只要给我几个开发人员,我就可以用一半的时间完成这项工作!”

在大型开发项目中,每个人似乎都把大部分时间花在开会上,让其他人知道正在发生什么以及存在什么问题。在“把球向前推进”(使用体育术语)方面,似乎经常没有付出什么努力。事实上,当用户需求发生变化和发现新的解决方案时,许多工作似乎都在向后移动。

有一种方法可以解决这些问题。这种方法是有争议的,因为它违背了“需求越多越好”的信念。许多项目经理相信,只要用户能够写出更好的需求,那么项目就不会延期和超出预算。不幸的是,用户经常不能清楚地表达他们的需求,原因至少有两个:需求随着时间的推移而变化,用户不知道什么是实际可能的。被称为“Scrum”和“敏捷”的方法解决了这些问题。

Scrum是用于管理项目的增量框架,通常与用于软件项目的敏捷软件开发方法相结合。Scrum这个名字来源于橄榄球,在橄榄球比赛中,球队通过来回传球,以小步伐向前移动球。在软件开发中,Scrum描述了一个与最终用户密切合作的小团队,以小步骤推进项目代码。

Scrum定义了一组实践和预定义的角色,用于通过一系列称为sprint的小迭代来运行项目。每个“冲刺”周期为10到20个工作日。Scrum是为需求快速变化或不被充分理解的项目设计的。

组建一个Scrum团队

Scrum团队通常有5到9个成员。这些人包括“产品负责人”,他是用户或客户代表,以及ScrumMaster,他负责帮助团队使用Scrum流程,并保护团队不受无关的外部影响。团队成员被定义为“鸡”或“猪”。

这些术语来自一个关于鸡和猪的笑话:“一只猪和一只鸡走在路上。鸡看着猪说:“嘿,我们为什么不开一家餐馆呢?”猪回头看了看鸡,说:“好主意,你想给它取什么名字?”小鸡想了想说:“为什么我们不叫它‘火腿和鸡蛋’呢?”“我不这么认为,”猪说,“我可以承诺,但你只会参与其中。”

产品负责人、ScrumMaster和团队成员是猪——他们致力于项目和过程。经理、其他用户和利益相关者都是小鸡——他们只是参与到这个过程中。Scrum项目中猪和鸡都是必需的,但真正的工作是猪做的。

获得敏捷

敏捷定义了一套基于迭代开发的软件开发方法,其中需求和解决方案都是通过协作过程共同开发的。敏捷定义了软件开发方面,包括对开发代码的持续同行评审,与用户实时交互以评估想法和实现,以及以小时或天为单位的快速开发周期。

敏捷方法有很多名字,包括极限编程控制工程]、特性驱动开发和动态系统开发。敏捷方法的早期改编者被比作“牛仔程序员”,但是这些方法是定义良好的,如果诚实地应用,可以显著减少项目时间和提高项目成功率。

如果你的项目似乎从来没有按照时间和预算完成,那么Scrum和敏捷可能是你的答案。它们是软件项目的一种经过充分验证的方法。

阅读Dennis Brandl的其他工程- it软件教程

作者信息
Dennis Brandl是北卡罗来纳州Cary BR&L咨询公司的总裁,网址是www.brlconsulting.com。他的公司专注于IT制造业。与丹尼斯联络:dbrandl@brlconsulting.com