Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Maybe this is a tangent, but isn't it strange that programmers accept that a competent person could, and should, be fired, if their personality doesn't gel with whoever happened to join the company earlier than they did?

If we were digging ditches, how likely would it be that you would fire an above-average ditch-digger, for "cultural fit"? I mean, maybe it does happen (I've never worked that sort of job) but it seems to me there's a cleaner separation there between work product and the contents of one's mind or one's personal associations.

It seems to me this is an unacknowledged downside of software jobs; despite our apparent autonomy, our minds have to be very open to being molded and harnessed.



Cultural fit tends to be code for the firee (or firer, one or the other) being an asshole. Nobody wants to work with assholes, no matter how above average they might be. I have never heard of a kind, well-liked person being fired for cultural fit issues. (Which is not to say it never happens. But it's pretty rare, I guess, that that is the actual reason a nice person is fired.)


It can also nicely hide ageism, racism, sexism, conservatism, liberalism etc. Basically any reason to not like a person.


Whatever the people think of these -isms being bad, I am convinced that a person has a sort of right to not having to deal with people he doesn't like.


Not in the us, not as an employee of a corporation. If you don't like someone because they are in a protected class, you just have to deal with it.


In my experience almost any level of assholery is tolerated if the person is a good performer, or has made themselves indispensable.

"Cultural fit", when it isn't an excuse for various kinds of discrimination, seems to be more of an issue with stuff that's not so easy to quantify. If there's a guy who likes going off on long expeditions into learning new tools, and the rest of the team are PHP meat-and-potatoes guys. Or if you have a place where cultish worship of the CEO is the norm, and one person don't exhibit any outward signs.

And the definition of "asshole" behavior can even vary. In one job I worked at, replacing someone's code with your own that works better made you a hero, and it was incumbent on the other person to have no ego about it. In another job, that was tantamount to insubordination, and not respecting the blood, sweat and tears that had been spent before you got there. (Full disclosure: I did the former behavior at the latter place. It wasn't the only reason things didn't work out, but it was a factor.)


So then why don't you just fire them for being difficult to get along with? Why do we need codes that allow us to hide our true motivations? That's incredibly passive-aggressive.


I completely agree. It feels like the industry has been hijacked by people who were actively ejected from all cliques in high school, and now they create their own cliques around them and eject people arbitrarily because "they are not like us".


> I'm not saying it's wrong in software, but it is an unacknowledged downside to the job

But it is an upside as well. It could be a sign that the team and the position is not at the same level as a ditch-digger. Because it is a creative position, relating to communication, and working with others, unable to work with others for whatever reason (language, culture, different approaches to solving problems personality) matters. Flipping burgers, digging ditches, picking apples, selling cars, culture fit amongst the group of workers matters but not in the same degree.

On the other side of the argument, places shoot themselves in the foot, because of this. Because ultimately what matters most if whether the person is a net benefit for the company. Maybe their personality or age or gender or religious beliefs, or sexual orientation doesn't match the average there but ask yourself this, is that more important than the benefit for the whole company. Young start-ups get all gung-ho on culture fit and by that I mean they want to hire 20 year old something that dress, walk, talk and think just like themselves. Each one of them hasn't asked themselves whether they can manage to work with someone of a different gender or different age because of the experience and perspectives they bring, they take the easy route and say "well they are not like us, and we are awesome, so they don't fit".

Anyway, two sides of the story. When it comes to things like this no matter how much we hammer at the issue there is not one clear answer. It always depends.


When someone is a real producer the culture fit thing seems to go by the wayside. I recall times at a new job where I say to someone "What's the deal with Wayne?" and the answer I get back is "Wayne can rock the nimrod like no one else, we would fall apart if Wayne were hit by a bus, so we just ignore Wayne's weird and off-putting behavior, and so should you."


I have to spend, at the minimum, 30 hours with these people, often 40 or 50. If I have to deal with someone who stretches a 10 minute meeting into an hour because they just are chatty or don't understand or think it's a good time to bring up their hobby horse (every time), or they're irritating as hell, it's going to make my life worse. Life is too short to spend a third of your life with people who you can't stand.

But there are going to be people who are going to totally click with them. So is it better, as a boss, if I tell them to shut the fuck up? That they make me want to kill myself on a regular basis?

Now, for me, that means I'd have to personally pair program with everyone I interview for a half day. (If this irritates you, this is the wrong cultural fit for you.)

I've worked with people who got the job done but wouldn't follow UI patterns in the rest of the application. People who thought it was fine to modify the database in an integration test without rolling everything back. People who, no matter how much you asked, ignored the logging framework and checked printlns in everywhere. Who thought getting the job done quick was more important than getting the job done right. People who thought a copy and paste was better than generalizing the code and not repeating yourself.

Are they not doing their job? It depends. For people who were like them, they probably would get along swell.

But that's not a good cultural fit for me, for the kind of work I do. And I wasn't a good fit for a job where the boss knew every piece of code like the back of his hand and so tests weren't necessary. I was so afraid to make any changes that I froze up -- a bad checkin could mean hundreds of dollars an hour lost until someone notices.

I should have left, but I thought the problem was me, and that I'd eventually get it. I know better now, but it was about personality. I need to be around people who write tests. Some people don't. These types of people shouldn't work together.


Nice comment. just one thing confuses me. what's wrong with a manager knowing the code well? It seems helpful to me to tell a manager exactly what part is causing a bug and he be able to understand that.


I believe in pair programming within a team, at least a couple hours a week. I credit it as something that has accelerated my growth as a programmer through the years, and people who I respect have said the same thing. I think it's great on hard problems, bringing new team members up to speed, cross-training, and generally learning how other people think when they code.

The studies I've seen say that it also produces better code. I'm not convinced that 40 hours a week is necessarily the right way to go, but many places I've known do 0.

Other people hate pair programming at all. Those people would not be a good cultural fit for the kind of place I want to work.


I havent had the chance to do pair programming at the workplace yet, but we'd do it all the time in Programming Competitions and it was very effective.

I think the reason managers don't tell you to do pair programming is that they thinking two devs on two different tasks is more productive than 2 devs on the same task. Though i'd argue that when two people are workign on the same screen, there's a less chance of them drifting over to HN every once in a while (like i am doing right now)


> If we were digging ditches, how likely would it be that you would fire an above-average ditch-digger, for "cultural fit"?

Perhaps, if the above average ditch-digger never gets around to digging ditches because of the way the shovels are distributed.


> if their personality doesn't gel

That's not the entirety of cultural fit. But that's also a good reason for getting rid of someone. Being a programmer isn't just about the code you right.

Too many people see "cultural fit" and feel it's a way for them to get shunned. I'm sorry, but if this is a continuing problem for anyone, they should look at themselves as the problem.


Alternate character interpretation: it is exactly a desire to separate out the cool kids and the uncool kids, but it's one against which most people won't (or at least don't think) they can file an unemployment claim.

My experience with startup founders and those who wish to be startup founders suggests to me that this is more likely, but I recognize that my experiences are different from yours so you may not feel the same.


I think both sides need to look in the mirror: The employer to figure out how their culture is causing people to get fired, and the employee to figure out how they ended up in such a poor work environment.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: