People are starting to expect more quality from their software these days, and I think that's a good thing. There comes a time in any discipline when we stop expecting things to go haywire and start assuming that what we get will be worth our time and money. There are some problems with those assumptions, especially when development tools are cheap and readily available, because that's like expecting every piece of fan-fiction in the world to be on par with the works of professional authors. Programmers get better with practice, just like anyone.
But for professional software, we expect a high standard. Our industry reply is usually "But software is really hard, you guys!" That's true, but you know what else is really hard? Designing cars and airplanes. Building skyscrapers. Surgery. Humans accomplish hard things all the time, but with the right tools, training and discipline, we pull it off.
That's something I think we're still lacking in software. There are not as many talented software developers in the world as you might think, and even fewer software project managers. Our tools are often problematic on their own, because those, too, are software projects. In many cases, developers seek to give quality by reducing scope. Most mobile phone apps do just one thing, and with such narrow focus, they can do it pretty well. It's business software that always seems to feel half-baked and full of bugs.
So how do we raise the bar on that, first remembering that good software developers are hard to find and there is no magic process that will fix everything? I think we as software developers need to suck it up and start expecting more of our own software. Test it to death before letting anyone else see it. Make sure you don't need to treat it in a certain way to make it work properly. Don't settle for half-done. And practice. Deliberately think about what went wrong and what you can do to make it work better in the future.
Mokalus of Borg
PS - I am often disappointed by my own efforts.
PPS - And that's just when I am my only customer.