Before you can do any thinking "outside the box" you need to realize that there is a box and that you've placed yourself within in. For the past two decades, I have been almost constantly rethinking my career path the kind of work I like to do, the types of jobs I like (and don't like). Periodically, I'll have small insights when I learn something about myself.
At least ten years ago, I made a set of Pro and Con lists, variously entitlted, Programmer, System Administrator, Tech Support, Quality Lead. In the years that followed, I added Technical Writer and Webmaster to the lists. I added a list of generic Preferences and another for Interest Areas. But I was still thinking inside my box.
Last week, I had a job interview. One of the interviewers looked at my resume and commented that I have done many different things and held many positions programmer, tech writer, quality lead, web weaver. Then he asked a thought-provoking question:
"What gets you out of bed in the morning?
What do you really love to do?"
I thought about it, and then I said "quality, process, and documentation". We talked some more, but my brain continued to churn over the question.
Write or code? Code or write?
For many years, I have been struggling with the question of "what do I want to do with my job". I've reconsidered many times what I want to do, what sort of job I want. As a result, I've had many different types of jobs, including Unix programmer, part-time system administrator, Perl programmer, technical writer, quality lead, project manager... I have an interesting, and eclectic, resume.
I've become quite familiar with the sorts of projects and jobs I do and don't especially enjoy. I really like certain types of programming (data filters, tools) and using scripting languages (e.g. Perl) while I dislike other types of programming (large application development) and using compiled languages (C++, Java, much of C). I enjoy technical writing but don't care for business writing. I love all things technical, but can't stand marketing. I don't want to manage people.
I enjoy QA but not certain types of testing. I enjoy many aspects of Sys Admin, but not the 24/7 requirement or 6:00pm installations. I like doing support, but not by telephone (I hate the telephone). I enjoy configuration management but I don't much like doing product builds.
I enjoy bug fixing, problem solving, and maintenance and like doing these things much better than I like designing applications. As a former co-worker once pointed out to me, I greatly prefer strategy to tactics.
Lately, I've been having a dialog with myself that goes something like this:
If I could choose a job, really choose, what sort of job would I want? One thing that dawned on me a while back is to realize what sort of work I do when I'm not employed. What sort of personal projects do I get involved in?
So, does that mean I should write for pay? I didn't like the Sr.Tech Writer job at Apple but it wasn't the writing so much that frustrated me... there were a lot of good things about that job, the most important being that by the last 4 months I was doing it entirely off site, only coming into the "office" for meetings. And that didn't bother anybody, including my manager.
- I write. I create web pages. I write essays. I do weblogs. I read.
- I don't do a lot of programming. I could... and I don't. When I needed a replacement for cgiemail, I found one on the Web.
- I like Perl, but I don't hack much code in my spare time.
Of course, I didn't write any side articles during that whole year. But was that because I didn't want to write? Or simply because I was too busy and stressed to take on additional projects?
I was so happy to be leaving Apple at the time I left because I didn't have to get involved in, or have to say "no" to, the upcoming (IMHO misguided) plan for us all to spend a week writing a Cocoa App. If I had wanted to write a Cocoa App I would have done so. If I had wanted to be a Cocoa programmer I would have applied for that job. I thought the idea was lame, foolish, and pointless. I was very happy I never had to argue the point!
I had a recent chat with a recruiter, where I said "I'm both a programmer and a tech writer" and the recruiter asked "Which do you like better?". I told him 'It depends on the job'." Often, when I'm coding, I'd rather be writing. But at Apple, I got so tired of the writing and wanted to go be a coder again for a while.
What I really want is a fun, exciting, job that matches my skill set and catches my interest. One that matches my definitions of fun and exciting. Pizza lunches, movies, and beer bashes do not make a job more "fun". Layoffs, changes of direction, a false sense of urgency and artificial deadlines provide excitement I can do without!
I don't want to write vaporware (or write about vaporware!). I don't want to write "catchy ad copy". I don't want to be asked to try to convert people; people should make their own decisions. I certainly don't want to be asked to lie to users or investors (shudder).
I want to feel that I'm doing interesting work that someone else will appreciate and use. I want to feel that I'm making a contribution; I want to feel needed.
I've rearranged the paragraphs above, but they're all excerpted from writing I've done in conversations with myself over time. The answer isn't unusual or new. In fact, it's right there in the last paragraph of the section.
I want to feel that I'm making a contribution.
I want to feel needed.
What's new is my sudden ability to see this as the most important piece of the puzzle. When I think back to jobs I really enjoyed, I think of these:
- My first job, at Genentech, in which I answered questions for folks in the group, did minor bits of system administration, and wrote data filters to order for the chief biostatistician. I wrote tools to improve the department workflow and project process.
- Parts of my second job, at Apple, when I wrote useful utilities, such as adduser, and joined other members in planning and discussing the best ways to implement the product.
- My first year at Taligent, where I joined others in determining workable ways to improve quality and process, extracted information from engineers, asked probing questions, reviewed documents... There was even a little bit of systems administration in that job and I loved that.
- The beginning of my job at Incyte, where I was hired to review and rework the existing set of moldy, buggy scripts that processed the data.
- Much of my job at Deltagen, where I was half of the programming and IT department I set up internal domain name service, improved the email system, created data filters, and wrote tools to allow the scientists to check their sequences more easily.
Last week, after my brain worked on the question for a while, I had the answer. It came in the form of an epiphany, one of those insightful, lightbulb-over-the-head, "Ah Ha" moments when you feel like slapping your forehead and saying "Du-u-h! WHAT was I THINKing before this?!"
Code or write? Both, and either. Programmer, web weaver, or documentation specialist? None of the above and all of the above.
I've been asking myself the wrong questions. I've been mislabeling the boxes.
I have a passion for quality (assessment and assurance), process (creation and improvement), and documentation (of all forms). I enjoy solving problems. I enjoy writing. I love the Web. I'm great at reviewing (code and text) and fixing (bugs and text). I love working on document mechanization, automated text processing, and data filters.
I want to do internal "support" work. However that doesn't mean classic tech support, sys admin, "help desk" work. I want to do quality assurance and web work; I want to write tools, data filters, and docs. I want to improve process. I want to do it all, but the essential, motivating, binding thought is, I want to do it all internally. I want my work to support the project and the people working on the project. I want to be near the people I work for, get their feedback, improve my work to improve theirs.
I want to be in an "internal support" role. I want my job to be heavy on QA, process, and documentation. I want the opportunity to write Perl, English, and HTML. I don't have to choose; I only have to redefine.