Definitely this. But I object to the "bad developers" part. More often than not, this is a result of the environment and not of the developer himself.