I believe all of that is fine, the problem is spending too much time on it. For example, writing comprehensive unit test may be not much better than having just a few, because there is no way to test for every possible bug. Also, in some situations it is better to have code with a few bugs than no code at all.