“We cannot tell you how long it will take. It will be done when it’s done.” — some developer
“We’ve decided that an Oracle Portal is the best tool for the job” — some manager
“I know you like refactoring, but we don’t have time for that anymore” — some other manager
“I don’t care that Drupal has a standard OOTB feature, our users want something slightly different.” — some designer
[mks_separator style=”solid” height=”2″]
Each of these sentences are followed by sighs, flailing arms and gossip at the coffee machine.
“Why does she have to make it difficult?”
“What does he know?”
“This is the worst idea since decaf”
The general consensus is that it’s bad, yet those in power have decided to roll with it. Where do these ideas come from?
The silos of suck.
When you look at the average tech office, you’ll see a bunch of people who work next to each other. Because only a handful of nerds are imbued with technical powers, the rest of the “team” works around them. The analysts know nothing about computer-magic, but are presentable enough to meet with customers. The PM doesn’t know the nitty-gritty of the project, but that just makes her more relatable to upper management. Testers have resigned to being the goalie in a shitty team. Let’s not mention the operations guys.
We pick cross-functional teams the way we pick donuts : one of each, please. These people only look at their own tasks and all the other stuff isn’t nearly as important. Planning : who cares? Testing, pfff… If everybody only looks after their part of the job, is it any wonder you are surrounded by the incompetent?
A famous study described how amateurs overestimate their knowledge on a subject matter, while experts rated themselves considerably lower. This Dunning-Kruger effect is especially visible in tech projects and is the source of most communication issues.
“What? Two weeks for that feature? It’s just a small….”
“Our users are morons. I could easily automate their entire job.”
“These guys from IBM showed me their product and I’ve decided it’s the best way to go.”
Break the silo
There is a solution to this problem that most people don’t seem to like : cross-functional team members. Someone who is project manager and developer. A tester/designer. Invest time in teaching your team members as many skills as possible. An awkward developer should meet the end-users. A technically left-handed analyst should code some automated tests. The team lead should dabble in all of these.
This is a painful and slow process, but the end result is well worth it. A team that is truly cross-functional and that understands each other. When we look at the Netflixes, Spotifies and Googles we can’t help but notice their leaders are all-rounders. They are not the best coders, nor the most structured managers, but they know a little bit of all. That’s part of the key to their success.
Next time you’re rolling your eyes at that dumb manager, involve her in the technical discussions. If you don’t get why that dev can’t estimate your analysis, join him for a pair-programming session. It’s the ultimate form of knowledge sharing and it will build an awesome team.