It's been some time that I'm feeling disappointed with software development, probably any developer felt this some day in his/her career. Software is hard, hard to get it right, and things get pretty ugly with time.
Despite all work done in better software management and development, still, getting it right is hard. We surely have people who can make good software, I will cite ThoughtWorks as a example. But it seems to me that the distance from the day to day software I live from what is posted in PlanetTW is enormous, at least by my experience.
One fact is that every company has/need some in house software, the big ones and the small ones. They have IT managers which were elected to hire developers in the field to write some code. The managers don't know what correctness means for software, and the developers know that with enough tries something eventually will work. Both far from know who was Edsger Dijkstra and understand the reasons he wrote:
Unfathomed misunderstanding is further revealed by the term "software maintenance", as a result of which many people continue to believe that programs - and even programming languages themselves - are subject to wear and tear. EWD1036
This is not just about throwing stones on everybody roof since mine is made of glass too, I consider myself one more developer trying to make better code everyday. I'm probably not alone when I mention that the "best things I wrote were in my spare time", and that was not because it was off-work code, it was work code, real work code, but I knew what needed to be done and dedicated myself to discover "how" should be done. Time not allowed in many companies.
The real world of today's developer seems a schizophrenic one. In one hand writing, modeling; in the other hand not sure if wrote, modeled or spoken the true. Still amazes me how much "It works!" I hear in software development.