A common observation of the software development industry is that it's immature. And that's true when compared with more established professions related to construction or medicine. I've been thinking that this may be due, in no small way, to the way software developers are treated, which Neil McAllister outlines in his article Developer Burnout: Time To End The Disposable Geek Mentality.
Neil captures the core of the issue in the following paragraph:
Long work hours, missed vacation and sick time, and lack of recognition and advancement are endemic in the software development industry. For all the talk of a "knowledge economy," some of the smartest and most highly specialized members of the workforce are often treated like disposable labor, easily replaced by newer, cheaper recruits. The result, predictably, is burnout, where the most seasoned team members leave the organization for greener pastures -- and or vacate the field completely.
Every sofware developer with a year or two's experience has served their fair share of crunch time. There's always something else that needs to be done, deadlines are a constant squeeze and the result is a worn out workforce. And what's next once the deadline is reached? More of the same.
Sure, managers can do stuff to help out here by allowing key developers to take some time out from the critical path. But usually, the key people are the ones that are always busy. Does taking an agile approach improves things? Yes, but the same demands on the software developer persist.
The thing is, I'm not sure why this is the case, or what could change things. Perhaps software development isn't looked at as the highly skilled profession that it really is? I know, unlike doctors, we're not saving lives (for the most of us at least), but with IT at the center of everything, surely developers should be more valued?
Maybe software development has become too cheap - everyone wants to save money, so why pay $100K for a developer if you can get one for $50K? It's not all about the money, but salary is a big issue for software developers, the same as everyone else. If you can give a developer a salary that means they don't need to worry about other things, such as how to pay this bill, maybe you improve productivity and the value you get from the developer. The following presentation, from Dan Park, gives some great insights into what works for motivation:
Maybe I'm wrong, but the broad consensus seems to suggest that software developers aren't treated as well as they should be. Have you got any horror stories that support this claim?