hiring for that small startup? you'll want multi-hat wearing people first, brilliant programmers second.
hiring for a large enterprise team? you'll want to hire for "plays well with others" first, and brilliant programmers second.
that's not to say you should hire schleps, for sure. they should at least be competent programmers. i guess what i'm saying is (despite how it sounds), hiring someone who can program brilliantly is important, but not as important as hiring someone who can navigate your company's software-making requirements successfully.
firing the brilliant engineer who thinks he's more talented than everyone else in the small company so he keeps demanding to be put in charge? yup, that's a thing. firing the brilliant engineer who fights tooth-and-nail over some inconsequential feature the product team wants to change? that's a thing too. assigning a brilliant engineer to crap, meaningless work because no one else on the team wants to work with them? yuppers -- seen it.
in any organization, you are either the only one in charge or you're following someone else's orders -- both of which require different aspects around working well with others.
Aka, the reason why virtually all enterprise software is pure shit.