Season 3 Episode 8 Dec 30, 2020

The New Normal for Developers with Scott Hanselman

Pitch

"Just because I'm a handyman, doesn't mean I'm cool with the apocalypse."

Description

In this episode, we talk about the new normal for developers with Scott Hanselman, partner program manager at Microsoft, author of several books, and the host of the Hanselminutes podcast, and the YouTube channel, Computer Stuff They Didn’t Teach You.

Hosts

Ben Halpern

Forem - Co-founder

Ben Halpern is co-founder and webmaster of DEV/Forem.

Jess Lee

Forem - Co-founder

Jess Lee is co-founder of DEV.

Guests

Scott Hanselman

Scott Hanselman has worked for Microsoft for a number of years, remotely from his home in Oregon. He's taught at universities, written a few books and a lot of computer programs. He's also been fortunate to host his podcast for over 750 episodes!

Show Notes

Audio file size

63296240

Duration

00:43:57

Transcript

[AD]

 

[00:00:01] JL: Triplebyte is a job search platform that allows you to take a coding quiz for a variety of tracks to identify your strengths, improve your skills, and help you find your dream job. The service is free for engineers and Triplebyte will even cover your flights and hotels for final interviews. So go to triplebyte.com/devdiscuss today.

 

[00:00:19] RudderStack is the warehouse-first customer data platform built for devs. It is open source and built API first. So it is easily customizable and fits into your existing development processes. RudderStack’s multitude of SDKs, sources, and destinations make it easy to instrument, adjust, and route customer data from all of your digital touchpoints. Start building a better CDP for free today at rudderstack.com.

 

[00:00:45] The more you know about web development, the more fun it is. With Pluralsight, you can take your skills and your career to the next level. Start a free account today to access 50 expert-led courses, plus five extra free courses rotating in each week, charged into 2021 with the confidence of someone who has development experts in their corner. Go to pluralsight.com/free to create your free Pluralsight Skills account today.

 

[AD ENDS]

 

[00:01:12] SH: So I’m starting to learn little things that aren’t just about remote work. They’re not just about quarantine work. They’re about having a tool set so that you can prepare for any eventuality.

 

[00:01:33] BH: Welcome to DevDiscuss, the show where we cover the burning topics that impact all our lives as developers. I’m Ben Halpern, a co-founder of Forem.

 

[00:01:41] JL: And I’m Jess Lee, also a co-founder of Forem. Today, we’re talking about the new normal for developers with Scott Hanselman, Partner Program Manager at Microsoft, author of several books and the host of the Hanselminutes Podcast, and the YouTube Channel, Computer Stuff They Didn’t Teach You. Thank you so much for joining us, Scott.

 

[00:01:57] SH: Hey, how’s it going?

 

[00:01:58] BH: So Scott, you are very well-known in the dev world and for some might not need introduction, but we can’t assume that. I think one of the worst things we can do as developers is assume everyone in the room is in the know about an acronym or maybe a person or historical fact or anything like that. So can you give us a rundown of what you’ve been doing for the last few decades?

 

[00:02:21] SH: Sure. I currently work remotely for Microsoft, but I’ve been in software for now. This is year 28 of doing software for money and year 35 of doing software not for money. I’ve been a teacher. I’ve worked at Intel. I’ve worked at Nike. I’ve been a professor at an Oregon university. I’ve been a professor at Portland Community College. So I think I’m a teacher who’s a professional enthusiast. And in my day job at Microsoft, I manage community for the Developer Division.

 

[00:02:55] JL: Can you tell us a little bit about what that looks like, managing community?

 

[00:02:58] SH: It’s a lot like the kind of communities that you and Ben manage, right? You want people to be happy, to be healthy. You want to make sure that from the moment that they Google for something and they say, “I want to learn C#,” up to the moment that they’ve decided to make the great new corporation or the great new social media app or whatever that they’ve built, that their path from the on-ramp to the off-ramp was a healthy one, whether that means finding the documentation, downloading the software, installing the software, debugging, deploying, and all things in between. So my team makes content. We’ve got a hundred and plus how-to-learn .NET videos. We’ve got online things like the Azure learn system where you can go on like in the browser, teach yourself Kubernetes or .NET or Azure or whatever. I work with the Visual Studio, Visual Studio Code and GitHub teams to make sure that things like Codespaces work great, live share, all of the things that one needs to be a healthy and a happy community member.

 

[00:03:55] BH: Can you tell us a little bit about any personal software initiatives you’re doing now or you’ve done in the past, anything fun, anything you’d like to take note of?

 

[00:04:04] SH: Well, one of the things that’s kind of interesting when you are a visible person who’s been around for a non-zero amount of time in the space is that you’re either tied to your company that you work for or you’re not. So I am me and was me before Microsoft and I’ll be me after Microsoft. So I really feel it’s important to have your own blog. So I’ve got a blog at hanselman.com. I’ve got a podcast that I’ve done over 760 episodes at Hanselminutes. And I’ve recently started a YouTube series to kind of fill in the gaps of computer science, computer stuff that they don’t teach you. So just all the things that you wish that they taught you, but they just don’t. And I’ve been having a lot of fun with that. And those are all kind of side hustle, but none of it makes any money. It just makes me happy because it makes me focus on what I think I’m best at, which is teaching.

 

[00:04:52] JL: How did you come up with the idea of this YouTube channel?

 

[00:04:55] SH: There are people who will come out of a bootcamp or there’ll be self-taught or they’ll come out of a community college or they’ll come out of a fancy school with a fancy name and I’ll find little gaps, little moments of missing historical context where it’s not that it makes them a worst developer or a better developer or anything. It’s just like, “Oh, it might change your perspective on computers if you knew this.” And we don’t want these things to be gate-keeping issues where you can’t be a program if you don’t know this obscure piece of trivia. But for example, I bumped into an early in career developer who was having a challenge with Git autocrlf because they had a Mac and they had a Windows machine and they were dealing with changing their carriage return line feed settings, as they were moving source code between systems. And they kept bumping into that. And I said, “Oh, you’ve got a carriage return line feed issue there.” And they said, “What’s a carriage and where is it returning?” So then I got to say, “Wow! As an old person, I get to talk to you about typewriters and what a carriage is and why it is returning and what align feed is and what ASCII is and why that’s interesting.” So 5 or 10 minutes of light historical context now changes that person’s perspective on why it’s 2020 and we’re still thinking about typewriters and control codes that were sent to terminals and mainframes in the ’40s. It’s like it doesn’t mean that you can’t drive a car if you don’t understand an internal combustion engine or a battery, but it certainly changes your relationship with the car.

 

[00:06:29] JL: When you said car, I was just thinking about how I recently changed a car battery and put a new hubcap on my wheel. And it really did change my relationship with the car and appreciate it a lot more.

 

[00:06:39] SH: I like that you point that out and then you acknowledge that because I think that people will sometimes say, “Well, you’re not a real programmer if you don’t, whatever,” but that would be like saying, “If I can’t rebuild an engine, I’m not a real driver and I’m not allowed to use an Uber.” Right? These are layers of abstraction. You could rebuild a car from scratch. You could drive a stick shift. You could drive an automatic or you could take an Uber or a bus. You don’t have to know how to change a tire or a hubcap to ride a bus, but it changes your relationship with transit. So then if you understand, I don’t know how a Super Nintendo worked and you spend a little fun time playing with the assembly language of the Super Nintendo, it might change your relationship with Mario. And that’s not gatekeeping. That’s just learning about history. And I think that’s fun and no one teaches it. So I thought I would start teaching it.

 

[00:07:27] JL: Are a lot of the episodes rooted in a more historical context?

 

[00:07:32] SH: They are, but people don’t know it. I sneak it by. It’s not like computer history they didn’t teach you. It’s practical things like when you do Git, a lot of us just type the commands by rote. We type them because we memorize them. But if you understand why it was named this or why it works like that and you visualize it and you use the right analogies, people find something clicks. There’s like a Tetris piece that is the right size and the right orientation. And you go, “That’s the piece that I needed.” And then everything starts going, click, click, click, click, click, and it changes your relationship with the software. So the goal of computer stuff that they don’t teach you is to teach you those little pieces, those little moments so that you might start building a really strong foundation, but then you could take forward and move beyond syntax and start thinking about systems.

 

[00:08:19] BH: So our premise for the episode is called “The New Normal for Developers”. Can you give a bit of thought as to what that means to you?

 

[00:08:29] SH: Well, I am remote. I have been remote for the last 13 or 14 years here, but I think that a lot of developers are experiencing very interesting challenges because they started working remotely very dramatically. For some, it was like, “Grab your laptop and run.” And they’re just like running away from the explosion. They showed up on a Monday and their bosses said, “You’re now working remotely.” So then they would all call me or they would call their remote friend. Maybe you had some friends call you too and say, “Hey, what’s it like working remotely? What do you like?” And it’s like this is not that. This is quarantine work. This is a little happy prison with delivered food, but this is not the joy of remote work. Remote work is a freeing thing, but to suddenly take an organization of any size and then pivot between Monday and Tuesday to change everything to digital and all the video and the reliable internet, well, my computer at work is really great, but my computer at home sucks. How do I do this? Working remotely and working in quarantine are different. So I’m trying to help people navigate that, using both tools that already exist and then tools that we’re kind of developing to make a remote developer’s life more happy.

 

[00:09:46] JL: So Scott, what was your advice to them?

 

[00:09:49] SH: The first thing that I try to do when people are telling me that they are feeling some kind of way is to acknowledge that. So there’s current and there’s post COVID. And there’s challenges. So first thing would be that employees would say, “I’m working remotely and they would call me or others and they’d say, ‘I’m really freaking out.’” And I call out that this is stressful, like acknowledging pressure to pretend that nothing has changed is a thing. And even just saying that and having that kind of squishy, not talking about productivity, but just talking about being a human conversation, I think helps. I think also the pressure that we’re feeling is this idea, this artificial idea that we have to stay productive in the face of obstacles and acknowledging that maybe you’re going to be an 85% operational person right now or maybe you’ve got kids at home or maybe you’re just not able to deal with this right now. So you’re a 60% or 70%. The idea that we were going to go from being totally optimal when we’re onsite to totally optimal when you’re at your freaking house, inside, I saw someone had an office that they put together in their kitchen pantry with their laptop on the bottom of an upside-down bucket. Right? And then to go and say, “Yeah, this is the optimal work environment.” Right?

 

[00:11:06] JL: Yeah.

 

[00:11:07] SH: Not to mention IT policies where you’ve got, Microsoft is very easy, we don’t even have like VPN, I don’t even use VPN anymore. Everything’s all Azure AD and I just like Face ID. And I just sit down at my computer, it sees my face and I have connectivity. That’s a thing. But other people will have like weird smart cards and multiple bounces and just really crazy IT policies that won’t allow a dev to like really do their work. Not to mention the kind of fragmentation of meetings and all of the different things happening where someone’s like, “Yeah, you need to be a really productive developer,” and surprise, there’s nine hours of meetings every day on teams. Saying those things out loud are the most important thing for someone to do as a company and say, “Yeah, this is weird. We’re working longer days. We have less breaks. Meeting is still awful. Everybody’s isolated.” Imagine we have a bunch of new developers that just started at Microsoft in March. Can you imagine coming out of school and going to work at a big giant company and you’ve never met any of your people ever, not even once on an onboarding? That’s just an awful feeling. So acknowledging that’s important. Then once you’ve moved past the emotional aspect of that, now we’ll collect tools and we’ll talk about things to do. But if you called me Jess and you’re like, “Yeah, I’m really not feeling. This is awful.” And I go, “Well, Jess, I’m sorry that you’re having trouble with the pandemic, but let me tell you about Codespaces.” Right? That’s not what you need. So it was the separation of the human part. And then when you’re ready for the tech, I can give you a list of tech that will change your workflow.

 

[00:12:38] JL: Yeah, absolutely. A lot of people have said, “Oh, probably nothing really has changed for you all,” since you’re a distributed company, but so much has changed. We’re all trapped in our houses, which is totally, totally different than what things used to be. So just because we were remote already does not mean that we were like… we were more equipped, but we were not like used to being under a quarantine.

 

[00:13:02] SH: Well said. I liked that. We had the beginning of the equipment. It’s like saying you meet Rick from The Walking Dead and he knows how to cut wood and use a shotgun. And you’re like, “Oh, so the zombie thing is no big deal.” It’s like, “No, dude, there’s freaking zombies.” Just because I’m a little bit of a handyman doesn’t mean that I’m cool with the apocalypse. So yeah, I had a very nice, well-oriented home network. My Wi-Fi is reliable. I have actually backup internet now. So I have two internets. Literally, yesterday, I was on a Zoom call giving a four-hour workshop and my power went out, but I have my network and my router on a UPS and I have my computer on a UPS. So two of my monitors left and right went off, but my center one didn’t go off and I continued the workshop. Now you might say that’s really silly and maybe a little bit obsessive, like it’s not that important, but it’s like for the $50 that it cost me to buy that UPS and the other $50. So for a hundred bucks, I just prevented what would have been really quite a catastrophic bit of a day. I would ruin the workshop. There would be 300, 400 people waiting for me to reboot. Maybe my computer would be corrupted. Maybe it wouldn’t be. So I’m starting to learn little things that aren’t just about remote work. They’re not just about quarantine work. They’re about having a tool set so that you can prepare for any eventuality.

 

[00:14:20] BH: And this makes the new normal kind of feel like a bit of a progression from the old normal, and obviously, we’ve been thrust into zombie apocalypse mode, but how did you get to be involved in the idea of the new normal, be it the idea of remote work and everything that’s needed? Or are there elements of new normal in terms of maybe new expectations about the developer career path or new ideas? It seems like you’re entrenched in the evolution of software development. How did that come to be?

 

[00:14:52] SH: When people are starting in their career, I always encourage them. And I think you and I have talked about this in the past, Ben, and that’s why Dev is such a great place is to talk about your experience, to write about your experience. And I’ve been doing that on my blog for 20 years. I’ve been learning in public. There’s a difference between teaching in public and learning in public. So when all of this went down, I had 14, 15 years of musings about remote work, about, “Here’s the thing I tried. It didn’t work. Here’s another thing I tried. It totally worked.” So I built up a decade plus of tips along with lots and lots, actually 20% of the Microsoft Developer Division is remote. I’m not the only remote worker. So as we went from 20% remote to 100% remote, we started building up all of these different things. People come to me, come to other remote workers, and we started collecting these challenges and saying, “Wow, what can we do to this product? Or what can we do to that service to make it work better?” And we just started sharing ideas. And I think I just got a little bit of a jumpstart on it because I was very visible in my conversations online about the joy and the pain of remote work.

 

[00:15:59] BH: What motivated you to get so into blogging?

 

[00:16:02] SH: You have a finite number of keystrokes left in your hands until you die. You could tell me how old you are, Ben, and how fast you type and just how old you are and how fast you type. And I can tell you, if you go to keysleft.com, exactly how many books you could write. There is only so many years. You’re not getting any keystrokes back. As such, let’s say after this wonderful podcast, one of you emails me a lovely question, and I say, “Oh, wow! Jess, what a great question. Thank you so much for your time. And for that gift, for the gift you gave me of an emailed question.” Am I going to give you the gift of 4,000 of my keystrokes and send you back a lovely formatted five-paragraph answer to give you all the detail in that question? I’m probably not going to do that because then you’ll reply back and you’ll go, “Thanks.” And it’s like, “Okay. Wow! That was a waste of 5,000 keystrokes.” So what should I do? I should put those keystrokes somewhere with a permalink, anywhere with a URL. My blog on Dev, on Medium, somewhere, preferably not somewhere that I can’t get it back from, but anywhere. And then I would send you a link to the blog post, which then means if only one additional person doubling my traffic, two people now visit my blog, I’ve doubled my keystrokes. So if a hundred people visit my blog, then that’s people I don’t have to type to. So I really, really, really avoid email. And I believe that everyone should. And you should only put your keystrokes into things with URLs, GitHub issues, blog posts, programs, things that live on because email is where keystrokes go to die. And that’s really important for a remote worker. We’re spending a lot of time at Microsoft right now doing, we call it, writing it down culture. Lot of times spent in GitHub, a lot of times spent editing GitHub issues directly from Visual Studio, just so that our keystrokes are not being poured into places where keystrokes stop.

 

[00:17:53] JL: How do you feel about using chat as a form of communication? A lot of companies really depend on Slack as an example.

 

[00:18:00] SG: I think what’s interesting about it is for people who can read faster than I can talk. There’s value. I think for cross time zones, things like that are important. We use Teams a lot at Microsoft and my whole division has dozens of teams and channels. So for the asynchrony of it, it’s great. But I liked being able to jump into a screen-sharing session or a live share session very quickly and then jump out. So it isn’t a this-or-that situation. It’s a this and that. There’s just nothing better than a really crisp high definition video with a quality, good lighting and a great microphone. It’s as close as you can get to being there in person. And then you add in something like a whiteboard applicator. I use Microsoft Whiteboard and a surface pen. So I can scribble on the screen. I can type on your computer and you can type on mine. A lot of that doesn’t really happen when you’re just simply chatting in Teams or Slack. So I look at Teams and Slack as places to jump off into higher fidelity places and then jump back.

 

[MUSIC BREAK]

 

[AD]

 

[00:19:26] Join over 200,000 top engineers who have used Triplebyte to find their dream job. Triplebyte shows your potential based on proven technical skills by having you take a coding quiz from a variety of tracks and helping you identify high growth opportunities and getting your foot in the door with their recommendation. It’s also free for engineers, since companies pay Triplebyte to make their hiring process more efficient. Go to triplebyte.com/devdiscuss to sign up today.

 

[00:19:51] RudderStack is the warehouse-first customer data platform built for devs that builds your CDP on your data warehouse with support for cloud data warehouses like Amazon Redshift, Google BigQuery and Snowflake. RudderStack makes it easy to collect, unify, transform, and store your customer data as well as route it securely to a wide range of common, popular marketing sales and product tools. Start building a better CDP for free today at rudderstack.com.

 

[AD ENDS]

 

[00:20:23] JL: What was it like working remote 15 years ago compared to today? And how did you get into remote? I feel like that was so much less common then.

 

[00:20:33] SH: Yeah, it was very uncommon, but I’ve always been in Portland and my family’s always been in Portland. And I also thought that when I was brought into Microsoft to think about the challenge of developers and also kind of pre-open source, open source was just kind of starting to be a thing in the Microsoft world. Microsoft was not as well thought of as it is now. It was good for me to be remote because it forced the issue of having a person with empathy outside the company. And now we’re so fortunate to have people in the Developer Division that are all over the world, right? We’ve got folks in Prague and folks in Vancouver. So I’m certainly not alone in that. But having someone outside the Redmond central place gave a fresh perspective and that allows us to get a lot more diversity in the way that we think about our software. It was hard though, because bandwidth was different. I have a gigabit now, then I think I had three. So you’re looking at like DSL, you’re looking at maybe the beginning of cable. It was not super-fast. Maybe 10 megabits for a while there. Doing HD video, seeing full widescreen video, 1080P, is so nice. Having teams have like 50 people on a call all at the same time and then cut out all their heads and put them in a little auditorium with that Together Mode is pretty sweet. That stuff wasn’t even thought about. We had, I think it was called Skype for Business. That was basically Skype for Business. It did not feel like a place you wanted to hang out, but now we’ll even have morale events for like a couple hours on Teams and it doesn’t hurt so much because you’re really looking at a person that you recognize as opposed to like a blurry blob from 15 years ago. We also didn’t have Git, I’m realizing. You mentioned how Teams and Slack are asynchronous. Git is itself asynchronous and doing code reviews and pull requests was very different back then. So the tools have improved as well I think.

 

[00:22:25] BH: The fact that people still got the work done and made progress in every year that’s ever existed. The work still got done. There are existed remote employees. It really speaks to the human element and the fact that we ended up using the tools at our disposal as well as we can. And then we try to build on them and things got a little bit better over time.

 

[00:22:47] SH: Yeah, that’s true. I think also that there’s people who are breaking out of how they thought we should have done things. Screen-sharing seems like a good idea, right? Here, look at the pixels I’m looking at. But I have now 4K pixels times three. It’s really not useful for me to share my screen to either of you to help me debug a problem. It just couldn’t make any sense. Why am I going to send you eight million pixels and then do it like 30 frames a second and then think that that’s an okay way to collaborate? You can’t even touch those pixels. You can’t type over my code. So if I do like live share, have you ever done live share in Visual Studio Code?

 

[00:23:24] JL: I’ve played with it once.

 

[00:23:26] SH: It’s like Google Docs for code. So your NBS code, which you’re already in all the time, and then you click the little share button and instead of pushing pixels, you’re pushing the text that’s there and the context that’s there. You don’t do .NET, right, Jess? You’re not a C# person.

 

[00:23:44] JL: No, I’m not.

 

[00:23:45] SH: Okay. Right. And I’m not really a JavaScript person. So let’s say that you’re working on a thing and I’m working on a thing. I’m doing some .NET, you’re doing JavaScript and I’m doing C#. And one of us wants the other to help them or something. I don’t want to have to like install Node and all this stuff. And like getting your thing to build on my system is a hassle. But at the same time, having you share your screen doesn’t really collaborate. It’s just you like pointing at a picture and saying, “Look, what live share does is I would actually open your session, your project remotely. I would see in my Visual Studio your code. I could actually go and see all of the files. I could click on them. I could navigate. I could right click, go to definition. You could run your app on localhost 5000, and then I could visit localhost 5000 on my computer and I could see your code. It would punch a hole, like a wormhole between our computers and a little cursor would appear in your Visual Studio with my face on it, like my little name. You and I could type at the same time, like Google Docs, in the code, and we’re not pushing pixels. We’re pushing the context.” So then even something like IntelliSense, where I start typing like var, whatever, equals and then I get like a dropdown menu, that would be powered by your computer and I don’t have to install anything. And then you could do the same thing, flip around, look at my system, not install .NET, and you could actually write code with IntelliSense, hit run to a live debugging session from your machine. And the thing that’s cool about it is you’d be using your Visual Studio with your theme and your fonts and your style. So if you’re differently abled or maybe you have a disability, like you can’t see, I can have someone live share rather than screen-share and I could get advice and help from a blind developer.

 

[00:25:31] BH: So when I think about some of the problems you’re outlining, just the frustrations that a developer might have getting their environment up and running like a canonical thing we all wish could be solved once and for all, when I think about other things in the universe, in this area, like I think of GitHub Codespaces and some other things that solve some of these problems in different ways. I was curious about your relationship with any projects outside of strictly Microsoft. Now that Microsoft runs GitHub, how does that whole thing work? I’m just curious as you have broad mandate, I imagine, and I’m curious just how much you interact across different teams in the gigantic Microsoft organization.

 

[00:26:14] SH: So there’s a couple of things to unpack there. So there’s like talking to people over in GitHub. You talk to them on Twitter, you talk to them on GitHub and you can still email them. So you can have conversations and you can say stuff like, “Wouldn’t it be cool if this thing plugged into that thing?” And as we see GitHub changes every couple of weeks and cool features happen and they announce things on the blog. Collaboration is collaboration. Just like the Node team collaborates with the TypeScript team or whatever. It doesn’t really feel like you’re doing it to launch a product. It feels more like you’re just doing it to move the ball forward, where the ball is making things better and making products like happier for folks. Inside of Microsoft, I do a lot of work for Windows, the Windows team, and I cross collaborate with Windows Subsystem for Linux, is a thing I’m really passionate about, because I want to make it so you don’t have to buy a really expensive MacBook to have a really great experience and do development reliably on something. So like having Linux on Windows or in number of Linuxes running on Windows with a really awesome terminal and being able to take a Windows machine like a $300 Windows machine from Walmart and just install all the things you want in one command and then start developing would be really, really amazing and have that go up head to head against a MacBook. Those kind of things aren’t directly in my mandate as like community manager. But because I’m like a professional enthusiast, I can go over there and I can help facilitate those conversations. So then you can pitch it. I could call one of you two and say like, “Okay, this is really cool idea. You want to collaborate on it?” Like, “Oh, yeah, let’s do it. That’d be amazing.” It’s really just a lot of that. Convincing people that’s something so awesome that we have to do it. Like not doing it would make the world worse.

 

[00:27:54] JL: Have you had any recent pitches that you’re particularly excited about that got pushed through?

 

[00:27:58] SH: I mean I don’t want to take credit for anything, but things that I’m involved in that I think are cool is we’re trying to make it so Windows Subsystem for Linux can install itself in one command. So anyone on any Windows machine would be able to go and type WSL--install and have a Linux distribution in like five minutes. That’d be cool. That’s the thing we’re working on that we’ll have done soon. Being able to run Linux GUI applications on Windows is cool. Dev containers are just crazy cool. So like to the point that you both were making about getting started, like getting onboarded. it’s one thing for me to go and say, “I’m going to connect to Jess’s machine using live share.” It’s another for me to say, “Well, I’m going to clone her GitHub repository.” And then what? What am I read a Word document about how a Git set up? That’s a lot, read the read-me. With a dev container, I can do all of the development inside of Docker, and it will automatically get Node and NPM and TypeScript and all the things that I need and do the building and the running and the debugging in the container entirely managed by Visual Studio Code, which is effectively Codespaces except locally.

 

[00:29:04] BH: So Microsoft has a lot of wind in its sails on developer community fronts on some momentum just from some better decisions in the last 10 years than maybe the previous 20 and really has a lot of momentum speaking to developers. How much of this was leadership at the top listening to you and your closest colleagues or was it a third party kind of realization which led to the empowerment of community work at Microsoft?

 

[00:29:39] SH: So remembering and always respecting that Microsoft and other big giant companies are lots of people. So Microsoft is 130,000 people worldwide, and there will always be dumb stuff. You could always find some dumb thing that someone in a random part of Microsoft did or said or whatever. And if you decide to go and say, “Oh, Microsoft, that person was dumb.” You can find that at any company, just like you can also find good stuff. And then you can say, “Oh, wow!” It was, “I alone can fix it.” No, all of these things were a process. Open source started very early at Microsoft, but there were ingredients that were required to make it happen because there’s open source, but then there’s also source opened. So like Microsoft, when .NET came out 15 years ago, released, actually more than 15 years ago, 18 years ago, released it as source open. They gave us a ZIP file and a permissive license, but Git didn’t exist. There wasn’t a public place to put it. It was just a ZIP file with like, “Here’s .NET for educational purposes.” That was not open source, it was source opened. But it was something that was done almost 20 years ago that no one really talks about, but there were other things that cause people to not like Microsoft. So then two things were happening. Leaders were starting to realize business could still be happy and successful and do cool things. You can make money and be open source at the same time. Okay? And then at the same time, at the lower level, the rank and file people are pushing gently and they’re starting to teach the lawyers to say yes instead of saying no. So the things that I was involved in with other folks at Microsoft, like Scott Hunter and Phil Haack and others were saying, “You know, you say we can’t do that, but really? Really?” There was a lot of that. We spent maybe five years going, “Really?” And then encouraging them to push gently. So it’s almost like we were digging through this mountain. We were just all doing it from different sides and it was just in the last five or six years where we started popping out these tunnels in the middle of the mountain. We’re like, “Oh, you were digging too? Oh, cool!” And then it all felt like it happened really quickly.

 

[MUSIC BREAK]

 

[AD]

 

[00:31:58] It’s hard to believe that JavaScript is 25 years old this month. Why not celebrate the occasion by sharpening your JavaScript skills? Pluralsight is making five of its expert-led JavaScript courses free each week in December. So you can learn something new, whether you’re a beginner or advanced. That means you could theoretically take 25 free courses before the start of 2021. If you’re wanting to do a frenzied movie montage thing where you transform your entire life in the time it takes to play a shortened version of Eye of the Tiger, or you could just have a pleasant time learning something new and start next year with Gusto. Go to javascript.com to get access to some really helpful JavaScript resources and start building new skills for free.

 

[AD ENDS]

 

[00:32:38] JL: The last time we chatted, it was during CodeLand over the summer when you so kindly spoke at the conference. That was during a time where so many conferences were transitioning into remote and it was just this like total chaos for so many organizers. What do you see the future of conferences looking like in 2021? I imagine you’re probably quite involved in different events happening. Are people considering or planning for any in-person things at this point or still looking fully remote?

 

[00:33:09] SH: To the best of my knowledge, no one at Microsoft is going to be doing anything in the US that is on site or anything until at least next summer. So I’m personally not going anywhere, traveling anywhere until we all feel like everyone is safe and healthy. So since we all started this, I’ve done Microsoft Build, I’ve done Microsoft Ignite, which are both massive, massive, many tens of thousands or hundreds of thousands of people, and then also CES is going to be done with the Microsoft Teams’ platform as well. So we’re finding new ways for people to connect and feel connected.

 

[00:33:47] JL: I think one of the biggest pros to come out of this is that conferences are not a lot more accessible for people around the world who might not have been able to travel in person. So do you think in the future, further in the future in 2022, where we can feel more confident about in-person events, do you feel like there will be a big online component for every in-person event now that the online aspect has opened up these doors?

 

[00:34:12] SH: Yes. I love that you called that out. I feel as a remote worker that I’m a little bit vindicated because everyone’s like, you know, I’m like, “Hey, see? I told you it could work.” Like it sucks. Like I don’t want to be that person because the world sucks right now and everything’s bad. But I’m also like as a remote saying, “Yeah, I told you, we can work remote. It’s a thing. We should have been hiring remote this whole time.” I feel the same way about remote conferences. There were conferences that had a live streaming component. There were conferences with an ASL interpreter. There were conferences with a live transcriber. These things existed. Now they’re going to become standard. Like Saron had live captioning with a court reporter and an ASL interpreter like five years ago with CodeNewbie. That was ahead of its time. And now it’s going to become checkbox, got to do it, got to do it. The question is though, when we all start traveling, are we going to just jump on planes and start burning carbon? And then will that create an artificial cache system of those who are there physically and those who are not? And I think the next big challenge is to make the virtual people feel truly integrated into the conference experience if and when we have mixed conferences.

 

[00:35:16] BH: Yeah. I’m pretty optimistic about some progress on that front. It seems like there’s always been a push for online components. Certainly at conferences folks for years have been tweeting with the hashtag or the conference and things like that and meeting up and trying to get in touch with each other on different ends of the campus or whatever. And it seems like this event has forced a little bit more problem solving on some of these things because everyone’s on an even playing field and it’s no longer like, “Oh, if you can’t make it, you can go to this okay livestream and…”

 

[00:35:56] SH: Yeah, but let’s be a little more challenging. Let’s say that I’m at a conference with the three of us and one of our friends is elsewhere, different time zone, different location. How do we hang out with them? That problem hasn’t been solved. There are two conferences running in parallel. But would there be the ability for us to go and sit in a room with a video wall and drop in and have a virtual person sit down with us virtually? Could they have an avatar or a laptop on a top of a Roomba that they could drive around? How does the virtual person truly feel a part of it and not a sidecar? That is the problem I’m talking about.

 

[00:36:35] JL: This actually reminds me. I think it’s really interesting that you’ve been working remote for so long when I assume the majority of people in your team or office hasn’t been because one of the problems we had when we were transitioning from being an office to being fully distributed was creating that experience. Like when we had one person who was remote, we had to work a lot harder as a team to make them feel truly included as a team. And there were moments where we totally failed and we slowly learned like, “Oh, during a meeting, it’s probably better not to have everyone in one room and staring at a monitor with this one person. Why don’t we all dial in individually and sort of level the playing ground in that way?” But it will be interesting to see how that can be created, that type of engagement and equal footing can be created at conferences when it’s going to be mixed virtual and in person.

 

[00:37:30] SH: And I think that that could be plugged into the larger idea of inclusion, right? So the opposite of inclusion is exclusion. And the whole point of inclusion is to make sure that everybody is being listened to and being heard and being given an opportunity. So in your example of like you have a team of 10 and one is remote, that person would be excluded. If being remote is a kind of diversity, of a flavor of diversity, having just one of somebody always sucks. Until there’s three or four or ten where you can’t really tell how many people there are, when you’re no longer counting the number of people, then people will feel included.

 

[00:38:07] BH: In terms of inclusion, how do you anticipate small events, meetups conferences, maybe to achieve this new normal in some ways if the new normal is driven by excellent technology, cutting edge, this and that? Microsoft created the fans for the NBA Playoffs this year.

 

[00:38:28] SH: I thought that was pretty cool.

 

[00:38:29] BH: I’m wondering how you foresee maybe more independent attempts for all of this stuff, trapping up to the new normal.

 

[00:38:37] SH: I can give you an explicit example. So I run the .NET website and I focus a lot on .NET and C#, right? So I was going to go and speak at a user group in Munich, virtually. And it was probably going to be, I don’t know, maybe 15 or 20 people on a Zoom call. And that would be pretty typical thing, but what could I do and what could Microsoft do to “lend our privilege”? To your point, how could we make this a really successful event where instead of 20 or 30 people, what could we do to give them an audience? Right? Well, tweeting about it, that’s not really anything. That’s not sophisticated. What we’ve come up with as a part of the .NET Foundation, you got to .NETFoundation.org, is the idea of a .NET virtual user group. So any user group, any developer, anywhere on the .NET who has a group of people could basically get access to our keys. They could use a Teams’ live event, they could use streaming, or they could use whatever. We’ll teach them how to use OBS and how to basically restream this and then we will actually feature it. And if you go to the .NET website, there’s a button at the top that says, “Live TV”. So we actually had Munich, we had Ghana, we are putting user group events on the microsoft.com domain that gives them a legitimacy. So my boss spoke at Ghana.NET and it was live restreamed on our YouTube, on the microsoft.com domain, on the .NET Foundation at zero cost to them. That is a thing that I think we can do is to give someone that level of lift and set them up for success.

 

[00:40:17] BH: What do you think the next big paradigm shift in software is going to be after the current new normal sort of settles in? What’s after this?

 

[00:40:25] SH: A big paradigm shift I think will be that your local machine, your local laptop will not have to be a complete representation of what production looks like. I think that we spend a lot of time setting up our machines to make them look like they’re truly a little miniature cloud, like running an entire instance of Kubernetes on my local computer. I think we will be blurring the line between how much power do you need on your local machine versus how much of the work is happening in the cloud and vice versa. There’s some stuff happening in our space, like Project Tye, T-Y-E, which lets you spin up multiple microservices quicker than ever without using Kubernetes while still targeting Kubernetes as your ultimate and destination because not everybody’s got 32 gigs of RAM. Being able to go up to a project like Codespaces and just say, “I’d like to see that running. I’d like to see Forem running on my machine.” I go, “Codebase is run and then I’m there and it’s running and it’s in Visual Studio and I recognize this and I did it in five minutes and not a three-hour setup and installing Redis and SQL and…” The blurring of the line, because right now there’s only two ways to do software. There’s like set it all up locally or do it all in the cloud and like SSH in, but there doesn’t seem to be any kind of middle ground to have a reliable, quick onboarding. I think the next two years are going to fundamentally change the way we onboard devs and get them coding in production, basically.

 

[00:41:54] BH: Would you describe that holistically as a swing back to a thinner client or is this more specific to just software development process?

 

[00:42:03] SH: That is a very good question. I would not call it a thinner client. I would call it a smarter client. A thin client implies that the responsibility of the client is minimal and that it is just a terminal. Visual Studio Code is a sophisticated thing that has a lot of really cool stuff going on. Saying that it just is now relegated to a text editor in the cloud does all the work isn’t quite of a deal. What’s happening isn’t that the work is being entirely remoted, it’s that the language services and the context is remoted and you’re sharing that context back and forth. So it’s more like I’ve got a thin client and then a heavy server. It’s more half and half. It’s appropriate split responsibilities, and I think Visual Studio Codespaces and then also the development containers, Visual Studio Code Remote Development containers are all a reflection of that.

 

[00:42:57] BH: Scott, thanks so much for joining us today.

 

[00:42:59] JL: Thanks, Scott.

 

[00:43:00] BH: Thank you for your time.

 

[00:43:10] JL: I want to thank everyone who sent in responses. For all of you listening, please be on the lookout for our next question. We’d especially love it if you would dial into our Google Voice. The number is +1 (929) 500-1513 or you can email us a voice memo so we can hear your responses in your own beautiful voices. This show is produced and mixed by Levi Sharpe. Editorial oversight by Peter Frank and Saron Yitbarek. Our theme song is by Slow Biz. If you have any questions or comments, please email [email protected] and make sure to join our DevDiscuss Twitter chats on Tuesdays at 9:00 PM Eastern, or if you want to start your own discussion, write a post on Dev using the #discuss. Please rate and subscribe to this show on Apple Podcasts.