For most software developers, there comes a moment in their careers when they ponder next steps. Should I continue in my current role, gaining more and more experience and eventually building more complex and challenging applications? Or should I follow a different career path, more focused on managing teams? What factors should you take into account when making such decision? Here are the ones that I consider to be the most important.
In general, are you enjoying your current role? It might seem obvious to answer ‘No’, as you otherwise wouldn’t be considering a career change, but think about it for a bit longer. Is your lack of satisfaction really caused by the role, or maybe it’s because of your current project, assignments, the people you’re working with or some other factor that can be changed?
When was the last time that you felt good about your job? When were you last excited about your next day at the office? What is different from then to now? Before you make a serious career decision, try to recreate that situation and see if you can feel the energy once again. You could discuss such options with your manager or coworkers, consider moving to another project or volunteer for additional tasks – depending on what made you happy the previous time. You should also consider other technical paths, like becoming a trainer or possibly an architect.
Once you are confident that this type of challenge is needed, a manager’s job can be extremely satisfying – if approached well. While you no longer have direct control over the results, it’s a great experience to see how your efforts bring benefits in the long term. Helping your team members grow and achieve their own goals is another source of fulfillment. There’s also a lot of room for creativity: team building, strategic planning, making decisions that shape your projects or even the whole company – all of that can turn out to be a wonderful journey.
Leading a team requires applying more soft skills than technical work. Qualities and abilities such as:
- Effective listening
- Delivering feedback
- Building trust
- Time management
- Conflict resolution
- Building engagement
are important for all employees, but need to be used to a much larger extent by a leader. So if you want to be good at this job, you are forced to improve on them. As a side effect, you can become a better person and enhance your behaviors in other areas of your life. If you approach it correctly, it can help you improve relationships with your family and friends, deal with personal problems more effectively, and so on.
Have you ever thought about what you want to do in your 40’s? What are your long-term career goals, what type of job would you like to perform? If you intentionally want to continue in a programmer’s role, eventually getting onto more and more advanced projects – that’s perfectly fine. However, many software developers don’t even think about it now, which I see as a big mistake.
Some people have well-defined goals for their future, for example they would like to become a CIO, or even run a software company. If you belong to that group, becoming a technical leader is definitely a good step towards that goal, and will allow you to start gathering the required experience. Even if you want to run your own start-up, such practice can serve as a great foundation.
In general, performing a team leader’s role allows you to verify if a manager’s career is something you actually want to pursue in the future, without dumping all of your technical duties now.
The right motivation is everything in a manager’s job. Without it, you won’t be able to accept the increased amount of stress and effort, lack of direct control over results, additional (huge) amount of learning, and all the other factors that are required to perform well in this role. Make sure this is really what you want and need for your career and life, and don’t let it become an escape from your current work problems.