Two weeks ago I published a post titled ‘Why Smart Software Teams Don’t Need Senior Developers, Tech Leads or Architects‘. I received a lot of good feedback, but I also know it was a long read. So, if you’re interested by the title but are looking for a quick brain dump rather than an enjoyable read, here’s the abridged version:
At Tyro Payments, we’ve doubled our Engineering team over the last year.
We don’t hire for, or use, titles like Graduate Developer, Junior Developer, Senior Developer, Tech Lead or Architect. Everyone has the title ‘Software Engineer’.
This is an important part of Tyro’s Engineering team culture. Here are the reasons…
Reason #1: Assigning a wide variety of roles across your development team suggests a mental model that skills can change overnight, but the reality is that they grow and shrink slowly but constantly over time. (See the funky faux apps comparing binary skills and real skills in the original post.)
Reason #2: A deep hierarchy of roles provides people with a semantic map of their team by which they determine what they’re not responsible for. This is in contrast to what most organisations want: they’re happy for people to develop as much responsibility as they like.
Reason #3: Some role titles make an individual responsible for something that should be collaborated on by the team, e.g. Architect owning system architecture.
Reason #4: Using roles to motivate developers is flawed because they are typically intrinsically motivated individuals. Promotions as rewards also motivate individuals towards competitive behaviour, whereas most companies want to encourage collaboration.
Reasons #5, #6 and #7: A flat hierarchy has three key benefits:
1. The team collaborates better as peers and can more easily harness its collective intelligence.
2. Staff are more engaged as they are encouraged to develop and practice skills organically rather than waiting for a new role to give them permission.
3. The paths for growth are clearer because they are not disguised by an amorphous title.
One downside of less hierarchy is that employees end up with a resume that appears stagnant. This can be combated with honest, broad-reaching titles, sound explanation in resumes and detailed referee statements.
Reason #8: As a case study of whether flat hierarchy works in Dev teams, Tyro Payments has been doing it for 10 years, where the team is engaged, efficient, collaborative, has a high average tenure and has built what is probably Australia’s most reliable EFTPOS system.
Reason #9: The flat hierarchy approach plays together particularly well with agile principles and especially the Extreme Programming values and practices at the core of Tyro’s culture.
Reason #10: Our approach isn’t original or unique. Others call it Flat Organisation and it’s in use at other renowned technology companies, e.g. Netflix.
I think every management team should take the time to consider whether the roles their company dispenses aid their people to do a great job and keep improving, or are instead holding them back.
P.S. Tyro is still hiring great software engineers to join our fantastic team!