我知道我最开始使用的是瀑布式项目管理方法,同时采用了预测性软件设计方法。这意味着我们有大量的文档、UML、数据库模式、数据字典、工作流程、活动图等等。
在软件行业工作了十多年后,我发现从反应式角度来看待软件设计更加现实。我经常采用Scrum项目管理方法,很少生成大量文档。我们几乎没有工作流程规范(虽然它们仍然有用)。这是一种更具动态性的软件创建方法。当然,随着时间的推移,随着我们发现新功能,我们需要频繁地重构,因为如果我们事先计划好了,可能会对事情产生巨大的影响。
对我们来说,第一种方法需要更长的时间,在软件构建世界中似乎更容易失败,并且不够灵活。第二种方法提供了更多的灵活性,让我们更快地意识到失败(因此我们可以更快地进行纠正),并在每个迭代结束时提供某种形式的功能。
尽管有着丰富的经验,我仍然发现许多人喜欢瀑布式方法而不是敏捷方法来进行软件开发。我不明白其中的原因。
问题:在所有支持敏捷方法的研究中,为什么有人会使用瀑布式方法?使用瀑布式方法而不是敏捷方法的有力论据是什么?
在软件行业工作了十多年后,我发现从反应式角度来看待软件设计更加现实。我经常采用Scrum项目管理方法,很少生成大量文档。我们几乎没有工作流程规范(虽然它们仍然有用)。这是一种更具动态性的软件创建方法。当然,随着时间的推移,随着我们发现新功能,我们需要频繁地重构,因为如果我们事先计划好了,可能会对事情产生巨大的影响。
对我们来说,第一种方法需要更长的时间,在软件构建世界中似乎更容易失败,并且不够灵活。第二种方法提供了更多的灵活性,让我们更快地意识到失败(因此我们可以更快地进行纠正),并在每个迭代结束时提供某种形式的功能。
尽管有着丰富的经验,我仍然发现许多人喜欢瀑布式方法而不是敏捷方法来进行软件开发。我不明白其中的原因。
问题:在所有支持敏捷方法的研究中,为什么有人会使用瀑布式方法?使用瀑布式方法而不是敏捷方法的有力论据是什么?