First off, a quick introduction!
I've been a software engineer for about 18 years now, I started my professional career when I was half-way through college. Thinking back to those days I remember being eager about putting my recently acquired computer science knowledge to practice and wanting to jump directly into designing grand architectures and solving every problem I could think of with lines and lines of code.
If I was asked to summarize my career experiences I would describe them as a blend. I have worked on a wide set of teams: from one where I was the only developer to another where there were multiple sub teams working on different time zones. And as part of these teams I have had the opportunity to contribute to an ample variety of projects: some as simple as a desktop application used to capture user feedback, others more complex like an extensible framework that allows banking systems to evaluate mortgage applications with custom sets of rules depending on the state and some much more fun like a set of services to bring gaming experiences into the cloud.
A change of focus
One thing that has remained constant throughout my career is a thirst for knowledge and new challenges. I always thought those would come in the shape of a coding problem but about a year ago I had a conversation that opened my world to new horizons.
I still remember the questions that shook my mind that day, I was asked: "Are you interested in leading a team? If so, what you would like the charter your team to be?". It is not like I hadn't had the chance to be in a lead-like position in the past, I had worked as a technical lead in some projects, I had mentored multiple people and I had coordinated people across multiple teams to achieve common goals but I knew that this was different although I wasn't sure exactly how.
Once the initial excitement settled down I shifted my focus back to the basics: understanding the challenge. Up until this point I hadn't asked myself what were the actual responsibilities of a manager. I recalled interactions from my previous managers but all of them had been so different that the answer was not obvious; It was time to put my thinking hat and analyze what had been the common elements between all of those manager/direct relationships. What I was able to figure out was that:
Managers are responsible for setting direction for their teams, helping team members to achieve their full potential and for generating value to the business organization that their teams work with.
While figuring that wasn't too hard then came an interesting set of questions to my head all of them centered around how to do so and whether there were any resources or strategies that could be leveraged to achieve those goals and after a bit of research I found that there are quite a lot and all of them follow very different approaches; Then it hit me: to become an effective manager there will be a need to learn, understand and master all different approaches and techniques and that this was nothing but a brand new opportunity to learn even more in an unexplored space and a huge challenge to become a leader that effectively helps people and organizations become the best version they can be.
A new challenge
Long story short I decided to accept the challenge. Now that I'm a few months in it, what I can say to others in similar situations or those asking whether switching from an individual contributor position to a lead or manager role is a good decision for their careers is: give yourselves the opportunity, there will be good and bad days but each of those will come with learning opportunities about you and your career; You might end up realizing that all that developer experience has provided you with tools to better shape the careers of others and make them successful… or you might not but there's only one way to find out. In the end professional growth is about finding your passions and chasing them wherever they go.