完美的软件在世界上是不存在的。没有实际用处的完美的软件也几乎没有,有人会说一个打印 “hello world!” 的程序似乎可以称为 “完美”,这个程序是否可以算做一个软件。
那市面上充满这么多不完美的产品,软件团队为什么要把这些不完美的软件发布出来呢? 为什么不能等到它们完美之后再发布? 软件工程的一个重要任务就是要决定一个软件在什么时候能“足够好”,没有严重的“bug”,可以发布。