A lead shouldn’t lead like lead.
I’ve been thinking a lot about what I’m going to do with my new role at CCP. Most of these I’ve been able to do (or advocate strongly for) to some degree even as a non-Lead but they were never supported enough by the Leads and never took hold.
- Training sessions. These are vital for the health of the team in so many ways. It exposes people to new ideas, stimulates discussion, and gets people thinking about things differently. It also gets them contributing to the social aspect of the ‘team’ rather than just contributing files into a codebase.
- Collective vision and self-tasking. I was always most frustrated when I didn’t have a say in what I was working on. True scrumming alleviates this, but even without scrum, team members need to decide what the team is going to be working on as a whole and what they are going to take on in particular.
- Changing concepts/standards/practices. Consistency in a codebase is great, but keeping a team motivated and passionate is more important, and will result in better code overall. I think the current concepts/standards/practices should be consistent, but they need to change over time. Developers change, and new ones join, and they have different opinions and better ideas. You shouldn’t frustrate them by stifling superior ideas for the sake of consistency or resistance to change.
- Community engagement. I don’t think you can be an excellent developer in this day and age unless you are part of the coding community- force everyone to have a Stack Overflow account and come up with a blog bundle for the team. And then have a ‘reading group’ every week or two to cover interesting concepts.
- Move people around. Never have your entire team sitting together permanently, and never embed a team member with a team permanently. 4-6 months at a time, and switch things up. Expose your tool devs and TA’s to different groups, to get more context and develop more relationships, and then move them ‘back home’ to refine and refresh their skills.
- Code Katas. Another team-building exercise that can easily be factored into training sessions. Also useful to cross-pollinate teams, so programmers from different teams can pair and compete against their buddies.
The key here is: change. As a lead, you are your teams biggest enemy. You have the power to grow your teammates and the team, and you have the power to frustrate teammates and stunt growth, more than anyone on the team (you have the most power on the team, and with great power…). You need to make sure the team doesn’t stagnate, and the way you need to do that is by integrating mechanisms to guide change into your every day interactions.
And in a year, I’ll be able to look back at this post and evaluate how well I executed on what I wanted to do- and if something is ill advised I’ll be able to judge why I didn’t realize it.
Awesome. Sound like some good ideas. Look forward to reading your results a year from now :)
Very good post! I jumped into a lead role 1 1/2 years ago and I totally agree with your post.
There’s some things I learned from not so good leads in the past which I am trying to do differently with my team:
– Recognize that I am not the best. I’m the general who has the big picture and my team are the specialists I deploy on the projects
– The most important thing of my job is not telling TAs what to do, but helping TAs to do their job in the best possible manner.
– Don’t keep all the “cool” projects to yourself. Delegate and give people fun tasks to enhance morale.
– Allow for tasks where people might fail (in a controlled way). This is where we learn the most.
– Know that you do not know everything just because you’re the lead. Listen to TAs and their ideas. Learn and share the knowledge.
Good luck with your new job!
[…] I was starting my job at CCP, I posted about some things I wanted to do as a lead. I’ve been through two releases with the Tech Art Group in Iceland (and for the past 6 months […]