I'm sorry. You're asking me to... enumerate every single problem in software engineering? I don't see the point. How about we take one of the most impressive, extreme cases of software ingenuity: launching the Space Shuttle.
http://www.fastcompany.com/magazine/06/writestuff.html
"But how much work the software does is not what makes it remarkable. What makes it remarkable is how well the software works. This software never crashes. It never needs to be re-booted. This software is bug-free. It is perfect, as perfect as human beings have achieved. Consider these stats : the last three versions of the program -- each 420,000 lines long-had just one error each. The last 11 versions of this software had a total of 17 errors."
Do you think that perfection, that stability, in the face of lives at risk for every mistake, is a suitable place to suggest that taking LSD could make them better? These are the best programmers in the world, by many standards. And they're not writing node.js servers and map-reduce queries, they're using billions of dollars of hardware to achieve manned space flight. And they don't take LSD.
"It's strictly an 8-to-5 kind of place -- there are late nights, but they're the exception. The programmers are intense, but low-key. Many of them have put in years of work either for IBM (which owned the shuttle group until 1994), or directly on the shuttle software. They're adults, with spouses and kids and lives beyond their remarkable software program.
That's the culture: the on-board shuttle group produces grown-up software, and the way they do it is by being grown-ups. It may not be sexy, it may not be a coding ego-trip -- but it is the future of software. When you're ready to take the next step -- when you have to write perfect software instead of software that's just good enough -- then it's time to grow up."