Devs, QAs, POs, PMs, BAs, UXs, DBAs, Architects, EMs, Tech Leads, Team Leads, Scrum Masters, Agile Coaches. Are we sure all of these roles need to map to one person in the team?
A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyse a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects.
— Robert Heinlein, Time Enough for Love
Everyone is able to do much more things than just the things described in a role. But software industry has condemned people to play a role forever and ever. Companies don’t usually help people to change roles, this is hard to find.
One of the reasons of the overspecialization is the obsession to have people ready to produce value from the first second. To avoid learning during working hours, just to produce something.
You can see this in the work offers of your organization, the majority of them are obsessed with seniority, with years and years of experience in a tech stack or in a set of technologies. Experience is good, but it is not much better than the capacity to adapt and learn, we should focus much more on this.
The problem is that software is travel to learn, to discover things, and the best effective way to do this is to learn while doing. To make the team a place to learn, to convert your team in a dojo.
You cannot hire T-shape people, because there is no a place where you study how to be a PO and a developer and a BA. The thing is that we have to produce them, I mean teams should allow people to learn to have the ability to do more things in the organization.
How to produce T-shape people?
The only way I know to do this easily is using collaboration instead of coordination. Collaboration is working together in something, that approach of working together, at the same time in the same space talking continuously help people to understand others capabilities, ways of thinking and procedures.
What things help us to work in a collaborative way in software, I know…