有没有最好的软件开发方法?

“工欲善其事,必先利其器” 《论语·魏灵公》  “工欲善其事,必有器” 《论语》 软件方法是使用选定的过程技术来提高软件开发工作质量的实践,从而减少缺陷,从而最终提供更短的交付时间和更好的价值。一种软件方法通常被认为比其他任何方法都好,但总是无休止地争论不休。我必须说,没有一种最好的开发方法,不同的方法最适合不同的项目环境。什么是最好的取决于方法是为谁,在什么情况下,为了什么目的,等等;说没有一种方法最适合软件开发人员,也就是说不同的方法最适合不同的团队或不同的项目性质。 Grady Booch 说: “如果你想建造一个狗屋,你几乎可以从一堆木材、一些钉子​​和一些基本工具开始,比如锤子、锯子和卷尺。几个小时后,你很可能最终会得到一个功能齐全的狗屋……如果你想建造一座高层办公楼,你会想要进行广泛的规划……你将只是一个更大的群体的一部分负责开发和部署建筑物,因此团队将需要各种蓝图和模型来相互沟通……” 您会为小型 Web 应用程序和 NASA 太空探测器采用相同的方法吗?可能不会。你会在六人团队中采取与六十人团队相同的方法吗?再一次,可能不会。正如 Scott Amber 所指出的,不同的情况显然需要不同的方法。软件开发没有一刀切的解决方案,事实上,设计人员需要拥有广泛的工具供他们使用,了解每种工具的优缺点,并能够快速决定最合适的工具在给定上下文的理想工作流中应用。continue reading →