项目管理 – 敏捷和Scrum开发方法是什么?

我不断听力和阅读很多关于敏捷和Scrum开发方法,但我不知道他们可以做什么,或者他们的使用,什么样的项目适合这种方法?

你能指出一些有用的信息吗?

从哪儿开始 ?

有什么优点?

最佳答案
在软件开发Agile is a set of values and principles中由一群行业领先人物在2001年制定。

Scrum是一个具体的软件开发方法,可以追溯到1995年,由“敏捷宣言”的两个原始签署国创建。 Scrum支持敏捷值。

软件项目管理的早期方法通常被称为“waterfall model”,这意味着完成任何项目所需的一系列明确的步骤:定义,计划,组织,执行,然后关闭。

这代表了一个非常整洁,简单,并且从项目管理理论的角度来看都是方便的抽象。当一个阶段跟随另一个阶段时,可以为每个阶段定义清晰的输入和输出,隔离和识别在每个阶段最有用的技术和工具。这是减少项目管理复杂性的一个明显的例子:将整体分解成更小的位,直到你明白每一点,然后希望你掌握其整体的机制。

但是,一旦提出了瀑布抽象,它就开始泄漏。首先,事实证明,现实生活中的过程不能被明确地划分为多个阶段,通常定义在似乎是计划,组织甚至执行阶段仍然发生变化。所以在理论上,这些阶段被允许重叠,理论家开始绘制各种各样的图表,可以看到定义阶段如何逐渐耗尽,因为执行开始在组织阶段收回。那么再次只有在理论上,才有可能在规划阶段准确估计开发一段软件需要花费多长时间。显然,在实际中,估计和其他计划必须在执行阶段进行调整,这产生了一系列复杂但不是非常有意义的方法,如Earned Value Management

瀑布抽象的长期问题产生了许多“agile”项目管理方法(敏捷,Scrum,XP编程等),尽管在更详细的层面上有许多差异,使用相同的基本原则来解决产品开发复杂性:

>该项目通过经典项目阶段(定义,规划,组织,执行和关闭)进行了一些小的迭代。
>每次迭代的目的都是产品功能或非功能特性相对较小但语义上完整的增量。
>整个项目的最终用户参与度很强。

由于每次迭代都通过一个单独的定义和规划阶段,各种估计和规划活动的时间范围大大降低。它有助于实现更高的准确性,从而使得访问可行性,测量价值和成本更容易。

小增量有助于控制范围,评估变更的实用性并保持用户参与,因为总是有全新功能的产品。当增量保持较小时,同时组织一批大型项目的团队也更容易,这样做有助于解决任务依赖问题。

用户反馈是迭代方法的关键,因为它可以帮助产品逐渐向正确的方向发展,从而提供更多的实用性,而不是由瀑布“大爆炸”方法驱动的punctuated equilibrium自然而然的用户反应的不确定性。

转载注明原文:项目管理 – 敏捷和Scrum开发方法是什么? - 代码日志