I was talking to a relatively young developer the other day, and I asked him about his career plans. “Oh, I don't do career planning myself,” he said. “I wait until my manager talks to me.” Oops. While it's true that some managers are interested in and want to coach you through your career planning, in my experience, even the few managers who know how to help employees plan their careers don't always take the time to do so. Face it: Your career is your responsibility. Here's how to start planning it right.
Your technical skills can be organized into four buckets: functional skills, domain expertise, tools/technology and industry expertise.
Functional skills are the skills you learned in school or have learned from books. How to develop, design, test, write, manage, schedule — all of those are functional skills. Domain expertise comes in two flavors: problem-space and solution-space. Problem-space domain expertise is how quickly and how well you understand the problems your product is trying to solve. Solution-space is how well you understand the internals of the product — how well the product solves the problem.
Tools and technology expertise includes all the languages, operating systems and other tools you know. Tools and technology expertise is the easiest to acquire. Industry expertise is how well you know the industry you're in.
Of these four areas of technical skill, your breadth in functional skills and your ability to acquire in-depth domain expertise are the two most valuable. It's easy for people to learn about new tools and technology, but it's how they apply their functional skills to the technology that predicts success. It's easy for people to learn about an industry, but it's how they use their industry knowledge to develop, test or manage a product that matters.
Focus on functional skills early. At the beginning of my technical career, I focused on my functional skills: how to be a better designer, debugger, unit tester, coder, overall software developer. When I transitioned into testing, I refocused on my functional testing skills: how to be a better tester. When I moved into management, I again refocused on my functional skills, this time in management: how to give feedback, how to coach, how to plan. Early in your career (and anytime you change roles), say, for the first five to 10 years, you learn new functional skills and new tools and technology.
Increase domain expertise midcareer. Once you've been working 10 to 12 years, it's critical to continue learning about how to adapt your functional skills to new domains and tools/technology. Otherwise, you become like someone I met recently who said she was a “Cobol programmer.” She hadn't learned any other functional skills, such as design skills, languages or anything other than Cobol. It's not only that you shortchange yourself when you don't learn new functional skills or new domains; you also decrease your value to your current (and future) employer.
You might wonder why I've used 10 to 12 years as an introduction to midcareer. The most valuable people aren't afraid to change roles. I don't mean that people should change roles every year — that doesn't help them learn the functional skills or product in depth. But as an example, working as a developer, moving into a technical lead role, moving back to a development role, moving into a project management role, moving on to a different development role — all of those changes can make you more valuable and capable in any position you take.
Revisit functional skills when you change roles. If you change roles in an organization — such as moving from development to testing, from testing to project management or from management to architect — plan to update your functional skills for your new role.
If you've been a technical lead and you're moving to an architecture position, you'll want to learn or reinforce new techniques to allow you to develop ideas and design more effectively alone and with others.
When I realized I was interested in learning more than just technical functional skills, I started working on my project management and people management functional skills so that I could be successful in those areas. It doesn't matter which functional skills you start to improve once you've been working for a while; it only matters that you decide you're ready to expand your skills in another dimension.
Remember the nontechnical skills. No matter where you are in your career, remember to pay attention to skills like writing, presentation, negotiation and influence skills, to name just a few. They are helpful no matter where you are in your career.
Don't wait for your manager to plan your career. Wherever you are in your work experience, take some time to sketch out your future. The more you learn, the less of a commodity you are to your employer — and the more valuable you are.
© 2005 Johanna Rothman. This article was previously published in Computerworld, April, 2005.
Like this article? See the other articles. Or, look at my workshops, so you can see how to use advice like this where you work.