Photo by Devin Avery on Unsplash
1. Communicate productively
A huge part of leading a successful team is good communication. A great way to do this is by having recurring meetings, i.e. sprint planning, 1-on-1’s, scrum meetings, etc., because these preserve connectedness and keep lines of communication open.
When it comes to team meetings, your main job as a leader is to listen to your team. If you don’t listen to them and receive their feedback, you won’t understand what they need, or how you can lead them in the right direction. Furthermore, if you’re not practicing active listening, you can give the impression that you aren’t acknowledging the value of your team’s insights and input, and they’ll likely maintain a more withdrawn disposition in the future – meaning you’ll miss out on their contributions.
2. Genuinely understand your team members, their strengths, and their interests
Getting to know the members on your team is really important, especially when it comes to communicating with them and assigning tasks. An excellent way of doing this is having new hires take a personality quiz – not a quiz about which Harry Potter character you are, but a more sophisticated one, such as the MBTI 16 Personalities, Enneagram, and Strengths Finder tests. These tests each reveal different things about a person, and while they aren’t perfect, they can often identify an individual’s strengths and weaknesses, which might have otherwise gone unnoticed. When it comes to communication, the Enneagram test is especially good for helping you understand how other people will receive and process things you tell them.
Another important element of getting to know your team members is 1-on-1 meetings. These meetings allow your team members to have a designated time where they can share ideas, concerns, or anything else; and it also gives you both a chance to get to know each other better.
3. Software craftsmanship and growth opportunities
In short, software craftsmanship is a practice that promotes continuous learning and growth. It encourages your team members to get better on their own and constantly be growing, which is especially important in technology since it’s is frequently reformed and updated.
As a leader, your role in this is to ensure that your team members have access to resources to help them learn. It’s also important to be able to identify people with leadership skills and give them opportunities to strengthen those skills.
Another way that you can encourage your team to grow is by not being their holy grail/failsafe. If you try to be the solution to every issue your team runs into, they’ll never feel pushed to learn. Rather than solving their problems for them, try giving them a way to learn how to solve them on their own.
A great learning resource you can offer your team is workshops. Workshops not only educate those attending them; they’re also a great way for the person leading the workshop to lock in the subject that they’re working with.
4. Leading by example
Your team members should look up to you as someone they aspire to be — a role model. This puts a big responsibility on you to set a good example for them. If you lead with the perspective that you are demonstrating and teaching your team how a good leader behaves, not only will you be investing in your team, but you’ll also find yourself being a better leader. Actions speak louder than words, and your team members are watching how you behave and react. In difficult situations, make sure you are responding with a positive attitude that encourages the team, and do not speak badly about another team, team member or the customer.
5. Create a good work environment
A good work environment plays a very important part in motivating developers. A positive environment creates positive employees, and a study done by Andrew Oswald from the University of Warwick found that happiness boosts productivity by 12%.
One way to contribute to a good work environment is making sure your office is physically comfortable. Good chairs and a well-stocked break room can go a long way when it comes to comfort. Another important part of a good work environment is good pay. Money isn’t the only motivator, but it’s important to ensure that your developers feel that they’re well compensated. Making work fun is also a great way to cultivate a good work environment. This can look like anything from lunch potlucks to after-work board games – although these are outside of working hours, there’s a lot of value in doing fun activities at your place of work because it helps you feel more comfortable there.
Another way you can contribute to a positive work environment is by hiring talented team members. Since working with talented people is highly motivating, it’s important to have a good interview process to ensure that you’re hiring people that fit your culture and are competent in the skills they need to add value to their team.
Different developers have different strengths and interests. Delegating according to their strengths will contribute to your team’s performance by keeping the whole team motivated and working together.
However, when delegating according to perceived strengths, it’s important to ensure that you aren’t holding your team members back from growing and expanding their strengths. If you’re not slightly uncomfortable with how much you’re giving away, then you are limiting your team from growing. Let your team make the ultimate decision on how to execute the tasks, but still guide them and discuss multiple options to help them make good decisions.
7. Understanding types of motivation
Understanding different types of motivation can be really helpful for a leader. There are two main types of motivation: intrinsic and extrinsic. Intrinsic motivation is a drive caused by internal rewards, such as growth, curiosity, self-expression, and enjoyment. Creating opportunities for your team to be intrinsically motivated is very valuable because it helps them to be more productive and grow in the process.
In his book, Drive, Daniel Pink lists the 3 factors of intrinsic motivation: autonomy, mastery, and purpose. Autonomy is independence and self-direction, and it’s motivating because we like to be in charge of our lives. It motivates us by making things we do feel like a choice, rather than an external order or direction. Your role in this factor is giving your team members enough freedom with the work that they’re doing, because it encourages them to become more responsible and it prevents you from micromanaging.
Mastery is extensive knowledge about and experience with something. This is motivating because people naturally like to learn and be good at things. It’s the reason why people have hobbies – i.e., no one can really get good at the guitar if they aren’t motivated to learn it. Your role in this factor is ensuring that your team members are not limiting themselves, and that you are providing them with some of the resources they need to advance in their skills.
Purpose is using the skills one has obtained to contribute to a better society, i.e. community work, and it’s motivating because people want to make a difference. Your role in this is finding opportunities for you and your team to feel like you are a part of something bigger. Help them understand the value they’re adding to your company and customers then celebrate those small wins.
Without a good sense of community, developers can feel isolated and their motivation can diminish. Although it’s preferable to have a local group to meet with in person, even online forums can cater to the need for a professional community. It’s very valuable for developers to be able to share ideas with each other outside of their typical work cultures; this is really the only way that any preconceived values can be challenged. It’s not uncommon for old development styles or techniques to be calcified simply because “that’s the way we’ve always done it”, but developer communities contribute to reforming development when necessary.
It’s also important to ensure that there’s strong community established within your team. Family matters. When team members gel and can count on each other to contribute effectively and efficiently to projects and hold each other accountable the team becomes exponentially productive. They start to work like a family. They feel safe to make mistakes, try new things, and voice their opinions and make decisions on their own. Great leaders build teams and create environments that foster trust.