Same Same, But Different
Over the last year and a bit, I've experimented with splitting my team along various lines, with the goal of increased effectiveness, happiness and delivery reliability.
The last attempt basically split the team into two mini-teams, each somewhat self-contained, with its own domain and responsibilities.
And if there is one thing that I've learned in my years of muddling through being responsible for people, it's that teams need leaders.
Even mini-teams.
Do NOT Fight That Tiger
Once you start being responsible for enough people, your ability to effectively serve those people starts to degrade.
I think the inflection point is somewhere between six and eight.
At that point you have less time to spend with individuals, less time to keep abreast of what people are working on and less mental space to comprehend what the hell is going on in general.
It's not good for you and it's not good for the people that you're responsible for.
Right now, I'm currently directly responsible for ten people, twelve if you include a rogue intern and a contractor. Thanks to our 2AF, there are more on the way.
By splitting the team into two streams, each one focused on a particular subset of our total domain, I've somewhat mitigated the problem of being responsible for too many people, because each stream has a stream lead.
At a high level, the core responsibility of a stream lead is to keep the delivery machine running. They ensure that our operational load is handled (via managing the disturbed roster), that projects are progressing (via planning and intervention) and that our business-as-usual (BAU) workstream is a reliable way to get small things done (via backlog grooming and prioritisation).
The role comes with absolutely no expectations around the people side of things, though that's a bit misleading, because people are a core part of the delivery machine. Stream leads can't ignore them entirely, but they don't have to deal with the intricacies of their growth and performance.
That's still squarely on me.
This allocation of responsibilities significantly changes my ability to be responsible for a group of people.
Also, because there are two stream leads, each one is only responsible for a bit under half of the load that I was dealing with by myself, which is far more sustainable.
Delegation!
It's So Empowering
Being a stream lead represents a significant opportunity for an engineer, but perhaps not in the way that most engineers want to grow.
It is, primarily, a leadership and facilitation role, with little in the way of direct technical contribution.
This can be a sticking point for some, as it may mean a slow rot of those valuable technical skills, especially with the pace that the tech industry moves forward. I can vouch for the insidiousness of that rot personally. While I feel like I have a pretty good handle on the concepts of engineering, I seriously doubt I could sit down and actually make something at this point in my career.
Coming back to the opportunity point, the stream lead role aligns well with certain types of engineers.
The first type is the engineer that wants to be a manager. Or perhaps they show all of the tendencies and behaviours of a manager, but haven't yet decided that that is the path for them. Maybe they are in denial. It happens.
For that type of engineer, the role is a perfect way to take on some of the typical engineering management responsibilities (keeping the delivery machine working), while not having to worry too much about the others (high level planning, people management, etc).
The second type of engineer for whom the stream lead role is a significant opportunity is the one that wants to continue to be an engineer, but to take more responsibility for driving technical direction and delivery.
This is something that we've recently started exploring inside Atlassian, the idea of engineering archetypes. These archetypes attempt to reconcile that once you get to a certain level of seniority as an engineer, you tend to focus on a particular style or approach.
One of those styles is the technical lead, which is a senior engineer who focuses on facilitation and collaboration, driving technical decisions and shepherding delivery of value, while maintaining a technical focus and even doing some direct contribution.
Having experience being a stream lead can only help an engineer who wants to go in that direction.
Honestly though, I think all engineers could benefit from spending some time learning how to wrangle cats, where the cats are their peers. It's a useful skill to have, regardless of your career aspirations.
The First Rule Of Management
In the time that I've had stream leads, I've noticed a lot of good things. More attention to what is being delivered, more detailed organisation and planning, more intervention when things are going poorly and an increase in engagement.
The engineers that I challenged with the role have done a great job and I am exceptionally proud of them.
But establishing the new role has come with some challenges as well.
The first is an increase in stress for the stream leads. Both of the people who are currently in the role just seem more tired, though not necessarily less happy, which is an interesting combination.
I think the root of this is that the role is a fundamental step up in terms of accountability and scope. This sort of increase can be motivating, but it's also exhausting, because you feel like you have to be across everything and are constantly hyper-aware of whether or not things are trending in the right direction.
It also just generally results in more things to read, more decisions to make, more angles to consider, etc. Both of the stream leads have been working longer hours as a result, and that concerns me, because I don't know how sustainable it is.
The second challenge is that I feel more disconnected from the team. I want to give the stream leads space to lead without feeling like I'm hovering, but I still need to know things in order to do my job.
Being more disconnected means that I lack context, or more accurately, that I have to go looking for context instead of just automatically having it. It means I spend more time reading documents, checking dashboards and sometimes poking people or channels directly, which in turn increases the load on people to funnel information in my direction.
I suspect it also means that I'll be less effective at providing feedback and guidance on how people could grow, because I'm not seeing all of the things that I used to see.
Now, strictly speaking, the challenges above are surmountable.
The stress and load of the role is something that might just take time to understand, and there are probably responsibilities inherited from being a senior engineer that need to drop off in order to make space for being a stream lead.
The disconnection could actually be a good thing, giving me a different perspective and encouraging people to improve their ability to communicate and share context asynchronously.
But in this intervening period, where things are still settling, they stand out as pain points.
Ain'ters Gonna Ain't
I've had stream leads for about eight or nine weeks now and I'm pretty happy with the way things are going.
It's not been entirely smooth sailing, but that's the way with most change. The confusion and unfamiliarity are dropping and generally people are going about their business and delivering meaningful amounts of value without too much trouble.
I don't feel like I'm less busy than I was before delegating a bunch of responsibilities, but that's probably because Engineering Management is like a gas in an enclosed space.
If you take some of the gas out, it still fills the enclosed space.
It might be a little bit less dense or concentrated, but it's hard to tell for sure.