Lead at Any Level

Do you ever think to yourself:

  • “I’m a software developer with technical skills, I can’t be a leader”.
  • or “I can’t be a leader, because I’m an introverted software developer”.
  • or “I can’t be a leader, because I don’t have a leadership position. I’m just a software developer”.

Well, I’m here to tell you that your company wants you to be a leader, no matter where you are in the corporate ladder, seniority, or tenure on your team. There are opportunities to lead that are right in front of you. You just have to look for them and take action.

Some companies are only looking for technical skills in a software developer, having you take skill assessments, technical interviews, and whiteboard problem solving. However, many companies these days are also looking for leadership qualities. The company you work for now, most likely wants you to exercise those leadership skills instead of hiring someone externally.

 

In the following sections, I’ll provide concrete examples of how you can lead from where you are, along with tips on how to achieve those goals. First up, let’s talk about overcoming the status quo bias — one of the biggest challenges software developers face in leading from they are.

Overcome the Status Quo Bias

The “status quo bias” is a psychological tendency where individuals prefer maintaining existing conditions due to familiarity and comfort, resisting change even when alternatives may be better. It stems from a fear of uncertainty and a resistance to new ideas. Overcoming this bias involves consciously evaluating and considering new possibilities and perspectives.

Overcoming the status quo bias is particularly important, because it’s so easy to get stuck in a rut and fall into the trap of “that’s just how we’ve always done it.” But true leadership is about being open to new ideas and approaches, and not being afraid to challenge the status quo when it’s necessary to drive progress.

So how does this relate to software development? Let me give you a real-world example.

I once worked at a company with a complex system— a monolithic application and numerous microservices. Local development and testing were cumbersome with many moving parts. During a company Hackathon, I aimed to improve local development efficiency. Leading a team, we collaboratively designed an ideal development environment for each engineer and feature. While we didn’t get to the technical implementation, we had a solid design.

This story highlights not accepting the status quo of a challenging development experience. I actively sought solutions, encouraging you to do the same. Look for opportunities to enhance developers’ experiences and processes, taking ownership and leading improvements for long-term benefits.

Take Ownership

Taking ownership is another critical aspect of leading at any level. It’s about taking initiative, being proactive, and not waiting for someone else to tell you what to do. It’s about being accountable for your work, and owning the outcomes, both good and bad.

In the context of software development, taking ownership can take many forms. Take the initiative to identify bugs or areas of improvement in the code bases or processes, especially with regards to security and code quality. Be accountable for the quality and effectiveness of your own code and take pride in your own work and hold others accountable for quality in theirs too.

Own up to mistakes or failures and proactively work to address them. Step up to lead a project or task force, even if you’re not the most senior person on the team. Volunteer to mentor, coach, or just pair with developers to share your expertise with others through knowledge sharing sessions.

In general, taking ownership is about being proactive, rather than reactive, and being willing to take on responsibility and initiative, even if it’s outside of your formal job description. It’s a trait that’s highly valued in the software development field, because it demonstrates a level of maturity, professionalism, and commitment to the team’s success.

Facilitate Knowledge Sharing Sessions

Facilitating knowledge sharing sessions is a really valuable way to lead from where you are. It’s recognizing that you have knowledge and experience that others can benefit from and being willing to share that knowledge in a way that’s accessible and engaging for your team and colleagues.

An obvious example of knowledge sharing is to organize a code review session for your code or someone else’s. Here, developers can review and critique each other’s code and offer feedback and suggestions for improvement. This also gives an opportunity to introduce new design patterns that you have learned in your career.

You can lead a “lunch and learn” session, where you and other developers can share your expertise on a particular topic, and other team members can ask questions and learn from your experiences. Similarly, you can conduct a “tech talk” or “lightning talk” session, where you and other developers can present a new technology or tool that you’ve been experimenting with and share your insights and experiences with others.

The key to successful knowledge sharing sessions is to create a safe, collaborative, and non-judgmental environment where developers can openly share their experiences and learn from each other. It’s also important to make these sessions accessible and inclusive, so that all team members can benefit from the knowledge and expertise being shared.

Communicate Proactively

Communicating proactively is a critical aspect of leading at any level in software development. It involves taking initiative to keep stakeholders informed, providing regular updates on progress, scheduling regular meetings, and offering suggestions and solutions.

By being proactive in your communication, you not only demonstrate your commitment to the project, but also ensure that everyone involved is on the same page and working towards the same goal. This can help prevent misunderstandings, avoid delays, and ultimately lead to a smoother and more successful outcome.

Offering suggestions and solutions as a subject matter expert shows initiative and a proactive approach to problem-solving. For example, you could offer suggestions on how to improve a particular process or system during a meeting with your team members, rather than waiting for someone else to raise the issue.

Another aspect of communication that’s critical is the ability to write clear, concise documentation. This is key for effective communication, especially in software development where complex processes and technical jargon can be confusing for non-technical stakeholders. Examples of good documentation practices include using simple language, providing step-by-step instructions, and including visual aids like screenshots or diagrams.

Foster a Collaborative Culture

Fostering a collaborative culture is essential for several reasons. When team members collaborate and share ideas, it can lead to more creative and innovative solutions to problems. Collaborative teams are often more effective at making decisions as they can draw on a wider range of perspectives and experiences.

A collaborative culture can improve productivity by encouraging team members to work together efficiently and effectively. The collaborative culture can lead to higher morale and job satisfaction among team members, as they feel valued and supported by their colleagues. Collaboration can also increase engagement and motivation among team members, leading to better outcomes and a more positive work environment.

Even if you’re not in a formal leadership position, you can still take initiative to bring people together and foster a collaborative work environment. For example, you could suggest regular team building activities, organized informal get togethers, or even code reviews to encourage bonding and collaboration.

Modeling positive behavior is also important. Actions and attitude can influence those around you. As a positive and proactive team member, you can set a good example for others and create a more productive and positive work environment. You could also offer constructive feedback and support to your colleagues to help them improve their performance and feel more engaged in their work. This can also help build trust and strengthen relationships within your team.

Final Thoughts

In this article, we’ve explored how software developers can lead from where you are by overcoming the status quo bias, taking ownership, facilitating knowledge sharing sessions, communicating proactively, and fostering a collaborative culture. These are just a few examples of how anyone can demonstrate leadership qualities, regardless of their position or title.

If you want to continue learning about leadership principles and staying up to date on new ideas and insights, be sure to sign up for our newsletter. As a bonus, you’ll receive a free leadership principles e-book that you can use as a resource in your own leadership journey.

Remember, leadership is not just about holding a formal position or title— it’s about taking initiative, being proactive and making a positive impact wherever you are. So don’t wait for someone else to lead the way —take the initiative and start leading from where you are today!

Share this article:

Learn How to Lead as a Software Developer and Join my Community

My newsletter is dedicated to helping you as Software Developers implement Agile best practices and improve your leadership skills.

I have been a Software Engineer in many different roles in my career. I started in 2005 as a first hire into a small company and worked my way towards being a Software Developer Team Lead. I enjoy being an individual contributor and leading and creating high-performing software development teams. I also enjoy bass fishing as a hobby.