Boring people? Hell, I just don't want to work with them. If I have a say in hiring someone I'm going to spend hours a day around, I'm going to do my best to make sure it's someone I find entertaining.
Boring people? Hell, I just don't want to work with them. If I have a say in hiring someone I'm going to spend hours a day around, I'm going to do my best to make sure it's someone I find entertaining.
What the fuck, man? Are you trying to hire professionals to do a job or are you treating hiring as some sort of fucked up way of making friends?
Either is a completely valid lifestyle, but they just don't mix well, so they should screen each other out at interviews.
One of the ways I manage to be a very happy person is to not spend time with people who don't actively make me happy, any more than necessary.
It may not make sense to choose personality over technical chops if you're trying to hire a language designer, but it may make sense to do so if you're in a niche which requires teamwork.
I'm not sure why you keep assuming the best programmers are boring or unpleasant. I've found the opposite to be true, generally.
Brilliant people don't always play well with others, and software is (in my world at least) a team effort. I want to work with people who pull the team together, not tear it apart, no matter how talented they are technically.
One of the most intelligent and creative programmers I know is an arrogant douchebag who demoralises entire teams. He's very effective on his own, but stick him in a scrum team, and watch the culture of that team sour and watch its productivity drop.
I used the arrogant douchebag as an example of why a great programmer who doesn't fit a team's culture is going to drag down the productivity of that team - how they don't fit that culture can obviously vary.
There are tons of interesting, very professional people around. There's no need to stick with the boring ones you find along the way, so yes, I would also avoid them.
An otherwise boring guy who goes home to his family and spends his weekends working on his house and watching football might get you one week closer to shipping product than the guy who goes out for drinks after work and will play video games with you and go rock climbing. So if you don't hire him, your competitors will and then your competition will leave you behind while you're out drinking and playing video games and rock climbing.
So your competitors hire the boring guy and get that feature one week earlier. You hire interesting people and they form a cohesive team, carry each other through tough times and work more passionately overall. At the end, you get N extra, unique features as a byproduct of your more involved workers, shooting months ahead of your competitor.
I know I presented an ideal case, but it makes my point. Working around boring (as in non-interesting) people is boring, and you won't be as productive in that environment. Thus, it makes sense to avoid these people unless you very much need their specific skills and you can't find those anywhere else.
Let's say you had a coworker who was knowledgable about the problem domain you worked on, produced lots of good code, made great positive contributions to any design meeting or code review he was invited to, always had a free moment to answer questions, but he always brought leftovers from home for lunch and ate by himself and never really made a joke or hung around with the team in a social context and you never got a sense for what his personality was outside of work because he only ever seemed to get engaged when the discussion was about work. I'd say that's a great coworker, someone I would love to work with, but also a very boring person. So why wouldn't you want to work with this guy?
Ultimately, you clearly agree that gaining and retaining great talent is what makes a software business stand ahead of its competition, so isn't it risky to gain someone who isn't going to feel bad about leaving the business (and take all his experience with him)? If I can hire someone who'll fit in well with the team and produce good quality code, then I'd consider him a better long term investment that someone who fits in poorly with the team and writes great quality code, purely because the latter person has fewer reasons to stick with the business than the former.
If you don't want people to leave the business, earn their loyalty. A boring person still wants to be treated fairly. They still want to take vacation, even if it's to visit their boring family rather than go backpacking in Tibet. They still have the same capacity to either enjoy or hate their job. They just don't necessarily have an interesting answer to the question "any plans for the weekend?", and I don't see why that makes them worse employees.
On the one hand, you present a very idealized case: how can she engage in (tangentially) work-related discussions if she's never around when discussions happen outside of meetings? After 8 years in industry and 4 as a PhD student, I have worked with and around many excellent people. However, I still have to meet someone that fits your example. They probably exist, but it is way easier to find either excellent interesting people or excellent boring people who simply won't get as engaged in your team/company.
On the other hand, at least for a small company, hiring the wrong person is much more costly than passing on a good candidate. Thus, when you interview (hopefully excellent) boring persons, probabilities are hugely stacked against them.
But, at the end of the day, teams can hire who they want, so I definitely don't think this sort of thing is inherently wrong -- I guess I miss the part of the industry where one could work in near-solitude since that's what I prefer.
I'm not the only one, either. I was trying to recruit an old colleague (and I'm not done trying to recruit him!), and his biggest concern about going to an early startup was the lack of a team to work with. He's one of the nicest and most easygoing people I know, and a natural leader. I'd love to have him leading a team of developers for me. But first, I'd have to get him a team.