I'd bet a dollar per donut that all my regular readers already know I got a new job. A while ago. It's old news, really. But I suppose, given that I announced my desire on this blog, some kind of online conclusion is only fitting.
So, I've got a new job. The codebase is very badly designed, no one there seems to care much about the code other than "just make my chunk work", there are scheduling and project management problems, the programmers seem to get shafted whenever deadlines are important, the managers seem disconnected from the day to day running of the ship, the deploy process appears quite messed, there are two different sets of processes in place, correlating exactly to the two different teams that exist, we need to finish a bunch of unrealistic things promised before I ever had a say in the deadlines. Sound familiar?
But I'm actually liking my new job. So what makes this job so much better than the last job? If you've been in the industry as long as me, and have had more than a few jobs, you begin to take certain kinds of crap as a given. So (in my limited personal experience) if all jobs are going to suck, hard, in one way or another, how do you know what's good and what's bad?
In my recent job search, there were a few insights that were worth sharing. They were significant to me, your mileage may vary:
- A few jobs back, this one day, I just kinda.. didn't make it into work. Instead I spent the day cycling around town, at first running errands, then just doing anything that didn't involve work. I called my boss (Hi Dean!) around 2.30p and said "um... yah... so, I'm not going to be making it into work after all" My boss apparently intuitively knew this was not the time to harass me about my obvious disregard for work ethics. "(pause) Oooookaaay.. are you going to be in tomorrow?" My mistake was saying "yes." I did indeed show up the next day, and for the next year or two after that. Sometimes, you know when it's time to quit. Listen to that voice.
- I really wasn't certain what I wanted to do. Perhaps I could be a Business Analyst, perhaps a Project Manager, perhaps I was underpaid and needed more money, perhaps I was done with programming and I should pursue being a manager type, perhaps I should give up on the management and go back to being a programmer. Perhaps I should just throw in the towel and go be a truck driver. Then my friend Cliff told me it's helpful to decide what you don't want to do. And i realized I didn't want to work at my current company. I didn't want to be miserable day after day after day like I had been before. I didn't care about money, about careers, about any of that shite. I just really really really didn't want to work at a place that made me miserable. That was a good realization.
- Really, just the first point over and over and over again. I, myself, and many others I've friends with, will go to great lengths to convince themselves the job is the inherent challenge in the situation. Just get the fuck out of the job that makes you miserable. Sometimes clever people spend their cleverness creating clever reasons why they should remain miserable. But sometimes the right thing to do is to give up. Let go of things that cause you pain. Programmers are problem-solvers, and we don't like to give up on problems. But sometimes the right thing to do is to throw in the towel and decide "this code/job/etc is fucked, the only thing to do is throw it away and start from scratch" Most programmers are over-eager to throw away their own code, but will spend aeons justifying why they can't give up on a company.
I'm so glad I left. I've got a new job, a better job, it's shiney and sparkles and puts out on the first or second date. And I can't quantify why it's better than the last job, because, dear God in Heaven, it's got "issues". Yet, I'm happier.
Go. Be. Happier.