This is one of the toughest decisions every software developer (me included) has to make during their career. It is also a decision you may revisit again later in your career when your aspirations change.
This post will provide you with some helpful and practical decision making advice that I have used whilst mentoring many developers through this difficult decision process.
Follow your passion
I have a fundamental believe that if you do what you are passionate about, continue to learn, work hard and push yourself then you will be successful in your career. It has worked for me and many of my colleagues.
One of these colleagues is passionate about people and helping them with their careers. In 2002 when I met her, she was an admin for a senior leader, she is now herself a very senior leader and executive coach at one of the biggest banks in the world leading a transformation programme of 1000s of employees. Look what you can achieve by following your passion.
In 2004, my focus changed and I found myself wanting to interact more and more with the business and started leading teams, running projects and finally programmes of work for my clients. At this time my focus was to be the best team leader and client relationship manager I could be.In 2007 I was promoted to a senior leadership position and I spent more of my time building teams in London, New York and Singapore. I found I really enjoyed leading large talented teams, learning leadership skills and being the best senior leader I could be. I ended up in 2010 running a global team of 300, it was fantastic challenge and learning opportunity.
Although my main focus of passion changed and I do not work on code or with the clients as much, I still enjoy talking about code with the developers and discussing issues and solutions with my clients.
As you can see, doing what I was passionate about has allowed me to achieve my career goals.
What about you?
But enough about me, what about you, what are you passionate about?
Do you want to code most of the day and in your spare time participate in open source projects and read about technology?
Do you want to spend most of your day talking to clients, working with your team and in your spare time reading leadership books, blogs and listening to podcasts?
Do you still find being a developer challenging enough or do you want to experience a change? This was my decision point to move into management, after many years of being a developer, I started to spend less of my time wanted to learn about new technologies and started to think about something else.
When the opportunity came to lead a small team, I took it with open arms. It could of been the wrong choice, but I knew I was good enough as a developer to return if it did not work out.
If you cannot decide, write down side by side everything your manager does in their role and everything you do in yours. Now rate how passionate you are or feel you could be about each of them. At the end you should have an overall rating about your true passion.
If you are still undecided or find it difficult to write a list, then work with a mentor or trusted advisor to help you with the decision.
What about a career path?
The career path for management is usually pretty easy to see in a hierarchical organisation, but what about a technical career path?
Many companies employ technical team leads, architects and chief architects who specialise in technology for the industry sectors their companies are in. The more technically specialised you are, the more valuable you are to the organisation.
I was evaluating a candidate in a senior promotion committee that really impressed me as a technical leader, he specialised in performance testing and was not only the internal expert, but was also the recognised industry expert and could be found all over the internet.
I have also known two very senior developers who were employed at a very senior corporate level to cut code all day as they specialised in a niche technology that the company needed to succeed in its business.
If your company does not provide these positions and you want to remain technical, then maybe you could identify a specialised role with your manager or look for a role in another firm. Do not allow your current employer to dictate your career path as it will make you miserable in the long run.
I have seen many developers who want to stay technical start contracting as a career, it is something I did for over 10 years and I really learned a lot. Some developers I know run multiple contracts as well as develop and sell their own products to supplement their income. In 2002 I wrote and still sell a SaaS survey creation application called oneminutepoll.com, I have just updated it and renamed it to swiftsay.com