Nowadays, I spend so much time online, that I have little time to do real reading.  But after missing my flight to Boston yesterday, I found myself with a few hours to burn and could actually put a dent in my backlog of Harvard Business Reviews that I had been meaning to get to for a while.  I wound up reading a great article, an excerpt from Management Challenges for the 21st Century by the late management guru Peter Drucker.  The thesis is that knowledge workers must take responsibility for their career path and act as their own personal CEO.  No one other than you is looking out for your career.  You will have a working life span of 40-50 years and it is up to you to make sure that you are both productive in and satisfied with your job.  If your expertise is Java today, it better not be your expertise in thirty years.  You had better adapt.

So how should a developer operate as a CEO?  What do they need to think about.  What questions do they need to have answered?  Let’s discuss a couple required characteristics of a good CEO and then apply them to your career path.

SIDENOTE: Often, when we think of career growth, we equate growth to earning more money or a getting a better title.  These may be evidence of growth, but are not requirements.  Career growth may also involve trying new technologies, changing roles, or changing industries.  It may mean getting out of technology

Taking Responsibility

You, and only you, are responsible for your career path.  Accept this.  It is not your boss’s job to get you trained on new technologies, it is your responsibility to make this happen.  Figure out what you would like to learn and then ask your boss to help you make it happen.  If you do not take responsibility for asking, it is very unlikely that you will get what you want.  Regardless of whether your employer will pay for your education, do it anyhow.  Learn a new language (programming or foreign).  Read books and then apply them to your work.  Go to an interesting conference.  While it is definitely preferred for your boss to play a part in what languages you learn or what books you read, it is your responsibility not your boss’s to make it happen.

Determine Strengths

What are you good at doing?  Drucker posits that the only way to figure this out is by using feedback analysis.  He suggests that after every key decision or action that you make, write down what you expect the result to be and then review it in 9 to 12 months.  See if there are patterns between where you anticipated the results and where you did not.  From this feedback, figure out what you are good at and what you need to improve.  In addition, you may see things that you have no business doing.  For example, software developers often make atrocious project managers.  For some, this may because they lack training in the area; for others it may be that they lack the ability to develop an effective plan.  By looking at how you have done, you can see if consistent lack of planning is a problem and try to figure out if you can improve it or if you need others to help you with it.

In addition, look at how you operate outside of just writing code.  Take the opportunity to learn about things that extend outside your area of expertise.  Read books on marketing principles, go out on sales calls, take a basic class on accounting.  Improving yourself in non-technical areas will help you better understand demands on your co-workers and you may find that you have strengths in areas you never anticipated.

Know Your Core Values

Core values are the things that you feel are truly important to you; they are different than ethics.  Ethics relates to doing what is right.  Values relate to doing what you believe in.  For example, one of my key values is that I feel you should only hire the very best technical resources, that these resources should have problems explained to them and then should be empowered to make decisions as to how to best solve the problems.  The corporation I was working for decided to take a different philosophy where the business users were more responsible for deciding how to solve the problem.  That may be the right decision for the organization, but it violated my personal values.  Other examples of value decisions a company will need to make may include:

  • The level of R&D investment to make
    • Use and contribution to open source software
      • Whether people should be compensated by stock options or by cash
        • What accounting rules to use to recognize revenue
          • Support for telecommuting</ul> Just because you may disagree with a company’s values does not mean it is a “bad” company.  But trying to stay in an organization that has values that conflict with your values will only lead to frustration.

          Planning for the Future

          Take some time to think about what you where you want to be in five years.  Figure out what skills and experiences you will need to achieve this goal.  Write down what it will take and review the list regularly.  Another great suggestion that Drucker has is to have a hobby.  You never know if that hobby will lead to a second career.  After twenty years working with technology, you may lose your passion and you may be prefer a change in career direction.  By encouraging other interests, you may find that your desired career path is no longer in technology but is in another area