A while back, I made the transition from Developer to Manager, a career move seen by many as a natural progression. However, after spending significant time in the managerial role, I realized it wasn't the right fit for me. I've decided to return to being a Developer, but not without gleaning important insights from my time as a Manager. Here's what I learned:
1. Communication is Paramount
As a Manager, it's essential to articulate your expectations and goals clearly. Instead of assigning specific tasks, provide directions that allow for creativity and problem-solving. Ensure your team understands the 'why' behind every task, not just the 'what'. This helps team members align their actions with the bigger picture and stay motivated.
2. Master the Art of Detachment
Being a Manager often means being the recipient of complaints, frustrations, and internal debates. It's crucial to maintain a professional stance and avoid taking things personally. Remember the adage "shit rolls uphill" and strive to keep work-related issues confined to the workplace.
3. Maintain Your Technical Edge
Even in a management role, it's crucial to stay connected with the technical side of things. Dedicate some time to small development tasks to keep your skills sharp and your understanding of the team's work accurate.
4. Be a Friction Remover
As a Manager, your primary role is to create a conducive environment for your team to work seamlessly. Address minor interruptions and obstacles before they become a hindrance, ensuring your team can stay focused on their tasks.
5. Appreciate the Nuances
Coding and managing are vastly different. While development projects have clear end goals, management is an ongoing process of removing barriers and facilitating others' work. This shift in perspective is key to adapting to a management role.
6. Adapt to Interruptions
Management is an interruption-driven role. Unlike coding, where long, uninterrupted stretches are desirable, a manager's role involves dealing with problems as they arise, often requiring immediate attention.
7. Embrace the Shift in Your Role
With the management responsibilities, your coding time will inevitably reduce. It can be tough to pass on the interesting parts of the codebase to other engineers, but remember, your new role is about fostering a productive environment, not coding.
8. Perfect Your Feedback Skills
Providing feedback is an art. Everyone on your team will respond differently, and it's essential to tailor your feedback to suit individual needs. Some people may appreciate directness, while others might respond better to a more delicate approach.
9. Recognize Your Team Dynamics
Every team comprises different personalities. Understand who on your team is a 'superstar'—those seeking constant growth, and 'rockstars'—those content with their current role and performing consistently. These roles are equally valuable and can change depending on personal circumstances. Ensure you align projects, feedback, and expectations appropriately.
In retrospect, my journey from Developer to Manager and back has enriched my perspective, making me a better team player and coder. The lessons I've learned in management have offered invaluable insights into the human elements that drive successful teams. Now, as I return to my developer role, I do so with a broader understanding of the ecosystem in which I thrive.