The Career Programmer
The Career Programmer
3 CHAPTER Good Coding Skills Are Not Enough (p. 45-46)
But I just wanna be a programmer! Why do I need all of these non-coding skills? Can't I just sit in my cubicle and concentrate on programming? Sure you can. In fact, the overwhelming majority of programmers worldwide do just that. Of course, the overwhelming majority of programmers worldwide also have an extremely common set of complaints about their jobs. The simple reality of the matter is that your job is probably not anywhere near as good as it could be, and neither is your software. We've already identified a large number of culprits that appear to be responsible for the problems we encounter, but, when it all comes down to the bottom line, it's your fault. Ouch. Can I say that? Well, perhaps, if only because I'm safe for the moment from the sting of a whiteboard eraser.
How can all of the shortcomings in your software development shop - so many of which are typically caused by managerial decisions that exhibit about as much common sense as a lima bean - be your fault? Simple. If you sit on your hands and do nothing, then you're part of the problem when you could be part of the solution. Wait, that sounded a bit like one of those trendy catch phrases. Maybe I've been hanging out in the corporate world too long. If I'm suggesting that you take a more active role in dealing with the issues you face as developers, I suppose it's not that different from asking you to storm a machine gun nest. Of course, all those years of dealing with maintenance programmers has undoubtedly prepared you better for such a task. Still, to be practical about it, anyone taking risks should have a reason for doing so. In other words, what's in it for you?
What's in It for Me?
Probably one of the biggest hassles in any full-time programmer's career is sacrificing your life to countless hours of unproductive - and very often unpaid - overtime. It's bad enough that you're given a situation where you can't get the job done working forty hours a week. The way most businesses are run, the end result may well be yet another release disaster, even if you put in eighty hours a week. That's not exactly a rewarding experience, particularly if you have to give up your life for it. When we fire up the editor, what we're reaching for is the next killer app. We are artists as much as anything else. To put blood, sweat, and tears into a project (okay, maybe not the former if you don't have to interact with the maintenance programmer) only to have management ship it in a half-baked state can be downright infuriating, and that's with a full night of sleep. I have no desire to work day and night as it is. Doing so on a project destined for failure adds insult to injury.
Along those lines, one of the things that are in it for you as an artist is the ability to ship a better-quality product. Whether your name is in the About box or not, your signature is on every piece of software you ship. We all tend to take a great deal of pride in our accomplishments, so who wants to be associated with anything other than a spectacular success? Do I work for money or for ego? Both. (In that order, for the record, but definitely both.) If you want to be involved in projects that make you proud, you have to do your part to help them survive in the wild.
Actually, I've always had a pretty bad attitude towards companies that take advantage of programmers and expect them to dedicate their every waking minute to the job. Maybe it's because I've been a musician all my life and have seen how nightclubs and other aspects of the music industry tend to pay almost nothing. They get away with this because they know we love music so much that we'd probably pla