Software always has bugs that need to be fixed. It is never finished because it has an infinite number of ways it can go wrong. The same is not true for any of the non-software parts of software design.
If you're a software shop you should have everyone who doesn't write code on a contract and not be afraid to terminate them when the product is mature.