天天看点

《软件工艺》—第1章“足够好”的软件开发方法的危害

本节书摘来自异步社区《软件工艺》一书中的第1章“足够好”的软件开发方法的危害,作者【美】pete mcbreen,更多章节内容可以访问云栖社区“异步社区”公众号查看。

“足够好”的软件开发方法的危害

软件工艺

在软件变得越来越重要的同时,它们是否也变得越来越臃肿、错误越来越多?我还记得,在过去的日子里,整个文字处理软件可以装进一张软盘;现在,我们已经看到不少的应用程序连一张光盘都装不下了。有很多打包的应用程序,它们每次发布新版本都会要求用户购买更多的内存或者更快的计算机,而且其中大多数的新特性根本不能很好地工作。

你的软件是否越来越好看,却越来越难用?有时,用户们甚至会想:开发者是不是花了太多的时间在应用程序的观感上,以至于忘记了考虑别人怎么使用这个程序。

项目是否用掉了比预先承诺更多的时间,而交付的成果却更少?“雾件”(vaporware)是软件工业给我们的词典加上的一个有趣的词汇。软件产品的前几个版本也许还能够快速发布,但每次发布改进版本所需要的时间越来越长,软件也变得越来越复杂。随着复杂度的上升,“将缺陷减少到可接受的程度”也会耗费越来越多的时间。

当你报告一个缺陷时,软件开发者是否显得对你的需要漠不关心?现实就是如此残酷:在“足够好”的开发方式中,这种冷漠是必要的利弊权衡。如果一个缺陷仅仅影响一小部分的用户,那么花费人力来修复这个问题就是不经济的。如果你够幸运的话,你将可以找到其他的办法来绕过这个错误,并继续等待下一个版本发布。

“足够好”的软件开发方式是有害的,因为它继承并发扬了“缺陷是不可避免的”这一荒诞不经的理论。事实正好相反:缺陷之所以存在,恰恰是因为我们采用了这种疯狂的开发方式。“足够好”的软件开发的特点就是:近乎疯狂地编码,在最短时间内得到一个“拥有全部特性”的应用程序,随后是一个若有若无的测试、排错阶段。开发者哪怕只是动一动“排除所有缺陷”的念头也会被认为是浪费力气,因为一大半的特性很可能就实现在现有的错误之上。由于“足够好”的开发方式将编码和测试分离成了两个截然不同的阶段,所以用这种方式开发出的应用程序中必定会包含大量的缺陷。

发布含有已知错误的软件,这不是一个好主意。即使所有已知的严重错误已经被修复了,“发布含有已知错误的软件”这种做法仍然会向用户传递错误的信息:开发者不知道如何修复软件中的错误,甚至开发者根本不关心软件的质量和可靠性。1在其他行业中,你不会看到这种情况。你可以随便找一家汽车代理商,他们会告诉你:如果有其他高可靠性的产品,销售低可靠性的产品会对自己的声誉造成多大的损害。

1 mark minasi,《软件阴谋》(the software conspiracy),mcgraw-hill,2000。

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

继续阅读