Choosing a leader like an agilist
Imagine having a tool that can automatically detect JPA and Hibernate performance issues. Wouldn’t that be just awesome?
Well, Hypersistence Optimizer is that tool! And it works with Spring Boot, Spring Framework, Jakarta EE, Java EE, Quarkus, or Play Framework.
So, enjoy spending your time on the things you love rather than fixing performance issues in your production system on a Saturday night!
The leader as a captain
I recently read Petri Kainulainen’s article on sharing leadership among team members and I am on the same wavelength in this regard, since the Agile methods emphasizes the importance of “motivated individuals, who should be trusted”.
While a team leader could be regarded as a reminiscence of the old rigid organization structures, I still see many benefits of having such a captain. When it comes to improving my people skills, I like to get inspired by other domains of activity that have been struggling with the very same challenges for decades. Think about the greatest sports teams, where all team members are stars, and yet they always have a captain for:
- the captain is the role-model for every team member
- he leads by example
- he always mediates conflicts, knowing that prevention is always better than curing
- he welcomes and facilitates new team members integration
- he never loses his temper
- in times of trouble, he is the voice of the team
- he is constantly goal-oriented, making sure the team is on the right track
The leader is nominated by the team
But a great captain is always chosen by the team members. That’s the most natural way of nominating a leader and a leader doesn’t have to be imposed.
This is how a team leader should be chosen in our industry as well. Self-organizing teams need to have the power of deciding their leader as well. A leader is not someone who once proved his abilities, but a person who constantly validates his role. The team leader position is always backed by the team members feedback. A good leader is, therefore, self-reinforced by his positive actions while a bad leader is simply replaced by someone with better skills.
The voting process
This is my recipe for choosing a team leader:
- The team must first understand what a good leader means. The voting is not a popularity contest. The team is always held responsible for their actions and choosing their leader is no different
- Allow the team members to register for the leader election. If you never wanted to be leader, there is little chance you’d ever become a great one
- Let everybody vote and explain their reasons for choosing a given team member. Without any reasonable explanation, the voting could easily turn into a popularity contest
- Respect the decision even if the new leader is not who you thought of, in the first place
We need to trust our teams and respect their opinions. I like this approach since it’s a very good way of spotting leaders that you weren’t aware of. People with leadership potential are rare gems and I always stay open-minded to any method that can bring me the next great leader.