In this episode, we hear from Russ Olsen about the challenges and rewards of being a distributed company.
You can send feedback about the show to email@example.com, or leave a comment here on the blog. Thanks for listening!
EPISODE COVER ART
In this episode, we hear from Russ Olsen about the challenges and rewards of being a distributed company.
CRAIG: Hello, and welcome to Episode 104 of The Cognicast, a podcast by Cognitect, Inc. about software and the people who create it. I'm your host, Craig Andera.
Well, here we are. We've got a few announcements for you, as always things that we think you might find interesting, things going on in the Clojure world and related. And, when I say related, one of the things I want to tell you about today is the Papers We Love Conference. This is the first conference that Papers We Love organization is putting on, and it's going to be co-located with Strange Loop in St. Louis, Missouri.
It's going to be on September 15th. This is 2016, so that's the same day as the pre-conference events at Strange Loop. Strange Loop is a great event. This looks like an awesome addition to the things going on around there.
Papers We Love is an organization where they share an interesting paper or papers from the academic computer science community and to talk about them. I've been to a couple of their events here in D.C. where I live, Washington, D.C., where I live, and it is a fun event. It's just a lot of people who are just interested in learning, talking about this stuff.
This is their first conference, so they're going to kind of take it a little bit beyond that. You can check out their website at PWLconf.org to see what's going on there, what the idea is, and they're still getting their speaker list together, but I'm sure it'll be a great list, so you should keep an eye on PWLconf.org. Again, that's September 15th in 2016, happening in St. Louis, co-located with Strange Loop.
A couple other events to mention: There's the Boston Clojure Group. They're meeting Thursday, July 14th at 6:30 at Akamai Technologies. I love Boston. I went to school there, and I kind of wish I could go to that. There's just a lot of great kind of Lisp community in the Boston area, and I bet that Clojure Group is fun. Maybe I'll be up that way one of these years and I'll get a chance to attend. If you're in the area, you should try to attend.
I'll also mention the Bristol Clojurians. This is in the U.K., in the United Kingdom. They're going to be meeting Wednesday, June 29th at 6: 00 p.m. for Programming in the Pub. You can check out more about them if you look up Bristol Clojurians on Meetup, so check that out as well.
That's it for today in terms of announcements. We will go ahead and go on to Episode 104 of The Cognicast.
[Music: "Thumbs Up (for Rock N' Roll)" by Kill the Noise and Feed Me]
CRAIG: I think I'm ready to go if you are.
RUSS: I'm ready.
CRAIG: All right, then let's do it.
All right, welcome, everybody. Today is Thursday, June 9th in the year 2016, and this is The Cognicast. Today we are excited to welcome back–actually rather soon, which is awesome–to the show my boss, the editor of this show, Russ Olsen. Welcome to the show, Russ.
RUSS: It's lovely to be here, Craig.
CRAIG: Yeah, well, we're glad to have you back so soon. It's awesome. We have a pretty specific thing we want to talk about today. Although, as always, if you have other things you want to talk about, we'll dive into those.
Now, of course, we are going to start you off with a question we always start off with, and that is the one, as you well know, that pertains to an experience of art where we ask our guests to share some kind of artistic experience that they've had that they would like to let us all know about. I wonder what you have for us today, Russ.
RUSS: Against all expectations, I'm actually prepared for this question this time. I wanted to talk about a new form of video entertainment, really, that I have been experiencing lately. You know, it's the kind of thing where technology changes the format of art sometimes, and I was thinking about it. If you look at the really early movies, films, they're basically stage plays put on for the camera, and TV sitcoms kind of grew out of the skits that people did in vaudeville shows because the early, really early TV was very vaudevillian. But neither films today nor TV sitcoms are what they started. The technology changes the form of the art.
And so the new form of video entertainment that I'm thinking of is a really long form. It's like the last one that I consumed, if that's the right word, was about 20 hours long. It's actually the structure of these things that I think is interesting. This 20-hour thing that I consumed was in 2 major parts, so 2 parts of about 10 hours long. Then each one of those parts were broken down into three-hour sections, I guess, three or four. Then each section was in three or four one-hour chapters. I am, of course, talking about binge watching a TV show on Netflix.
CRAIG: Of course.
RUSS: The reason I bring this up is I was thinking about whether or not, because of this streaming technology and the fact that you can binge watch a TV, if that will change the way people make TV shows. If we keep doing this, will that change the way people make TV shows? Will they start to realize that they need to make these episodes maybe in three episode clusters or something, at least, if people are like me and kind of sit there and watch three episodes at a time?
But in any case, the TV show that I was watching was Better Call Saul. I don't know if you've seen that.
RUSS: But it was just a brilliant piece of TV. So anyway, that's my experience in art, thinking about how technology changes art. The TV show is still more or less the same. Drama has been more or less the same for a couple thousand years, but the technology changes the form of it.
CRAIG: Yeah, certainly. I mean you look at the ability to record and what that did to music, for instance.
RUSS: Right. Absolutely. It's kind of the same thing.
CRAIG: Now with special effects in movies. Yeah, I know. It's very, very interesting.
CRAIG: Well, that's very cool, but we actually do have a topic that we want to discuss today. This was suggested by a listener, and it's actually something that I've heard from a bunch of people. It's a topic that we've touched on a bunch of times in the show, but never really buckled down and dedicated an entire episode to or the bulk of one. That's being a distributed company, so this is a question that comes up all the time.
People who listen to the show ask it. People that we are interviewing ask it. People that are potential clients are asking this. They're like, "Well, how do you make a company that can have people scattered all over the country?"
When we were talking about doing an episode on that, it occurred to me that you would be an excellent person to come on the show and talk about it because I think you've been and you are in that position as a remote employee of the company, but you have something like 20 direct reports that are all over the country.
CRAIG: And people that work for you that are all over the world, in fact. And so you have to manage all that, keep clients happy, keep the employees and contractors that we employee happy. And, of course, on my part, I have been primarily remote for the last, oh, it's coming up on 20 years now, so I've done a fair amount of remote work in my time, as have you, so I thought that between the two of us maybe we could say one or two intelligent things in the course of our conversation.
RUSS: Yeah, and I think the first thing that you need to come to grips with when you talk about remote working or distributed companies is why. What's the business case for it? Why would you do that?
I think the business case for it is not that it's a great perk for your employees. That is not it. I mean I think it is that, but I think, from the very global kind of business point of view, if you become a distributed company, you are moving away from drawing on all of the people who might work for your company who live within commuting distance of Durham, Pittsburgh, Los Angeles, or wherever you are, to all of the people that you might legally employ in the world.
CRAIG: Right. This is something that was a very, very big factor in the history of this company when Stu and Justin, back in the days when we were Relevance, ran into Rich, encountered Clojure, and really started to say this is the technology that we think is going to become very important. This was way back when it wasn't at all as obvious as it is now that that was going to be the case.
They started to hire and they very quickly went through most or all of the people in the Durham area that were interested in working in Clojure or the intersection of interested in and capable of working in Clojure, and that was some great people. I think just names like people that have been on the show, that's Alan Dipert and a bunch of people like that.
CRAIG: There was an amazing pool of talent in Durham, but pretty soon they went through a lot of that. This is the same story that our friends at Room Key kind of ran into too, which is they're in Charlottesville, and there were a really amazing local pool of people, but pretty quickly they're like, "Well, we want to do more. We're having a hard time hiring enough people to do the things we want to do," and so in the case of Relevance, of course, they started to become distributed. In the case of Room Key, they worked with us, so there are different ways to tackle that need.
Yeah, but we definitely said we're going to have to shift to having people that don't want to or can't move here. I don't think it would be possible for us to be the company that we are now had they not made that decision. And it was a big deal.
I mean I came on at the time when, as part of my hiring agreement, I had to make a trip to Durham one week every month. It was actually a requirement of my employment, and the reason was that there was a very, very strong, local culture at the company at the time. People were eating lunch together every day and having conversations in the hallway, and it was actually the case that I had been talking to Stu and Justin. And this is true for Tim Ewald as well and probably others.
We had been talking to Stu and Justin for, I don't know, maybe a year or two years where they're like, "You should come work with us."
And we're like, "Okay."
And they're like, "All you got to do is move to Durham." And I'm like, "Well, okay. I don't think my wife is going to go for that," or, "I just bought a house," or whatever the other factors that were in play.
There was this company with a very strong, local culture that had to make the very big shift to supporting people that were remote. It was a really big deal, and I think Justin mentioned on the end of year episode that that shift has recently kind of passed another milestone in that we have gone from being a remote company, which was the transition that we were making when I was first hiring on, to being a distributed company. He touched on that a little bit, but I wonder if maybe you could give your perspective on the different between those two things and how that shift was accomplished.
RUSS: I guess when I started, most people who worked or the majority of people who worked at what was then Relevance worked in Durham, and then there was a handful of people like you and me who were remoters. At some point we hit kind of the 50/50 level. There were more or less the same number, approximately, people remote and people working in Durham. Then, as you say, now we're a distributed company.
I think the challenges in that transition were, like everything else in our business were, mostly about the people and about the culture and less about the technology. The technology challenge with being a distributed company is that, if you think about the communication between people working in the company, you go from the highest possible bandwidth that you can have as a human being, which is standing in the same room with other people, and you go to a very, very, very narrow pipe, which is how much information can I get down an Internet connection to talk to this other person.
The real challenge is around organizing people and getting them used to dealing with that narrow pipe between their coworkers. That's the main challenge in having a distributed company.
CRAIG: How did we go about that? What were the techniques we used to organize people to make that succeed? I think, from my perspective, we have.
CRAIG: I've been at a bunch of different companies where I've worked remotely, like for example Microsoft. I was living here on the East Coast working for Microsoft on the West Coast. That honestly worked great when I was on certain teams and worked really poorly on other teams. So I've seen a spread of success results, and I would say that Cognitect does very well indeed, overall, on the ability to include people that aren't physically present in Durham. How do we do that?
RUSS: How do we do it? Well, I was thinking about the history of what we in fact did, and I think one of the breakthroughs for us was we got to the point – well, there were little things we did. One of the little things that we did was we hired you. We thought we were hiring an architect and a senior developer when we hired you, and that is certainly what we did. But the other thing that we hired when we hired you was we hired the person who would be the advocate for the people on the other end of the phone line or the Skype conversation.
I think that, if you're a mostly one-place kind of company with a handful of people who are remote, you need someone to advocate for the remote people, someone at every single meeting to say, "Can you please get a little closer to the microphone because we can't hear you? Can you please just all talk one at a time? No, I can't see what's on the left-hand side of the white board because I can't see the white board."
I think if the company culture is that everyone is in an office, people take reminding. It's not that anybody is going to be malicious or anything like that, but people have habits, and they fall back on those habits. And, as you transition to being remoters, you need to change the habits and get everything down again that narrow pipeline of bandwidth, which is the Internet connection, the phone line, or what have you.
But I think it's completely possible. It's possible, even with a narrower challenge. When I was thinking about talking to you about this and you mentioned that you had been doing this for a long time, I was trying to think of the first time I worked remote, and it was in the mid 1990s. If you think about what kind of technology we had available back then, it was pretty dreadful, and I thought of it as using the ETFF technique.
I was working, so I was the guy in kind of the company headquarters, and I was working with this remote programmer who was out in Rochester, New York. We used the ETFF–email, telephone, FTP, and floppies–to get information back and forth. That was a really successful collaboration.
When I think back on that, one of the reasons I think that that worked was that he was my pair and we were working on this project or this part of this project together, and so I could be his advocate, and I could be his interface to the rest of the people who are working on the project. I think maybe that's not a bad way to start if you're trying to find your first developer employee who's remote. Maybe the thing to do is make sure that they have a single person that they are working with full time. I'm curious to hear what your early experiences were and if you've ever kind of had something like that.
CRAIG: Yeah, well, I think you're on to something, or at least something that lines up with my experience, because although I've been doing the remote thing for quite a while, some of the earlier stuff I did was with Tim Ewald back in the early 2000s when we were both at Microsoft. That was enormously successful in large part because Tim was never shy about picking up the phone.
We were already friends from our days together at DevelopMentor, and so for us it was kind of like, "Oh, yeah, I should call Tim because we'll spend an hour kicking this problem around, and then we'll spend ten minutes talking about woodworking or whatever," right? So there was a kind of motivation to do it. It was fun to talk to your friend, both about technical stuff.
He was a guy that I was essentially paired with. We weren't doing pair programming in the sense of 100% heads down over the same piece of code, looking at the same characters on the same virtual screen, but we were definitely working together on the same project. And so I think having that one-to-one connection was an important part for a couple reasons.
The first is the one that you said where it was kind of like, okay; we're connected. We're not left out on our own, although he was remote too.
CRAIG: That's not quite the same, but he was an employee of Microsoft, so he was a little bit more on the inside, if you will. That was good from my perspective, as I was a contractor to Microsoft, and in some organizations that can be an additional barrier that goes up between people. It can be a bit of a firewall: Are you an employee or are you a contractor? I think sometimes that can compound.
I think the other thing, and I mentioned, is Tim's willingness, especially Tim's willingness–he really taught me this–to just pick up the phone or the Skype or the whatever, right? I think there's this sort of hierarchy of communication–somebody has probably done academic work on it–where what's the easiest thing to ignore. Well, it's an email, right?
CRAIG: What's the second easiest thing to ignore? An IM. What's the third easiest thing to ignore? Actually, this isn't that easy to ignore is a phone call. The hardest thing to ignore is just somebody knocking on your office door and stepping in, right?
Tim had a willingness to skip over the ignorable ones if it was worth doing so. In other words, to not just shoot off an email and kind of twiddle his thumbs hoping that maybe I'd pick it up, read it, and answer it, or whoever would. But to pick up the phone and say, "I have a question for you. The answer to this question will enable me or you to work and, therefore, it is worth us spending this time," even though I think, as human beings, and maybe this is true more now than it has been, we tend to–I tend to at least, and I think this is true for a lot of people–reach for the things highest up on that ladder, right?
RUSS: Right. Yes.
CRAIG: We IM before we call. We call before we show up in person. Although, I guess maybe you could argue about email and IM, but the point is still, like, asynchronous text based communication is the thing we reach for first, and we really shouldn't. We really should be looking at maximizing bandwidth a lot more than we do.
This is actually one of the reasons that I like to use video. I think I'm somewhat infamous for this around the company is that people will call me up or we'll have a conversation on Skype, and I'll turn my video on. The reaction I get, even still a lot of the time is, "Oh, we're doing video." Right?
RUSS: Yeah. You know it's funny. One of the things that I made a note to myself to mention was one of the things that I learned about doing this remote thing from you is to use video more often. I actually visited a consulting firm. I don't think we really do this here at Cognitect, but not a bad idea is that if you have several major locations, which is kind of a variant of being remote, like if I have an office in Chicago and one in Cleveland or something. I've seen people, companies where they have a video Skype session or something going all the time between those two remote, between those two distant offices just so people can kind of walk up to the screen and say, "Hey, Bob. Hey, Sally. Can you help me with this?" or something.
One of the things I definitely learned from you is turn the camera on.
CRAIG: Mm-hmm. Yeah. Ironically, we have it off right now because that's just a thing that I do with the podcast. Because this is an audible medium–
CRAIG: –I actually prefer not to have video going with the guests. It actually ties in because the reason I do it is so that I don't wind up relying on visual communication.
CRAIG: But that just sort of points out that there is something going on in video, right? If possible, in terms of how to set it up, I like to, especially when I'm pairing, make sure that the two people working together have two screens and have the screen that has the video camera in it, the laptop or if you've got a Web cam, be off to the side because what happens then is you have your main screen and it's sort of in front of you as you sit, in front of each person as they sit.
CRAIG: The camera is to the side with the video. You wind up very naturally turning to address the person because that's where their video is, and that's where the camera is, and so it brings eye contact to some degree back into it. I'm looking at the screen. You will see that I'm looking away from you. When I turn to speak to my image of you, you'll see me turn towards you, and that actually cues people to take their hands off the keyboard and turn to you and fully or more fully put their attention on you. I think there are all sorts of things that we can do that leverage video, that bring some of the interpersonal cues that we're hardwired to have back into the remote relationship.
I think this is something that we both have on our list to talk about. It's not 100% as high bandwidth as being in the room no matter what you do. I think it's actually important to mention that and to remember it is that–
CRAIG: –no matter what, you are giving up something. We certainly believe at Cognitect that we are. But hopefully when you make that exchange, you're getting something in return. But you're definitely giving something up. I think it's important to remember that. I wonder if you could talk a little bit about the pain of being remote because I think we would be remiss if we didn't include that in the conversation.
RUSS: Just as you were talking about having the video on as you pair programmed, I can remember there was someone who used to work at Cognitect who no longer works at Cognitect, but it's not really related, who would drive me absolutely crazy when we were pair programming over, you know, maybe with the tmux thing and Skype with no video. But when I programmed with him in person, when I'd go down to Durham and visit him, we were fine together. Eventually I worked out that he would talk while I was trying to think. But if we were in person, if he could see me, he could see me shifting around a little bit, and he would stop talking.
RUSS: I think it's that kind of thing. Then I think you're right that there are kind of cues that you get in person that would not come across in video, at least not nearly as well.
The pain of being remote, I think it is easy for groups of people to get into "them" and "us" kind of situations, particularly with people who, if you have most people in a central place and then a few remoters. I think it is imperative to not fall into that. I think one of the ways to not fall into that is to encourage the people who work at the office, if you will.
I think this is one of the things that help us to occasionally telecommute, right? This is working remote is not just something for the people who live in Cleveland or Los Angeles or whatever. It's for everybody. The more that everyone can get the feeling of what it's like to work remote, the better working remote goes because now we all have the same point of view.
CRAIG: Yeah. You mentioned earlier that one of the things that I used to do, and at times honestly it felt like endlessly, was to remind people about how their actions when they were local were coming across the audio link to the rest of us, right?
CRAIG: So if people would talk more than one at a time. If you're in a room with two people that are talking, you can actually focus on them pretty well.
CRAIG: Whichever one you want. If you're remote, it is impossible, or at least for me. I just can't pick one person out of the babble of more than one person talking, so I would always be saying, "Please speak one at a time. Please speak one at a time. Please one at a time."
RUSS: I do think that there is actually a physical reason for that, which is that we're talking on Skype right now. I suspect it is a mono connection.
RUSS: At best, it's stereo. It can't place the sounds in the room nearly as well as I can if I'm actually in the room with you.
RUSS: I think that's a big part. I don't think it's just a psychological thing. I think there's actually a physiological, I can't pick these sounds out because there's no directional information with them.
CRAIG: Yes, I think you're absolutely right. This is actually one that I've thought about a lot, unsurprisingly, given how much of my life I live at the other end of an audio connection. But, yeah, I've actually thought about this because I have–and you have one of these too–a little Zoom mic. It's a stereo mic.
CRAIG: When I first got it and tried recording with it and then put on the headphones and listened to it play back, I was absolutely blown away by the sense of presence that it communicated.
CRAIG: Versus a monaural mic.
CRAIG: I've really wanted, for a long time, to have a telepresence solution that would let me use a stereo mic at both ends and communicate that, particularly for conference call situations. We've played with various communications technologies, and I think we'll talk about tooling in a bit. We've touched on a few things, but we've played with various communications technology.
We've played with – well, it's not Team Speak. It's one of the gaming related ones that actually let you do 3-D positioning.
RUSS: Right. Yes. I didn't know about this.
CRAIG: Yeah, so it makes sense, right?
CRAIG: If you have a game, you have information about the relationship of other people in a virtual 3-D space. Well, I always thought – and so we actually played for a while with that. It didn't work out as well as some of the more kind of business-oriented software. It was gaming oriented, but you could actually do things like take each person on the call and drag them out into a two-dimensional space and so that I would hear Russ on the right.
RUSS: Yeah. Yeah.
CRAIG: I would hear Tim on the left. I always wanted to do something like that for our group calls because I really wonder how much it would help. Unfortunately, there are a million side projects, and that's one I never got to. I'm not aware of anything that's out there that does that right now.
RUSS: As you were talking, I was thinking that I would drag Mike Nygard so he was apparently speaking from the ceiling, and then he would sound like God.
CRAIG: The voice of Mike.
CRAIG: Wow. So many jokes I could make there. Anyway, go ahead.
RUSS: Yeah, I think a lot of overcoming the challenges of working as a distributed company, well, for one thing I think one of the things that we did consciously, as a company, was get rid of the term "remoter." I think you and I talk about remoters as a historical thing like, "Oh, yeah. I was one of the original remoters," but we tend not to talk about it in the present tense any more because, again, I think we've gotten to the point where it's a distributed company. Oh, yeah, some of those people are distributed in Durham, and great.
Maybe I'm going to slide into the tooling a little bit, but I think anything that you can do to make your interactions with the people you're working with interactive in real time are gold. For instance, Google Docs is amazing when you're trying to work in a distributed fashion. If I can see what you're typing, you can see what I'm typing, and you can point and I can see where you're pointing, that kind of thing I think is huge.
I also think that the silly chat room that a lot of companies have where people post gifs of cats and things like that is way more important in a distributed company than it is in a centralized company. It's the place where we do the silly things and the kind of relaxed interpersonal things that people might do running into each other in the hallway if we were all together.
There are some things that I think I know I do as a manager because we're a distributed company, and one of them, ironically, is exactly the opposite thing of what you were saying about the hierarchy of communications. I think here at Cognitect our hierarchy seems to me to be email is the most asynchronous. We use HipChat, and that's less asynchronous, but still kind of sort of asynchronous. Then there's Skype, both the chat and the voice version of Skype always seems to me to be a little bit more imperative because, if you kind of text me over Skype, it sort of means that you're looking for a conversation, maybe. Maybe that's just me.
RUSS: Anyway, we certainly have this hierarchy. As a manager, I have a tendency, I think, and I think this is common with people who manage people, to go for the most direct one. I have this tendency to Skype people or at least send them an IM saying, "Hey, what do you think about this?" or something like that. I have to consciously ask myself, "Is this a question I really need an answer to right now, or should I email this person?"
I think managers should think in the other direction. Not so much you because you don't care about impressing me, but there are people in this world who, if their boss sends them a Skype, they jump, and it interrupts their whole day. I think, as a manager, you need to not do that. You need to not do it in general, but you need to not do it when people are distributed because then it's like a lightening bolt from heaven that completely interrupts your day to find out, "Oh, yes, Friday is a company holiday," or something, whatever, something completely trivial.
CRAIG: Yeah, I think the lightening bolt maybe is the other direction in your case, Russ, but anyway. No, but I guess I wouldn't say – there was a little bit of implication on what you said that you're inappropriately weighting at the other direction, and I don't think that's true. As you say, maybe it's just me, but I think you're right in that it's important to strike an appropriate balance. This is something that we've learned as a company. I don't think it's anything novel that, when you're talking to a group of people, you actually have to communicate across multiple media. I think that's maybe even more important in a distributed company.
RUSS: Yes. Right.
CRAIG: Send the email, but then also maybe mention it in the chat room. Then, if it's really important, go around and talk to everybody using something even less ignorable, right? The extreme case, if it was super important, you fly out and face everyone or you say it–this is something else we'll talk about–when you bring everyone together in the same place.
CRAIG: Probably all three for the most critical pieces of information or the things that have the most nuance and require the most bandwidth. It is definitely a case of trying to balance and blend the various channels.
RUSS: Yeah, and I do think the choice of channels is something that we have struggled with a little bit as a company. I think one of the notes I made here was, well, as a company, you should pick a standard set of channels to communicate with. Pick HipChat, Slack, or whatever. Obviously everybody has email and things like that.
Then I wrote a note to myself saying, "And we do a bad job of that or not a great job because we tend to have probably twice as many channels as we actually need." We have Skype and HipChat, and we use Confluence and Google Docs. I think that that is maybe not ideal in some theoretical way, but I think it's the real world where different people have different requirements.
Since this is the way that the whole company is communicating with itself, there needs to be latitude to say, there needs to be a driving force that says, "We need to get down to as few channels of communication as we possibly can so there's a standard way of doing." But, on the other hand, if there's a compelling reason if you need to use HipChat and other folks want to use Skype, well that's two of them, and maybe we could live with two of them. I think there has to be a balance. You don't want to standardize to something that a third of the company hates.
CRAIG: I wonder if we could jump over to the topic of getting together. We mentioned this. We actually get together. Actually, I think there are a couple dimensions on this for us because we are remote not only from each other, but almost always, and in fact these days, I think, always is true from the client.
We do consulting, and we work with people, and remote from them as well. We have to make decisions about to what degree we will fly the team members out to where the client is or fly the client out to where we are, or whatever, as well as when we get the people that work at Cognitect together. I wonder if you could talk about kind of our history there and our approach to physical colocation.
RUSS: I think it's remarkable that working with the customers, the actual work that we do is less of a problem in terms of the lack of physical presence, than working remotely, doing the actual work we do, I think actually is one of the easiest parts of this whole thing. I think we've gotten really good at the technology of pairing with people remotely, and I wouldn't say that we've mastered the technical challenges. I think the technical challenges of actually getting the work done in different locations we have a pretty good handle on.
The times when we need to be physically present on the customer site is more like the orientation and the getting the project off the ground. The iteration zero is what we tend to call it. The iteration before you really start working where you're talking over goals, costs, and what's important and what's not important. That part we almost always do in person.
I'm not sure that I could put my finger on a project that had significant problems simply because we were remote actually doing the work from the customer. I think getting together in person is key at the beginning of the project, as I say, or maybe at a few touch points along the way on the project. I think it is absolutely critical, if you're trying to run a company where people are scattered to the four winds, to get them together to feel like they are a company, periodically, which is what we do with the meetings we call Cognation.
CRAIG: Yeah, I agree with you on the client point. I think at the beginning of the project is important, although, as I think you said, not critical. I've actually been on several projects now where we never met in person, and that was fine. We were able to connect to a sufficient degree over remotely. I do prefer it. I do like. It's hard, right? Travel is hard.
RUSS: Right. Right.
CRAIG: I think we observed the other day the vast majority of people that work at Cognitect have families, and that doesn't make traveling easier, so it's nice that we can be remote, that we can be working at home with our families in the evenings and not have that travel requirement. That said, it does help to get out and look people in the eye and shake hands and all that, and maybe to do that about once a year.
The evolution of getting together, of Cognation is interesting, though. I want to touch on that because I think we've learned some lessons there. I mentioned at the beginning of my tenure at Relevance that we were actually required, those of us that were not living in Durham, to come to Durham and be there with the majority of the company who were there all the time once a month. It was one week a month we'd come down and hang out at the office, and it was super fun.
But there was sort of a shift that happened. As the company hired more and more people who were remote, we observed that, well, if you have, say, a company of, I'll call it, 25 people and say 10 of them are remote and you're requiring those 10 people to come to town one week a month, well in any given week you have 2 or 3 people who are remote and the other 15 who live there all the time. And so, we observed that, well, it might make more sense to pick a week and have everybody that is remote or everybody that can that is remote come on that week.
And so we did that for a while, and that worked pretty well. Then it wasn't 15 and 10. It was 15 and 15. It became expensive, right? It was really a very significant financial cost to having everybody travel to the office one week a month. And so the pendulum swung. We decided not to do that, and it became more ad hoc.
We actually got to the point. I don't remember when this was. It was within the last couple of years. There was a year where we only got everybody in the same place, not counting things like Clojure/conj where we tend to have a pretty good portion of the company, but an official, all company gathering in Durham where the purpose was specifically to bring us together. There was a year where that only happened once. That was really the pendulum going way too far the other way. We really all felt that we just weren't seeing each other anything like enough, and there were people that got hired that had never ever been in the same room with–
RUSS: Had never been to the office.
CRAIG: Had never been to the office. Had never been in the same room with 95% of the company. I feel like we've kind of figured that one out, and this has been your project, so I'll maybe let you talk about where we are with Cognation and what you think a good balance is for us.
RUSS: Yeah, so Cognation is our regular, get everyone together. Historically, it has been in Durham, but I guess that's not necessarily part of it. It's just the most convenient place.
We've tried to do it twice a year, three times a year, that kind of thing. It tends to get caught up in events and people's vacation schedules and things like that, so they tend to be, if you think about trying to schedule anything for 30, 40, 50 people, it's hard. But several times a year we try and get everyone in the same room.
We have done, and what we do in that room has varied over time from doing talks for each other to having working groups where we try and work on problems. We almost always have or maybe always have a company update from Justin, the CEO, and kind of the upper management.
We've tried different things to get the most out of the time we spend together, but I do think that the key thing is that we all get together. We go out to dinner a couple of times. Usually we have some people end up playing games after hours, playing music, or whatever it is they like to do. We've gone to the movies. It is just a moment, a couple days for everyone to get together and feel like that's just not a voice at the end of the Skype line or whatever. That's an actual person and that I'm really thrilled to be working with these people.
I know, for me, every time I've ever gone, I come back energized like, gee, I really like these people and I'm glad I'm working at this company. I think that's probably a pretty universal feeling.
CRAIG: Yeah, I can definitely speak for myself, and I think one gets a sense of the energy in the company as never really low around here. But after a Cognation there's a definite spike. It's enormously important for morale, I think, and I think it's good that we have kind of stabilized it to be more frequent than the nadir that we hit in the last couple of years. Once a year for us was definitely not enough.
I wonder, though. I'd like to steer the conversation. I think we've talked a fair amount about how we do things at Cognitect.
CRAIG: But I wonder if we can generalize a bit because, like I said, this is something we get asked about a lot not just from people who want to work with us, but also people who have a broader context. For instance, I've said before I think Clojure is in an amazing place right now when you consider the length of its history being as brief as it is. I think there are a lot of people out there who would love to work in Clojure who feel as if they're aren't able to.
Sort of paradoxically, I also feel like there are a lot of companies out there who we talk to that say, "Well, we'd love to work more in Clojure, but we feel like we can't find the people," and so it's hard to see how both of those things could be true. I think one of the keys is that people have to get better at being distributed, right?
CRAIG: If there is a person in Cleveland who really wants to work in Clojure and who would be a great fit for a company in Los Angeles, but the company in Los Angeles is not willing to consider people that won't drive to their office, then they're necessarily limiting themselves. I guess what I'm driving at is: What advice do you think we can draw from our experience, being distributed, that would apply to other people out there? I think one of the things about our context that's a little different is that we are a consulting company.
CRAIG: And so I work with the people on the project teams I'm on. That's a pretty small portion of the company. We are kind of trying to solve a problem wherein 6 to 10 people need to collaborate together, maybe 4 of us and 4 of the client, not 30 people need to be able to collaborate together remotely. I wonder whether you could say, "Well, okay. Here are the things that we've done that worked for us and that would also work for you," or, "If you're in a different context, here's what you might need to do differently," if that makes sense.
RUSS: Yeah. Well, one thing that pops into my head is for the person who, say, would like to do Clojure or really any other technology and there's nobody local, and they're trying to figure out how they can work for that company in Pittsburgh or San Francisco. I think simply finding a partner that you can work with, say, on some open source project remotely is an enormous step to take, right?
My question to people who come to us and I may be worried about them being able to work remotely, but my question always is, "Have you ever done it in any way?" because it's like swimming. You need to do it a little bit and then it's easy, or at least you understand the problems. Maybe it's not easy, but you understand there is a point where you need to get your head around it. Doing it really is the only way to do it.
From the flipside, how would you get 30 people in a remote team to work together? I'm not sure. Any suggestions from the Microsoft experience?
RUSS: The teams that I worked there were smaller, so I'm trying to think if I've done remote stuff of that size. You know, as we've probably mentioned on the show once or twice, we actually do tend to work with – I mean we work for large organizations, certainly.
CRAIG: But we tend to work in a context where there's a smaller number of people on the immediate team. There are all sorts of reasons that's a very good idea.
I think you can actually look at our history as we were bringing on people, and you can look at the fact that I think you wind up breaking down, even when you're in person, after a certain size, right?
RUSS: Right. Yes.
CRAIG: I brought that up earlier thinking, okay, well, what if I had a 30-person team. Well, honestly, 30-person teams don't work that great in person either.
RUSS: I was thinking that myself.
CRAIG: We used to have these all-company stand-ups.
CRAIG: When it got to about 15 people I think was the limit where people were like, "this is useless," right? Even with a bunch of smart people who are working on really similar things, people are like, "This is silly," and we actually split the company.
CRAIG: I think maybe the answer is that's not actually a real problem that you would have.
RUSS: Or it's not unique to distributed teams.
RUSS: You're going to have problems with a 30-person team. You did just remind me of something that I did want to mention, which is kind of both as someone who's worked in organizations and now I kind of manage our consulting business. I have to say that even in person, running decent meetings is critically important. When you're dealing with a distributed team, running a decent meeting is just absolutely critical. It's the difference between getting something done and just kind of ticking everyone off or half the people in the room.
What do I mean by running a decent meeting? You have the meeting. It's like fight club, right? What's the first rule? The first rule of meeting club is don't hold the meeting in the first place.
RUSS: The second one is, if you're going to have the meeting, have a purpose, and the meeting is over as soon as the purpose – you know, as soon as you get to the goal, right? Don't ever say, "Oh, well, the purpose of this meeting was X, and we've done that, but we've got 30 minutes left, so let's–" I think that should be an invitation for everyone to hang up.
Have an agenda. Have a definite time. Make sure everybody can hear and be a jerk about not letting people kind of hijack the meeting in different directions. I think all of that stuff is just kind of basic running a business 101, but it is super critical when you are dealing with a remote team.
CRAIG: Yeah. That's true, and I think it maybe comes back to some of that nonverbal cuing stuff.
CRAIG: If I check out on a video call, and especially if video is not enabled, if I checkout on an online call, nobody knows, right? I'm surfing cat videos on the Internet and nobody has any idea, right?
CRAIG: As far as they know I'm paying complete attention.
CRAIG: Although, in my case, if I stopped talking, they know I am. But, yeah, it's sort of social hygiene, and I think you're right. I think that stuff is magnified in the case where people aren't in the same room. Again, I would come back to–I mentioned this just a second ago–video, right?
CRAIG: Video helps address some of that.
CRAIG: Go ahead.
RUSS: I wonder. I think you did the remote thing as kind of an individual contributor for a lot longer than I did it. I did it periodically over time, but mostly, until I got to Cognitect, I was working with people at an office. I wonder if you have any advice for someone who has worked at an office for a long time and now they're getting ready to work remote.
For example, when I made that transition, I realized I needed to have a routine, a set of things that I did every day. I used to have a routine, which was mostly cued off of get in the car and drive to work. But since I didn't have that sort of post to hang the routine on, I had to develop my own. What I actually ended up doing was having a checklist of things I needed to do every day.
Do you have any advice along those lines?
CRAIG: Yeah, right. We've kind of switched over from: I have an org–
CRAIG: –and I want to have remote people, to: I'm a person and I want to be a part of an organization where I'm remote. Yeah, so I think you're absolutely right. Routine is key. Routine includes context.
I'll start this by saying don't expect it to be easy. It took me something like six months to get used to it. So if you begin this and you feel isolated, if you feel unproductive on certain days, if you feel out of place, don't accept it, certainly, but also realize that there is a certain adjustment period, at least for some people. I was one of them.
I think now, my routine now is when I am – I was about to say, "Leaving to go to work." My office is in the basement, but I say good-bye to my kids.
CRAIG: I use the literal words, "Bye. I'm going to work now," and that's the mindset. I walk down to my office. I'm fortunate in that I have a dedicated room that I can go to that has a door on it. Not everybody has that. Particularly for people that are working in chaotic environments where they have maybe small children running around, that's an additional challenge. If you can find a way to address that, that is going to be a good thing.
Establish routines with your family, things like: if the door is closed, you need to knock. If I don't answer, it means I'm on the phone and you go away unless something is on fire or someone is bleeding, right? But if I say, "Come in," then you can come in.
It's going to be different for everybody, but the idea is to try to think about how you can create a context that allows you to continue being in your work space, both mentally and physically, and allows the life that's going on around you to continue and not have to involve you in decisions about whether or not it's okay to integrate those two things. The truth is, if you're working at home and other people are home, as much as we would like to say these two things are totally separate.
I mean we used to have – my wife and I both work at home, and this doesn't happen as much any more, but it used to be the case that her friends would call her up and say, "Hey, do you want to go to lunch?" or, "Let's go shopping," or whatever. She's like, "I'm working. You wouldn't come to my office and do this," right?
CRAIG: It was quite irritating to her because they weren't respecting it. The truth is, first of all, you're right to expect that people respect your work time, even if you are at home. You are going to have to deal with a certain amount of that, and it's one of the benefits in a way, right?
If you're expecting somebody to come by and repair your air conditioning, well, you don't have to make special arrangements to be home. You can say, well, I'm going to sit here, and they're going to call me when they're on their way. When they arrive, I'll get up and go deal with that for 15 minutes and get them settled, and come back to work.
You know what I mean? There's a tradeoff here. The advantage is that you have the flexibility to be at home and the things that involves maybe like around being able to control better what you eat for lunch, for instance. But you are going to have to deal with certain times where, particularly if you have a family where your home life collides with your work life, and just finding ways to set up a framework where that can be managed to a level that's acceptable.
For some people that's going to be easy. For some people you're going to find that it's not possible. It's just not. For whatever reason, the people in your life or the configuration of your home means that, you know what? It just doesn't work out. It's too much to ask or the situation has certain aspects. In that case I would say look for a place that you can drive to. There are all sorts of co-working locations.
CRAIG: Maybe you can find other people. I don't know. I'm just making this up. You can go to their house and pay them $50 a week or something and sit in their living room with a laptop and use their wi-fi, and there's nobody home. Be creative and find ways to do it. I think really it's come down to have a work context in your life. As you exercise that after a month, six months, or whatever, it will become easier.
RUSS: Yeah. Well, I completely agree with what you just said. I think that you put that brilliantly. My own experience, coming to what was then Relevance, was I set up kind of such a strong work area, both kind of in physical terms and in mental "I'm now at work," that it probably took me a year before started taking advantage of the flexibility of, oh, yeah, I can let the cable guy in.
RUSS: Because I was so much in the mindset of "I don't want my home life to kind of spillover and everything to become a blur." I think that, kind of going the other way, that's the danger is that you let your home life spill into your work and interfere with your work. I think the other danger is that you let your work spill into your regular life where you are essentially always working. I think that that is something to watch out for as well.
CRAIG: Yeah, totally. I manage that because I've got my laptop kind of plugged into a bunch of stuff, like a second monitor and whatnot. It's enough of a pain to unplug it and carry it around with me that I don't. And I hate working on touch screens, and I don't have another laptop. So when I walk out of this room, it actually is irritating for me to do anything that involves work except possibly reading my email. This isn't really a problem these days that's unique to people that work remote, right?
RUSS: No. Sure enough. Yah.
CRAIG: Essentially, if any part of your job involves responding to email, and I think that's most jobs these days, overwhelmingly likely it's part of the job of people listening to this show. I suppose if I was doing sanitation work where I'm picking up garbage, but maybe those.
RUSS: Maybe not.
CRAIG: Maybe those guys and girls have to deal with stuff too. Anyway, the point is that I think everybody has to kind of learn how to separate work and life. I think you're right that maybe the boundary is a little bit blurrier when there's not physical separation. But, for me, I've got an office in my house, and I think that's a huge part of me being able to make that barrier between the two.
RUSS: Yeah, I think the key thing is to approach it as: I need to keep some separation between my work life and my personal life in both directions. I think that's probably the best attitude to go into it with.
CRAIG: You and I have a big advantage in that we work for a company where that's the norm, right?
CRAIG: People are not. I know certain people. I may in fact be married to certain people who are frequently still on their laptop at 6:30 p.m. on a Friday. I'm not saying that we never work like that here, but it would be unusual, right? It would really be quite unusual for someone to be calling me up with an urgent work question at 6:30 on a Friday night or on weekends, and I think that's a really good thing. One of the nice things about being remote is that it does open up a larger world of options to you, and you can use that to select for companies with a culture where that work/life separation is inherently easier to make due to their culture.
RUSS: Yes. Yes. The one story that I had that I think of as kind of an anti-pattern of remote working, and this is kind of flipping it back over and looking at it from kind of the management and company point of view is at some point I was working for a company and we had maybe two remote workers. It was mostly a company that had an office and everyone came to the office.
I worked with one of the remote. It happened to be a guy who lived in Florida, and he seemed like very much on the ball and very, really sharp guy. He always seemed to get the really crappy jobs. I mentioned it to one of the managers, and the manager said, "Oh, he wouldn't move from Florida, so his career is stalled."
RUSS: I think that if you are in some position where you're making decisions and you're sort of approaching hiring someone on that basis, you shouldn't bother.
RUSS: You're sort of increasing your pool of available people from all the people who are willing to commute to all the people who are willing to commute plus all of the remote people who are willing to be treated badly, and I don't think that's such a – anyway.
CRAIG: Yeah. Well, right, as you said, anti-pattern.
CRAIG: All right. Well, Russ, I've got to admit. When we first said we should talk about this, I'm like, "That's cool. Maybe this episode will be a little bit on the short side because I feel like we've been doing this for a while and it seems well understood," but honestly here we are, and I feel like we could actually continue. We haven't even really dived into specific tools. I don't actually think they're that important. I think we've covered the category.
CRAIG: You should have something that does video. There are a lot of choices, et cetera. I think maybe we should–
RUSS: I do think that there is one aspect of the tooling that bears mentioning right here.
RUSS: Which is, I think when it comes to remote working or working remote, as a developer, you need to lean towards the tools that are more textural and less graphic because they just seem to work better.
CRAIG: That's true.
RUSS: Maybe that'll change in three years, but right now I think Vim or Emacs is probably a better shot than Eclipse or something like that.
CRAIG: Actually, I'm not. I would say I agreed with that at one point.
CRAIG: But I have to say that, over the last couple of years, and maybe this is a shift in kind of our approach towards pairing from a thing five years ago that you always did 95% of the time to now where we employ it when it makes sense, which is not infrequently, but far from 95%, is that I've kind of gotten to a place where I don't really care if the two of us can type at the same time.
CRAIG: Right? If I can see your screen, that's good enough. Then you can type, and we can talk. In other words, to me I've made this shift to where the main thing is to be able to communicate, but not necessarily to be able to drive the keyboard at the same time. In fact, since one of the things I'm called on to do a lot is to work with clients where the explicit goal is to transfer experience, right?
CRAIG: To say we want to have senior people on the team to kind of leaven our existing team. I have long been an advocate of, when pairing, that the person with less context, which is not to say a more junior developer. I might be pairing with somebody who knows a lot about, say, client side UI, which is not a specialty of mine. In that case, I would be the person with less context. However that is, that they should be the one typing because I feel like you retain more of the information.
CRAIG: You're forced to really deeply understand what you're doing better if you're the one typing. I just think that you can do that with screen sharing. I'll often just use Skype. Skype screen sharing is kind of meh, but it's good enough. If you need something better, we've used join.me, Zoom, and there's a bunch of stuff.
RUSS: Right. Just to fill in the context, I think what we're both sort of assuming is that if you both wanted to type, doing something like tmux over SSH with Vim or Emacs might be the path of least resistance. If you're using some kind of graphical tool like Eclipse or something like that, you're going to have a harder time finding some way to share that if you both want to type.
CRAIG: Yes. I'll agree with that absolutely.
RUSS: I think what you're saying is, eh, that's not such a problem.
CRAIG: Yeah. For me at least it hasn't been the case that I've felt a strong need to be the one typing or that we both need to be typing, I guess is the right way to put that.
RUSS: Right. Right.
CRAIG: Yeah, totally.
CRAIG: Cool. Well, Russ, we could keep going, but I think maybe it's time to carve off a little time for anything else you want to talk about and then to start to wrap it up. Anything else that you're psyched about or we should include or anything like that?
RUSS: I think I'm good. I actually wrote down some advice. My advice is if you're in some position of decision-making and you're thinking about trying this remote thing, or maybe you're thinking about trying to talk people in your company into trying the remote thing. My advice is, yes, please do try it because, again, you go from everyone who is willing to drive to your office to essentially everyone you can legally employ. I think that if you're not doing that, maybe your competitors are going to get a clue at some point. Then maybe you really are going to want to do it.
I think what you end up with is not just the people that you really want to work with, which I think is a huge thing as opposed to the people who happen to live nearby. You end up with a bunch of happier employees. The last time I was commuting, I had a 15-minute commute, which is a total of a half hour a day, which was 2.5 hours a week. Two and a half hours of the week came out of my life, and it either came out of the energy I put into work or the energy I put into my personal life or into my sleep or something. Having that 2.5 hours back, which is a really short commute, just makes me a better person to employ.
The other reason you should try it is maybe a bigger one, which is that if you look at the numbers on the number of miles that Americans, people who live in the U.S. have driven for the last ten years or so, there was a dip right around 2007, 2008, which of course was when the economy tanked, and that frequently happens when an economy tanks is that people drive fewer miles. But since then it has really, the curve has really, flattened out. This is a curve that goes all the way back to, like, 1910. Historically, people who live in the U.S. have driven more miles this year than last year and more miles next year. That curve, for the first time, is flattening out, which is just a wonderful thing for the environment and everything else.
The thinking is that part of that flattening out is that the recovery has kind of been slow, and that's not a great thing. But another part of it is that fewer people are commuting. Fewer people are actually going into the office every day, and I think we are all better off for that.
CRAIG: Mm-hmm. Yeah. Well, wonderful advice. If I had any advice to give on this show, it would be work for Russ. That's a great part of my–
RUSS: Thank you.
CRAIG: But obviously it doesn't apply to anyone. I will say this. If you have questions, if our listeners have questions about specific practices or things, or their situation, I think you would join me, Russ, in saying that they should feel free to tweet at the show or at Cognitect, send us email, or whatever. Use the various channels of communication to ask, and we'll do our best to answer.
RUSS: Yeah, absolutely.
CRAIG: Cool. All right, Russ. Thanks a ton for your perspective. Always, always interesting to talk to you. I love your insights. I think you do an amazing job of managing this diverse and far-flung group of people, so it was really fantastic to get your viewpoint on how you pull that off. Thanks a ton for taking the time to come on and talk to us today.
RUSS: Thank you very much, Craig.
CRAIG: You're welcome. In return, we will not make you edit this episode. All right, that's going to do it for us today. This has been The Cognicast.
All right, cool. Any thoughts on a cover? We can pass it on to Michael.
RUSS: I hadn't even – okay, that's the one part I hadn't thought about.
[Music: "Thumbs Up (for Rock N' Roll)" by Kill the Noise and Feed Me]
CRAIG: You have been listening to The Cognicast. The Cognicast is a production of Cognitect, Inc. Cognitect are the makers of Datomic, and we provide consulting services around it, Clojure, and a host of other technologies to businesses ranging from the smallest startups to the Fortune 50. You can find us on the Web at cognitect.com and on Twitter, @Cognitect. You can subscribe to The Cognicast, listen to past episodes, and view cover art, show notes, and episode transcripts at our home on the Web, Cognitect.com/cognicast. You can contact the show by tweeting @Cognicast or by emailing us at firstname.lastname@example.org.
Our guest today was Russ Olsen, on Twitter @RussOlsen. Episode cover art is by Michael Parenteau, audio production by Russ Olsen and Daemian Mack. The Cognicast is produced by Kim Foster. Our theme music is Thumbs Up (for Rock N' Roll) by Kill the Noise with Feed Me. I'm your host, Craig Andera. Thanks for listening.