“要做好工作,工匠需要最好的工具” 《论语》
软件方法是指采用选定的过程技术来提高软件开发的质量,从而减少缺陷,最终实现更短的交付周期和更高的价值。一种软件方法常被认为优于其他所有方法,这始终会引发无休止的争论. 我必须说,不存在一种最佳的开发方法,不同的方法适用于不同的项目背景。什么方法最好,取决于方法是为谁服务的、在什么情况下、为了什么目的等等;说没有一种方法对所有软件开发者都最好,也意味着不同的方法对不同的团队或不同性质的项目才是最佳的。
格雷迪·布奇对此说道:
“如果你想建一个狗屋,基本上你可以从一堆木材、一些钉子和几件基本工具(比如锤子、锯子和卷尺)开始。几个小时后,你很可能就能得到一个功能合理的狗屋……如果你想建一栋高层办公楼,就需要进行大量的规划……你只是负责开发和部署建筑的更大团队中的一员,因此团队需要各种蓝图和模型来相互沟通……”
你会对一个小型网络应用和一个NASA太空探测器采用相同的方法吗?很可能不会。你会对一个六人团队和一个六十人团队采用相同的方法吗?同样,很可能不会。正如斯科特·安伯所指出的,不同的情况显然需要不同的方法。事实上,并不存在一种适合所有情况的软件开发解决方案,事实上,设计师需要拥有广泛的工具可供选择,了解每种工具的优缺点,并能够快速决定在特定情境下最适合采用哪些工具,以实现理想的流程.