Podcast: Play in new window | Download (Duration: 1:10:27 — 64.5MB)
Panel
- Joe O’Brien (twitter github blog)
- Josh Susser (twitter github blog)
- Avdi Grimm (twitter github blog book)
- Katrina Owen (twitter github blog)
- David Brady (twitter github blog ADDcasts)
- Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up)
Discussion
01:06 – Joe O’Brien Introduction
- EdgeCase
- Funemployment
- GoGaRuCo 2012 – Joe O’Brien: People the missing ingredient
- Steel City Ruby 2012 – Joe O’Brien: People Patterns
04:46 – People for Geeks
- Assburger Syndrome
- Asperger Syndrome
- Pragmatic Thinking and Learning: Refactor Your Wetware by Andy Hunt
19:33 – Conversation Rolodex
- Giving compliments and taking compliments
26:58 – The 3 Realities
31:56 – Working with empathetic people vs skilled people
37:33 – Evaluating prospective employees
- Passion
39:50 – Team “Fit”
- Abrasiveness
- “The Secretary Test” / “The Waiter Test”
45:52 – Dealing w/ Bosses
- Training
51:26 – Project Phases and People
Picks
- oEmbed (Avdi)
- Embedly (Avdi)
- Mass Effect (Avdi)
- DataTables (David)
- Archer (David)
- TOML (Josh)
- If you ever feel alone in this…: Darius “Bubs” Monsef (Josh)
- Jeff Goldblum’s ‘80s work (Josh)
- Earth Girls Are Easy (Josh)
- Vibes (Josh)
- The Adventures of Buckaroo Banzai Across the 8th Dimension (Josh)
- Mob Programming (Katrina)
- The Up-Goer Five Text Editor (Katrina)
- xkcd: Up Goer Five (Katrina)
- The Up-Goer Five Text Editor (Katrina’s Example) (Katrina)
- RailsCasts: Episode #340 DataTables (Chuck)
- rweng / jquery-datatables-rails (Chuck)
- nathanl / authority (Chuck)
- Anker Battery Pack (Chuck)
- Pragmatic Thinking and Learning: Refactor Your Wetware by Andy Hunt (Joe)
- How To Win Friends and Influence People by Dale Carnegie (Joe)
- Rands In Repose (Joe)
- Being Geek (Joe)
- Managing Humans (Joe)
- Get a hobby (Joe)
Book Club
Patterns of Enterprise Application Architecture by Martin Fowler: Read along with us! We will be discussing the book with Martin himself and the episode will air on Wednesday, March 20th, 2013.
Next Week
Topaz with Alex Gaynor
Transcript
JOE: People, the cause of all greatness and problems.
CHUCK: That’s so true.
JOSH: I thought it was beer.
[Hosting and bandwidth provided by the Blue Box Group. Check them out at BlueBox.net.]
[This podcast is sponsored by New Relic. To track and optimize your application performance, go to RubyRogues.com/NewRelic.]
CHUCK: Hey, everybody and welcome to Episode 95 of the Ruby Rogues podcast. This week on our panel, we have Josh Susser.
JOSH: Hey, good morning from beautiful, sunny San Francisco.
CHUCK: We also have Avdi Grimm.
AVDI: Hello from Pennsylvania.
CHUCK: Katrina Owen.
KATRINA: Hello from Montreal.
CHUCK: David Brady.
DAVID: Montreal? You’re in Denver!
KATRINA: That was yesterday.
DAVID: Hi from Salt Lake City.
[Laughter]
CHUCK: I’m Charles Max Wood from HYPERLINK “http://www.DevChat.tv” DevChat.tv. And this week, we have a special guest. And that is Joe O’Brien.
JOE: Hello and welcome from a not-so-sunny, not-so-beautiful flyover City of Ohio.
CHUCK: So Joe, I know we all know who you are. But this is your first time on the show. Do you want to introduce yourself really quickly so people can get an idea of where you’re at and who you are?
JOE: Yeah. So, hello, I’m Joe O’Brien. I founded a company called EdgeCase, co-founded back in 2006, right about the start of the Rails boom. I got to speak at the first ever Rails, first two ever Rails conferences, depending on how you measure it and look at it. I was at both of them. And I have been enjoying it ever since. And I recently left the company. They’re in great hands. They’re doing wonderfully to pursue other things and figure out what those other things might be.
DAVID: So Joe, is there any truth to the rumor I’m starting right now that you left EdgeCase because you borrowed Jim’s car and wrecked it?
[Laughter]
JOE: That’s awesome. That’s one of the better rumors I’ve heard.
DAVID: I had about five or six that I had to go through to get one that wasn’t really off color. So…
[Laughter]
JOE: Coming from you, that’s awesome.
JOSH: Those will be on the show notes later.
[Laughter]
DAVID: We should do that. We should put on the show notes ‘Top 10 Reasons Why Joe O’Brien Left EdgeCase’.
[Laughter]
CHUCK: Oh man!
JOE: No, it’s a cloney rumors.
DAVID: Number 10, he couldn’t remember the name of the new company’s name.
[Laughter]
AVDI: Secretly can’t stand Ukulele playing.
[Laughter]
JOE: Oh, my God! Are you kidding me? Listening to Jim Weirich play is just amazing. I got a funny story about that. I was starting to learn to play the guitar and he’s been helping me. And I wanted to learn to play a Taylor Swift song because my daughters are so infatuated with Taylor Swift. So, he goes and learns one so that he can teach me. And to hear him — and you know, Taylor Swift had maybe one or two angry or breakup songs, just one or two. And to listen to the happiest person on earth play something like that on a Ukulele, which is probably the happiest instrument on earth, was just one of the funniest things I’ve ever heard.
DAVID: That’s awesome.
JOSH: You must like Steely Dan.
JOE: Oh, I love Steely Dan.
JOSH: Yeah. But they’re just great for the ironic pairing of really happy, uplifting music with really dreadful my-life-is-over songs.
JOE: Yeah. So, next time you see Jim, ask him to play Picture to Burn. You’ll laugh your head off.
JOSH: I will do that. I’ll make sure I have a shot in me or something.
AVDI: I had this recent experience to look up Alanis Morissette’s cover of My Humps.
[Laughter]
DAVID: Yes! Yes!
CHUCK: I’m still waiting to see Jim singing that, “Weeeeeeee…eeeeee!”
[Laughter]
CHUCK: I never ever want someone to see that. Anyway…
JOSH: Joe, you’re now Funemployed.
JOE: Exactly.
JOSH: Which everyone in the world is envious of right now. [Chuckles] But we were talking about you and misquoting you a couple of weeks ago. In fact, we talked a lot about team work and programming with people and running companies with people and working on projects. In fact, you would be a good person to come in and talk to us about that because you’ve been running around about the last year talking to people about People Patterns and People the Missing Ingredient and People the Source of All Problems and that kind of thing.
[Laughter]
CHUCK: Have you been watching My Family drama unfold because I swear, people are the source of all of my problems.
[Laughter]
CHUCK: You just say that all day and I’d be like, “Yup…yup.”
DAVID: That’s awesome.
JOE: Yeah, I know. No, and I appreciated the invite. For a couple of years now, I’ve been wanting to figure out how to get — do a lot of speaking. I’ve been trying to figure out how to build a talk or do some writing about People for Geeks. I mean, it’s amazing because there’s so many assumptions about people skills and where we get it. The fact that we’re introverts and extroverts and we use these terms not knowing what they mean. But we use them as excuses.
And it was this discovery that I’d looked back and realized I’ve never seen a project fail for technical reasons. So, that’s the big kind of thesis behind this. With that, I went to a friend of mine and mentor, Glenn Vanderburg and kind of run it by him. I’m like, “You’ve got a little bit more experience than I do,” which was my code word for saying, “You’re kind of older.” And he says, “You know, I’ll take that a step further and say, I’ve also never seen a project succeed for technical reasons.” So, it’s like every time the recipe is great for really good people or it’s bad, or the project is going downhill, it’s never because we did something like, we happen to choose Apache instead of Node. And we all know that that just doesn’t scale. Or we didn’t choose NoSQL, we actually went with the database.
Projects never fail for those reasons but that’s always seemed to be talked about at conferences. Why aren’t we talking about, “How do you pair with a guy who has a crappy attitude?” Or, “How do you deal with a manager who you’re not sure if they like you or not.” These things come up all the time. And there are things that just don’t seem to be talked about.
And so, I finally figured out a way to distribute the information as I have it so far and we all love design patterns. And so, I kind of incorporated these into small distinguishable bits that you can learn. And so, I’m trying to build on them and expand on them.
JOSH: That’s pretty cool. You know, I’ve seen your talk a couple of times. And I liked it. And as someone who’s pretty interested in psychology which you can tell because I’m building a company around psychology. I found it really spot-on in a lot of cases. I loved it.
One of the issues that we geeks have is that we’re so used to programming computers that we think we can program people. And if we just push the right buttons, people will respond the way we want them to. And people are actually way more complicated than that. So, I think that it’s worth studying how to interact with people so that everybody can be satisfied with the interaction.
JOE: Oh, indeed. Well, it’s interesting too because we use the words — so, let me go to one of my rants, we use the words introverts and extroverts a lot. I’m an introvert, right? Well, all that means is where you get your energy from. It just means you become energized by sitting in a room by yourself, not really around people.
I particularly happen to be an extrovert. I get my energy from being around a couple of people having conversations. When I’m in a room by myself, it’s draining for me. Whereas some people, that’s where it’s filling.
All that means, though, is that I’ve tried — I’ve kept myself in situations with people so I’ve tried a little bit harder to learn these things. It doesn’t mean I’m born with some innate sense to understand how to carry on a conversation. Or understand what to do when a conversation hits a wall, or whatnot. And so, because we’ve had to learn these things as well, there are things that we can talk about and quantify. And yeah, there’s a ton of great reading out there. Most of us just don’t seem to tackle it.
JOSH: Joe, you used the term or an expression that I’m familiar with when you’re talking about introvert/extrovert. You’re talking about is where you get your energy. And I’ve heard that in discussions around the Myers-Briggs Personality Test. Is that what you were referring to there?
JOE: Yeah, kind of, I guess.
JOSH: Because I think it’s worth mentioning that.
JOE: Definitely.
JOSH: It’s a really geek friendly way of understanding things about people.
JOE: It is but my sister is probably going to listen to this. She’s getting her PhD in Psychology. And if I mention Myers-Briggs in a positive note, she’s going to have my head.
[Laughter]
JOSH: So, tell me why it’s messed up?
JOE: It is apparently something that can very easily be manipulated depending on your mood. And so, there’s a lot of studying out there about how there’s some issues with it. And so, I don’t know exactly. I just know that in the psychology academia world, it’s similar to an editor word that we might have.
[Laughter]
JOE: So, I’ll just leave it at that.
JOSH: Okay. Good to know.
DAVID: But introversion/extroversion, that’s a really key thing because I also stand up and give a talk and I’m running around the stage. And I mean, at Mount West in one year, I gave a talk in a bathrobe. And people just assume having seen me talk, that I’m an extrovert. And I’m absolutely not an extrovert. I love that it’s about where you get the energy.
If you want to know if you are an introvert or an extrovert, the question is not can you stand up in front of a group of people. The question is what do you do when you are utterly wiped out? Do you go find a party or go to a pub, go hang out with family to recharge yourself? Or do you just get away from everybody, “I need a book, I need the Internet, I need time with my T-Vo. But just leave me alone.”
KATRINA: I thought the question was how long do you have to sleep after a conference?
[Laughter]
JOSH: Okay.
JOE: For those of us that hang out at the bar a little bit too long, I thought that was cute.
[Laughter]
[Crosstalk]
JOSH: I think that’s a great point, David. There’s another side to it as well. I’ve always understood introvert/extrovert. A big part of that was how you process information. So, I had a co-worker at a startup years ago and she was a really hardcore introvert and I’m a really hard core extrovert. And what that meant was that when I ran into a new problem, I want to talk it over with somebody. I want to discuss it with somebody so I can pull out all the pieces of it and look at it from all these different sides until I really come to understand what the problem is about. And her response when she runs into a problem and she wants to go off and think about it and sort it through in her head before she feels comfortable having a conversation with somebody else about it.
DAVID: Yeah, it’s interesting.
KATRINA: But now, I’m really conflicted because I have to go sleep a week after a conference like people just drain me. But when I’m trying to figure out what I’m thinking like what I actually think about something, I have to write it down or talk it over to even find the words to figure what it’s about.
JOSH: Maybe this is why Myers-Briggs is a bad test.
[Laughter]
JOE: So, the point is very similar, though, right? We tend to use these terms and they’re loaded terms, right? And I know we’ve never done this in the computing field where we use a term for something it shouldn’t necessarily be.
[Laughter]
JOE: But what we do is a lot of people end up using that term as an excuse. They go, “I’m an introvert. I’m bad with people.”
DAVID: Oh, yeah.
JOE: Or, “You’re an extrovert, you’re just good with people.” As if I was born this way or just like they think that people are born with this innate sense of the ability to play the piano where most people have just busted their ass for years and actually listen to parents who did the piano lessons, right? And so, what happens is they don’t realize that I’ve had to go to a networking event early in my — I had a sales career for a little bit — early in my career in a room full of people that I didn’t know and just randomly walk up to somebody and talk to them. And then, I was just as scared as anybody else would have been.
That nowadays, after being on stage and speaking to people and being fairly well-known amongst our peers, I met somebody who I’ve been wanting to meet for a long time at a conference in Scotland last year. And I walked up to her and I still had those things playing in the back of my head going, “She doesn’t really want to talk to you. What do you have to say that she’s going to find interesting? Who do you think you are going up to those?” We still have these things that happened to us. We’ve just figured out ways to work with them because we get our energy from the situations that’s not as draining and we have more energy to put towards it. So, we don’t have to work as hard. But we still have to learn these things.
Conversation skills, people skills are a learned trait. They’re not an innate thing you’re born with.
KATRINA: So, I have this question. People talk about empathy and sympathy also as though they’re innate traits.
JOE: Right.
KATRINA: But, how are they and how do you learn it? Where can I get some?
JOE: Oh, I don’t really care about your question. No, I’m kidding.
[Laughter]
JOE: No, it’s a great point. It’s something you have to put more practice or understand. You know, a lot of people are taught this from a very early age. So, it comes naturally. And it doesn’t mean if you don’t know it, that’s bad parenting. I don’t want it to come out that way. It’s just, yes, I agree that’s exactly the same kind of case with those.
DAVID: I think it’s interesting you mentioned people who think and born this way. And yeah, there’s so much that you can do compensating in software. The best term I’ve heard for just completely blowing up this self-diagnosis thing, is I’ve heard the term Assburger Syndrome. Not Asperger Syndrome but Assburger Syndrome. And that is with two S’s and it’s what you have if you have decided that it’s okay for you to be rude because you have self-diagnosed your self with Assburger Syndrome.
[Laughter]
CHUCK: Now, you’re talking about my relatives again, David.
JOE: It’s awesome.
JOSH: There was an epidemic of Assburger like three or four years ago. It’s like everybody was claiming that they have it.
DAVID: Yeah, everybody had it.
JOSH: So, I’m going to try and tie a few threads together here because Rob Mee who founded Pivotal Labs talks about how — there’s actually a lot of programmers who have their diabolic Asperger or close to it. And in some way, that’s a lack of empathy. You don’t really know how people are going to react to what you do. And that’s a big part of what makes us people is that we can understand what other people are about and how to interact with them well.
So, he was saying how people who don’t have that innate ability to model other people’s reactions to their behavior have to create a sort of a replacement for that by coming up with all these rules for how they interact with people. And there’s been a lot of psychology books written about this kind of thing.
JOE: Yes, exactly. And that is where this whole kind of epiphany came from as well is there’s been a lot written about this. But we’re not focusing on it in the tech world. But you know what? We didn’t focus on brain science until Andy Hunt came up with one of my favorite books of all time in the computing world which is Pragmatic Thinking and Learning: Refactor Your Wetware. He basically takes all the brain sciences out there, presents it to developers in a way that they can — programmers and geeks in a way that they can understand. He gives us the model of a dual-core CPU with a shared bus. And that explains a lot about what cognitive biases are.
And by the way, they’re just brain bugs. We just happen to have a defined list of them. We have an errata for the brain. And so, it’s just great thing that’s out there. I was going to use it as one of my picks. I was kind of upset, somebody picked it last year in December. But it’s an amazing book. I wish everybody had read it. And I thought this is awesome. And it really helps me understand my brain but we need to take a step further and we almost need this as how do you relate to each other. And again, none of this is original. It’s just grabbing this kind of stuff.
And I’m sorry, Josh, I’m going to cut you off. Go ahead.
JOSH: It’s okay. So, Rob’s thesis is that people who have to construct these very complicated rule sets for interacting with other people so that they don’t piss people off every moment of the day, have built the mental architecture for being programmers usually in a very young age. So, it’s really easy for these people to move into programming as a profession because they’ve been doing it all their lives. They’ve just been programming other people who are much harder to program than computers.
DAVID: I talk about running my own brain under a debugger all the time.
JOSH: A lot, I wish.
DAVID: No, seriously. And it’s the fact that I have to do so much of in software reveals the limitations of software, right? I’m deeply empathic in the sense that when I understand that somebody is upset or that somebody is happy, I can’t help but feel that as well. I mirror that emotion very, very powerfully. And sometimes, it’s very frustrating especially if I’m around very angry people.
But I was born with ADD and I grew up with ADD. And like actual textbook diagnosed by an actual doctor ADD, not fashion ADD. But one of the hallmark symptoms of ADD is the inability to observe social queues. And so, I’ve got this catch-22 where I have and everyone is folding their arms and scowling at me and just screaming silently, “Don’t do this, David!” And I completely missed the queue and I piss everybody off. And then I feel horrible because once I figure out that you’re mad at me, now I feel bad.
And I mention that whole bit just to point out that this stuff is really complicated even inside itself. You can break it down into more and more dimensions. It’s very interesting.
JOSH: Do you know how inappropriate that was to say this now?
[Laughter]
DAVID: No clue.
[Laughter]
DAVID: But I feel bad.
JOE: He doesn’t catch me skalling at him.
CHUCK: That’s bad and you should feel bad, Dave.
DAVID: I do. [crying]
JOE: You know, I’ve got diagnosed as well, again, same thing, medical professional. And what it is it I got a weed can’t prioritize information. Everybody’s brain naturally develops its ability to — the information that’s coming in, you’re able to sort it almost for you before you start getting it. Whereas for us, it’s like somebody is just taking all the information and laying it all on a coffee table. And we have to understand what to pick up and what not. And it’s one the best meta-models that somebody gave me as to what goes on. And so, I’ve become hyper aware of those queues as well because of that, because of dropping the wrong things so many times. I’m almost hyper aware of how people are feeling of what’s going on and I do it to people all the time. It’ll be in the middle of a conversation, like, “Hey, are you okay? I just said something that made you mad.” And I’m like, “Oh, no. I just realized I was hungry.” Something like that. And because I don’t have a natural ability to do that, I’d have to learn it and over-compensate in it.
CHUCK: So, I kind of want to get into a little bit more practical. We’ve talked about some of these bigger issues. But what kinds of things can we actually do to change the way that we think or react in these situations? First off, I just want to — how do we not be a total Assburger? And the second is how do we deal with the people who have these issues on our team?
JOE: Those are loaded questions. And they come with so many — it’s like asking, “How do I design a good system?” There’s a hundred different things that go into that in contextual things and whatnot. And so, what I’ve tried to do is the same thing we’ve done in the development world, we’ve broken up things into small, discreet units that can be learned in bits at a time. But also given particular context, these work really well. And this is the whole premise of the People Patterns talk that I’ve been giving. And I’ve been picking up little bit more and more along the way and I’d like to expand this even more.
But I’ll give you an example of some of them. Like, one of them I call the Conversation Rolodex. We’ve all been in these situations where you’ve been wanting to meet somebody and you walk up to them and you’re just like, “Hi, I’m Joe.” You walk up to Dave Thomas, for instance. Well, he’s a nice guy. He’ll stay in a chorionic conversation with you. What do you say? And there’s an awkward silence like, “Aaaah…I don’t know what to say.”
Or you just happen to be standing next to somebody at a conference or sitting at a table. And they look at you with a smile and they want to start a conversation or there’s a lull in the conversation. You start talking about something that’s very in it and hits a natural pause. And neither one of you know what to do.
And so what I talk about is building up this Conversation Rolodex. Yes, for those of you young enough, Rolodex looks like an old database on paper. What it did is you take different topics and ideas and you look at them as potential starters for conversations. So, when you go to conferences, what are some things you can say? Well, what was the most exciting talk you saw today? Who’s the speaker I should have seen? Or what are you playing with right now, technically? Because just about every developer you know is goofing around with something. Who’s your favorite doctor?
JOSH: Did they mention the podiatrist?
JOE: You know you’re having the wrong conversation.
[Laughter]
JOE: If they say David Tennant, you know they’re wrong. But at least you got…
[Crosstalk]
ALL: Woh! Woh! Woh!
[Laughter]
JOSH: Okay. Calm down, we’ve covered it. Joe, I want to interject an extra wild quote because there’s an extra wild quote for any situation. And one of my favorite quotes by him is an acquaintance that begins with a compliment is sure to develop into a real friendship.
DAVID: Nice.
JOE: That’s true. As long as you know how to pull them off. Now, how much are hard to pull off? Here’s the other dirty little secret. People don’t know how to take compliments.
CHUCK: So true.
JOE: So, starting a conversation with a compliment, if you’re not good at conversing is actually not a great thing to do because you could be just as uncomfortable of the fact that they don’t know how to take that compliment.
I’ve been in those situations too. It’s kind of awkward when you’re like, “Hey, you’re looking great.” Did you say I look fat last time? It’s something like, “Oh, I’m not feeling real good.” People don’t know how to react to those.
CHUCK: What is the proper reaction?
JOE: Thank you.
[Laughter]
CHUCK: Thank you for playing that out.
JOE: Plain and simple. Be thankful that somebody noticed something about you.
JOSH: Wow! So, there’s like an empathy move for delivering compliments to deliver a compliment that the other person will receive well rather than react badly to.
DAVID: Right.
JOE: And by the way, I’m going to do some compliments since I didn’t think about that but thank you.
[Laughter]
JOE: So, yeah. Here’s a discreet thing that you can do to build this up. Part of this one came from — I was on Twitter and I saw this girl in Ohio who’s since given some amazing talks and been around quite a bit. But at that time she was going to give her first talk at a conference and she tweets, “I’m going to travel 300 miles to a strange city to be in a room with 300 strangers. I don’t think I’m ever going to be more lonely.” And I kept thinking, “That is really sad,” because when I go to a technical conference, I’ve never been surrounded by more like-minded people at all. Now, you put me around the Thanksgiving table with a bunch of family members, that is lonely. I have nothing in common with those people. But you get me in a room with 400 geeks in a conference, it’s odd. There’s all kinds of stuff to talk about.
CHUCK: Can I interject really quickly? I had this experience in January. I actually went to New Media Expo which is not a technical conference for programmers. It’s a conference for bloggers and podcasters. And it was the same experience. It was the fact that we had that in common.
So, I just want to point out, this isn’t just limited to people who have programming and geekish stuff in common. It’s people who deal with something that you deal with on a regular basis and you have that in common.
JOE: Right. I mean, you obviously have to know your audience, right?
CHUCK: Yeah.
JOE: And so, don’t walk up to somebody at a conference like that and ask them what editor they use. I was on a plane one time and this guy next to me was a scientist and he was going over to England to work on the Collider. And we start chatting and then the plane takes off, you go into your natural place where you’re not talking and he pulls out his computer and fires up this custom BerLinux. I thought was kind of interesting.
And then I glanced over a minute later and he’s inside EMACS. I get all excited. I’m like, “Hey, you’re using EMACS. He’s like, “What?” He actually didn’t understand that he was using separate programs. He had just been taught what to do in those things. It was fascinating from a developer standpoint to talk to somebody who understood his tools in terms of just they’re just there to do their thing, not something we like to argue about.
CHUCK: [Laughs]
DAVID: My secret move for meeting people is not to compliment but to find a way to make them feel valued. And that wraps up a well-delivered compliment or asking them, saying, “What editor do you use?” That can be a compliment or it can be a request for information or it can be the opening move in starting a fight with somebody, right? But if you genuinely want to know, “Man, I’ve been watching what you’re doing and I love your presentations. What editor is that?” That’s a completely different question than, “Why are you using Vim, you idiot!”
JOE: Although if they are, [inaudible].
[Laughter]
JOE: It’s funny because that brings up another point about people walk up to a group. You’re inside a — once a bunch of people are standing up in groups, almost look like clicks but and you just want to talk to somebody. So, you walk up and the group kind of accepts you in. As a member of that group, as we’re talking, I always try to reach out to somebody new into the group and give them a direct question like that, or something that does — either kind of pull them into the conversation, because you understand how awkward it feels to just walk up to a group and stand there and start listening, wanting to interject, or just wanting to be a part of them. So, an interesting kind of core layer on them. So, it’s kind of an example of the small, the Conversation Rolodex. Kind of a small pattern you can apply in a very particular way.
I’ve got a few others that I’ve gone through. One of my favorites is actually, was given to me by a counselor. It’s an unfortunate time in my life when my wife and I are sitting in a counseling session realizing we had some rough times. As we’re discussing something, this guy comes up and he says, “You know, in every situation, there are always three realities.” He calls it the Three Realities.
So, in every argument, every discussion, there are always three realities that are going on. That the realities that you see, and you see them through your glasses of your history and the way you look at the world and all of this, there’s what the other person sees.
And there’s actually what actually happens in the world. And so, understanding that can go a long way into arguments. And times when you can’t come to an agreement on something, the ability to step back and go, “Okay, if I’m seeing it this way, what are they seeing?” And a lot of arguments come down to the fact that two people are looking at something from different angles.
And the reality out in the world is actually a third reality. And neither one of them is taking the time to understand what the other person is seeing.
JOSH: As Ambassador Kosh says, “The truth is a three-edged sword.”
DAVID: Very nice.
JOE: That’s great. Yeah.
AVDI: There’s one, I think, thing you have to add to that when you’re talking to geeks. It’s that, believe it or not, you’re physiologically incapable of knowing that third reality. The ‘what’s going on in the real world’.
JOE: That’s awesome.
DAVID: Truth is an end plus one-edged sword where end is always some ways to observe it.
AVDI: The first thing that every, at least in my observation, the first thing that every nerd does when you explain that fact to them, that Three Views fact to them, is they’re like, “Oh, well I’m going to figure out what’s going on in the real world what really happened and I’m going to explain that to everyone and then I’ll win.”
DAVID: Yup.
[Crosstalk]
CHUCK: That’s so true because your instruments are flub and that’s why you have your view on things that is different from reality.
JOE: Right. And so, what you have to do is just be able to step back and accept that there’s something that you’re not seeing. Or that it could be a different way that you don’t know.
JOSH: Joe, I think the amazing realization that I had when I was over a many year crosses coming to terms with this, is that the other person’s perspective on things is actually just as valid as my perspective.
JOE: Exactly. Exactly.
KATRINA: A few years ago, someone told me that assume for a moment that what the other person makes sense. Assume for a moment what the other person is saying is true because probably it’s true to them.
JOE: Yes. Yeah, and I always perceive this one by the ‘what do they see’ which is just another take on walk on my own somebody else’s markets and trade. One of the most defining moments I had in school was taking a competitive speech in the bay course. When we stance a large portion of the first week talking about just really good deep discussions about how we felt about life and stuff. We didn’t realize this is a gigantic set up. But it was pretty funny because it was, “What do you feel about abortion? What do you feel about the death penalty?” Always kind of things that in high school, you don’t talk about these kind of things. And so, but once we were done, the teacher had been taking all kinds of notes and it was fascinating because then, we get the task to go argue, debate something like abortion but from the other side of how we felt about it. And you really had to do it, right? You really had to honestly give it your all and be in there.
And to sit back and do those, you really start questioning your beliefs, how they came to be, what they are. We all like to pretend we have our own beliefs but a lot of people have simply just our parents regurgitated. But the ability to just put your self in their shoes no matter how hard it is and how much you disagree with it, try to understand what they’re saying. And yes, if you proceeded with that, their comments are valid, you see that.
AVDI: You know what’s interesting about that exercise to me is that I think if you really get — once you get into it, once you start debating back and forth, even if that’s — you’re debating for a position you normally completely oppose to, you will get really dug in. And when you experience the fact that you’re totally dug in to a point of view, defending a point of view against this stupid person who’s actually voicing your normal point of view, you realize, it’s easy to get dug in to any point of view regardless of how right it is or whether you even agree with it.
DAVID: Yeah.
JOE: Yeah, very much so.
CHUCK: Yup. So, I’ve seen that some people are really good at this and some people are really not good at this. And in programming, it’s with everything else, we tend to have these battles over these things. And I’m wondering at what point is it worth having somebody who is good at empathizing or seeing the other side versus somebody who is highly technically skilled. Like when does the trade off make it not worth having that person on your team?
JOE: I choose an empathized person over a “highly skilled” any day. There’s this great comment that came from a guy, the brilliant individual Josh Wehner, a good friend of mine. He’s speaking at Nordic Ruby a couple of years ago. And he says, “At what point are we going to stop calling these guys who are really good at programming and developing code but who’re really terrible at being a part of a team or to work with. At what point are we going to start calling them good programmers but…and start calling them assholes.” And I don’t think he does necessarily said the word ‘asshole’. But at what point are we going to stop giving them this leeway to say — if somebody else is not that great with people but kind of mediocre code, we will call out the fact that they’re this.
But development has — it has very little to do with just the code you write. It’s how you interact with the people you’re there, how you put the stuff together. We’ve seen less — code, that’s not as great as we’d like it to be, go out and do amazing things in the world. So, this is not necessarily a binary decision. Great coder means successful business. Bad coder means terrible business. So, I would always choose somebody who’s there. Because quite frankly, those people that are empathetic and around are the people you can go up and talk to and say, “Hey look, these are areas we feel you’re not that strong and we’d like you to get better in.” And they will work on that. And you can have those conversations.
CHUCK: I guess my question is how much lack of empathy will you tolerate for somebody who’s highly technically skilled? So, if they’re okay at empathy and really great programmer, or if they’re kind of on the fence and a great programmer, where on that spectrum do you usually or do you just look for people who are terrific empathizers?
JOE: This is why most of our interview process was much more about personality fit and a lot less about technical stuff. It was a lot more about what kind of people are they. And then, once they got in the door, we did watch everybody. And we’ve had instances where we had people that came in and they were like sandpaper in the middle of a gear in terms of being part of a team. And so, if it’s affecting the team as a whole, yeah, I’m not okay with that. And I don’t let that go. But that’s my personal opinion. I feel like you’re also asking for a very distinct number for a very soft kind of question. So, I don’t know.
[Laughter]
CHUCK: I’m asking for your thoughts on something that — you know, I’m really just trying to lead you into talking about what exactly you’re talking about.
[Laughter]
JOE: Yeah.
JOSH: Chuck, are you saying Joe was not doing a good job of talking?
CHUCK: I’m saying that he’s answering the question the way I wanted it answered.
JOE: Yeah.
CHUCK: So, I do want to — I have two more questions. And the first one is if somebody does have these personality issues, I don’t know exactly how to quantify them or explain them, do you let them go?
JOE: Yeah. And we have.
DAVID: Yeah. I think a key rephrase — I mean, a text question was if somebody has this personality issues but they’re a brilliant programmer and it ties back to the sentiment that you gave of ‘when are we going to stop calling these people good programmers but’. And I almost want to rephrase Chuck’s question to, at what point do you take somebody who is very bad at their job and let them go? I don’t care if he’s a good programmer. He’s bad at his job.
JOSH: So, I think we’ve all seen those kinds of movies where there’s a squad out in the jungle or like fighting the aliens or something. And there’s one guy on the squad who’s like a really good shot but he’s terrible at like everything else about being a soldier and gets the squad killed because he like runs out in the middle and starts shooting people and then triggers the ambush or something.
JOE: That’s the whole thesis to what I’ve been talking about too. There’s way more to what we do than slinging code. And we spend an inordinate amount of time talking about how to sync code, how to sling it better, what to do which is good. But we spend very little time talking about how to interact with the people around us, how to talk to a boss who you think doesn’t like you. And so, in these cases, yes, I would fire them. And yes, we have done that. And yes, it is extremely painful and it really sucks to do this. It sucks to fire anybody, no matter how much they deserve it.
But to look at the team, your responsibility is for the company and the team as a whole. And when I started EdgeCase, it was with Ken, my business partner with a very, very simple premise. The entire reason for starting the company is we wanted to create a company we always wanted to work for. I left an amazing company but wanted to stop travelling as much. Yes, there’s a lot of irony in that. But I looked around at where I was living and there wasn’t just much around. And plus, I was spending a lot of time convincing my current company at that time to use Ruby. And I was tired of it.
And so, we went out and we did this. And so, when you’re doing that, you look at the people around and say, “This person might be a good programmer and he might be a good architect or whatever.” But this making it a miserable experience or a less than an ideal experience for the people around them, that, in and of itself, is a statement. This is, “Okay, it’s time.”
CHUCK: So, you kind of led into the next question that I had and this is the last of the leading questions I really plan to ask.
[Laughter]
CHUCK: And that is how do you evaluate people when they’re coming in to make sure that they’re the good fit? I mean, what kind of questions do you ask? What kinds of things are you specifically looking for to make sure that they fit well in a team? And how does that affect the team dynamics?
JOE: You make them pair with more than one person. And everybody talks about at the end. There’s no one magical question you can ask. For me, when I’m interviewing somebody, it was always very simple goal. I want to find out if they’re passionate about something. Passion is an interesting thing. It’s beat out of most developers by the time they get into school and they take that first body shot programmer job that they think is this great consulting thing or whatever. Or they get into some just place that’s just terrible. And what we do in the passion for what we do gets beat out of you.
People can still have passion for something else, playing the guitar, being involved in the Boy Scouts with their kids, whatever it may be. And that’s fantastic because if they’re still passionate about something, we can return them to the point of being passionate about programming. It’s ‘everything in life sucks’ and every job has been terrible because somebody did something to them. There’s nothing that you can get past at.
So, for me, it was a very simple gate of, is their passion still there and are they still interested in learning? And then, when we would interview, we would have them pair with multiple people in the company because it was basically get in there, get them into an editor and a technology that they’re not necessarily familiar with. And see how they do, how do they ask questions, how they interact. And does the person working with them enjoy that experience? It’s a very simple, “Did you enjoy that time that you had with this person?” Not, “If you had to suffer through it, could you do it?” It’s a very different benchmark. But, “Did you enjoy it?” And if people did, that’s great.
And it wasn’t a one thumb’s down is out because we all understand that some people can be having a bad day and they’re in different parts to that. And so, for us, it was a very subjective kind of get in, come in for a day or two, how are you doing, are you having fun with us? And then, if that’s the case, great.
CHUCK: Have you ever run into anybody who really, really didn’t fit on one team and really fit well on another team?
JOE: That’s a great question. Our teams were very fluid. We had instances where people didn’t necessarily get along with another person very well. But usually, we would lock them into a room and tell them to come over their differences. Again, you’re hiring really good quality people. So, you can have those kind of conversations where you get two people in a room with a third and you say, “You two seem to be having some issues. Do you want to go out to be on your own or do you want us to seek you a mediator?”
CHUCK: [Laughs]
JOE: And so, we kind of [inaudible] where’s it’s going about it. But if you’ve hired people that are good, you can come about that. You can have those conversations.
JOSH: Joe, I want to ask you about team fit because we’re dancing around that right now and maybe meeting up to it. We’ve talked about trying to get people who fit well on a team and I think that the sort of novice level of approach to that is finding people who you like or you want to go have a beer with or you would like to play video games with, something like that. And that people are really, what they look at is they say, “We want to find people who are not abrasive, people who I like as very well-rounded person.” But I think about it, you actually need something that’s abrasive if you’re going to polish gems.
If you throw a bunch of rough rocks in a tumbler and tumble them around, then it will get very shiny. But if you throw some abrasive with some grip in there, then they polish up really nicely. And I found that on teams, there’s people who you don’t necessarily want to hang out with when you’re not at work. But they’re really awesome to work with. And I’m not saying they’re disrespectful or a bit difficult at work, but they’re the kind of people who challenge your assumptions, they’re not afraid to tell you when they think you’re wrong, they’ll push back. And that kind of abrasiveness, I think, has a lot of value to the team. So, how do you talk to people about that and how do you make decisions or whatever?
JOE: I think it was not necessarily somebody you would want to have a beer with but somebody you want to work with. And those can be two different analogies. Although, most of us tended to be — my date of point. I ran one company. So, it’s a small date of point. But most of us tended to be the kind that didn’t shy away from being around people who are different. And it started at the founders’ level. I mean, Ken and I who started the company and ran it, you could not find two more opposite people in the world. The only thing he and I had in common was [inaudible]. But that’s what made it work. And that’s what made it work beautifully because we had respect for the other person’s differences and those differences led us to the points that we needed to get to.
And so, throughout the teams and people, you found varying degrees of anything from politics to religion to life backgrounds to age. And it was very incredible we had extremely diverse backgrounds of people at that company. And they still do. I’m sorry. I didn’t mean to talk about that in the past tense. And so, that’s what made it successful. So yes, you need those kinds of people but you had to do make a decision of, can you be around that? And I see a lot companies hire for that ‘is that somebody I can have a beer with’ or ‘is it my best friend’. And if you continue down that road long enough, you start building a monoculture.
AVDI: Yeah.
KATRINA: There are a couple of other things that I tend to look for like when I try to decide if I want to work with something/someone. And one of those things is how do they treat people with less power than them? Like people who are in a situation where the other person is less in control. And the other thing is how do they react to feedback? It doesn’t have to be positive and negative feedback. But do they even react to it? Do they take your considerations into consideration, so to speak, or do they just kind of ignore it?
JOE: You know, it’s a good point. I remember somebody talking about this years ago. They called it — and this is going to be terrible sexist. But they called it the Secretary Test. There was some company, I can’t remember who they talked about. They would watch when somebody came in, and they would ask them how do they deal with the secretary that brought them in or how do they deal with chauffer that brought them? And it was this really he wanted somebody that treated everybody with very good respect, not just an entitlement for certain positions. And that’s great.
You know, with very flat organizations, it’s hard to do that. But we very much would challenge people just to do it. Even in the middle of a coding assignment, “I understand you’re going this way. But what if we went this way?” You don’t necessarily believe that that’s a better way to go. But it’s programming. We can go 12 different ways, right? And the people that can do that and react to that well are just gems.
And this is one of the reasons that I swear I absolutely love Jim Weirich. He’s one of my close friends, because we would travel in train together. And when he would stand up in front of a room, we’d be training and I’d make some comments about, “Well, you should always do it this way.” And he would immediately just like, “Oh, why would you do that?” And I knew that he believed what I said. But he would do it just to mess with me. And there was constantly times when back and forth about, “Do you believe this really?” And I’m going to jump on the other side and just argue it just to see if he’d do.
And so, to find people that can actually do that was fascinating. But when you’re interviewing, you really need to do that. But you said, to kind of that.
DAVID: That’s interesting. I’ve heard that Secretary Test described as the Waiter Test when dating. On a first date, watch how your date treats the waiter because that’s how they’ll treat you once they’re tired of you.
JOSH: David, was I the one who told you that?
DAVID: Probably not. I’ve heard it like ten years ago.
JOSH: Okay. Because I’d like just wrote that down and wanted to bring it up.
DAVID: That’s awesome.
[Laughter]
JOE: That’s fantastic.
JOSH: High five, man.
CHUCK: So, I do want to ask another question that just came to mind. You keep bringing up ‘how do you deal with like a bad boss’. And I’m really curious to see what you have to say about that because my solution has usually been, find another job.
KATRINA: Actually, before you answer that. Could you define bad boss?
CHUCK: [expression] I don’t know.
AVDI: It’s somebody I don’t get along with.
JOE: It’s been a long time since I’ve worked with somebody.
DAVID: Yes.
[Laughter]
JOE: I’m going to be a bad person to talk about this. But it’s going to be — well, I guess that’s untrue. I ran a consulting company. I never had one, I had 20. Just like with anybody else, the nice thing about the team that we work with is a lot of times, we get to choose who those people are around us. You participate in the hiring process or you really kind of — a lot of times, we get to choose those people. The people that we work for, we don’t often get to choose. And so, it’s very similar how you deal with family, how you deal with anybody around you. Understand who they are, understand what they’re coming from, what are their motivations? Try to have some hard conversations with them if you can. If you can’t, obviously, there’s another issue. But really, really, really understand what they’re seeing.
I had this guy worked — one of the stories I tell on my talk is this guy I helped set up at this job. I went back a few weeks later and the boss was furious about him. “He didn’t understand what was going on. He’s really lazy. He’s not getting much.” I go and I talked with the developer, “The boss just doesn’t get me. I’m putting in all kinds of hours and he just doesn’t understand.” There was simply a matter of, the guy would walk in, the developer would walk in somewhere around 9 o’clock or 10 o’clock, looking blurry-eyed, putting on clothes that were completely disheveled. And the boss was this guy who, his idea of business casual is take off the tie and roll the sleeves up a quarter turn. And you start to realize, they’re coming from completely different angles. The guy’s out in his dorm room, working late at night on some problem. He comes in late the next day. Well, the boss automatically thinks he’s the young college cadet drinking.
And so sometimes, you’re right. You have to quit. Those bridges can’t be crossed. But a lot of times, simple conversations of, “I think this is where I’m coming from and this is what I’m seeing. What are you seeing and what is your frustrations levels?” Asking goes a long way. It’s really hard to do. But it goes a long way.
JOSH: Yeah. I got to say that bosses like parents can take years of training.
[Laughter]
DAVID: That’s awesome.
JOE: Yeah. I’m a parent. I’m still not good at it.
[Laughter]
JOSH: I realized when I was young that my parents would require a lot of training to get them to be good at being my parents. So, I devoted myself to that for a long time. And they came a long way. But I’ve had bosses who I’ve had to train too. And it’s not like I knew like something about being a boss that was, I don’t know, secret. But I knew something about me. And part of training a boss is also learning how to work within their constraints and their perspective. There’s three views of life. They have a perspective on what I’m doing that is probably valuable since they’re my superior.
JOE: Okay. Well, I was just going to say, I’m glad you put it that way because you said ‘training boss’, I don’t really like necessarily the phrasing of that because reality is you can only change — you can only help people want to change. You can’t change somebody else. You can have conversations with them. And if they choose to, they can change. But you can’t do that. So, a lot of that — you did qualify it after the fact that was understanding where they come from and the way they’re looking at things because you can go a long way to having, to changing that.
JOSH: Well, if you’ve ever trained a dog or an animal, it’s not really a matter of forcing them to act to certain way. It’s a matter of understanding how to interact with them in a way that will result in the behavior that you want.
JOE: Yeah.
JOSH: It’s an issue of communication.
DAVID: This beautifully ties back into the empathy because if you basically hire people who value other people and other people’s opinions and other people’s thoughts, then when you start to have a conflict with that person, you can say, “Dude, I’m kind of hurt in here. This is kind of what I’m seeing, what I’m feeling.” If they value you, then they immediately want to change. There’s immediately some traction there. I like that.
CHUCK: The other thing that I want to add to this is that you bring up like the issue of training a dog. And most people I know who go through dog training or dog trainers that I talk to, you go to the dog training class with your dog and they train the dog to basically listen and react to you and they train you on how to interact with your dog. And so, it goes both ways even then.
JOSH: Oh, yeah. If you’ve ever ridden horses, I grew up riding horses. And I grew up riding English saddle, English bridle. And then, years later, I learned how to ride Western. And I had to retrain to be able to ride Western because you use a completely different set of signals to control the horse. And a Western tack horse understands those signals. Like English, if you want to steer the horse right, you lay the reins across the left side of his neck. But Western, you pull back on the right rein. And if you try and control Western horse with the English signals, you’ll go off a cliff.
JOE: It’s awesome.
JOSH: Okay. So, you did these People Patterns talk. You talk about the Conversation Rolodex, things like that. Are there particular things that you do at different phases of a project? Like in the inception part of a project, it feels really different from, “We’re in the last couple of weeks of a project, trying to get it out the door,” and have a very different kind of mental focus on the project and, “The things we do are really different.” Are there different people moves that you do at different phases of a project?
JOE: Well, yeah. I mean, one of the things you have to watch out for — this gets really complicated because every thing you do in a project from a project leadership standpoint, from pairing to any of the practices you bring in, have a certain reason for coming in. And so, pairing is a great one where it’s brought in a lot of times to help get information back and forth and to kind of get knowledge out of people’s heads. But they can go to a point of say, group think where a particular set of people have been pairing for so long that they’re not really getting benefit out of pairing anymore. They’re acting as one. And a lot of times, those things can — maybe they’re judgmental, maybe they’re not. But you have to understand why was the practice brought in and why is it still working? And as projects go along and people interact with each other longer, yes, those things can come out.
It’s a really hard question to answer because yes, there’s things that you change but there’s things that you change in Week 2 as well depending on how things are going.
Is there a particular reason for the question? Were you leading me somewhere?
JOSH: No. It’s…but I…maybe it’s [laughs]. It seems that technically, there’s different things you do in a project with different stages at a project. And it seems there’s probably inner personal things that are different at different phases of a project. Like, trust building seems like it’s an incredibly important thing to do early on in a project.
JOE: It is. But it’s just as critical at the end. It’s — this is a great book, Agile Retrospectives has a front section that most people skip unfortunately. They talked about trust building and the things that need to go into retrospect at what you’re doing. Towards the end of a project, I would say is just as critical as the beginning in looking at how people are interacting with each other because you now have a deadline you’re trying to hit. People’s stress levels are really high. Some people might be approaching burnout. We really need to keep an eye on all these different factors and see how people are going because they might not understand it as well.
You know, the god awful commercials but they kind of went well into this conversation of the Sneakers Bar commercials where somebody’s acting like a certain — this one guy sitting there, whining at Roseanne Barr’s voice and whining and whining. And they’re like, “Here. Take a Sneakers Bar. You’re obviously hungry.” And he’s like, “Oh, thank you.” And they changed back in themselves.
As people go, they start getting crankier and crankier. And okay, why is that? Are they losing sleep? Are they stressed? Is this project become too much? And just understand what’s happening there and give them a little bit more leeway goes back into the empathy route.
And so, I would say the end of a project is just as important as the beginning in making sure you maintain that trust that you’ve built.
JOSH: Good point.
CHUCK: Alright. Well, I think we’re about at our ten limits. So, we’re going to go ahead and get into the picks. This has been a great show.
DAVID: This has. It’s been awesome.
AVDI: Yeah.
JOSH: Yeah.
JOE: Thanks for having me. I’m excited to be invited.
JOSH: Joe, when are you back in San Francisco?
JOE: Oh, not soon enough. I don’t know, man.
[Laughter]
CHUCK: Alright. Well, we’re going to make Avdi go first. Avdi, what are your picks?
AVDI: Alrighty. For a programming pick, something I was messing with just the other day. First of all, the oEmbed specification is a specification for discovering how to embed stuff. So, a lot of like video providers and other kind of social media services support oEmbed these days. What you can do is you find out what their special oEmbed URL is and you send a very simple specially formatted request. And they will send you back some JSON that describes some things about the item — basically, like you say, “I’ve got this YouTube video URL. How do I embed it?” And they send you back some JSON that has like the full HTML that you need to embed it. And a bunch of metadata about the video like the title of the video and like some information about a thumbnail if you want to use a thumbnail in your embed. And a bunch of useful stuff like that.
And there’s some options you can specify too like if you want to specify, “I want to embed this. But I only have 300 pixels.” You can say, “Max width=300.” So, that’s kind of cool. And really helpful when — because the alternative is going out and discovering the embedding standards for each different service. But you still run into the problems. As soon as you start using that, you realize, “Man, this is great but it sure would be nice if I didn’t have to do this sort of URLs or anything,” where I have a big old case statement with a bunch of regular expressions saying, “Okay, this looks like a YouTube URL.” Then send it over to the YouTube oEmbed. This looks like a Vimeo URL, send it over to the Vimeo oEmbed endpoint and so on.
And there’s a service called Embedly. It’s Embed.ly which basically goes that next step. You have a single URL you can hit and send the URL some item that you want to embed in your page and they’re sniff it out for you, figure out who to send it to and give you back some nice oEmbed information. And they’ve got free plans and they’ve got paid plans as well. So, I was fiddling around with some embedding recently and really appreciative of both of those things.
For a non-programming pick, I hadn’t really come up with anything before the show. But I will say that my favorite show right now is watching my teenage son play Mass Effect. [Laughs]
There you go. Of all video games I’ve seen, it’s probably the most fun to watch somebody else play because it’s got such a great set of storylines.
CHUCK: Awesome. Alright. David, what are your picks?
DAVID: Just real quick, I can’t believe nobody’s picked this yet. For programming pick, Data Tables. DataTables.net is the site for it. It’s just a JavaScript chunk of code that you drop in and it takes your HTML tables and kind of vivifies them. Makes them so that you can sort on each column, you can filter each row out, you can put in — actually, you can embed Ajax queries. And now, you can actually do searching and pagination and tie it back into the server. And it’s been around for two or three years. And I’m sad because there’s nothing better yet. But it’s pretty good on its own and I kind of like that.
CHUCK: You totally stole mine.
DAVID: [Laughter]
CHUCK: By the way, there is a RailsCast on there and there are some gems that you can include in your gem file too that works.
DAVID: Fantastic! You should include that on your side of the pick. I’ve always used it just as the bearer drop in the JavaScript and just start hacking. So, that’s cool.
And then for a non-programming pick, this is a really guilty pleasure for me. But I just started watching Archer on Netflix. And this is an animated series about a spy. And basically, if…
JOSH: David, this is an animated series about you as a spy.
DAVID: Yeah, pretty much.
[Laughter]
DAVID: Yes. Right down to the creepy weird relationship with mother. I’ll just say that the writing on it is basically Joss Whedon Rated-R. It’s definitely got some adult themes to it. So, it’s a little bit of a guilty pleasure. Watch the first episode. It’s as screwed as they’d get, so far as I’ve seen and you’ll know right away if it’s either for you or not for you. How he tricks the guy at the end of the episode had me crying, laughing for an hour afterwards. And my wife yelling at me every time I would start laughing again. So, it’s a very guilty pleasure that I’m not allowed to watch when Liz is around.
CHUCK: [Laughs]
DAVID: So, it’s pretty fantastic. So, those are my picks.
CHUCK: Alright. Josh, what are your picks?
JOSH: Avdi, I’ve got to thank you for the House of Cards pick that you made recently. I watched the worst…[laughs] the first episode recently and it was great. I’m already hooked.
So, I have some other picks. I’m going to pick TOML which is Tom Preston-Werner’s latest eponymous project. And this is his reaction to YAML being the pit of despair. The reason I’m picking it is not because I think TOML itself is awesome but because I think Tom is awesome and the way he’s creating this project is amazing. I think Dr. Nic put it — basically, he wrote the Read Me and left everything as an exercise for the reader. He basically like threw this Read Me up and said, “Pull requests welcome.”
CHUCK: [Laughs]
JOSH: And he’s got a bunch of followers. So, people are now working on it.
JOE: It was fun to watch on Twitter because it was within minutes, I swear. You had most of these reactions and stuff. So, it was an amazing story of how open source works.
JOSH: Yeah, I think it’s worth just working at the commit history for the project to watch how all of this stuff goes. So, kudos, Tom. That’s just awesome. And I expect TOML will turn into something that we all end up using.
So, second pick is a bit serious. I worked for a company that’s based in Psychology. And we’ve been talking about that or around that in this episode. And somebody has a post recently about the psychological challenges of being a founder of a startup company. So, this is Darius Monsef. I hope I got his name right. The thing every podcaster has to say now and then. And so, he wrote a really nice blog talking about the challenges of that. And so, I found that — I’m not going to deconstruct it but I found that really worth reading. It’s a quick read. I identified with a lot of the stuff in there.
And then, for more light-hearted, my last pick is Jeff Goldblum’s work from the 1980’s.
[Laughter]
JOSH: And in particular, I’ve been enjoying a lot of his early work lately. Apparently, I’m on an old Jeff Goldblum kick. So, the stuff I’ve watched recently is Earth Girls Are Easy which is just really great. It’s one of these movies that everybody in the movie went on to have a really great career, Jim Carrey and Damon Wayans and Geena Davis and even Julie Brown. So, it’s a lot of fun.
And then, Vibes, which is the only movie I know of starring Cyndi Lauper, who’s one of my favorite human beings. And you can get some Peter Falk in it.
And then, The Adventures of Buckaroo Banzai Across the 8th Dimension.
DAVID: Yeah! Sure!
[Laughter]
JOSH: “Where are we going?” “Quarter turn!” “When?” “Real soon!”
[Laughter]
JOE: Is there such a thing as non-80’s stuff Goldblum?
JOSH: Yeah, apparently. According to IMDb.
[Laughter]
DAVID: It will all make you cry.
JOSH: Yeah. There was Jurassic Park, right? [Laughs]
DAVID: And Independence Day.
JOSH: Yeah, yeah, yeah. So, I liked him way back when. But we will not discuss tense.
[Laughter]
JOSH: So, that’s it for me guys.
CHUCK: Alright. Katrina, what are your picks?
KATRINA: I’ve got two today. The first is the concept called Mob Programming. And it’s a play on pair programming except it’s the whole team in front of one projector, one computer or there might be more, one like a computer for doing lookups and everything. But basically, the style is one person at the keyboard, switched every 15 minutes, all of the — like the whole team programs. And it’s really interesting. And there’s a website from a team who’s been experimenting with this for a while now. It’s called MobProgramming.org. So, just interesting read, interesting thing going on there.
The other pick is the Up-Goer Five Text Editor. I came across this on Twitter the other day. Angela Harms asked a question like, “How would you explain the difference between a function and a method using only the ten hundred most used words?” And there’s an editor which will underline anything which is not one of the ten hundred most used words in red. And it’s really great. And it’s a really, really interesting challenge to try to explain a difficult concept without access to your technical jargon. And I thought…
JOE: I think that’s great. Up-Goer is Rocket, right?
KATRINA: Yes.
JOE: Okay, yeah.
KATRINA: So, it’s from the XKCD drawing. I’ll have a link to that as well on the show notes. And it’s a really, really interesting exercise. So, I’m going to link to the text editor and the XKCD comic as well as my feeble attempt at explaining difference between a function and the method using only the ten hundred most used words.
CHUCK: Nice! Alright, I’ll go ahead and go next. So, my first pick is going to be that RailsCast on Data Tables. Dave and I are working still for the same client and that pretty much walking me through getting Data Tables set up in the project. And it was actually kind of funny because I looked at a couple of options, picked that one. And then I was browsing through some of the other stories that we’ve been working on and it looked like Dave had actually commented on one or two other stories that we might want to consider using Data Tables. And so, I was like, “Oh, okay. Well, here’s some validation of the decision I made.”
So anyway, I’m going to put links into some of the other gems that we’ve been using with it too. One of them is the jQuery Data Tables Rails gem. And it basically gives you a really easy way to add Data Tables to the asset pipeline in Rails.
We’ve also been using the Authority gem. And I couldn’t see that anyone else had picked it. I really like the approach of setting up permissions on a resource by resource basis. And it breaks it apart in a way that makes sense to me that I like a little bit better than the way that Kenken kind of puts everything into the ability class.
Anyway, the last thing I’m going to pick is this. It’s an Anker Astro3E, basically battery pack that will charge your Smartphone. And it’s got two USB plugs on the bottom. And then, you just charge it up off of anything that you can plug the USB into. And the nice thing is that we were out and about looking at houses at the Parade of Homes in St. George which is in Southern Utah. And while we were driving between places and things like that, we were using navigation and I was playing games on my phone, stuff like that. And it was nice to be able to just plug my phone in and have it charge it right back up. My wife’s phone actually ran out of battery at one point and charged it up too. I think it will charge my iPhone 5 like four or five times before it’s out of juice. So, it’s really, really nice thing. It wasn’t that expensive. It was like $30 or $40. And I really, really like it.
Joe, what are your picks?
JOE: Alright. I’ve been waiting for this moment. So, the first one I talked about before which is ‘Pragmatic Thinking and Learning’. It was picked a while back. It’s Andy Hunt’s distilling brain science into a mental model that developers can understand. And you really need to read this thing through and through, do the exercises and make sure you pay attention to Dreyfus model. It’s incredibly influential.
The book that really got me thinking in terms of looking at learning people skills and distilling them down to the bits and pieces almost like we do with design patterns is ‘How to Win Friends And Influence People’ by Dale Carnegie. I’ve ordered this book for the longest time because I hated that title. I really thought it implied another one of these psychology books on how to trick people around you. But it’s really anything but. It’s an absolutely great read. It was done a very long time ago, and still at place perfectly today which I find fascinating.
My third pick is going to be ‘Rands in Respose’. It’s a blog on Twitter by Michael Lopp. I had the pleasure of meeting him back in August. And he’s written a couple of books, ‘Being Geek’ and ‘Managing Humans’ that are absolutely fantastic. It really talks a lot about the people aspect of what we do. He’s a geek himself but he really very much understands, he’s very self-aware. And it is some of the best reading you can have out there. There’s a lot of great content that goes back for years on his blogs. So, take the time and throw back through that.
And then, I have one last pick which is — I don’t have the URL for it but goes a lot into this human side of things which is get a hobby. I don’t know if anybody’s picked this before. But one of the best things that I did a couple of years ago was start exploring getting a hobby that didn’t involve screen time. I tried photography for a while which I absolutely still adore and love. But you spend a lot of time in front of your computer still, for it. Started learning to play music with my daughter because I found myself in a guitar shop buying a guitar for her saying, “I wish I’d always learned to play the guitar.” Then upon realizing that I’m not 90 years old on my deathbed, I started doing it. And no good at all but it is a fascinating exercise in getting us away from what we do day to day.
There are lots of analogies you can start drawing for programming. It really helps you build the other side of your brain that doesn’t get much exercise. So, find something. Get into it and get into it in a big way. It will help your work like you just won’t believe. That’s it.
CHUCK: Awesome. Thanks for coming. It was really, really helpful.
DAVID: Yes.
CHUCK: And the thing is in most of my projects, I found that I work alone or maybe with one or two other people that I interact in the company for the client. This project’s been a little bit of an exception. But even a lot of that, it applies to dealing with clients and dealing with other people in that way. And so, I really, really appreciate all of the feedback and great advice that you gave us.
JOE: Thank you.








[...] 095 RR People and Team Dynamics with Joe O’Brien [...]
[...] 095 RR People and Team Dynamics with Joe O’Brien [...]