Monday, October 15, 2007

I'm Bad, I'm Nationwide: Job Security vs. Career Security

Living in New Mexico will do strange things to your brain. For instance, I use Spanglish in irc. I don't even speak Spanish particularly well, and nobody on irc understands it. It's just this weird side effect. Another weird side effect: living in New Mexico can hook you on ZZ Top.

ZZ Top owns the radio in New Mexico. They're on the classic rock stations, the hard rock stations, the 80s stations, the country stations, and even the Spanish-language stations. I have several times in New Mexico changed the station during a ZZ Top song only to land on another station playing another ZZ Top song. I have even more than once changed the station in NM during a ZZ Top song only to land on another station playing the same ZZ Top song. New Mexico radio belongs to ZZ Top. Everybody else is just visiting.

"I'm Bad, I'm Nationwide" is a ZZ Top song. Hopefully you can figure out what it's about, but just in case, the singer's point is that he is bad, and he is nationwide. I also am bad, and nationwide. I'm off to Ohio tomorrow morning, I was in Philadelphia last month and Chicago the month before, and I live in Los Angeles, New Mexico, and Silicon Valley.

This proves I'm nationwide. Let me tell you how I'm bad. I've twice refused to do work because it was boring. Saturday I turned down work this way, and earlier this year I got fired for it. But my baddest moment in the Rails community came when I was banned from the Rails list.

The list moved to Google Groups, and did it without warning or announcement, which bothered some people. I was one of those people. I had the Rails list filtering to the trash based on the email address. The migration broke my spam filters and fuxored my productivity. (For contrast, right now I have four messages, total, in my Inbox. This is normal for me. It takes some serious effort.) So I reported the list admin to Google Abuse for signing me up to a Google Group without warning me. Turns out the list admin was DHH, and a lot of people on the Rails list thought I shouldn't have done that. They expressed this to me with the maturity and good manners many of us have come to expect from the Rails list, I responded at the same level, and DHH banned me from the list.

Speaking of DHH:

There can be no doubt that DHH is both bad, and nationwide. In fact, he's one further: he's bad, he's worldwide. Speaking all over the world about Rails makes him worldwide; responding to enterprise critics with a simple "Fuck You" makes him bad.

It's good to be bad. It's good to be nationwide. It's even better to be worldwide.

How can we apply the lessons of ZZ Top in the workplace?

Obviously if you walk into your boss' office, jump on his or her desk, pull down your pants, and perform toilet functions all over the place, that would be bad. But it would not be nationwide, and it would not encourage becoming nationwide. In fact, it would not really be bad, it would just be stupid. But this silly example highlights a deeper paradox: that which is bad is usually local, and that which is nationwide is usually good.

It's also important to remember we're talking about being bad and nationwide (or worldwide). George Bush, for example, might seem to be bad, and worldwide, but in reality he is merely evil, and worldwide, which is not the same thing. This, of course, gets into the question of the fundamental nature of badness, and such paradoxes as "not bad meaning bad, but bad meaning good." If this confuses you, just remember: Run-DMC and ZZ Top are good role models. George Bush is not.

The reason it's good to be bad, and nationwide, is that job security does not exist any more. Job security, in reality, was never important; it was a proxy, in an earlier version of our society, for income security. Obviously, as much as our society has changed, income security remains important.

Job security no longer gets you income security, but career security might still be a valid goal. Personally, I want to have more than one career, but unlike a lot of people, I don't want to replace the career I currently have; I want to add on a few additional careers that are also interesting to me. This brings up questions like what a career even is any more, and these are valid questions, but that's for another post. Right now I just want to show you how being bad and nationwide (or worldwide) make for career security.

Being bad and worldwide was great for DHH's career. In fact, he was bad and worldwide when he made his "Fuck You" slide, and being bad made him more worldwide. This happened because people notice when you're bad, and being worldwide, or nationwide, or any kind of wide, is closely linked to being famous. I say "closely linked" because being wide is not the same thing as being famous, but it is a similar thing. Wide people are not always famous, but famous people are always wide. When DHH told the enterprise people "Fuck You," he was already famous and wide; this notorious act made him more famous, which in turn made him more wide.

Notorious acts can, however, backfire. When I told the Rails list something similar, it made memore famous, yet it also made me less wide. This is because being bad makes you skinny unless you get away with it, in which case it makes you wide. This brings us back to the toilet functions paradox. Being bad and nationwide at the same time is not necessarily easy.

In fact, at the time, the weirdest criticism I got on the Rails list was that I would never get a job. Several people said it, or something like it. One person said this event would come up in job interviews. (It hasn't.) Another person said that if I didn't like DHH signing me up to receive emails, I should program in Java. Still another person said that if I didn't like DHH signing me up to receive emails, I should program in PHP. I have to wonder how DHH must feel about the idea that choosing to program in Ruby and/or Rails represents a decision about his personality, let alone his email signup technique, more than any other factor. I wouldn't want that kind of responsibility, and fortunately for DHH, I'm not giving it to him. (I also think there's some pretty faulty logic involved in conflating the guy's personality with an inherently impersonal move like migrating a mailing list.) But the important point here isn't rehashing an ancient argument; the important point here is that many people thought what I did would be bad for my career.

In the short term, this little fracas made me skinnier, but in the long term, it made me wider. It encouraged me to further question DHH's wisdom, and I ended up with specific techniques to work around limitations in Rails. That's been useful in projects.

Likewise, when I got fired for refusing to do boring work, that made me wider as well. In fact I ran into the manager who I refused to do boring work for, just the other day, and he invited me to hang out with him. The same company that fired me for refusing to do boring work still let me keep the RailsConf ticket they bought me.

If that seems weird, here's a contrast. Many years ago I was one of the only people to still have a job after the dot-com bust. But I quit that job, moved to the middle of nowhere, and learned to draw. I knew people in technology who wrote me off as a failure because of this and laughed about it. Some even refused to believe I had quit.

The moral of the story is pretty simple. If you walk away from something, and go on to nothing, people think you were wrong to walk away. If you walk away from something, and go on to do well, people think you were right to walk away. (Although learning to draw in the forests of New Mexico was a wonderful experience, there are very materialistic people who will never respect that kind of thing, so as far as they could tell, I walked away and went to nothing.)

Like DHH, like myself, Jay Phillips' career security derives from being bad and nationwide. Thus is the wisdom of ZZ Top verily shown. Quod erot demonstrandum, amen. You might be satisfied with the exposition, but if not, you might want to know how you, too, can become bad and nationwide. I'm going to show you, but first, let's look at a half-naked woman in a bear suit with a toy bear.

Apologies to anyone offended, btw. I just like that picture. I have no idea wtf is going on there. I'm not even sure where I found it. I wanted to work it into the conversation logically, but you try that.

To become bad and nationwide, you need to give people something else to talk about besides your badness. Coming up with bad things to do will be easy and fun; the hard part is coming up with something else for people to talk about as well. Nobody would remember the methodphitamine if it hadn't been a powerful technique. If you tell everybody you have a Ruby technique called "The Crack Whore Factory," and your technique turns out to be puts :hello_world, nobody's going to take you seriously. They're just going to think you're an idiot. You have to have something useful and/or valuable to justify the attention.

In a sense, being bad and nationwide is really just a special case of Seth Godin's Purple Cow philosophy of marketing. You get more business, and better business, by being unique; being bad is one way to be unique. But if you're unique, yet not particularly valuable, that's like the pet rock. Your uniqueness may power sales, but only for a brief time. Staying power comes from uniqueness and value.

Speaking of cows, the notorious screenwriter Joe Eszterhas once wrote a screenplay about the President of the United States having sex with a cow. Although Eszterhas had a great track record of writing hits, and an army of powerful friends in Hollywood, nobody bought that screenplay or made that movie. See the pattern? Usually bad and nationwide, Eszterhas was in this case merely bad.

Long story short, the key to being bad and nationwide is to do something useful. Create something new, that definitely came from you, that other people value. Rails, Adhearsion, or even just a blog. This simple step is much more important than most people realize. It has to trace back to you personally, or it's useless for your career. As programmers, we are in the position of working for people who do not have the ability to determine whether or not we are good at our jobs.Even other programmers sometimes have trouble figuring out who is or isn't a good programmer. For potential managers and/or potential clients, the hiring and firing processes are both essentially random, unless you have some obvious distinguishing feature. That makes marketing yourself essential.

I once heard a story about a company where one dedicated programmer did all the real work, and all the other programmers were coasting off his efforts. (One of them even ran a porn site from his desk instead of working.) This programmer usually came in around 10 or 11AM, scruffy and unshaven, so, after a while, management fired him for being unprofessional. Every other programmer there immediately realized that management would eventually learn that they hadn't been doing anything for months, so they all quit too. Management was left with nothing. Nobody would come back unless the guy who did all the work came back, and he wasn't coming back. Even though this sounds like a farce, it's a true story, and it happens all the time.

You might wonder why I'm telling you this, when my best bet for career security is to hunker down and create some wonderful new thing. There's a couple reasons. First, talking about it is easier than doing it. Second, this blog is a wonderful new thing. Third, I'm studying acting and visual FX programming, I'm looking for some time to work on my drawing skills again, I want to finish one of my attempts at writing a novel, and I have a very interesting idea for a side business in hypnosis. (I have very good training in that field.) Long story short, I don't have the time, and this blog gives me all the career security I need in technology for the time being. (Also, at the moment I'm just more interested in learning Seaside, Processing, Rubinius, and Mindstorms than creating something new.) But for those of you ambitious enough to want something more, or cautious enough to want to avoid any career obstacles during the next bust, there are your steps: Be bad; be nationwide; make something cool. They're simple enough to understand. Doing them is the hard part.

@anon - boredom considered harmful! if you're not into what you're doing, you won't write good code. developing the habit of writing bad code - or worse yet, of tolerating bad code - is a very bad thing for your career. it's better to spot boredom from far away and avoid it, but if you have to choose between finding a new job and writing code which blunts your edge, find a new job.

Giles, man, right on. Fuck security. Fuck jobs. Fuck the presentation layer of life (I just made that up). It's all an illusion anyway; do things that matter** and good things will come. It took me way too long to wake up to that, and this post sums up that experience nicely I think. Plus, it's rock n roll. The kids love the rock and roll.

**NOTE: I'm defining "things that matter" as things that, first and foremost, matter to you, but hopefully things that have a nice community side effect as well. What good is boring execution of things that a million others have done before? It's worthless. Life is too short.

I like the lovely lady in the bear suit. That was a nice break in the read. :)

I couldn't help but chuckle at the story of the programmer who did all the work getting fired, and the company being left with nothing. I heard a story like this from a friend just recently. He was working at a major software company, who will remain nameless, whose major business is products for a particular language, but they were starting to branch out into a different language. My friend started on this "new branch" team this past spring as a contractor. One guy on the team had been there for a few years, and was the workhorse. He didn't say anything about anyone else mooching off this guy.

News had gotten out that a layoff was coming soon, and everyone assumed that they'd be let go, except for the workhorse programmer. That was the logical thing to conclude. So my friend and the rest of the team started looking for work elsewhere.

The kicker is one day my friend gets invited into his boss's office, is told that the workhorse is being laid off, along with the rest of the team, but they'd like to keep him on full time. He asked what would happen if he refused, because he was conscientious. He didn't want to cost the workhorse guy his job, plus he was having second thoughts about the wisdom of taking the job there in the first place. His boss said they'd keep the workhorse if he declined. So he did. He had already been in contact with an old employer, and they were interested in having him back. The problem for management was they had already told everyone else, including the workhorse, that they were being laid off. The workhorse was pissed. They tried to invite him back. He refused. So basically this "new branch" language group lost its entire development team, because of management's ineptness. They got the "order of operations" all wrong. If they were going to tell their top guy he was gone, they should've been sure my friend wanted to stay first. He mentioned as well that in legal terms, being a publicly traded company, management screwed up communication about the layoff, tipping people off to it before the decision had actually been made. You would think this is just management 101, I don't care what kind of business you're in.