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)
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.