大家好!今天,我想和大家探讨一下一个在我们工作中经常出现的误解:敏捷是不提倡建模的。我希望通过这篇文章,我们可以一起解开这个误解,并理解敏捷和建模的真正关系。
背景
“不建模不编程”是一种源于软件工程领域的理念,它主张在编写代码前应当先建立一个有效的模型,该模型应能充分反映待开发系统的主要特性、需求和行为。
这种理念的由来可以追溯到软件开发历史初期,当时,人们开始认识到在编程之前,对系统进行适当的模型化可以有效地指导代码的编写,降低开发复杂度,减少错误,提高软件质量。
随着时间的推移,建模的重要性被越来越多的软件工程师和研究者认识和接受,因此,"不建模不编程"的理念就逐渐形成和传播开来。
敏捷与建模的误解
首先,我认为这种误解可能来自于对敏捷宣言中"可工作的软件胜过详尽的文档"的过度解读。有些人可能会认为,因为敏捷强调的是交付可工作的软件,而不是详细的文档,所以它是反对建模的。然而,这种理解其实是不准确的。
敏捷与建模的真实关系
敏捷并不是反对建模,而是反对过度建模和不必要的文档。敏捷团队充分认识到,建模是理解问题和设计解决方案的重要工具。好的模型可以帮助团队成员理解业务需求,设计出满足需求的系统,并有效地沟通设计决策。然而,敏捷团队也认识到,过度的建模和过度的文档化可能会消耗大量的时间和资源,而这些时间和资源应该被用于开发可工作的软件。
因此,敏捷团队会尽量做到“足够”的建模。他们会在需要的时候创建模型,但不会花费不必要的时间去维护模型的详细程度。他们会创建足够详细的模型,以支持当前的设计和实现决策,但不会为了模型本身而建模。
结论
在此,我希望我们能正确理解敏捷和建模的关系。敏捷并不是反对建模,而是主张高效、恰当的建模。建模是一个有价值的工具,但它的价值取决于它如何帮助我们实现目标,即交付可工作的软件。让我们拥抱敏捷,正确使用建模,一起创造出更好的软件吧!