The hard part is getting the social dynamics right. Askers want to ask any question, answerers want to answer interesting questions. Keeping both groups happy is a hard task.
People complain about questions being closed (technically: "on hold") and marked as duplicated, but it serves a real purpose as no one wants to answer the same question over and over again. How you do it matters a lot though.
I have a number of gripes with Stack Overflow, and there are quite a few things I would do different. But I see a lot of people complaining about it who probably don't realize just how hard of a problem it is.