If You're Lazy, Go Flip Burgers
I was struck recently (again) by the amazing laziness of some developers in our industry.
The way I see it, there're good laziness and bad laziness. Good laziness is that laziness that motivates us to seek the most efficient and best way of doing something, both for now and for the long term. This sort of laziness requires intelligence, planning, and a solid work ethic. It says, for instance, that once I'm done with this application, I never want to think about it again unless I want to add features, and in that case, I want it to be as easy and painless as possible.
In other words, it is long-term laziness. It is laziness that motivates me to learn as much as I can about what I do; it is laziness that makes me take those extra steps to plan, design, and write solid, efficient code--so that the total amount of work I (or those who work with or after me) have to do is oodles less than it would be otherwise. And, consequently, it is laziness that saves my company a wad of cash and makes them look better all around.
There is another sort of laziness that I have encountered far more often, unfortunately. This is the sort of laziness that requires no intelligence, little or no planning, and a what's-the-least-amount-of-effort-I-can-put-into-this-now attitude. This is the kind of laziness that doesn't want to do any technical specifications but just wants to start coding. This is the kind that prefers to copy and paste code instead of refactoring it. This is the kind that doesn't spend any time learning or working any more than is necessary to get a 'working' product. This is the kind of laziness that costs companies millions (if not billions) every year.
In my years of working in the software development industry, I think back and can think of only a handful of folks that are long-term lazy. Most just do the minimum it takes to get by and get paid and turn around and demand the same compensation that the long-term lazy want (and/or get). After all, we all do the same job, right? I would say no. There's a lot more to being a software developer than getting a grasp on a language and forking out software the 'works' occassionally.
In a previous post, I talked about working smart instead of working hard. These differing forms of laziness apply directly to that concept. Those who are short-term lazy are, much more often than not, the ones who end up having to work a lot more (and/or forcing their co-workers to work a lot more). On the other hand, you can't always spot them by this trait because they can also be the ones who come in at 9a and leave a 4p and let their co-workers sweep up after them, forcing them to end up working smart and hard.
And really, that's what leaves me writing this. If you don't care about your job and just do the minimum to get by, go flip burgers. I'm not saying that you can't or shouldn't be a smart-worker and flip burgers. In fact, I'm sure I could scour the burger joints, facilities services, and other less prestigious lines of work to find many smart-workers, and I wish I could--Lord knows they deserve a better-compensated, more respected job than a lot of the slobs I've worked with. What I am saying is that these short-term lazy types would have a lot less impact on the rest of us if they were constrained to flipping burgers; heck, our whole economy would likely be better for it.