The importance of people
Wau, 10 years in software development - congratulations Fredrik! You beat me by three years.
I guess I owe you a beer ;-)
Like you I thought countless times of quitting. Developing software can be a very discouraging.
There are more examples of how not to do it than vice versa. As Fredrik said, software
development has come a great way in recent years. Software patterns and XP are examples of great attempts of improving the quality of software development. However, one thing I've learned during the last 7 years is that it always comes down to the actual people. You want good software - hire good people and pay them what they are worth. Good developers will automatically adopt best practices without being told and the usage of patterns follows naturally. Many companies still seem to think that software development is a mindless task which does not require creativity and programmers are hence interchangeable. I highly disagree. Software development requires a lot of creativity and good software has a lot in common with a nice piece of art. I believe the model of Software Craftsmanship as described by Pete McBreen in Software Craftsmanship: The New Imperative is a much better fit for software development. Pete McBreen's book and other books like Peopleware : Productive Projects and Teams by Tom Demarco and Timothy Lister are the reason why I am still enthusiastic about software development.
However, one question which currently absorbs me much more than the actual process of software development is the current web2.0 hype and the resulting software. Where is the value in sites like YouTube and MySpace?. In my opinion these kind of site just create a uge information overload which makes it harder and harder to find relevant information on the internet. The same questions of usefulness arise for me in conjunction with Second Life. I visited Second Life recently to experience what the whole fuzz is about and from a developer perspective I must admit the whole system is quite an achievement. What I cannot understand, however, is why so many people choose to spend so much time and money in this online world? For the time being the real world is at any time ways more interesting and challenging. But maybe that's just the view of a developer who believes that a program must always be 'meaningful'. I am sure I will write more about these things while I am trying to understand their meaning ;-)