我知道对我来说,我首先开始遵循项目管理的瀑布方法,随后我采用了软件设计的预测方法。我的意思是我们有大量的文档、UML、数据库模式、数据字典、工作流程、事件图等。
在软件领域工作了 10 多年,我发现采用响应式方法进行软件设计要现实得多。我经常遵循 Scrum 方法进行项目管理,并且很少生成大量文档。我们的工作流程规范非常少(尽管它们仍然有用)。这是一种更加动态的软件创建方法。当然,随着时间的推移,随之而来的是频繁的重构,因为我们发现随着时间的推移,我们会发现新功能,而如果我们事先计划好,事情将会发生巨大的变化。
对我们来说最大的区别是第一种方法需要更长的时间,在软件构建领域似乎更频繁地失败,并且不太灵活。第二种方法提供了更大的灵 active ,使我们更快地意识到失败(因此我们可以更快地纠正),并在每次迭代结束时提供某种形式的功能。
从经验中了解双方,我仍然发现许多人喜欢瀑布方法而不是软件开发的敏捷方法。我不明白。
问题:为什么有人会在所有研究都支持敏捷的情况下使用瀑布而不是某种形式的敏捷?使用瀑布而非敏捷的有力论据是什么?
最佳答案
当我开始编程(同样使用 COBOL)时,瀑布是"new"方法。今天,我会告诉你我使用瀑布式敏捷方法。对于较大的系统,我发现瀑布式启动效果最好。不要创建庞大的文档(在我看来,这是浪费时间),而是采取一些步骤,例如创建 UI 原型(prototype)和/或用例来解决手头的业务问题。一旦我们确定了问题范围并且有了扎实的理解,我们就进入敏捷开发模式。
为了回答你的问题,我认为瀑布之所以存在的一个重要原因是很多人不喜欢改变。改变是可怕的,从瀑布式转向敏捷式是一个很大的改变。
关于agile - 预测性与 react 性软件设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1203007/