I read a profound blog earlier where one Python/Django coder said we should give thanks to Ruby on Rails for making coding fun. The emphasis there was that coding should be fun. The blogger wrote up an entry that talked about the past 10-12 years worth of software careers, which focused mostly around the web and ecommerce growth. One particular part emphasized how many developers ended up getting into software as a result of greed, although originally many developers had entered the computer profession because of having fun.
Then it struck me.
The reason why software development isn't fun is because of business or rather business users. Call them what you will, program managers, product people, business analysts, project managers, etc. But these people, these Johnny-come-latelys who entered the software business via some MBA they received, more than likely never have built a damn thing in their life. At least, the ones that give us developers all the major pain. Their empahsis on budget, dates, resources, features and lack of details infuriate the average coder who just wants to put something out the door.
These days anyone with an operating budget can build a web presence.
However, not everyone belongs on the web.
Nor do they really need an IT service.
But with business days, computing has become an irreplacable aspect. Unfortunately, that implies more Johnny-come-latelys are going to infiltrate IT and software development, even though they've never been a part of software development processes in their lives.
I think in the past you had consultancies or more shrink wrapped software packages that companies could outsource or buy. You can't entirely shield developers from a looming deadline, but having people with similar backgrounds does mitigate, imo, some of the pain (which ends up being a common understanding of software processes as well as the ever need for respect). However, you want that environment of understanding and you need that layer of protection where the management just "gets" what software is all about.
So part of my solution is that you need to remove the impediments (i.e. the people enumerated above) away from software development. I think consultancies and shrink wrapped software need to make a major comeback. I think certain barriers need to be put back into place for better control. Perhaps unionizing software and IT to the point where legally companies are not allowed to participate without going through this type of middle men. In medicine, like them or hate them, you have these groups like the FDA to establish barriers and practices for that industry.
Certainly, as a consequence competition then is limited and perhaps slows down progress because of a new bureaucracy in place. However, I wonder if that sacrifice would help software and IT professionals in the long term. For instance, enforcing standards, best practices and limiting people who qualify to participate in the industry. Or perhaps that the bureaucracy that becomes established realizes that to progress faster, internally it would need to compete to push out certain technologies faster.
However, going back to the point, the one thing I definitely believe in at this stage in my career is that people who develop software ought to be managing it. And vice versa. Just like MBA candidates, software managers should not just be about managing teams for 5 years. It should be developing for a minimum of 5 years. Of course, you still should have a person with good people skills, but I think around the 5 year mark, most developers have a pretty good idea of what to do (at least, the ones that care). If you combine the two and get rid of people making poor product decisions for software (yes, this includes the web), software development ought to become less painful (for us developers at least).
Trackbacks: (Trackback URL)