<br /
The problem
Over the past 12 months we’ve been rapidly expanding our engineering teams at Atlassian. We’ve hired awesome new staff members who are helping us crank out more slick new product releases for our customers. The downside of such quick team growth (apart from the dizzying disappearance rate of Snickers and beer) is that each of our product teams is now too large to be managed by a single Development Manager. They no longer have enough time for meaningful 1-on-1 meetings with all their team members, and when it came time to write 20-30 detailed performance reviews in July this year, the mood in the weekly Dev Manager meetings approached a very dark shade of black. But enough about the managers. We also want to provide more autonomy to individuals by spreading out the leadership within the product teams. We want smaller, more effective teams – where every team member feels ownership, accountability, and responsibility for the outcomes of their team’s work. And we want a way to share knowledge amongst the teams as they succeed, make mistakes, learn, and improve.

The solution, and more problems
The most obvious solution to the problem was to create a new layer of team leaders, each managing a smaller number of direct reports. We already had two roles referred to variously as “Technical Leads” and “Team Leads” within the different product teams, but neither of those roles included people-management responsibilities. So all we had to do was formalise and align those roles, expand the responsibilities to include direct management of team members, then fill the roles with people we knew had The Right Stuff.

Sounds straightforward, but two things made us hesitate:
1. We have a strong belief in our Open Company, No Bullshit company value. Adding another layer of managers would make it harder to provide the transparency and directness that makes Atlassian such an awesome place to work.
2. Nobody wanted the job! Very few of our engineers wanted to step back from their daily coding jobs and spend their time herding cats instead. When you hire the best & brightest software engineers, they understandably want to keep doing the thing they are most passionate about.

To address point 1, we were very keen on promoting people into the team lead role internally, rather than hiring team leads externally, on the reasoning that this core value could be upheld most vigorously by the engineers who have enjoyed its benefits first hand. That of course served to exacerbate point 2, and this became a blocker to the whole plan.

And then a miracle occurred
I’m still not exactly sure what happened next. One week we had a complete drought of team lead applicants. The next week a couple of engineers in the Fisheye/Crucible team put up their hands to try out this team leading thing. Rumour spread quickly and suddenly we had people in the other product teams also volunteering. Maybe they all got sick of fixing bugs that week. Maybe they thought that if the Dev Managers could do it, it couldn’t be that hard. Before they could change their minds, we wrote up an enticing job description and started running informal interviews with the volunteers. We tried to match the open roles to the skills and interests of the successful applicants as much as possible. For those who didn’t make it this time, and for developers who show an interest in the role in future, we’ll be working on coaching plans to get them ready for the next round of openings. For now we have a crop of 21 shiny new Dev Team Leads ready to take the leap into that frightening void called “people management”.

As the hangovers cleared
 To help our Team Leads (and especially their team members) transition as smoothly as possible, we tailored a 2-day training course called the Atlassian People Management Toolkit, with the help of the talented Lee-Anne and Lauren over at the Australian Institute of Management. Lauren delivered the course and did a fantastic job keeping a big group of curious and possibly cynical team leads engaged in the course material over the 2 days. She gave them just enough theory to get by, and loads of hands-on break-out sessions where they worked together in small groups to solve real-world team management problems using a range of techniques. The course covered basic management skills then went on to explore leadership & motivation, team development, communicating & questioning skills, delegation, conducting performance reviews, and techniques for troubleshooting.

Feedback from the team leads on the course was overwhelmingly positive, which brought a big sigh of relief – Atlassians are notoriously difficult to please with standard training courses, and there was a risk that even a tailored course would have the same result. Luckily that was not the case, and our new team leads are now better equipped to manage their teams, with the added benefit of spending the two days with their peers.

A foundering on the horizon
Things were looking up. We had established our layer of team leads, given them a successful first round of training on the tricky people stuff, and were well into planning an offsite event to share some management war stories, brainstorm on some engineering issues, reinforce the team lead peer support network, and have a bit of fun.

And that’s when Atlassian co-founder Scott Farquhar mentioned to me casually: “You know, I think we should be able to develop our Team Leads to such a level that they could get a job not just at Atlassian, but at any of the other top software product companies in the world if they wanted”. “OK”, I thought, “team leads that are the best in the world. How hard can that be?” Stay tuned…

Can Atlassian develop the world’s best Team Leads?