Now, sometimes a designer can recognize a bad idea, but they still implement it because they can't think of a better idea right now. This is a mistake. If you can think up only one solution to a problem but it is obviously stupid, then you still need to say no to it.
At first this may seem counter-intuitive – don't problems need to be solved? Shouldn't we solve this problem in any way we can?
Well, here's the problem: if you implement a "bad idea", your "solution" will rapidly become a worse disaster than the original problem ever was. When you implement something terrible, it "works", but the users complain, the other programmers all sigh, the system is broken, and the popularity of your software starts to decrease. Eventually, the "solution" becomes such a problem that it requires other bad "solutions" to "fix" it. These "fixes" then become enormous problems in themselves. Continue down this path, and eventually you end up with a system that is bloated, confused, and...