How to Transition Roles as a Developer
So, you’re a developer. You write code for a living. You might have already been doing this for awhile, and you’re finding that you have more time throughout the day than you had before. Sound familiar?
If it does, that’s completely normal. As time goes on, you’re bound to get better at what you do. You may leverage a handful of libraries, so it’s faster (and easier) to do new tasks. Instead of taking 3 days to diagnose a problem or push a new feature, it now takes half a day.
What are you supposed to do with your leftover time? Take on more projects?
If you’re thinking about how to do things better, then you most likely are set to grow vertically. It’s a pattern we see often: Junior Developer, Mid-level Developer, then Senior Developer. Along the journey, you will learn new techniques, programming languages, and new paradigms that will help you push out better, stable, leaner code.
Obversely, there are some people who ask themselves how to manage my team more effectively. You might notice that you have a special knack for defining issues and assigning roles, minimizing the time and effort spent on a problem. If you like thinking like this, you might be on your way into a management role.
A management role consists of many things: knowing the inner workings of whatever industry you’re in; thinking about how to save time for your team; how to define and address issues as they arise. In this role, you’ll do less coding, focusing on organizational efforts instead. By following this path, you might end up as a Team Lead or, in a larger organization, a Department Director role.
This management path requires that you improve skills you may have ignored in the past. If you’re considering making the leap from developer to a management-oriented role, here’s a list of things I had to work on during my transition:
1. Communication: Because you’ll be talking / sending emails / defining tasks a lot, you have to be able to nicely refuse new features and explain why to clients. On the other hand, you might find yourself doing the exact opposite when talking to the team. Communication, no matter the stakeholder, is the most crucial element of transitioning your role.
2.Empathy: Knowing how your client feels and how your team is doing is crucial in making projects come together. Put yourself in their shoes. After some experience, you’re be that for explaining why a deadline went wrong, aligning expectations with reality, or making sure your team is dedicated to making it to that milestone.
3. Active Listening: In your meetings, try to get into the conversation. Ask questions: is the client sure that a particular feature is needed in this version? What is it trying to achieve? Can this be achieved in another way? Or, was the bug really squashed? Whenever you actively listen and document the project, your job gets easier and easier.
4. Responsibility: Take ownership of your projects. As a project manager, you are responsible for the whole project, meaning budget, scope and value. You’ll also be owning the project from the CEO’s perspective (usually it means making sure you have the right team for the job, speaking up if you don’t).
5. Persistence: As with any new task, be prepared to fail systematically. Learn your lesson every time. Try to have someone point out your errors. Remember: your responsibility is much more than a developer’s. You’re protecting all the resources involved–time, money, people–and making the best of them. One word of advice? Compartmentalize your goals, instead of working toward one big onerous task.
We live in a world where knowledge and experience is at our fingertips. Tap into this resource! Read articles and search for new information whenever you can. Bookmark a few bloggers, writers, and podcasters. Fill some of your personal time with personal development time. The change is within you, and it’s time to harness that energy.