✅什么是银弹,什么叫做没有银弹?

典型回答

这个问题是很多读者在一些文章中评论的,因为我多次提到过没有银弹,那么这是个啥意思呢?

没有银弹,其实来源于一本书,书名叫《没有银弹:软件工程的本质性与附属性工作》翻译自《No Silver Bullet—Essence and Accidents of Software Engineering》

这句话表达的意思就是:由于软件的复杂性本质,没有一个什么技术、手段、方案是可以解决所有问题,而不带来任何负面影响的。

书中的故事:

在民俗传说里,所有能让我们充满梦靥的怪物之中,没有比狼人更可怕的了,因为它们会突然地从一般人变身为恐怖的怪兽,因此人们尝试着查找能够奇迹似地将狼人一枪毙命的银弹。

我们熟悉的软件项目也有类似的特质(以一个不懂技术的管理者角度来看),平常看似单纯而率直,但很可能一转眼就变成一只时程延误、预算超支、产品充满瑕疵的怪兽,所以,我们听到了绝望的呼唤,渴望有一种银弹,能够有效降低软件开发的成本,就跟电脑硬件成本能快速下降一样。

但是,我们预见,从现在开始的十年之内,将不会看到任何银弹,无论是在技术上或管理上,都不会有任何单一的重大突破,能够保证在生产力、可靠度或简洁性上获得改善,甚至,连一个数量级的改善都不会有。

然而,怀疑并非悲观,虽然我们预见不会有任何重大的突破,而且事实上,我相信发生这种重大突破也不符软件的本质,但是,仍然有许多令人振奋的创新正在进行当中,若能按部就班、持之以恒地予以发展、散布,并灵活运用的话,想必应该会得到一个数量级的进展。快捷方式是不会有的,但有志者事竟成。

人类能克服疾病的第一步,就是以细菌说(germ theory)淘汰了恶魔说(demon theory)和体液说(humours theory),正是这一步,带给了人类希望,粉碎了所有奇迹式的冀望,告诉人们进步是要靠按部就班、不辞劳苦而来,得在清洁卫生方面持续不断地投入心血,养成良好习惯,才是正道。如今,我们面对软件工程也是一样。

原文: https://www.yuque.com/hollis666/xkm7k3/tm8ko8dwb2wui579