Lessons in leadership
Recently, I have been deep in a project delivery for a long time client. This has been a challenging yet interesting journey. We have gone from nervous new ground to a more comfortable situation to a point where we are moving so fast that it feels more like a bullet train than anything else. During this time, I have worked closely with my team and the customer to help show a stable direction in how to develop an agile delivery method. We are now in the last stages of this phase 1 delivery and it is an exciting and trying time. I will admit that there have been times where I have had my doubts that we could meet this crazy goal. As I now look back on our success and failures, I realize that there are several lessons that I have learned along the way.
– Build up your team and they will do amazing things
I have been a lone wolf developer for much of my career. Typically, I receive some crazy ideas or requirements from a client and then it is off to the races to develop. Over this past year, I have had more opportunities to both mentor and lead teams of developers. I have learned a lot about myself as a person and as a leader. The first and biggest lesson that I learned is that when you depend on a team to deliver, you need everyone in that team to feel that they are part of the solution. When I started, I became very task oriented and delegated exactly what I wanted. What I failed to realize is that I could drive a direction but without the team understanding the end goal, it just became about getting the job done.
The big lesson is to allow my team to be part of the answer and take feedback. My ideas could be the greatest in the world but they are not the only answers. Sometimes, when you stop and listen, you hear some spectacular ideas that you would have never thought of on your own. A recent example came as we worked on this automated pipeline. The initial design required including the Terraform templates as part of the Chef cookbook repository. One of the developers realized that we were using the same templates in multiple cookbooks. He suggested that we simply change the pipeline code to clone the template out of a repository if none was provided. A brilliant idea and all credit goes to him.
– There is a fine line between leadership and control
Ok, I will admit that I am a bit of a perfectionist. Alright, I am very much a perfectionist. It has always been a challenge for me to work in teams because I tend to feel as if I can’t count on anyone to see my vision for how something should work. Over this past year, I had to learn important lessons that not all developers are created equally. I had to learn the difference between providing guidance and direction opposed to just doing it myself. This has been a difficult change for me but one that I am trying to embrace. If I try to control every aspect of delivery or the project, then simply put, I become the bottleneck.
– Sometimes you have to make hard decisions
There are times when I have had to make the hard decisions. If a developer is constantly missing deadlines or hiding the situation, then I have to consider the client’s needs. I want everyone to be successful and will go out of my way to teach them new concepts or even help them troubleshoot their code. The reality is that there are only so many times that I can repeat the same information or explain the same concept before a decision has to be made. This is the hardest lesson that I have had to learn. As a leader, it is my job to build my team’s strengths and find their weaknesses and then help to guide them towards improvement. Unfortunately, I’ve had to face the hard decision to move someone off a project. I hate this part of the job but it is part of the role. When a member of your team is struggling, it can slow down an entire project. As a leader, it is my responsibility to find the best fit for that employee and if it comes to it, then move them off the project.
At the end of the day, learning these lessons has been an interesting road. By no means do I feel as if I have mastered these lessons. In fact, I feel that recognizing that I need to learn these lessons is my first step towards growth. Time will tell…