Another more subtle implication falls out as well: The attitude that the only real satisfaction you are going to get from life will be your job. This may just be a result of the black or white rhetoric Mr. Spolsky uses. Certainly there is satisfaction to be gotten from your work, and maybe a large amount. But other things yield satisfaction as well.
You never get to do things the right way. You always have to do things the expedient way. This is true in some cases, but not all. There have certainly been projects that I've worked on that solved a one-time problem and were never used again. Or that weren't given enough thought and had a horde of changes to make later. Or were handed to me on the assumption that the users wanted it when in fact no research had been done to actually find out if they did, and it turned out that they didn't. But not in every case. We've also hit the bullseye and wowed the crowd, and not simply by luck, but by careful analysis. Especially as I settled in and learned how things operate, and what is ultimately important to the distirict. These are things you can only really learn over time. And usually, there has been time to go back and refactor those projects that gained traction. (Whether I've been too lazy when I had the chance is another story.)
My boss has made decisions about technology without really listening to my thoughts. For instance, he went full bore on SharePoint without me really buying into it. In the end, we do a lot of customization for SharePoint, and my opinion of it has changed. But usually, and especially in the technologies used for development, I get to have my way. If I want to use Perl, Ruby, Java, .NET, it's usually left up to me. The reason for this is that my boss and the people who use our software really don't care how we do our job, just that we do it. This may sound callous, but it's actually not. I don't particularly care how a teacher teaches, as long as my child learns. I sense that in a company that produces software, a manager will have a much deeper knowledge of underlying technologies, and as a result may be more difficult to sway.
You [don't] get to make beautiful things. This is certainly arguable. Some applications we've produced were quite attractive, and using them was so intuitive and easy that no training was required. You may think the function of the software was boring (generating reports for student test scores based on demographics), but the software itself was attractive. Software is for doing things, and usually those things, by themselves, are nothing you are going to consider beautiful or artistic. Because software is a tool, just like a car, or a portable MP3 player. Even if it's the most beautiful MP3 player in the word, it still has a function that can be mimicked by less beautiful players. The "beauty", if any exists, is in the way the tool looks and behaves. This can apply to in-house software as well as any other.
Management doesn't care about you. This is another cut-and-dry statement that just doesn't map to real life. My job in the school district falls under "support services", along with food service (school lunches), maintenance, business services, etc. Teaching is the district's primary function. Yet I have never run into the attitude that I simply don't matter. When principals and teachers are shown how they can look up their student's progress throughout the school year within seconds, they usually appreciate the support services I provide. And don't think management isn't paying attention to that.
Some management may be more callous than others, I realize, but in my experience, most people are not so simple minded that they don't understand that the primary function of an organization usually requires many secondary functions in order to operate, and they know that those functions are important.
Your work is your life. Although this isn't stated directly, Mr. Spolsky's talk certainly seems to imply it. That you better watch out: if you don't land a job in that 20%, not only will your job suck, but by association, so will your life. I have found quite a few things as fulfilling as work. Becoming a father, training a German Shorthair for bird hunting, mastering the snowboard (okay, "mastering" might be a bit strong of a term). To name a few. My faith is another, very important fulfilment, but I won't push that on you. (I will say that we do a lot of missionary work in the Philippines and South Africa, and have been able to do children's feeds and provide medical care in those places, and that certainly is fulfilling.)
What about software? What if this is an itch you have to scratch? I certainly agree on this one. It's doubtful, working in-house, that you are going to get to build software you care about deeply. But how many open source projects are there? Why not start your own? Or build shareware. Really, the opportunities are limitless. I've done several things outside of my "day job". I've created aumpel, a shareware MP3 converter, madxlib, an open source DLL for MP3 decoding, and I've just launched Sylbi, an open source conversation system built with Perl and MySQL. I don't list these to brag. I just find it silly to say that the only way you are going to build software you truly care about is by finding a job in a software publishing company. There are many ways. The Internet offers them in abundance.
Mr. Spolsky's claims, especially couched in the terms he chose, hardly do justice to the 80% out there doing in-house programming. Some are very happy with their situation, some may not be, some might just be complacent or view work as simply a means to an end. The important thing is that it doesn't just "suck" or "not-suck". Life really doesn't work that way.
No comments:
Post a Comment