A passionate software developer never stops learning. Over time, the continued curiosity of a passionate developer enables them to solve problems more quickly, write code more efficiently, and build solutions more creatively – all while adapting to ever-changing technologies. As they continue to grow their technical know-how, some develop into highly successful software developers. However, if they are anything like me, the skills that made them a successful developer may not have prepared them for mastering the potential world of leadership.
I knew I wanted to be a software developer since the age of 15. As a freshman in highschool, I would stay up late at night reading HTML for Dummies books and build websites using NotePad on my parents dial-up. Being an introvert, I loved that I could create an online space that could be accessed by anyone, anywhere and anytime, without ever having to leave the house. I spent the next 15 years dedicating my education and career to learning all I could to be the best, or at least a pretty great, web developer.
I received a degree in Business Information Technology from Virginia Tech and spent the next two years applying my newly gained knowledge within their athletic department, as a full stack LAMP (Linux/Apache/MySQL/PHP) developer. I then moved to Colorado, health care, and the Microsoft stack working as a full stack .NET/C# developer. It was after 8 years of being a professional software developer that I had found myself in a lead developer role being asked if I was interested in an Applications Team Supervisor position. Wait – what?
I knew how to write code. I knew how to manage SDLCs. I knew how to translate business requirements into effective solutions. I was fairly good at those things. But, would the skills I had gained as a software developer make me a successful leader? Would I become less technical and further away from my passion? Would I be as passionate about developing people as I was about developing software? I didn’t know the answer. But, it was my passion to never stop learning, my curiosity to try new challenges, and my itch to live outside of the comfort zone that told me to take the plunge. So I did.
Three and a half years into my journey I have answers to every one of those questions about leadership. Honestly, I’ve learned more than I expected I would in such a short period of time. But, the most unexpected thing I learned was how much I love being a leader in this industry. Here are just a few reasons why I recommend considering leadership in your future software development career.
YOU CAN STAY TECHNICAL
A big concern for some developers is the uncertainty of whether or not they can “stay technical” and creative in a leadership role. In my experience, the answer depends on the culture of your company and how badly you want it. If the culture at your company frowns upon leaders “being in the weeds,” don’t get discouraged. Implement programs within your own team to keep you technical as a leader, while also strengthening your team. A few examples are:
“Show & Tells” – Build your team’s soft skills and enrich your team’s technical knowledge by having folks on your team present their work to the group. Allow for Q&A, code reviews, and application demos during this time.
Code Reviews – Setup a process within your team to allow for code reviews as part of the code management and deployment process. This could be in the form of pull requests or over-the-shoulder reviews. This will allow you to always have your eyes on new code and even learn from others on your team.
Provide & Participate in Training – Keeping your team knowledgeable about new technologies will help keep you more technical. Offer training to your staff and set aside time for you to participate as well. Even if you aren’t laying down code, you should know what’s out there to provide guidance to your team.
If you find you’re unable to stay as technical as you’d like in a leadership role at your company, don’t be afraid to look elsewhere! Consulting companies are generally a safe bet for someone who still wants to lay down code or be involved in dev-ops, while also leading teams. If consulting isn’t in the cards for you, apprenticeship programs, like the Techtonic Academy, offer a great “player/coach” environment to consider. After all, staying technical makes you a more credible leader who is also more engaged with and helpful to their team(s).
YOU STILL LOVE SOLVING PROBLEMS
As a leader there is no shortage of problems to be solved. In fact, I find that I solve more problems as a leader than I did as a developer. This is partially due to the fact that your team will likely come to you with the extra difficult troubleshooting they need help with. Depending on the size and skill-level of your team, this could be relatively frequent. These situations are always very rewarding as a leader, because you not only get fulfillment from solving the problem, but also from helping someone overcome a challenge.
Solving non-technical problems can be equally, if not more, rewarding. Your team, other teams, and other leaders will come to you seeking guidance on varying challenges. Helping solve process problems within the company and resolve personnel problems within your team ultimately improves the day-to-day experience at work for you and your team.
YOU BUILD YOUR SOFT SKILLS
One of the great perks of being a software developer is the ability to work remotely, just you and your computer, coding in your pajamas. After a few days of that, you may come to find you haven’t talked to anyone other than your cat, Pickle, who doesn’t make for the best conversationalist. I see Software Developers struggle with soft skills for this very reason. In interviews, during presentations and meetings, and even at happy hour it can be a struggle.
Leadership can help get you out from behind your monitors, out of your shell and your comfort zone. Holding regular one-on-ones with your team members, representing your team in various meetings, and strategizing with other leaders are just a few opportunities you’ll have to develop your soft skills as a leader. Being a strong communicator can help elevate your career. Software developer leaders with strong soft skills are more likely to ace a job interview, get buy-in when pitching a concept, and build stronger relationships with co-workers, clients, and vendors.
YOU DEVELOP CAREERS
Sprint by sprint, taking a concept and developing it into a beautiful application can be very satisfying as a software developer. The level of pride and sense of accomplishment you feel towards the final product may be what drives you to show up to work everyday.
Likewise, having the opportunity to wake up everyday to develop someone’s technical or professional skills, which ultimately help advance their career, is extremely fulfilling. Leading them through challenges, providing tools and teaching skills to be successful, and watching them leverage their new skills to advance their careers provides a new sense of satisfaction. When they succeed, you feel a part of that success, that pride, and that achievement. It becomes the new motivation to show up to work everyday.
YOU MAKE A BIG DIFFERENCE
As a front-end or back-end developer, your contributions to a project are clear and tangible. Your application may streamline a process that makes a company run more efficiently. As a developer, you can help any company with any mission better meet their goals, and that can be extremely powerful. Stepping into the shoes of a leader you will make a difference in completely different ways.
As a leader you are not only contributing to the success of each individual on your team, but you also have opportunities to make a bigger difference for your company. You have more opportunities to strategize on the direction of your team, collaborate on process improvement ideas, and be a representative voice of each member on your team to make change when needed. The ability to make this sort of difference provides a great sense of value in the work you do each day.
But what may be the most gratifying part of being a leader is the impression you can leave on someone every day. You can coach, motivate, inspire, and teach. You can turn someone’s day around, their week, or their month. You can provide career opportunities that benefit an entire family. You can empower someone to do things they’ve never done before and leave an impression on their life. You can shift a point of view for the betterment of a project, a team, or an entire company. As a leader, you have the opportunity to make a big positive difference in someone’s life. To me, that is the ultimate accomplishment.