Home Alone: How working for a fully remote company actually works
About this video
A pair of bumbling burglars has never caused me any trouble, but working from home for a fully distributed company (where there is no office, anywhere) is not without its perils.
I’ll describe what it’s like to work for Particular Software, a fully distributed company that makes NServiceBus, a popular .NET Service Bus framework. We have no office, no managers, and only get to see each other in person once per year. Despite all that, we build and support an amazing product, and I’ll tell you how we do it, including how we’re organized, our processes, and the tools we use.
🔗Transcription
- 00:06 David Boike
- Well, welcome everybody to Home Alone, the story of how working for a distributed company really works. My name's David Boike, that's my Twitter, same as my name, easy to remember. How many people like the movie Home Alone? There's one person like "ehhhh...". Well, Home Alone is one of my favorite Christmas movies ever, because it's the story of a disturbed preteen, who's also an identity thief who commits multiple violent felonies against two just hardworking guys, just trying to make a buck in a down economy.
- 00:42 David Boike
- And then eventually the kid meets the future President of United States of America. Not my favorite Christmas movie ever, that distinction would have to go to Die Hard, of course. But if my job really had anything to do with Die Hard, I would be in a lot of trouble. I don't work in a big office in a cube farm with a bunch of distractions, I don't work in the big skyscraper downtown. I work from home.
- 01:13 David Boike
- Well, that's not my home, that's the Home Alone house, hopefully you all know that. This is actually my house or at least it was 25 days ago. Is there anyone local here who remembers this happening, and under a few choice phrases, when all this snow occurred. Minnesota can get pretty snowy sometimes. This is where I work now, the benefit of working from home is I never ever have to commute. In fact, my commute is stepping down a few steps into my basement, into my office, and then I'm there. To come here, this is actually the first time I've commuted in the past three years. And I got to tell you it was awful. I absolutely hated it.
- 01:54 David Boike
- I work here, in my house, in the basement, it's actually under that bush down in the basement, all by myself. Well, no, I'm not all by myself. I've got my little puppy, Dylan. I still call her a puppy, even though she's 11 years old. But because she's 11 years old, she mostly sleeps all day and doesn't really do much. She doesn't really pitch in or write any code or anything like that. She can be a good rubber duck though, she's a slacker.
- 02:22 David Boike
- Anyway, I work for Particular Software. And if you haven't heard of Particular Software before we are the makers of a product called NServiceBus, and a whole platform of tools that goes around that. NServiceBus is all about distributed messaging, we're creating distributed systems so that you don't have a big monolithic code base that's hard to version, and ship, and all that kind of stuff.
- 02:42 David Boike
- And for the most part, working for Particular Software is pretty great, generally awesome, although there are some drawbacks. On the plus side, I get to basically set my own schedule. I mean, we work all over the world. Eight to five, nine to five, it doesn't matter. I can in my hours really whenever I want. When the new Star Wars movie that comes out, I can just decide, you know what? My wife doesn't want to go, so I'm just going to go in the middle of the day and I'll work that night instead.
- 03:12 David Boike
- I can eat whatever I want, although sometimes that's not such a good thing. It can be pretty tempting when there's a whole fridge full of food that's maybe not so good for me just right upstairs. But remember, it's snowy and you get pent in sometimes, so I do try to make a rule to at least once a week, go out and eat somewhere outside of the house, just to get a change of scenery. Preferably meet someone for lunch, it kind of helps with feeling like you're stuck in the house all day.
- 03:45 David Boike
- I get to listen to whatever music I want, in fact, at a reasonable volume. In fact, I think that working from home actually might be saving my ears and my hearing, which is kind of important to me. Before when I was a consultant and I worked in one of those big offices, I would sit with my headphones on all day, blaring my music probably louder than my mother would be comfortable with. But now I get to have the music on speakers that are on my desk, and no more worry about my hearing.
- 04:13 David Boike
- I can run an errand in the middle of the day, or if someone needs to make a delivery to the house or come work in the house, I can let them in. We once had our dishwasher break and of course we wanted that fixed as soon as possible. And it was really nice to be able to say, "I work from home, I'm really flexible, you can deliver it at your earliest opportunity." If I need to do a household chore in the middle of the day, I can do that too. Although this is a bit of a trap, your significant other may say something like, "Well, you're home, why can't you stay on top of the laundry and unload the dishwasher, and do this, and do that." Well, because I'm working."
- 04:48 David Boike
- I actually have eight hours of work to do each day and that doesn't change just because I'm working from home. It's really not just me, all of us work from home. This is an image of one of our town hall meetings, I believe. Since we're all around the world, we don't all get on the same call at the same time, but our meetings kind of rotate to be in different time zones at different times. I'm up there in the Star Trek shirt. This is probably the most dressed up you'll ever see me.
- 05:18 David Boike
- And so working from home is, sorry, sometimes when you work from home interruptions like this happen. This is my daughter, Elizabeth. She clearly wants to watch Odd Squad or something on her tablet and that's not working. And so it's very important when you work from home to have a defined workspace where you can shut things out, and preferably an office with a door. And that the children understand that when the door is closed, daddy is working not to be disturbed.
- 05:48 David Boike
- Anyway, what was I saying? I was saying we all work from home and there is no main office, so it's not like I'm remote, and then everyone else in an office somewhere. We are all working from our home offices. There are 42 of us roughly scattered all around the world. We've got a whole bunch of people in Europe, one guy in South Africa, a few in Australia. And those are roughly the locations of our North American people.
- 06:16 David Boike
- We have a few in Canada, I like to make fun of the one that's in Nova Scotia, because even though he's in Canada, my house is technically North of his, so I call him a Southerner. We are distributed between 16 countries and between us we all speak 19 languages, which can make support for a worldwide product a lot easier, because if we have a customer who's more comfortable speaking in a given language, we probably likely have someone who can do that.
- 06:50 David Boike
- The other really nice thing about being distributed all over the world is when it comes to support. We have a product to support, and we have 24 hour support for it, which means all of us are going to have to carry a pager or, well, what it really means is PagerDuty on our phones. But in a previous company, which was headquartered just in Minnesota, I shared PagerDuty with four other developers. And so I would go two weeks on and then eight weeks off. And that was okay, I mean, it's never fun to be woken up in the middle of the night, but at least you had those eight weeks off where you didn't have to worry about it.
- 07:26 David Boike
- Well, then one developer left. And so we were down to four, so it was two weeks on and six weeks off. And the guy who left all of his responsibilities went onto the next guy, so then he decided he was going to leave too. Pretty soon, it was down to two developers, and I was two weeks on two weeks off at the same time that my daughter was about seven months old. And that was just not very fun for me.
- 07:47 David Boike
- Now that I work in a company where we're distributed all over the world, we can divide up those support responsibilities into regions. And we just generally call these time zones, even though that's not really true. We just kind of group them into the North American, European, and Australia zones. And so when I'm on call, and I was actually on secondary call this week, I'm only on duty for eight hours from roughly, I don't know, maybe nine or 10 o'clock to maybe 7:00 PM. And so most of it is within my working hours anyway.
- 08:22 David Boike
- It's a little later because it's designed so that in LA it doesn't start at 5:00 AM or something like that. It goes a little bit into my evening, but no big deal. Our support structure is also structured so that we only get interrupted for these kinds of things with truly critical cases where the customer is expecting a five hour or one hour SLA. Generally these only happen one or two times a month. And so I'm not sure that there's ever been a time when I've actually been interrupted in my day by a support case that would have messed up my day.
- 08:57 David Boike
- Now the counter to this is you also have to worry about what I call the tyranny of the sun. And I believe that's from a video game that I haven't played, but I heard another remote worker use that phrase and I liked it, so I decided to keep it. Basically, there is always something happening. It's kind of like our company is the British Empire of a few centuries ago, the sun never sets on Particular Software.
- 09:21 David Boike
- There's always someone awake, always someone probably doing things, except for Saturday when we do take some time off. Thank goodness, because we all need that. It's also a little different, because we have a lot of coworkers in Israel, and Israel works Sunday to Thursday, and their weekend is Friday and Saturday, that means even on Sunday, stuff is coming in. And that means you have to be really good about triaging your notifications.
- 09:48 David Boike
- That's kind of an okay day, but it's just as easy to wake up in the morning and have it look like that instead. Triage starts for me first thing in the morning when I'm letting the dog out, because she takes like five minutes to do her thing. So why not sit on my phone and go not important, not important, not important. Oh, that's important, I'll do that later. You also need to be ruthless about unsubscribing and watching things from GitHub.
- 10:13 David Boike
- People will ping you and go, "Hey, group, what do you think?" And you're like, "I really didn't need to be subscribed to that issue in perpetuity, I need to unsubscribe from that." And as far as watching repositories, I don't think there's any repositories that I actually watch, because I don't need to be subscribed to every issue in that repo by default.
- 10:35 David Boike
- You also need to learn how to use the do not disturb feature on your phone. Is there anyone else use the do not disturb feature? Yeah. Absolutely critical when you work for a global remote organization. From 10:30 PM to 7:00 AM, my phone will not buzz at all. I think unless my mom calls me because that's probably an emergency. I also learned very early not to sneak a peek at the phone, like if you have to wake up because the kid woke you up, do not look at that phone, because you know it will have 20 notifications on it.
- 11:09 David Boike
- And if you start looking at any of them at 3:00 AM, your brain will wake up and all of a sudden you're going to be up for the day. Better to leave that thing on the nightstand, don't touch it, go back to bed, get your sleep. It's important, you need it. The fact that we're spread around the world, isn't the only thing that makes our company unique from other companies that have remote work policies. And I like to use this TV is kind of a metaphor for that. Did anyone ever have a TV kind of like this when they were growing up? I did, well, my parents did.
- 11:41 David Boike
- I just remember them watching Wheel of Fortune on it, and that was my mom's favorite, and Mash was my dad's favorite. And it was my job to get up off the couch, go to the TV, and change the channel, or the volume basically, whenever they said. And I was like, "Why do I have to do that?" And they go, "Why do you think we had kids?" I mean, the problem with this TV is that it is not built for a remote.
- 12:08 David Boike
- And that's the problem with a lot of companies too. They say, "Oh yeah, it would be great to have a remote work policy, maybe one or two days a week. It'll be great for recruitment, we can use it for this and this and this." But they're not really built to support it, they're still anchored in the past, in all of these ways that are not remote friendly. And that causes friction. It's kind of like the Friends episode, where Rachel's boss, and coworker smoke, and go outside to smoke, and they make all the decisions outside while she's cut out. And so she's tempted to go smoke with them. And then the coworker, that is the one that gets to go on the Paris trip or something like that.
- 12:43 David Boike
- That's what a lot of companies that say they're remote friendly turned into. All of the hallway conversations, all of the important stuff happens at the office. And if you are remote, you kind of get left out of all of that. Decisions get made in meetings that aren't broadcast, or recorded, or teleconference, and you're left out in the cold, which is really stupid. Since most companies should really be built for remote.
- 13:10 David Boike
- This tweet says, "As soon as you have more than one office, you're technically..." I put it in that word, "A remote company, whether or not you actually do remote. If you ever have to do a video call with another team member, you are remote." And yet companies still are blind to the fact that they're making it absolutely as hard as possible to do that. And so how do we build our company to be remote first? First of all, we have no data center, unless you count Azure or AWS. We have no office, so we have no group of servers in that office.
- 13:46 David Boike
- We have no internal networks either, which means we have no need for a VPN, or at least a VPN like most companies would think of it. We do have VPN software, it's for our own safety when we're connecting from a coffee shop so that our signal can't get stolen by someone else. But there's no need to say, "I need to work from home, so first I have to connect to the company VPN so that I have access to all the stuff I need." It just creates a barrier and makes remote workers a second class citizen.
- 14:15 David Boike
- Basically we can work wherever there is WiFi, and I have worked in a coffee shop, I have worked in a Panera. I don't like to do it often, because I have three big gorgeous screens in my home office, and when I'm in a coffee shop, I have just a little laptop screen and that's no fun, but it's possible. In fact, one of our staff members kind of took that to the extreme. His name is Adam Ralph, he's from Switzerland. He's kind of somewhat famous for being the first person to have a community poll request merged into the .NET Core when it was open-sourced. I think he actually kind of screwed up Microsoft presentation because they were planning to do it. And then they went, "Oh, look, we have this PR."
- 14:59 David Boike
- But he has taken remote work to a new level, because he and his girlfriend bought a van. And they had been traveling around Europe with it. And Adam works out of the van, and goes and speaks at a bunch of conferences and stuff like that. And in fact, if you remember this picture, if we zoom in, there's Adam in his van. It's very grainy, but that's his van. And so also when Adam is traveling around Europe, I'm sure he also takes some time to see the sites. And this is also one of the great things about Particular Software.
- 15:33 David Boike
- It's not really an unlimited PTO policy, but when you have employees in a whole bunch of countries, there's really no way to have a standardized PTO policy. We make it really simple, it's not really an unlimited PTO, it's more like I mean, if you've heard about unlimited PTO policies and some of the dangers with them, where some companies will roll out unlimited PTO and it's really kind of a backhanded you need to work more kind of a thing. They pressure you into working more, and against taking time off, our company isn't like that. We have more of a minimum required PTO policy.
- 16:11 David Boike
- Every quarter we get an email like this that says, "Hi, everyone, it's approaching the end of the quarter. So it's a good time to check in and see if you've taken the minimum amount of vacation for the year yet. Please put your initials by your name on this worksheet, if you have." And so we go to this worksheet in Google Sheets and we put our initials on there, assuming we've taken at the very minimum 10 business days, and five of them consecutively.
- 16:35 David Boike
- But we do not pressure people to work more than we think they should. We have colleagues in Europe, where taking four weeks off in July is a very common practice, and there's no problem with that. The big thing is, we're all responsible, that's one of our core values. And so we trust you to do the right thing. Those are some of the principals needed to be remote first, but what about our tools?
- 17:05 David Boike
- It turns out it's not just the tools you use in order to be a remote first company, but the matter is quite a bit how you use them. I'll take you through some of the tools that enable us to be a remote first company. First of course, is GitHub. We do everything in GitHub, almost everything in our company is a GitHub issue. And then there's Slack, which we use for communication between ourselves. This replaces the hallways that we don't have in meeting rooms.
- 17:34 David Boike
- And then we have Zoom for recording meetings, and we record every meeting pretty much. Or at least we say we do, sometimes we forget, and we post them on Google Drive. Some more tools, we have Gmail, and the whole G Suite, but honestly we don't use email that much. In fact, the only time I really use email through Gmail is when I am communicating with an outside customer. For all our internal stuff, it's either on Slack or on a GitHub issue.
- 18:04 David Boike
- We have Salesforce for CRM and managing customers and all that sort of stuff. I'm not a big fan of Salesforce, but it's kind of a necessary evil. We have Expensify for reporting our expenses. We have PagerDuty, like I mentioned, for our support duties. We have TeamCity and Octopus Deploy, which is how we do our builds and releases. We have MyGet, so all of our packages... Because at the end of the day most of our stuff is a NuGet package, so we stage it on MyGet before pushing it to NuGet.
- 18:36 David Boike
- We have Raygun, which helps for error reporting. We have Waffle.io, which is kind of a project management Kanban Board on top of GitHub issues. We have last LastPass, because it's very important when you are a remote company that everyone has good security practices, and has unique passwords for stuff. And isn't putting one, two, three, four, or five or password one as a password for everything.
- 19:05 David Boike
- Now, one thing you might mention about all those tools is that by and large, they're all SaaS tools, software as a service. We didn't install anything in our data center. The only exceptions to that are really TeamCity and Octopus Deploy, because they really can't be deployed SaaS, so we have those in AWS. But all those tools are mostly SaaS, and some are more important than others. And you might notice that three of them are bigger than everything else. And those are because those are our core collaboration tools.
- 19:38 David Boike
- I heard another speaker yesterday say, "Computers are easy, people are hard." That's true, and so these tools are the tools we use to communicate, which is some of the most difficult work that we do. First step is GitHub, everything is in GitHub, our code is in GitHub. We have private repos where we have documented our processes. And so if someone was like you know what? I think the whole PTO policy is garbage, I think we should change it. How they would do it would be to submit a pull request against that policy in GitHub.
- 20:10 David Boike
- Even our non-technical users, our non-technical people use GitHub. And non-technical is pretty much a misnomer, because they're pretty technical, they're pretty awesome. But I mean, non-engineers non coders. Everyone uses GitHub and it's actually pretty amazing to watch someone who probably when they went to university was not expecting to be a technical person, merging a pull request against something in GitHub. It's pretty cool to see.
- 20:36 David Boike
- We have 138 repositories, 20 more in a particular labs organization, 45 people, 66 teams. You might notice 45 people and 66 teams, how does that work? Well, we have maintainer groups. So different repositories, like say Azure or RabbitMQ will have a maintainer group. And many of us are a member of multiple maintainer groups. So that's why there's significantly more teams than there are people.
- 21:05 David Boike
- Some of our issues stats around April 16th, we had nearly 2,400 open issues. So we have a ton of ideas of stuff we want to do. Nearly 16,000 closed issues. Just a bunch of stuff everything's in GitHub. Next up is Slack, who uses Slack here or has used Slack? Okay, most of you. We have 147 public channels. Private channels are almost non-existent. We do almost all of our conversation out in the open.
- 21:36 David Boike
- Now there have been some articles about how Slack is the worst thing ever, and some of those are focused on like the performance of the app and that's one thing. But others are focused on like the level of annoyance or basically people's manners, I guess, is what it really boiled down to. We have a lot of rules to make Slack as useful and not annoying as possible. For instance, there's a general channel in Slack that everyone has to be a member of.
- 22:03 David Boike
- We renamed that to announcements and we have very specific rules about the announcements channel. You don't ping anyone in the announcements channel, just because you're saying something happened doesn't mean I need to be woken up in the... Or interrupted in my dinner to read that. No pings in the announcements channel, which everyone has to be in. We have an RFCs channel where when we're going to make a significant change, we RFC it in the RFC channel pointing to the GitHub issue to say, "Hey, this change is going to happen, is there anyone who has input on this before we make it official?"
- 22:36 David Boike
- We have a high-fives channel where we are basically giving each other props, because we're all disconnected, we're all not sitting next to each other. And so to build a sense of team, we all give each other props through the high-fives channel, and celebrate our successes there. We discourage the use of the app channel almost everywhere. There's got to be a better, more focused subset of people that are really need to be interested in something. And so we have all of our maintainer groups also have a Slack alias, and so at channel almost a do not do.
- 23:13 David Boike
- We have lots of custom emoji because they're fun, but we have really cut down on the number of Slack auto-responders. We had one for works on my machine that would pop up a funny gift that was this big, and that eventually got really annoying. Every time it works on my machine, boom, this thing pops up. Almost all of those are gone. We only have useful ones for like find admins, which replies with the link and GitHub to where all the admin are.
- 23:43 David Boike
- Moving on to Zoom. If you're not familiar with Zoom, Zoom is a teleconferencing video conferencing software. It's very good about recording things. We can have meetings with customers, and customers can have a call in numbers that they don't have to install the client. And then assuming the customer consents, we can also record that call. And so if there's any support stuff that comes out of that, then that can be recorded and referred back to.
- 24:10 David Boike
- We record just about every meeting and we post it on Google Drive, especially company-wide meetings like our town halls. And we have a meeting where we basically get to challenge the CEO or challenge the company, challenge something that's going on in the company and say, "I don't think that's right, let's discuss it." Another important tool that I didn't mention earlier relating to meetings, there is a Chrome plugin called Video Speed Controller. And so I am very used to listening to my coworkers talk at about 1.4, 1.5X. And it's really interesting. Some people's accents, very easy to speed up some people's accents, oh, you got to back that off. But being able to listen to an hour meeting in about 45 minutes is really useful.
- 24:54 David Boike
- And so when you take these three primary collaboration tools and kind of put them on a spectrum, it's very interesting that each one has different strengths and weaknesses that in order to work effectively, we need to use. And so for instance, GitHub is 100% async, where Slack has kind of a blended sync/async. Because some people may be there paying attention to it, but other people might not even notice it until the next day, where Zoom is face-to-face synchronous communication you're having it right now.
- 25:23 David Boike
- GitHub is a permanent record, where Slack is searchable but fleeting. I mean, we have the account that stores our history forever, but at some point you're like, "Oh, where did we talk about that?" And finding it in Slack can be a bit of a challenge. If you want something on the permanent record, it needs to go in GitHub. Where zoom is totally opaque, you can't really just say, "Oh, yeah, we discussed that in this two hour meeting, go watch the whole thing." That's a really mean thing to say.
- 25:52 David Boike
- If something actionable comes out of a meeting, you need to record it in text in a more permanent format on GitHub. And so GitHub is where decisions are recorded, Slack is where decisions are discussed, and zoom is also where decisions are discussed, but mostly when it's more complex and not as easy. GitHub is very impersonal, Slack is a mixed bag, and Zoom has the advantage that you can rely on nonverbal cues and that face-to-face communication.
- 26:22 David Boike
- And so it's really important that we at all times think, you know what? We are abusing this medium. If we've gotten this far, this many lines in Slack, maybe we should get a face-to-face meeting so we can actually sort this out. Really important to know when to escalate to a different collaboration medium.
- 26:46 David Boike
- Now the most kind of interesting or different thing about our company, isn't really the fact that we're all remote. Eventually when I tell people about this, they can kind of figure that out, "Okay, it's weird you work from home." "But I guess, I could work." What's really surprising is that we are a completely flat organization. We have no chains of command or anything like that. And when I tell people this, most of the time, they're like, "What, how does that work?"
- 27:14 David Boike
- At least the McAlister's had some structure, at least the parents were in charge of the children, but we don't have any managers. How do you get everyone to work together with everyone at home kind of doing their own thing. In fact, at the beginning of this experiment, because the company used to be structured with an engineering department and a marketing department and stuff like that. At the beginning of the experiment where we said we're going to have a flat organization, we simply asked everyone to work on whatever they thought would have the most impact.
- 27:45 David Boike
- And that turned out to be awful, because we're all really passionate, we're like, "That's a good idea, I want to do that, I'm going to start that." And pretty soon I'm working on like 15 things, and I don't really have time to finish any of them. So lots of things were getting started, but not a lot of things were getting done. We decided to kind of go back to the drawing board a little bit, and take some inspiration from the product that we build.
- 28:14 David Boike
- NServiceBus I told you it was a messaging framework. And what it allows you to do is have all of these different services that are lightly coupled, basically communicating by exchanging messages back and forth. And by the way, this is the very apex of my ability to do animation in PowerPoint. It will not get any better than this. Let's stop that.
- 28:36 David Boike
- And so in the same way that you can have different services that are lightly coupled, we decided it would be smart to experiment with having different areas of strategy. And so we have five areas of strategy in our company. The first one is platform development, and that is responsible for creating the platform, building the tools, taking, I mean, it's kind of the engineering department reborn, but it's really broader than that.
- 29:02 David Boike
- Then there's customer success, this is where support falls, this is where sales falls, all of those sorts of processes. Basically anytime there's like a one-to-one conversation with a customer, it's rooted in the customer success area of strategy. There's developer education, which I'm heavily involved in. Part of developer education is showing up at conferences and giving talks like this, writing blog posts for our blog, doing a lot of the marketing related stuff, talking to developers, that kind of thing.
- 29:36 David Boike
- And then staff success is making sure that all of the passionate, awesome people we have actually around. HR policies and all that sort of stuff goes into staff success. And then in the middle we have collaboration. How are we going to do all of these things and collaborate and work together with all the tools that we have? Those are the five main areas of strategy, but sometimes we say, "You know what? We need to deliver this big project. And it has elements of all of the areas of strategy."
- 30:05 David Boike
- For example, we've recently done projects where we've delivered new monitoring capabilities to our platform, or when we launch a brand new version with .NET Core. And so when that happens, we organize kind of a quasi area of strategy called a Launch Wave. And so it'll have kind of representatives from all the different areas of strategy so that we can make sure that we are delivering for .NET Core. And we're also doing the marketing, and we're also doing the staff success to make sure that everyone is trained on all the new features for when they're talking to customers and all of that stuff, all kind of rolled up in one.
- 30:40 David Boike
- Like I said, we have 138 repositories. This is just an image of some of the public ones that I took two and a half years ago. I didn't want to remake the whole tag cloud, but there is a lot of them, but the important part is none of them are owned by any given area of strategy. And so that means that even though you would say, "Oh, all this is all technical stuff, so that's all owned by platform development, right?"
- 31:03 David Boike
- No, platform development is not just the rebirth of the engineering department with no managers. Platform development is an area of strategy that can affect priority of things to work on. And so I was saying that everything is represented as a GitHub issue. So here's the issue for me preparing my talk, and in this case, I was the only one assigned to it, does it have the assignments on there? No, maybe.
- 31:31 David Boike
- In this case I was the only person assigned, but that's usually not the case. Each issue in GitHub you have, first of all, a plan of attack, the things we're going to do to close the issue, basically a checkbox list of things. And then it'll also be staffed by a taskforce, and a taskforce is responsible for taking a task and bringing it to completion. They have full autonomy and authority for that task. There's no manager to report to or anything like that.
- 31:59 David Boike
- Now that's of course assuming that good decision-making practices get used. Usually when we challenge something that a taskforce does, it's not that I think that's a bad idea, I think you're stupid or anything like that. It's did you RFC it? Did you use good decision-making practices? That kind of stuff. And that's a big important reason why we have the RFC process. So the taskforce can go, we're recommending this, but we're not ultimately sure, let's put it out there and see if we can get some comments back.
- 32:27 David Boike
- Now taskforce is our interdisciplinary, I mean, you've got the smart guy in the bumbling idiot, right? Those are not the roles on our task forces, but we have a facilitator and we can have in the same task force, a person to do the coding, a person to do the marketing, a person specifically designated from a maintainer group to be a reviewer for any of the PRs that come up. And so that blending of disciplines within the taskforce ensures that the taskforce will be able to do their work with that full autonomy and authority.
- 32:59 David Boike
- The challenge is actually putting together those taskforces and making sure you have the right skill sets before you get started. This is why we also have specialists and experts. So for instance, I'm a RavenDB expert. I've used RavenDB in the past, I'm a RavenDB maintainer. And so when there's something to do with RavenDB, I'm usually brought in as an expert to kind of consult with the taskforce, whether or not I'm in that taskforce.
- 33:25 David Boike
- The other thing is that an issue should not be worked on unless it's has been moved by the area of strategy into progress. Now this is big, this is how we keep from going, "Oh, that looks cool, I'll start that." And this is all done by a group of people called the Squad. And so every single area of strategy has a squad of four or five people or so that basically manage that area of strategy and set priority for the issues that go through there.
- 33:55 David Boike
- The interesting thing is, I said that no repository is really owned by any area of strategy. For instance, developer education could say that in order to better reach out to developers, we need to make a technical change to the platform to enable some feature so that they will be able to do something easier. Just because it's developer education, that does not mean it's marketing reborn with no manager. It's just a body of people that is focusing on specific metrics, and can prioritize tasks anywhere in order to accomplish that mission.
- 34:30 David Boike
- And so the squad will set priority and then their big consideration is, we do have all of these great ideas, and we want to do all of them, but we don't have 1,000 people. So how are we going to do that? We have to decide what to do now, and most of the time what to do later. I mean, sometimes it's easy to set priorities. I mean, you really don't want to watch Home Alone Three, it's utter garbage, but when you're coming to picking between Home Alone one and two, they're both good movies. I only have time to watch one, which one should I watch? It can be really difficult.
- 34:58 David Boike
- And so as we've been evolving, we've been starting to analyze that more and getting really into the question of why. Why does that area of strategy exist? Why are the reasons that we want to do things within that area of strategy? And especially within platform development, we've started separating that out even further. And we now have four why buckets, we're calling them for lack of a better term, because naming is hard. That also have many squad that are focused on specific reasons why we do platform development, and prioritizing issues within them.
- 35:35 David Boike
- And so within platform development, we have reacting to a shifting marketplace. The key tenant here is making sure our platform works on industry standard tools, platforms, and technology. Kafka has come out, we need to evaluate Kafka, and see if that's something we should support transport for, stuff like that. We have keeping the lights on, the key tenant here is making sure our platform is stable and reliable. So this means making the documentation is reviewed and updated regularly, making sure that having the ownership of the patch process and the maintenance release process.
- 36:11 David Boike
- We have developer experience, or making it easier for our customers to be successful with the platform. The key tenant there is, making sure our platform guides you towards success, removing the rough edges, making it easier to get started so that developers aren't turned off by some rough edge. And the last one is delivering business value, and this is basically... The key tenant here is making sure our platform provides the infrastructure for building and managing distributed systems.
- 36:41 David Boike
- You remember I showed you how NServiceBus allows you to have different services, all kind of doing their own thing. Another thing you can do because of that is then it can be perfectly valid for the marketing service to say, "My needs for data storage are essentially relational data, and so I'm going to use Microsoft SQL Server." But maybe shipping says, "You know what? It would work better if all of my ideas and data was in a document database. So I can use MongoDB." Maybe another service could use a graph database.
- 37:12 David Boike
- In the same way, our different areas of strategy and are the buckets within the platform development strategy can use different tactics to kind of figure out what they need to do too. For example, our reacting to a shifting marketplace bucket makes use of a tech radar. I'd love it if we would publish it someday, but we have an internal tech radar for basically every technology. And is it in the hold, assess, adopt, retire, that kind of stuff?
- 37:41 David Boike
- We're not perfect and we struggle as I'm sure everyone does, but we're trying to constantly improve, unlike the Home Alone equals. It just got worse and worse as time went on, but you might be asking with all that stuff going on, how do I as a person sitting alone in my basement with the dog snoring on the couch, actually figuring out what to work on right now? And for that, we have a label that strategies can add to issues that says needs taskforce.
- 38:15 David Boike
- After the squad makes sure that an issue is well-defined, and has the proper skills defined, and has an actual end state, they can have the needs taskforce label, and people can use that to essentially shop for work. They can go and run a query with GitHub and go, "Oh, yeah, that looks like something I could help with." And sign up for that taskforce.
- 38:39 David Boike
- Now it's still really important to keep yourself from being overloaded, because you can sign up for too many taskforces, and then we have the exact same problem. And so we kind of have guidelines on how many task forces you should be assigned to. And we have a query that's actually very complex, because GitHub doesn't make it easy to do ands or ors to look between all our repositories and say, "These are the things that I am assigned to that are in progress that I should work on."
- 39:07 David Boike
- So once that's all sorted out, every day I kind of have my to-do list. And I get that from that GitHub query that shows me the issues that are important, that are assigned to me. And I also have things that come in on a kind of an interruption basis. I have support cases that come in and get assigned to me, I have all that kind of stuff too. But I have that to do list, and basically each day I need to figure out kind of how to organize my day.
- 39:33 David Boike
- And that's where it really comes into kind of the art of being a remote worker, because you kind of have to figure out based on where you are, and what needs to be done, and where everyone else is, what should I do in what order? For example, right now Europe is still working in their afternoon. They're still doing a lot of stuff, but they're about to sign off. Morning is when I need to do any collaboration I need to do with someone in Europe, or if they're working on a task and I'm also on that taskforce, that's where we need to do handoffs, so that I can keep working where they started.
- 40:08 David Boike
- That means there's a lot of activity for me in North America in the morning, and then in the afternoon, it tapers off significantly. If I have some like, I really want to get coding or have a three hour block of uninterrupted time afternoon is a good time to kind of schedule that. And we will actually schedule an appointment on our calendar that says, "Working on X so that we're not disturbed." And so I go about my day.
- 40:35 David Boike
- But of course, working from home can get kind of lonely, especially when the weather's not good. Remember sometimes I work here. The big problem with working remotely is you hardly ever get to see the people you work with face-to-face. You never get to meet up, and hatch grand plans to go change the world. You don't even get to meet up, and break bread together, and have a meal, that's really important for the cohesiveness of a company.
- 41:10 David Boike
- And so every once in a while, about every year, we all get on an airplane, and we all go together and meet in some location, and we have a week worth of meetings. And it would probably be in a hotel conference room, it would probably look something like this. And we basically talked through lots of stuff, depending on the year. Everything from how our are working to what we're going to work on in the next year, two initiatives we have, a new launch waves to set up.
- 41:42 David Boike
- That week long trip on an airplane, often results in coming home. And we have these aha moments. From coming together, we have these sparks of inspiration. And so when we get done with one of those meetings, we come home and there's just a rush of work that happens. And there's just a huge increase in engagement and vitality in the company, which is really cool to see which is good. You need that kind of kick in the pants every once in a while, especially when you're working from home to make sure that everyone's on the same page, and aligned, and going towards the same goals, and all that, because when that week is over, we all fly home and we're back home. And once again, we are Home Alone. Thank you very much. Any questions?
- 42:52 David Boike
- If we need to terminate an employee, that's actually also done by a task force. Because of the sensitivity of that kind of situation, it's a taskforce that's done in secret that's kind of arranged by the CEO. As far as hiring capacity, we have processes in staff success that are like, what are our skills gaps? What do we need to hire for or train for or whatever? And so at the moment we're not hiring, but in the fall, I hope we actually will be. And it's not just skills, it's what geographic location would be good? I mean, we have a lot of customers in North America, so it would be nice to hire more staff in North America to cope with that. Does that answer your question?
- 43:43 David Boike
- My personal transition. Well, what about it? I mean, I didn't have many struggles with it personally. I mean, I've been using NServiceBus since 2010, but only working for the company for the past three years. For me, it's kind of like this is my dream job, this is what I want to do. Whether or not it would be in an office or working from home. I mean, I had to learn how to deal with the notifications, that was the big thing, because before I never got emails, except for when I was at work, and that has changed drastically.
- 44:23 David Boike
- And so just figuring out how to cope with that, and unsubscribe, and deal with all that, so I don't feel flooded all the time. Some of my coworkers use, I think Octobox, so they don't have their GitHub notifications going directly to their email. They kind of ignore that when they're not working, then Octobox gives them the notifications when they are working. But everyone kind of has their own strategy. Some people use Google Inbox, instead of Gmail so that you can snooze an email. I think that feature is actually in Gmail now too.
- 44:55 David Boike
- We have some recommendations in our repository for our new employees to help them figure that out without making all the same mistakes all the rest of us did. But yeah, it's a struggle no matter what. We also assign an boarding buddy, for your first six weeks or so you're working closely with someone else who has already been in the company and they are showing you the ropes, and checking in on you everyday, and making sure that everything is going okay. Any other question? Well, kind of a quick talk, I guess, I talk to first. But thank you very much for coming, and have a great rest of your conference.