Even though we are hired as programmers, we end up leading in many ways. We lead by training a new developer, providing input on other developers, presenting a development plan, giving project status, and being a technical expert. We may even become a team lead. Many people don’t think it takes training to do a lot of these things, but we’ve all had managers that aren’t good and co-workers that are just hard to work with. A lot of problems people have working with others can be chalked up to poor communication or lack of training as a leader.
At my former company, they used to offer a leadership training course. It was originally for the managers, but eventually everybody was encouraged to take it. I didn’t think it was for me since I was just a code monkey and that’s all I really wanted to be. Let others lead and I’ll just keep my head down and code. Eventually the training was cut due to budget constraints. Fast forward a few years. My manager calls me and a couple of other senior developers into his office and announces that we are now team leads. We looked at each other and we all had the same thought, “I don’t want to be a team lead.” It wasn’t for us to decide.
While back at my desk, I figured if I’m going to be a team lead I should probably figure out what that means. What would my responsibilities be? How much say would I have in the people on my team, scrum stories, and feature scope? What could I tell people to do and not do? How do I lead? Can I boss people around?
Figuring a leadership training course would be perfect for me right about then, I tracked down some information about the leadership course that used to be offered and found out a class would be starting soon. I asked the other newly-appointed team leads if they would be interested in the course and a couple of them said yes. I talked to my manager about it and got approval to send us to the course.
At the beginning, I was a little skeptical since the core principle of being a leader was communication. How hard is it to communicate? We all do it everyday. But do we communicate effectively? Do we explain ourselves clearly? Do we provide enough detail? Do we provide encouragement? Effective criticism? When you think about all that, then, yeah, it is hard to communicate. Every lesson made a lot of sense, but I had just never thought about it before.
The course was 10 3-hour sessions. Each session covered a different topic on how to be an effective leader. Some seemed more relevant than others, but all offered an important lesson.
Below are some key points that I took from the training:
- How to get the best performance from your team (or fellow developers). This includes recognizing weaknesses, gaps in knowledge, providing motivation, getting along with each other,
- Communicating clearly and effectively. Being clear and concise, listening(!), asking questions, praising good work, asking for feedback, being respectful.
- Effectively Sharing Information. State your purpose, present reasons, details, get feedback.
- Being able to listen Effectively. Focus on the person. Avoid interruptions. Ask for clarification.
- Setting clear goals. Motivating people to achieve those goals, solving problems, recognizing when goals may not be met.
- Leadership approaches: Training, Coaching, Facilitating, Delegating.
- Different levels of performance. Workers can be split into 4 different measures of performance: Not competent, not motivated; not competent, motivated; competent, not motivated; competent, motivated.
- Being able to delegate work so you are not overloaded. Asking team members to help can motivate them, provide better answers, and increase their value by learning more.
- Provide effective feedback. Need to be able to clearly state why somebody did good or bad. Also need to be able to recognize how to reinforce the good traits, and fix the bad traits.
I took this course almost four years ago and a lot of the information has stuck with me. Every day I apply something from this course. Each team lead that took the course effectively used the lessons learned to improve the performance of their team. The changes among the team members as each of them applied themselves, asked for more work, and wanted to be challenged were obvious after applying some of the lessons. It was amazing what simple praise would do to the productivity and outlook of a team member.
A side effect of this training was being able to recognize when communication was failing. If a developer was constantly struggling, then maybe the work wasn’t communicated to them properly. If people were constantly asking how to use a tool, then maybe there needed to be additional documentation or training for that tool. If I was getting overwhelmed, then maybe I needed to delegate more or organize my tasks better.
If you work with others, are a subject expert, have to work with newer employees, are asked to present information, or are researching solutions, you will be using any number of skills that a leader employs. Being able to effectively communicate with your team members and managers will help you succeed in your work. We shouldn’t just be writing software, we should be making everyone around us write software better.
Pinnacle encourages its consultants to continually improve their skills to provide additional value to clients. This applies to both technical and soft skills, such as this course. For more information on the leadership training course, go to hrc.com.