©2005 Johanna Rothman.
This article was previously published in Computerworld, April, 2005.
I was talking to a relatively young developer the other day. I asked him about his career plans. “Oh, I don’t do career planning myself. I wait until my manager talks to me.”
Oops. Your career is your responsibility. Some managers are interested and want to coach you through career planning. But in my experience, even the few managers who know how to help employees plan their careers take the time to do so.
Separate the skills
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 are 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 domain expertise in depth are the two most valuable skills. It’s easy for people to learn about new tools and technology-but it’s how they apply their functional skills to the new technology that predicts success. It’s easy for people to learn about an industry-and it’s how they use their industry knowledge to develop or 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, over-all 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 any time you change roles), say for the first five to ten years, you learn new functional skills and new tools and technology.
Increase domain expertise mid-career
Once you’ve been working for 10-12 years, it’s critical that you continue learning about how to adapt your functional skills to new domains and new tools/technology. Otherwise you become like someone I met recently, who said she was a “Cobol programmer.” She had not learned any other functional skills, such as design skills, or other languages or anything other than Cobol programming. 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 may wonder why I’ve used 10-12 years as an introduction to mid-career. 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 you 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, onto a different development role-all of those changes can make you more valuable and make you more capable in any of the positions you take.
Revisit functional skills when you change roles
If you change roles in an organization, such as moving from development to test, or from test to project management, or from management to architect, plan to update your functional skills for you 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.