My Experience in Asymmetric Teams
A situation I observed recently in a team I'm working with is a huge spread in seniority through the team members. In my frustration I tweeted one of my observation here. I noticed that estimations for tickets vary vastly which makes planning and estimations a real challenge. This manifests in huge differences in perceived complexity for tasks. The part of the team with lots of seniority estimates tasks much smaller than the more junior part of the team. The gab between those is huge, in some cases tasks take a senior people on the project one to two days while junior, even with lots of supervision and support, will struggle to finish the task in a 3 weeks sprint.
Does that mean the juniors are hurting the team and they shouldn't be part of it? I don't think the answer to this problem is that simple.
Looking at what seniority in this project means its falls into three categories:
- Experience as a software developer. This simple to grasp it's essentially how much time has one spent as a software developer, how much experience do you have working in teams, etc.
- Experience with the technology. In our case we are developing a domain specific tool for the automotive domain. As an implementation technology we are using JetBrains MPS. Experience with the technology means two things for us: how good do you know your way around in the tool and how much have you developed a language engineering mindset.
- Experience in the domain. In our case that is automotive. How well do you know the “language” spoken by the domain experts and how long does it take you to understand their problems.
Now looking at how the team is structured we find three “buckets” in the team: one group is people with 10+ years of experience as a software developer, 5+ years with MPS and language engineering and 2+ years in the domain. Another group has 2-3 years of software development experience and the same on language engineering and MPS while their domain experience varies between 2 years and 6 months. The third group has at most 6 months in all of the categories and it's often their first job.
What is the problem? On paper such a team looks good, there are senior people from whom the junior people can learn? To sum it up in one word: frustration. Especially for people like me, where intrinsic motivation is very important, seeing that we as a team don't make meaningful progress on the product is frustrating. Doing sprints where the biggest challenge is to explain to parts of the team basics like git or Java becomes exhausting overtime. It's accompanied with the feeling of never achieving something meaningful in the project. I'm a person who likes to push myself by over committing. I'd rather set a goal that I can't reach and push myself to get as close as possible to it, than setting lower goal thats “safe” to reach. If I set a lower goal where I know I will reach it, it's boring to me and it doesn't feel like an achievement to me when I reach it. Setting such goals in a team with this asymmetric skill level is almost impossible.
Right now we are approaching a state where the senior people are about to get burned, or better to say bored, out because they are missing a challenge and don't see how the situation allows them to develop them selfs further. To make it worse there is no obvious solution on the horizon. The business has expectations about shipping features which are not to meet if the seniors leave.
You want to join the conversation? Drop me a tweet @dumdidum or email me at kolja@hey.com