The year is 1995. Fresh from helping design CDE Mail and contributing to the SGI desktop, I find myself in an interview. The interviewer asks one of the text book questions, "Where do you see yourself in 5 and 10 years?" Of course my answers is exactly what any senior engineer in 1995 would have offered.
"In 5 years I will be running a consulting company helping organizations ranging in size from small startups to the Fortune 500 discover ways to more effectively leverage the Internet to reduce costs and expand their market. In 10 years, I'll be a fellow at a one of the largest success stories of the Internet."
Of course I didn't give that answer. If I had that kind of foresight, I wouldn't even bother working. I'd pick the 10-100X stocks every year and watch it half the year from my beach front home and half in my mountain retreat. But I don't have any such clairvoyance so like most of us, I work. But I'm blessed in that I have a career doing something I truly enjoy and also pays well.
My career got off to a strange start. At one of my school's career fairs, the organizer incorrectly listed my degree as chemical engineering. I spent the day with interviewers who had been sent to tell me they weren't hiring chemical engineers. One of them, from a medium sized company in Sunnyvale, decided that they were interested in me as a computer scientist. An interview intended to politely dismiss me turned into my first job, in the Silicon Valley no less. So perhaps serendipity was meant to be my career plan from the start.
Career planning in software, I believe is unlike careers in many other disciplines. It has a lot more to do with the project opportunities than any goals you might set for yourself. Each of my career advancements came because I asked for opportunities that were realistically just a bit beyond my current skills. I've had the good fortune to have people with the willingness and authority to take a risk on me. Part of the willingness was due to demonstrated ability but part of it was also due to my initiative in asking for the opportunity.
Serendipity played a role in most of the opportunities as well. Sometimes I looked around as one project was finishing up and selected something I thought would be a challenge. At other times, opportunities were handed to me to tackle. A few times I sought challenges that would help round out my resume but those decisions were certainly infrequent.
There was one career decision I made several years ago though that is definitely in line with more traditional career planning. Every engineer reaches the point where they have to decide between a management or technical track. I thought I would go through management because the rate of ascent and overall pinnacle is better. I tried my hand at management and discovered I really wasn't very good at it. So that left me with one option. Drive up the technical path.
So am I advising you to ignore career planning? No, but hey, it's worked for me! Seriously though, with the turn of technology, it is impossible to even know what technology you'll have to know in 5 years and certainly not 10 years. If your intention is to stay on a technical path, then relying on serendipity to broaden your knowledge and skill isn't a terrible idea. It certainly leads to an interesting career if nothing else!