← Back
Scott Hanselman October 23, 2025 35m

AI-Powered Migration plus Raw Experience with Mike Rousos

Read full transcript 28 segments
  1. Hey friends, it's Scott. I want to take Hey friends, it's Scott. I want to take a moment in the middle of the show here a moment in the middle of the show here a moment in the middle of the show here and just thank our sponsor, Tupal. I'm and just thank our sponsor, Tupal. I'm and just thank our sponsor, Tupal. I'm chatting with Johnny Marlor from Tupal. chatting with Johnny Marlor from Tupal. chatting with Johnny Marlor from Tupal. You know, Johnny, why do most screen You know, Johnny, why do most screen You know, Johnny, why do most screen sharing tools suck so much for sharing tools suck so much for sharing tools suck so much for developers? Like business folks, they developers? Like business folks, they developers? Like business folks, they love a good Teams call or a Zoom call, love a good Teams call or a Zoom call, love a good Teams call or a Zoom call, but for programmers, it just doesn't but for programmers, it just doesn't but for programmers, it just doesn't feel the same. feel the same. feel the same. >> Yeah, I think it's, you know, business >> Yeah, I think it's, you know, business >> Yeah, I think it's, you know, business people are doing something completely people are doing something completely people are doing something completely different than developers. You know, different than developers. You know, different than developers. You know, they'll get on a call and they'll share they'll get on a call and they'll share they'll get on a call and they'll share slides or share a doc and just use it to slides or share a doc and just use it to slides or share a doc and just use it to talk. But, you know, when we're talk. But, you know, when we're talk. But, you know, when we're developers, we're actually creating developers, we're actually creating developers, we're actually creating something together. So, it's really nice something together. So, it's really nice something together. So, it's really nice to have that tool that's specifically to have that tool that's specifically to have that tool that's specifically tailor made for that process. Um, I know tailor made for that process. Um, I know tailor made for that process. Um, I know if you're a programmer and you've done if you're a programmer and you've done if you're a programmer and you've done any pairing, we've all been there where, any pairing, we've all been there where, any pairing, we've all been there where, you know, you're trying to dictate, hey, you know, you're trying to dictate, hey, you know, you're trying to dictate, hey, no, change that function. No, not that no, change that function. No, not that no, change that function. No, not that line, that line, or you're trying to to line, that line, or you're trying to to line, that line, or you're trying to to verbalize a CLI command. It's space or verbalize a CLI command. It's space or verbalize a CLI command. It's space or dash or was it forward or backslash at, dash or was it forward or backslash at, dash or was it forward or backslash at, you know, when when I'm pairing, I need you know, when when I'm pairing, I need you know, when when I'm pairing, I need I don't know about you, but I need all I don't know about you, but I need all I don't know about you, but I need all my brain cells. Um, and I don't want to my brain cells. Um, and I don't want to my brain cells. Um, and I don't want to be wasting them like trying to verbalize be wasting them like trying to verbalize be wasting them like trying to verbalize that communication. So, um, Tupil just that communication. So, um, Tupil just that communication. So, um, Tupil just makes all that easy. Uh, you get you get makes all that easy. Uh, you get you get makes all that easy. Uh, you get you get one-click annotation tools. Um, you can one-click annotation tools. Um, you can one-click annotation tools. Um, you can share control by default. There's no share control by default. There's no share control by default. There's no hidden settings that you have to go hidden settings that you have to go hidden settings that you have to go through. And there's no like Chrome or through. And there's no like Chrome or through. And there's no like Chrome or like uh UI that's covering up your IDE.

  2. like uh UI that's covering up your IDE. like uh UI that's covering up your IDE. It's just it's just made for It's just it's just made for It's just it's just made for programming. And um, I think once you programming. And um, I think once you programming. And um, I think once you once you try, it's it's really hard to once you try, it's it's really hard to once you try, it's it's really hard to go back to generic screen sharing tools. go back to generic screen sharing tools. go back to generic screen sharing tools. >> It's really hard to go back. Actually, >> It's really hard to go back. Actually, >> It's really hard to go back. Actually, that is super true. So you can check it that is super true. So you can check it that is super true. So you can check it out at tupil.app. It is the best tailor out at tupil.app. It is the best tailor out at tupil.app. It is the best tailor made remote pair programming app for made remote pair programming app for made remote pair programming app for both MacOSS and Windows. Hi, I'm Scott both MacOSS and Windows. Hi, I'm Scott both MacOSS and Windows. Hi, I'm Scott Hanssel and this is another episode of Hanssel and this is another episode of Hanssel and this is another episode of Hansel Minutes. Today I'm chatting with Hansel Minutes. Today I'm chatting with Hansel Minutes. Today I'm chatting with Mike Russos. He's principal software Mike Russos. He's principal software Mike Russos. He's principal software engineer in customer engagement at engineer in customer engagement at engineer in customer engagement at Microsoft. How's it going? Microsoft. How's it going? Microsoft. How's it going? >> It's going all right. Thanks Scott. >> It's going all right. Thanks Scott. >> It's going all right. Thanks Scott. Thanks for having me. Thanks for having me. Thanks for having me. >> Yeah, man. You know, most of our in uh >> Yeah, man. You know, most of our in uh >> Yeah, man. You know, most of our in uh interactions are a little one-sided interactions are a little one-sided interactions are a little one-sided because you work with customers and then because you work with customers and then because you work with customers and then you write up these like epic writeups you write up these like epic writeups you write up these like epic writeups and explain what you did. And spending and explain what you did. And spending and explain what you did. And spending time with the customer is like so time with the customer is like so time with the customer is like so important. And I've always complained important. And I've always complained important. And I've always complained that like a lot of PMs and engineers at that like a lot of PMs and engineers at that like a lot of PMs and engineers at Microsoft don't spend any time with the Microsoft don't spend any time with the Microsoft don't spend any time with the customer at all. So then like where customer at all. So then like where customer at all. So then like where where are they pulling their their where are they pulling their their where are they pulling their their knowledge from? So how does customer knowledge from? So how does customer knowledge from? So how does customer engagement work? you're like you go engagement work? you're like you go engagement work? you're like you go there or you are assigned to a customer there or you are assigned to a customer there or you are assigned to a customer for a period of time cuz you're not like for a period of time cuz you're not like for a period of time cuz you're not like consultant but you are also consulting.

  3. consultant but you are also consulting. consultant but you are also consulting. So help me understand how that works. So help me understand how that works. So help me understand how that works. >> Yeah, it's a pretty unique role. So like >> Yeah, it's a pretty unique role. So like >> Yeah, it's a pretty unique role. So like you said I'm part of the customer you said I'm part of the customer you said I'm part of the customer engagement organization inside of core engagement organization inside of core engagement organization inside of core AI platform and it's a customerf facing AI platform and it's a customerf facing AI platform and it's a customerf facing part of the engineering group. So, you part of the engineering group. So, you part of the engineering group. So, you know, we're part of the product group, know, we're part of the product group, know, we're part of the product group, but our role is to interact with with but our role is to interact with with but our role is to interact with with customers as they're getting started customers as they're getting started customers as they're getting started with new technologies that we're with new technologies that we're with new technologies that we're developing. So, I focus on .NET. Uh we developing. So, I focus on .NET. Uh we developing. So, I focus on .NET. Uh we also have engineers who focus on Java, also have engineers who focus on Java, also have engineers who focus on Java, but for for me that primarily means but for for me that primarily means but for for me that primarily means helping customers get started with new helping customers get started with new helping customers get started with new versions of net getting started versions of net getting started versions of net getting started deploying those applications into Azure deploying those applications into Azure deploying those applications into Azure path environments uh and just anything path environments uh and just anything path environments uh and just anything related to sort of whatever you know the related to sort of whatever you know the related to sort of whatever you know the product group is working on making sure product group is working on making sure product group is working on making sure that we're on the ground with customers that we're on the ground with customers that we're on the ground with customers understanding firsthand what that understanding firsthand what that understanding firsthand what that experience is like. So it it is very experience is like. So it it is very experience is like. So it it is very much like being a consultant except that much like being a consultant except that much like being a consultant except that you know we don't charge anything. We you know we don't charge anything. We you know we don't charge anything. We just show up our our the way we get paid just show up our our the way we get paid just show up our our the way we get paid is in learning. We show up, we help make is in learning. We show up, we help make is in learning. We show up, we help make sure that customers are successful sure that customers are successful sure that customers are successful getting started with getting started with getting started with >> these these products and then we we >> these these products and then we we >> these these products and then we we bring back to the product group, hey, bring back to the product group, hey, bring back to the product group, hey, here's where it worked, here's where it here's where it worked, here's where it here's where it worked, here's where it didn't, this is what we need to fix in V didn't, this is what we need to fix in V didn't, this is what we need to fix in V next, this is what we need to clarify in next, this is what we need to clarify in next, this is what we need to clarify in documentation, here are bugs we need to documentation, here are bugs we need to documentation, here are bugs we need to address, whatever. And it's our way of address, whatever. And it's our way of address, whatever. And it's our way of making sure that we get that that making sure that we get that that making sure that we get that that customer feedback that you're talking customer feedback that you're talking customer feedback that you're talking about that's so important.

  4. about that's so important. about that's so important. >> So, there was a thing many years ago >> So, there was a thing many years ago >> So, there was a thing many years ago called MCS, Microsoft Consulting called MCS, Microsoft Consulting called MCS, Microsoft Consulting Service. you know, you pay 100 bucks an Service. you know, you pay 100 bucks an Service. you know, you pay 100 bucks an hour and they come to you and they like hour and they come to you and they like hour and they come to you and they like are staff aug staff augmentation, but are staff aug staff augmentation, but are staff aug staff augmentation, but you're not that. You're going there and you're not that. You're going there and you're not that. You're going there and you're learning and they're on the you're learning and they're on the you're learning and they're on the bleeding edge. They're doing daily bleeding edge. They're doing daily bleeding edge. They're doing daily builds ofnet or you're debugging builds ofnet or you're debugging builds ofnet or you're debugging something obscure in the jitter or the something obscure in the jitter or the something obscure in the jitter or the GC. Yes, GC. Yes, GC. Yes, >> that sounds like a pretty sweet gig. How >> that sounds like a pretty sweet gig. How >> that sounds like a pretty sweet gig. How would a customer get that though? Like would a customer get that though? Like would a customer get that though? Like how Microsoft to show up? how Microsoft to show up? how Microsoft to show up? >> So the way it happens is primarily we >> So the way it happens is primarily we >> So the way it happens is primarily we work with account teams. So, you know, work with account teams. So, you know, work with account teams. So, you know, someone in the account organization who someone in the account organization who someone in the account organization who who works with these customers day in who works with these customers day in who works with these customers day in and day out would come and talk to and day out would come and talk to and day out would come and talk to someone on our end and say, "Hey, we've someone on our end and say, "Hey, we've someone on our end and say, "Hey, we've got a customer who's got this got a customer who's got this got a customer who's got this interesting situation. They're trying to interesting situation. They're trying to interesting situation. They're trying to upgrade to .NET 10 and they're running upgrade to .NET 10 and they're running upgrade to .NET 10 and they're running into this, you know, unusual bug or they into this, you know, unusual bug or they into this, you know, unusual bug or they want to try this brand new tool that's want to try this brand new tool that's want to try this brand new tool that's in in private preview or public in in private preview or public in in private preview or public preview." And then we only have a preview." And then we only have a preview." And then we only have a handful of engineers on my team. So we handful of engineers on my team. So we handful of engineers on my team. So we have to be a little bit selective, but have to be a little bit selective, but have to be a little bit selective, but we'll try and identify the ones with the we'll try and identify the ones with the we'll try and identify the ones with the biggest learning opportunity. And we're biggest learning opportunity. And we're biggest learning opportunity. And we're a little different from MCS because we a little different from MCS because we a little different from MCS because we don't actually do the work for the don't actually do the work for the don't actually do the work for the customer. We may create like prototypes customer. We may create like prototypes customer. We may create like prototypes and show them how it would happen, but and show them how it would happen, but and show them how it would happen, but we're very much more just sort of we're very much more just sort of we're very much more just sort of advisory. But yeah, if if the account advisory. But yeah, if if the account advisory. But yeah, if if the account team comes to us and says, "Hey, we've team comes to us and says, "Hey, we've team comes to us and says, "Hey, we've got this interesting scenario." Then if got this interesting scenario." Then if got this interesting scenario." Then if uh if if it seems like an opportunity uh if if it seems like an opportunity uh if if it seems like an opportunity for us to to validate something about for us to to validate something about for us to to validate something about the product or learn something the product or learn something the product or learn something interesting, we'll we'll jump in.

  5. interesting, we'll we'll jump in. interesting, we'll we'll jump in. Recently, a lot of that's been related Recently, a lot of that's been related Recently, a lot of that's been related to our our tooling around uh upgrade and to our our tooling around uh upgrade and to our our tooling around uh upgrade and migration and stuff because that's kind migration and stuff because that's kind migration and stuff because that's kind of what's been new that we've been of what's been new that we've been of what's been new that we've been working on. But, you know, whatever the working on. But, you know, whatever the working on. But, you know, whatever the product group's working on is what we'll product group's working on is what we'll product group's working on is what we'll we'll look for. we'll look for. we'll look for. >> And I like that you're saying that >> And I like that you're saying that >> And I like that you're saying that you're picking it because the problem is you're picking it because the problem is you're picking it because the problem is interesting. Like that sounds hard. interesting. Like that sounds hard. interesting. Like that sounds hard. Let's go over there. Yeah. Let's go over there. Yeah. Let's go over there. Yeah. >> Yeah. Yeah. For sure. >> Yeah. Yeah. For sure. >> Yeah. Yeah. For sure. >> The last big write up that you wrote was >> The last big write up that you wrote was >> The last big write up that you wrote was really cool because it was a big company really cool because it was a big company really cool because it was a big company that named they would recognize the name that named they would recognize the name that named they would recognize the name of that was migrating dozens of web apps of that was migrating dozens of web apps of that was migrating dozens of web apps >> that were both on .NET Core which is now >> that were both on .NET Core which is now >> that were both on .NET Core which is now 10 versions old. Um also .NET Framework 10 versions old. Um also .NET Framework 10 versions old. Um also .NET Framework which is 15 20 years old and they were which is 15 20 years old and they were which is 15 20 years old and they were on premises like it's 2025 and they're on premises like it's 2025 and they're on premises like it's 2025 and they're running on bare metal. Yeah. running on bare metal. Yeah. running on bare metal. Yeah. >> They wanted to move it into the cloud. >> They wanted to move it into the cloud. >> They wanted to move it into the cloud. So that's like a triple migration in the So that's like a triple migration in the So that's like a triple migration in the sense of it's like they want to get to sense of it's like they want to get to sense of it's like they want to get to the latest.net, they want to get off of the latest.net, they want to get off of the latest.net, they want to get off of metal, they want to make sure that metal, they want to make sure that metal, they want to make sure that they're using the latest modernization. they're using the latest modernization. they're using the latest modernization. That's not something you can vibe. You That's not something you can vibe. You That's not something you can vibe. You can't just tell GitHub copilot. We've can't just tell GitHub copilot. We've can't just tell GitHub copilot. We've tried tried tried but it's yeah that's but it's yeah that's but it's yeah that's you know it's a lot of work and you're you know it's a lot of work and you're you know it's a lot of work and you're exactly right that they needed to to exactly right that they needed to to exactly right that they needed to to modernize in multiple different ways modernize in multiple different ways modernize in multiple different ways right because when customers come to us right because when customers come to us right because when customers come to us and say hey we need to migrate the first and say hey we need to migrate the first and say hey we need to migrate the first conversation is well what do you mean by conversation is well what do you mean by conversation is well what do you mean by that because sometimes it means hey we that because sometimes it means hey we that because sometimes it means hey we got this stuff on net 5 we need to go to got this stuff on net 5 we need to go to got this stuff on net 5 we need to go to net 9 sometimes it's net framework you net 9 sometimes it's net framework you net 9 sometimes it's net framework you know net framework 48 or net framework know net framework 48 or net framework know net framework 48 or net framework 35 coming up to either you know net 35 coming up to either you know net 35 coming up to either you know net framework 48 one or or up to net 9.

  6. framework 48 one or or up to net 9. framework 48 one or or up to net 9. Sometimes it's moving into Azure. It's Sometimes it's moving into Azure. It's Sometimes it's moving into Azure. It's like, hey, we we're on premise, we want like, hey, we we're on premise, we want like, hey, we we're on premise, we want to get into Azure app service. Sometimes to get into Azure app service. Sometimes to get into Azure app service. Sometimes it's it's refactoring. It's we've got it's it's refactoring. It's we've got it's it's refactoring. It's we've got this giant monolith. We need to be more this giant monolith. We need to be more this giant monolith. We need to be more serviceoriented. And yeah, in this case, serviceoriented. And yeah, in this case, serviceoriented. And yeah, in this case, uh this particular customer, it was it uh this particular customer, it was it uh this particular customer, it was it was kind of a little bit of all of that. was kind of a little bit of all of that. was kind of a little bit of all of that. So, we really had to kind of break it So, we really had to kind of break it So, we really had to kind of break it down and tackle it a piece at a time. down and tackle it a piece at a time. down and tackle it a piece at a time. >> Why do they upgrade? Like this might be >> Why do they upgrade? Like this might be >> Why do they upgrade? Like this might be a dumb question, but like why not just a dumb question, but like why not just a dumb question, but like why not just leave it? It works fine. leave it? It works fine. leave it? It works fine. >> So, you know, it's actually a really >> So, you know, it's actually a really >> So, you know, it's actually a really good question. Uh and and actually there good question. Uh and and actually there good question. Uh and and actually there have been times when I've told have been times when I've told have been times when I've told customers, you know, maybe you don't customers, you know, maybe you don't customers, you know, maybe you don't need to to upgrade everything all at need to to upgrade everything all at need to to upgrade everything all at once right away, but there are benefits once right away, but there are benefits once right away, but there are benefits to upgrading, right? Like um and again, to upgrading, right? Like um and again, to upgrading, right? Like um and again, depending on what we mean by upgrade, depending on what we mean by upgrade, depending on what we mean by upgrade, the the upgrading to the latest version the the upgrading to the latest version the the upgrading to the latest version of net is um you that one's primarily of net is um you that one's primarily of net is um you that one's primarily going to be about performance, about going to be about performance, about going to be about performance, about supportability, about crossplat support. supportability, about crossplat support. supportability, about crossplat support. You know, a lot of times, you know, so You know, a lot of times, you know, so You know, a lot of times, you know, so so this customer we were just working so this customer we were just working so this customer we were just working with, they had stuff targeting .NET 5. with, they had stuff targeting .NET 5. with, they had stuff targeting .NET 5. That's an easy upgrade because .NET 5 is That's an easy upgrade because .NET 5 is That's an easy upgrade because .NET 5 is out of support. Yep. You got to get up out of support. Yep. You got to get up out of support. Yep. You got to get up to .NET 8 or 9 if you want to be in to .NET 8 or 9 if you want to be in to .NET 8 or 9 if you want to be in support coming from framework. Um, you support coming from framework. Um, you support coming from framework. Um, you know, .NET Framework 48 is in support know, .NET Framework 48 is in support know, .NET Framework 48 is in support will be, you know, indefinitely. So, will be, you know, indefinitely. So, will be, you know, indefinitely. So, there's no supportability reason you there's no supportability reason you there's no supportability reason you have to upgrade. But if you have a a have to upgrade. But if you have a a have to upgrade. But if you have a a project that's undergoing active project that's undergoing active project that's undergoing active development, there's a lot of benefits development, there's a lot of benefits development, there's a lot of benefits to getting onto Net 9. Obviously, huge to getting onto Net 9. Obviously, huge to getting onto Net 9. Obviously, huge performance wins. You get the performance wins. You get the performance wins. You get the opportunity of running crossplatform if opportunity of running crossplatform if opportunity of running crossplatform if that's useful. You get access to the that's useful. You get access to the that's useful. You get access to the latest, you know, language and runtime latest, you know, language and runtime latest, you know, language and runtime features. The ecosystem is continually features. The ecosystem is continually features. The ecosystem is continually evolving. A lot of Nougat packages now evolving. A lot of Nougat packages now evolving. A lot of Nougat packages now don't even support .NET framework. So if don't even support .NET framework. So if don't even support .NET framework. So if you want to take advantage of all of you want to take advantage of all of you want to take advantage of all of that, you need to be on .NET 9. I've

  7. that, you need to be on .NET 9. I've that, you need to be on .NET 9. I've even heard customers say they want to even heard customers say they want to even heard customers say they want to upgrade just because it makes it easier upgrade just because it makes it easier upgrade just because it makes it easier to hire developers. You know, if they go to hire developers. You know, if they go to hire developers. You know, if they go out and say, "Hey, we want you to come out and say, "Hey, we want you to come out and say, "Hey, we want you to come work on this .NET Framework 35 web forms work on this .NET Framework 35 web forms work on this .NET Framework 35 web forms thing." It's like, "Yeah, it crickets. thing." It's like, "Yeah, it crickets. thing." It's like, "Yeah, it crickets. No one applies." But if hey, this is No one applies." But if hey, this is No one applies." But if hey, this is .NET 9, this is Blazer. It's like, cool. .NET 9, this is Blazer. It's like, cool. .NET 9, this is Blazer. It's like, cool. Now, now people want to do it. So, you Now, now people want to do it. So, you Now, now people want to do it. So, you know, there's a lot of benefits there. know, there's a lot of benefits there. know, there's a lot of benefits there. If you've got an app that, man, it's If you've got an app that, man, it's If you've got an app that, man, it's just doing its thing and you don't ever just doing its thing and you don't ever just doing its thing and you don't ever touch it, then framework's all right. touch it, then framework's all right. touch it, then framework's all right. But for for stuff that you're working on But for for stuff that you're working on But for for stuff that you're working on day in and day out, there's a lot of day in and day out, there's a lot of day in and day out, there's a lot of benefits to being modern. benefits to being modern. benefits to being modern. >> Yeah. Getting it into the cloud is one >> Yeah. Getting it into the cloud is one >> Yeah. Getting it into the cloud is one kind of an upgrade, right? Just simply kind of an upgrade, right? Just simply kind of an upgrade, right? Just simply moving it off of some spinning Rust hard moving it off of some spinning Rust hard moving it off of some spinning Rust hard drive. Like I did that to my blog many drive. Like I did that to my blog many drive. Like I did that to my blog many years ago. It was running on .NET 4 and years ago. It was running on .NET 4 and years ago. It was running on .NET 4 and then 48, but it was running in a Windows then 48, but it was running in a Windows then 48, but it was running in a Windows VM on an unsupported version of Windows VM on an unsupported version of Windows VM on an unsupported version of Windows Server. And it's just a blog. like why Server. And it's just a blog. like why Server. And it's just a blog. like why am I why am I managing a virtual machine am I why am I managing a virtual machine am I why am I managing a virtual machine >> and and letting it reboot and run >> and and letting it reboot and run >> and and letting it reboot and run Windows update when I could just throw Windows update when I could just throw Windows update when I could just throw it into something like app service or an it into something like app service or an it into something like app service or an app service environment. app service environment. app service environment. >> Yeah, absolutely. I mean so so that >> Yeah, absolutely. I mean so so that >> Yeah, absolutely. I mean so so that migration into into Azure is sort of migration into into Azure is sort of migration into into Azure is sort of that other type of modernization we were that other type of modernization we were that other type of modernization we were talking about and that one it really is talking about and that one it really is talking about and that one it really is all about where the costs are, where the all about where the costs are, where the all about where the costs are, where the risk is because yeah, if you've got this risk is because yeah, if you've got this risk is because yeah, if you've got this VM that you were running your blog on, VM that you were running your blog on, VM that you were running your blog on, you have to keep that up to date. you you have to keep that up to date. you you have to keep that up to date. you have to patch Windows, you have to worry have to patch Windows, you have to worry have to patch Windows, you have to worry about all of that maintenance of the of about all of that maintenance of the of about all of that maintenance of the of the of the server. Whereas you go into the of the server. Whereas you go into the of the server. Whereas you go into app service, that's taken care of for app service, that's taken care of for app service, that's taken care of for you. All you have to do is, you know, you. All you have to do is, you know, you. All you have to do is, you know, focus on the thing you want to do, which focus on the thing you want to do, which focus on the thing you want to do, which is create the blog. And so, yeah, the is create the blog. And so, yeah, the is create the blog. And so, yeah, the customer that you were talking about

  8. customer that you were talking about customer that you were talking about that we were working with most recently, that we were working with most recently, that we were working with most recently, that that that was their motivation. that that that was their motivation. that that that was their motivation. They had worked with our account team to They had worked with our account team to They had worked with our account team to understand the the cost benefits of understand the the cost benefits of understand the the cost benefits of being in Azure path and not having to being in Azure path and not having to being in Azure path and not having to worry about maintaining this data worry about maintaining this data worry about maintaining this data center, not need to worry about all of center, not need to worry about all of center, not need to worry about all of that maintenance work that now becomes that maintenance work that now becomes that maintenance work that now becomes Azure's responsibility. And so they had Azure's responsibility. And so they had Azure's responsibility. And so they had this effort like you said to to migrate this effort like you said to to migrate this effort like you said to to migrate quite a large number of apps in order to quite a large number of apps in order to quite a large number of apps in order to take advantage of Azure platform as a take advantage of Azure platform as a take advantage of Azure platform as a service offerings. In this case, it was service offerings. In this case, it was service offerings. In this case, it was app service environment. app service environment. app service environment. >> Yeah. And on the Perf side, you've done >> Yeah. And on the Perf side, you've done >> Yeah. And on the Perf side, you've done a lot of really interesting Perf stuff a lot of really interesting Perf stuff a lot of really interesting Perf stuff where you've even brought in like the where you've even brought in like the where you've even brought in like the .NET team or like Mayoni who worked on .NET team or like Mayoni who worked on .NET team or like Mayoni who worked on the GC and like debugged stuff. When you the GC and like debugged stuff. When you the GC and like debugged stuff. When you say there's a Perf improvement from say there's a Perf improvement from say there's a Perf improvement from going to like .NET Framework 4X to 9 or going to like .NET Framework 4X to 9 or going to like .NET Framework 4X to 9 or 10 net 9 or 10, it really can't be over. 10 net 9 or 10, it really can't be over. 10 net 9 or 10, it really can't be over. Like I'm not trying to like oversell it, Like I'm not trying to like oversell it, Like I'm not trying to like oversell it, but like it's crazy fast. Even going but like it's crazy fast. Even going but like it's crazy fast. Even going like 56, 5 to 8, 8 to 10. We've all read like 56, 5 to 8, 8 to 10. We've all read like 56, 5 to 8, 8 to 10. We've all read the Stephen Tob like the Stephen Tobe the Stephen Tob like the Stephen Tobe the Stephen Tob like the Stephen Tobe giant like super long blog, but like giant like super long blog, but like giant like super long blog, but like ballpark it for me here. If you just ballpark it for me here. If you just ballpark it for me here. If you just moved some nice clean Razor pages from moved some nice clean Razor pages from moved some nice clean Razor pages from four over to to 9 or 10, how many four over to to 9 or 10, how many four over to to 9 or 10, how many improvements are you getting in improvements are you getting in improvements are you getting in performance and what kind of a bump are performance and what kind of a bump are performance and what kind of a bump are you going to see?

  9. you going to see? you going to see? >> That's hard to say. It really depends on >> That's hard to say. It really depends on >> That's hard to say. It really depends on the scenario. It it will typically be the scenario. It it will typically be the scenario. It it will typically be noticeable. I I'll say that. I mean, the noticeable. I I'll say that. I mean, the noticeable. I I'll say that. I mean, the details are going to depend from details are going to depend from details are going to depend from scenario to scenario. And and I will scenario to scenario. And and I will scenario to scenario. And and I will also say that when we work with also say that when we work with also say that when we work with customers, we tell them it's not only customers, we tell them it's not only customers, we tell them it's not only upgrading to, you know, .NET 8 or 9 or upgrading to, you know, .NET 8 or 9 or upgrading to, you know, .NET 8 or 9 or 10, but it's also profiling 10, but it's also profiling 10, but it's also profiling understanding where your your understanding where your your understanding where your your bottlenecks are because I have had bottlenecks are because I have had bottlenecks are because I have had scenarios where customers have upgraded scenarios where customers have upgraded scenarios where customers have upgraded from, you know, .NET Framework 4, five from, you know, .NET Framework 4, five from, you know, .NET Framework 4, five or whatever to to .NET 9. Then they come or whatever to to .NET 9. Then they come or whatever to to .NET 9. Then they come back and say, it's it's the same speed. back and say, it's it's the same speed. back and say, it's it's the same speed. We go and we look, it's like, well, it's We go and we look, it's like, well, it's We go and we look, it's like, well, it's because, you know, you've got this because, you know, you've got this because, you know, you've got this bottleneck in your code, bottleneck in your code, bottleneck in your code, >> right? It's the same bad SQL query. >> right? It's the same bad SQL query. >> right? It's the same bad SQL query. >> Yeah. Exactly. Yeah. You've got this SQL >> Yeah. Exactly. Yeah. You've got this SQL >> Yeah. Exactly. Yeah. You've got this SQL query that takes forever. query that takes forever. query that takes forever. >> Yeah, network latency is a thing. You're >> Yeah, network latency is a thing. You're >> Yeah, network latency is a thing. You're going to change that. going to change that. going to change that. >> The the way I explain it to customers is >> The the way I explain it to customers is >> The the way I explain it to customers is that when you upgrade to .NET Core, that when you upgrade to .NET Core, that when you upgrade to .NET Core, especially something modern like 9 or especially something modern like 9 or especially something modern like 9 or 10, the ceiling for what performance is 10, the ceiling for what performance is 10, the ceiling for what performance is possible goes way up. Now, it's a possible goes way up. Now, it's a possible goes way up. Now, it's a question of is your code set up to take question of is your code set up to take question of is your code set up to take advantage of that. But, you know, you've advantage of that. But, you know, you've advantage of that. But, you know, you've got all sorts of tools now in Visual got all sorts of tools now in Visual got all sorts of tools now in Visual Studio to easily profile that and help Studio to easily profile that and help Studio to easily profile that and help you identify where those where those you identify where those where those you identify where those where those issues are. And once you address them issues are. And once you address them issues are. And once you address them then yes you you do get those wins that then yes you you do get those wins that then yes you you do get those wins that I I don't know what the number would be I I don't know what the number would be I I don't know what the number would be but it's uh you will notice it and say but it's uh you will notice it and say but it's uh you will notice it and say you will notice it you will notice it you will notice it >> this is this is better >> this is this is better >> this is this is better >> you will notice it in all caps like it >> you will notice it in all caps like it >> you will notice it in all caps like it starts up faster it compiles faster it starts up faster it compiles faster it starts up faster it compiles faster it deploys faster I'm you know the way I deploys faster I'm you know the way I deploys faster I'm you know the way I tried to explain it to someone is that tried to explain it to someone is that tried to explain it to someone is that it's it feels lighter weight it's it feels lighter weight it's it feels lighter weight >> like being able to go from this 30 gig >> like being able to go from this 30 gig >> like being able to go from this 30 gig Windows VM that ran my blog to spinning Windows VM that ran my blog to spinning Windows VM that ran my blog to spinning it up in in a Docker container on a

  10. it up in in a Docker container on a it up in in a Docker container on a Raspberry Pi Raspberry Pi Raspberry Pi >> just made me realize that like, wow, >> just made me realize that like, wow, >> just made me realize that like, wow, this is actually a nice little app that this is actually a nice little app that this is actually a nice little app that I've got here. I'm glad I put the work I've got here. I'm glad I put the work I've got here. I'm glad I put the work into moving it to the future. into moving it to the future. into moving it to the future. >> Yeah, absolutely. >> Yeah, absolutely. >> Yeah, absolutely. >> Yeah. >> Yeah. >> Yeah. >> Now, we're not going to mention this >> Now, we're not going to mention this >> Now, we're not going to mention this company's name, and I don't want to test company's name, and I don't want to test company's name, and I don't want to test shame them, but you know, they had 50 shame them, but you know, they had 50 shame them, but you know, they had 50 plus apps that they were migrating and plus apps that they were migrating and plus apps that they were migrating and only one of them had automated tests. only one of them had automated tests. only one of them had automated tests. >> One had tests. Yep. That was one of >> One had tests. Yep. That was one of >> One had tests. Yep. That was one of them. them. them. >> That's not cool, man. >> That's not cool, man. >> That's not cool, man. >> Problems that they they'd upgrade these >> Problems that they they'd upgrade these >> Problems that they they'd upgrade these apps and then go to try and validate apps and then go to try and validate apps and then go to try and validate that they were working. And the other that they were working. And the other that they were working. And the other thing that complicated it was often thing that complicated it was often thing that complicated it was often times the the the people who own the times the the the people who own the times the the the people who own the applications don't have time to do these applications don't have time to do these applications don't have time to do these upgrades. So you end up with a central upgrades. So you end up with a central upgrades. So you end up with a central like operations or IT or cloud you know like operations or IT or cloud you know like operations or IT or cloud you know best practice team or someone owning best practice team or someone owning best practice team or someone owning these these sorts of uh you know these these sorts of uh you know these these sorts of uh you know upgrades. And now this person who's upgrades. And now this person who's upgrades. And now this person who's never seen the app before is responsible never seen the app before is responsible never seen the app before is responsible for making sure that it works on net 8 for making sure that it works on net 8 for making sure that it works on net 8 that it works in Azure and they don't that it works in Azure and they don't that it works in Azure and they don't even know what the app's supposed to do. even know what the app's supposed to do. even know what the app's supposed to do. So, one of the challenges we often help So, one of the challenges we often help So, one of the challenges we often help people with is to understand, hey, you people with is to understand, hey, you people with is to understand, hey, you got to make sure you've got a way of got to make sure you've got a way of got to make sure you've got a way of validating that this is good. You know, validating that this is good. You know, validating that this is good. You know, if if you don't have tests up front, if if you don't have tests up front, if if you don't have tests up front, hey, record some stuff with Playright, hey, record some stuff with Playright, hey, record some stuff with Playright, use GitHub Copilot, generate some tests, use GitHub Copilot, generate some tests, use GitHub Copilot, generate some tests, something so that once you're done with something so that once you're done with something so that once you're done with this work, you can go back and say, this work, you can go back and say, this work, you can go back and say, okay, yes, it's it's functioning the way okay, yes, it's it's functioning the way okay, yes, it's it's functioning the way it's supposed to. Because, you know, the it's supposed to. Because, you know, the it's supposed to. Because, you know, the the modernization itself is one chunk of the modernization itself is one chunk of the modernization itself is one chunk of time, but then often the the validation time, but then often the the validation time, but then often the the validation of the app takes just as long. And so if of the app takes just as long. And so if of the app takes just as long. And so if you can do things to to help with that, you can do things to to help with that, you can do things to to help with that, it's, you know, obviously accelerates it's, you know, obviously accelerates it's, you know, obviously accelerates the whole process.

  11. the whole process. the whole process. >> I've always talked about fear driven >> I've always talked about fear driven >> I've always talked about fear driven development fdd for for like Hanselman, it's for for like Hanselman, it's handsomeman.com, the blog, Azure Friday. handsomeman.com, the blog, Azure Friday. handsomeman.com, the blog, Azure Friday. It's the routing. Like the routing is It's the routing. Like the routing is It's the routing. Like the routing is the thing because I have a I have like the thing because I have a I have like the thing because I have a I have like probably 40 custom routes for little probably 40 custom routes for little probably 40 custom routes for little stuff that you don't think about because stuff that you don't think about because stuff that you don't think about because you just you Google, you hit my blog, you just you Google, you hit my blog, you just you Google, you hit my blog, you go, "Hey, the RSS feed, the the you go, "Hey, the RSS feed, the the you go, "Hey, the RSS feed, the the response types, the mime types that get response types, the mime types that get response types, the mime types that get returned. I need to make sure that all returned. I need to make sure that all returned. I need to make sure that all the URLs work. I've got really the URLs work. I've got really the URLs work. I've got really sophisticated routing. I've even got an sophisticated routing. I've even got an sophisticated routing. I've even got an old IIS ex uh uh what's it? Um I old IIS ex uh uh what's it? Um I old IIS ex uh uh what's it? Um I rewrite.xml." rewrite.xml." rewrite.xml." >> Oh, yeah. >> Oh, yeah. >> Oh, yeah. >> And I'm using the middleware for that. >> And I'm using the middleware for that. >> And I'm using the middleware for that. Right. So, I've got a 20-year-old XML Right. So, I've got a 20-year-old XML Right. So, I've got a 20-year-old XML file to do regular expression level file to do regular expression level file to do regular expression level routing, and I'm afraid of it. I'm routing, and I'm afraid of it. I'm routing, and I'm afraid of it. I'm afraid of it. So, when I migrated, afraid of it. So, when I migrated, afraid of it. So, when I migrated, before I did the migration, I wrote like before I did the migration, I wrote like before I did the migration, I wrote like 20 tests 20 tests 20 tests >> about the parts that I was the most >> about the parts that I was the most >> about the parts that I was the most afraid of afraid of afraid of >> and those now are the things that make >> and those now are the things that make >> and those now are the things that make me feel better. So, like start with me feel better. So, like start with me feel better. So, like start with like, you know, start with the hot path, like, you know, start with the hot path, like, you know, start with the hot path, but for me, I start with the fear like but for me, I start with the fear like but for me, I start with the fear like what am I going to break? Write a test what am I going to break? Write a test what am I going to break? Write a test around it. And you keep writing tests around it. And you keep writing tests around it. And you keep writing tests until you're not afraid anymore.

  12. until you're not afraid anymore. until you're not afraid anymore. >> Yep. I love that. That's that's a great >> Yep. I love that. That's that's a great >> Yep. I love that. That's that's a great way to do it to say, "Hey, what's the way to do it to say, "Hey, what's the way to do it to say, "Hey, what's the thing that's going to keep me up at thing that's going to keep me up at thing that's going to keep me up at night?" Get the tests in there. And you night?" Get the tests in there. And you night?" Get the tests in there. And you know, that I rewriting you talked about, know, that I rewriting you talked about, know, that I rewriting you talked about, I don't know exactly how you did it, but I don't know exactly how you did it, but I don't know exactly how you did it, but I know that some parts of, I know that some parts of, I know that some parts of, >> you know, our IIS um you know, redirect >> you know, our IIS um you know, redirect >> you know, our IIS um you know, redirect and rewrite functionality is different and rewrite functionality is different and rewrite functionality is different in App Service. That's one that in App Service. That's one that in App Service. That's one that customers run into every now and then. I customers run into every now and then. I customers run into every now and then. I had a customer who had a customer who had a customer who >> took their app. They thought, "Oh, well, >> took their app. They thought, "Oh, well, >> took their app. They thought, "Oh, well, app service is just like III. So, I'm app service is just like III. So, I'm app service is just like III. So, I'm just going to pick my app up. I I want just going to pick my app up. I I want just going to pick my app up. I I want to make this super lightweight and easy. to make this super lightweight and easy. to make this super lightweight and easy. So, I'm not going to, you know, change So, I'm not going to, you know, change So, I'm not going to, you know, change the net target. I'm just picking up the net target. I'm just picking up the net target. I'm just picking up dropping an app service." And boom, 500 dropping an app service." And boom, 500 dropping an app service." And boom, 500 when they went to the the website and we when they went to the the website and we when they went to the the website and we looked into it and there was a few looked into it and there was a few looked into it and there was a few things like that where, you know, the things like that where, you know, the things like that where, you know, the you know, a certain I module isn't you know, a certain I module isn't you know, a certain I module isn't enabled by default for the the rewriting enabled by default for the the rewriting enabled by default for the the rewriting or whatever it was. and they had to set or whatever it was. and they had to set or whatever it was. and they had to set a few options, set a few settings, and a few options, set a few settings, and a few options, set a few settings, and we managed to get things working without we managed to get things working without we managed to get things working without too much trouble. But yeah, that's too much trouble. But yeah, that's too much trouble. But yeah, that's that's the sort of thing that every now that's the sort of thing that every now that's the sort of thing that every now and then you run into. So if you've got and then you run into. So if you've got and then you run into. So if you've got those tests that say, "Hey, I need to those tests that say, "Hey, I need to those tests that say, "Hey, I need to try hit this this path and make sure try hit this this path and make sure try hit this this path and make sure that it resolves correctly," that's that it resolves correctly," that's that it resolves correctly," that's that's how you know that you're not run that's how you know that you're not run that's how you know that you're not run running into something like that.

  13. running into something like that. running into something like that. >> There's all these little assumptions >> There's all these little assumptions >> There's all these little assumptions that we made and then they'll bump you that we made and then they'll bump you that we made and then they'll bump you you'll hit them. Like one of the ones I you'll hit them. Like one of the ones I you'll hit them. Like one of the ones I hit with forward slashes versus hit with forward slashes versus hit with forward slashes versus backslashes. backslashes. backslashes. >> Oh, yeah. >> Oh, yeah. >> Oh, yeah. >> Right. >> Right. >> Right. Oh, that's a harmless little text file. Oh, that's a harmless little text file. Oh, that's a harmless little text file. It'll be fine. Hardcoded. It'll be fine. Hardcoded. It'll be fine. Hardcoded. >> So, you go to a Raspberry Pi. >> So, you go to a Raspberry Pi. >> So, you go to a Raspberry Pi. >> Yep. And then system.directory.io.path >> Yep. And then system.directory.io.path >> Yep. And then system.directory.io.path separator and the next thing you know or separator and the next thing you know or separator and the next thing you know or I had um time zones where we were I had um time zones where we were I had um time zones where we were loading time zones out of the registry loading time zones out of the registry loading time zones out of the registry and registries don't exist on Linux and and registries don't exist on Linux and and registries don't exist on Linux and then you're off and running. then you're off and running. then you're off and running. >> Absolutely. Yeah. No, I mean the the >> Absolutely. Yeah. No, I mean the the >> Absolutely. Yeah. No, I mean the the time zone stuff's all managed by the time zone stuff's all managed by the time zone stuff's all managed by the operating system and so it's going to operating system and so it's going to operating system and so it's going to it's going to be a little different. it's going to be a little different. it's going to be a little different. >> Hey friends, this is Scott. I want to >> Hey friends, this is Scott. I want to >> Hey friends, this is Scott. I want to thank our new sponsor, Code Rabbit. You thank our new sponsor, Code Rabbit. You thank our new sponsor, Code Rabbit. You know, we are shipping more code than know, we are shipping more code than know, we are shipping more code than ever, and that means there's more code ever, and that means there's more code ever, and that means there's more code reviews than ever. So, that must mean reviews than ever. So, that must mean reviews than ever. So, that must mean that all these code reviews are going to that all these code reviews are going to that all these code reviews are going to slow me down. Is that right, Arvin? slow me down. Is that right, Arvin? slow me down. Is that right, Arvin? Not exactly, Scott. We That's where we Not exactly, Scott. We That's where we Not exactly, Scott. We That's where we also come in. Code Rabbit exactly cuts also come in. Code Rabbit exactly cuts also come in. Code Rabbit exactly cuts your code review time into half and your your code review time into half and your your code review time into half and your bugs into half. We give you the P bugs into half. We give you the P bugs into half. We give you the P feedback right in your PR context uh and feedback right in your PR context uh and feedback right in your PR context uh and helping your developers move faster helping your developers move faster helping your developers move faster while they are also generating code more while they are also generating code more while they are also generating code more faster. We offer oneclick fixes and spot faster. We offer oneclick fixes and spot faster. We offer oneclick fixes and spot all the bugs and refactor issues, all the bugs and refactor issues, all the bugs and refactor issues, deliver it on your own git workflow and deliver it on your own git workflow and deliver it on your own git workflow and help you move really faster in the AI help you move really faster in the AI help you move really faster in the AI era. Code Rabbit offers free AI code era. Code Rabbit offers free AI code era. Code Rabbit offers free AI code reviews directly in your code editor.

  14. reviews directly in your code editor. reviews directly in your code editor. fix those bugs, find those defects, fix those bugs, find those defects, fix those bugs, find those defects, especially the ones that were introduced especially the ones that were introduced especially the ones that were introduced by Vibe Coding, and it all does it by Vibe Coding, and it all does it by Vibe Coding, and it all does it without breaking your flow state. So, without breaking your flow state. So, without breaking your flow state. So, you will be able to ship more code than you will be able to ship more code than you will be able to ship more code than ever. I encourage you to check it out at ever. I encourage you to check it out at ever. I encourage you to check it out at code rabbit.ai and sign up for a free code rabbit.ai and sign up for a free code rabbit.ai and sign up for a free trial now. So, these are all examples of trial now. So, these are all examples of trial now. So, these are all examples of stuff that you know because you've been stuff that you know because you've been stuff that you know because you've been doing this for so long. Like, this is doing this for so long. Like, this is doing this for so long. Like, this is stuff you know because you're an expert. stuff you know because you're an expert. stuff you know because you're an expert. Here's the question, though. Where does Here's the question, though. Where does Here's the question, though. Where does honestly where does AI fit into this? honestly where does AI fit into this? honestly where does AI fit into this? like I don't think AI is gonna replace like I don't think AI is gonna replace like I don't think AI is gonna replace 30 years of knowledge but it does do a 30 years of knowledge but it does do a 30 years of knowledge but it does do a lot of tedious stuff and so help me lot of tedious stuff and so help me lot of tedious stuff and so help me understand where understand where understand where >> expertise fits and where GitHub copilot >> expertise fits and where GitHub copilot >> expertise fits and where GitHub copilot modernization fits. modernization fits. modernization fits. >> Yeah, for sure because we do have GitHub >> Yeah, for sure because we do have GitHub >> Yeah, for sure because we do have GitHub copilot based tools now that help with copilot based tools now that help with copilot based tools now that help with these experiences. uh you know just these experiences. uh you know just these experiences. uh you know just about a week ago uh we we GA the GitHub about a week ago uh we we GA the GitHub about a week ago uh we we GA the GitHub copilot app modernization tool which uh copilot app modernization tool which uh copilot app modernization tool which uh is part of Visual Studio and for your uh is part of Visual Studio and for your uh is part of Visual Studio and for your uh .NET apps it will help you upgrade .NET apps it will help you upgrade .NET apps it will help you upgrade between versions.net help you get them between versions.net help you get them between versions.net help you get them ready to run in Azure but it is sort of ready to run in Azure but it is sort of ready to run in Azure but it is sort of an interaction between an interaction between an interaction between you know GitHub copilot and you know you know GitHub copilot and you know you know GitHub copilot and you know documentation guidance static analysis documentation guidance static analysis documentation guidance static analysis tools can help that can help spot these tools can help that can help spot these tools can help that can help spot these sorts of things. We have an older tool sorts of things. We have an older tool sorts of things. We have an older tool called uh Azure Migrate application and called uh Azure Migrate application and called uh Azure Migrate application and code assessment which is just a static code assessment which is just a static code assessment which is just a static analysis tool but it'll go through your analysis tool but it'll go through your analysis tool but it'll go through your whole solution. It'll find all of the whole solution. It'll find all of the whole solution. It'll find all of the net APIs you're calling that might net APIs you're calling that might net APIs you're calling that might behave differently in in an Azure path behave differently in in an Azure path behave differently in in an Azure path environment and put them in a list in a environment and put them in a list in a environment and put them in a list in a report so you can go look at it and be report so you can go look at it and be report so you can go look at it and be like is this going to matter? Do I need

  15. like is this going to matter? Do I need like is this going to matter? Do I need to change anything? And it helps you not to change anything? And it helps you not to change anything? And it helps you not have those blind spots. I I think the have those blind spots. I I think the have those blind spots. I I think the place where GitHub Copilot really helps place where GitHub Copilot really helps place where GitHub Copilot really helps is sort of after that initial analysis is sort of after that initial analysis is sort of after that initial analysis happens like after you've already sort happens like after you've already sort happens like after you've already sort of done the scan to say okay where might of done the scan to say okay where might of done the scan to say okay where might there be problems co-pilot's really good there be problems co-pilot's really good there be problems co-pilot's really good at helping you at helping you at helping you >> understand things it can take a big >> understand things it can take a big >> understand things it can take a big report and say here are the things that report and say here are the things that report and say here are the things that really matter or if you're not sure what really matter or if you're not sure what really matter or if you're not sure what to do about something you know GitHub to do about something you know GitHub to do about something you know GitHub copilot can help you figure out what the copilot can help you figure out what the copilot can help you figure out what the right next steps are so whether that's right next steps are so whether that's right next steps are so whether that's just going into chat in VS Code or just going into chat in VS Code or just going into chat in VS Code or Visual Studio and asking Copilot Hey, Visual Studio and asking Copilot Hey, Visual Studio and asking Copilot Hey, this report says that I'm, you know, this report says that I'm, you know, this report says that I'm, you know, using the registry and that's not going using the registry and that's not going using the registry and that's not going to work when I'm when I'm running in to work when I'm when I'm running in to work when I'm when I'm running in Azure container apps. What should I do? Azure container apps. What should I do? Azure container apps. What should I do? You know, GitHub Copilot's really great You know, GitHub Copilot's really great You know, GitHub Copilot's really great at coming up with alternatives, helping at coming up with alternatives, helping at coming up with alternatives, helping you brainstorm. Uh, and then also this you brainstorm. Uh, and then also this you brainstorm. Uh, and then also this this tooling that we have now, it's this tooling that we have now, it's this tooling that we have now, it's brand new. the, you know, some some brand new. the, you know, some some brand new. the, you know, some some portions that are still in preview, but portions that are still in preview, but portions that are still in preview, but being able to have a tool that can use a being able to have a tool that can use a being able to have a tool that can use a knowledge base that's provided via a knowledge base that's provided via a knowledge base that's provided via a built-in MCP server and use that built-in MCP server and use that built-in MCP server and use that knowledge base to understand how some of knowledge base to understand how some of knowledge base to understand how some of these transformations have to happen.

  16. these transformations have to happen. these transformations have to happen. Well, then it can take that code, do Well, then it can take that code, do Well, then it can take that code, do some of the transformation for you and some of the transformation for you and some of the transformation for you and get you ready to, you know, do whatever get you ready to, you know, do whatever get you ready to, you know, do whatever it is you need to do in the new world. it is you need to do in the new world. it is you need to do in the new world. >> That's a great point. I think that a lot >> That's a great point. I think that a lot >> That's a great point. I think that a lot of people think that LLM based migration of people think that LLM based migration of people think that LLM based migration is copy pasting 10,000 lines into a is copy pasting 10,000 lines into a is copy pasting 10,000 lines into a thing and like figure it out. thing and like figure it out. thing and like figure it out. >> But there's a programmatic aspect to it. >> But there's a programmatic aspect to it. >> But there's a programmatic aspect to it. There's tools, there's MCP servers. There's tools, there's MCP servers. There's tools, there's MCP servers. There was there was a really solid There was there was a really solid There was there was a really solid migration experience long before AI was migration experience long before AI was migration experience long before AI was a thing. a thing. a thing. >> Most of my migrations were done with the >> Most of my migrations were done with the >> Most of my migrations were done with the actual, actual, actual, >> you know, net migrate command line tool. >> you know, net migrate command line tool. >> you know, net migrate command line tool. >> Yeah. >> Yeah. >> Yeah. >> That still exists, right? So like >> That still exists, right? So like >> That still exists, right? So like putting the LLM around the edge cases is putting the LLM around the edge cases is putting the LLM around the edge cases is helpful, but it's going to be calling helpful, but it's going to be calling helpful, but it's going to be calling into actual tools, Roslin analyzers that into actual tools, Roslin analyzers that into actual tools, Roslin analyzers that know how to do stuff, right? know how to do stuff, right? know how to do stuff, right? >> Yeah. Yeah. Was that the tool that it >> Yeah. Yeah. Was that the tool that it >> Yeah. Yeah. Was that the tool that it sort of on the command line you you'd sort of on the command line you you'd sort of on the command line you you'd give it a .NET framework project? give it a .NET framework project? give it a .NET framework project? >> There was Yeah, exactly. There was a >> There was Yeah, exactly. There was a >> There was Yeah, exactly. There was a command line one that was kind of a uh command line one that was kind of a uh command line one that was kind of a uh do it, you know, update your CS Proje do it, you know, update your CS Proje do it, you know, update your CS Proje and then it moved into Visual Studio and and then it moved into Visual Studio and and then it moved into Visual Studio and they gave it a visual thing and then now they gave it a visual thing and then now they gave it a visual thing and then now the one in Visual Studio has a prompt the one in Visual Studio has a prompt the one in Visual Studio has a prompt and I think that there's tools and and I think that there's tools and and I think that there's tools and tooling wrapped around it wrapped around tooling wrapped around it wrapped around tooling wrapped around it wrapped around that.

  17. that. that. >> Yeah. And that's the direction we're >> Yeah. And that's the direction we're >> Yeah. And that's the direction we're going is to have Copilot sort of be part going is to have Copilot sort of be part going is to have Copilot sort of be part of the process. Not that it does of the process. Not that it does of the process. Not that it does everything, but that it it orchestrates, everything, but that it it orchestrates, everything, but that it it orchestrates, it fills in gaps. that I asked which it fills in gaps. that I asked which it fills in gaps. that I asked which tool it was because I think that was a tool it was because I think that was a tool it was because I think that was a tool that our team created actually tool that our team created actually tool that our team created actually output from a customer engagement uh you output from a customer engagement uh you output from a customer engagement uh you know for that. know for that. know for that. >> Yeah. Quite a few years ago we were >> Yeah. Quite a few years ago we were >> Yeah. Quite a few years ago we were working with the customer and they working with the customer and they working with the customer and they actually created a framework that made actually created a framework that made actually created a framework that made it easy to generate you know a certain it easy to generate you know a certain it easy to generate you know a certain style of web app and customers would style of web app and customers would style of web app and customers would like use their things that they could like use their things that they could like use their things that they could easily create their you their CMS app or easily create their you their CMS app or easily create their you their CMS app or whatever it was and they were in a whatever it was and they were in a whatever it was and they were in a situation where they wanted to upgrade situation where they wanted to upgrade situation where they wanted to upgrade their framework to to .NET Core. They their framework to to .NET Core. They their framework to to .NET Core. They also hosted apps for customers. also hosted apps for customers. also hosted apps for customers. Sometimes they wanted to start hosting Sometimes they wanted to start hosting Sometimes they wanted to start hosting these apps on Linux. So they said, "Hey, these apps on Linux. So they said, "Hey, these apps on Linux. So they said, "Hey, we need our customers to upgrade from we need our customers to upgrade from we need our customers to upgrade from ASP.NET to ASP.NET Core, but that's a ASP.NET to ASP.NET Core, but that's a ASP.NET to ASP.NET Core, but that's a difficult upgrade and we have hundreds difficult upgrade and we have hundreds difficult upgrade and we have hundreds of customers. How can we get our of customers. How can we get our of customers. How can we get our customers to upgrade more quickly?" And customers to upgrade more quickly?" And customers to upgrade more quickly?" And so our team actually started prototyping so our team actually started prototyping so our team actually started prototyping with them. Hey, let's see what we can do with them. Hey, let's see what we can do with them. Hey, let's see what we can do programmatically here. And we came up programmatically here. And we came up programmatically here. And we came up with the first version of the net with the first version of the net with the first version of the net upgrade assistant, which at this point's upgrade assistant, which at this point's upgrade assistant, which at this point's been through like multiple rebirths, but been through like multiple rebirths, but been through like multiple rebirths, but that was kind of its beginning. and they that was kind of its beginning. and they that was kind of its beginning. and they were able to get their customers more were able to get their customers more were able to get their customers more quickly upgraded which meant they could quickly upgraded which meant they could quickly upgraded which meant they could then upgrade their own product. But uh then upgrade their own product. But uh then upgrade their own product. But uh yeah, so just a fun little connection yeah, so just a fun little connection yeah, so just a fun little connection there. But yeah, as you said, it it's there. But yeah, as you said, it it's there. But yeah, as you said, it it's still available as a command line tool still available as a command line tool still available as a command line tool today, but now we've got the GitHub today, but now we've got the GitHub today, but now we've got the GitHub copilot app modernization tool which copilot app modernization tool which copilot app modernization tool which eventually will sort of fill that same eventually will sort of fill that same eventually will sort of fill that same gap, you know, through that combination gap, you know, through that combination gap, you know, through that combination of hey, we've got rules about how to of hey, we've got rules about how to of hey, we've got rules about how to transform a CS prod. We've got a transform a CS prod. We've got a transform a CS prod. We've got a knowledge base that tells us how to do

  18. knowledge base that tells us how to do knowledge base that tells us how to do this, but then we've also got the power this, but then we've also got the power this, but then we've also got the power of the LLM fitting it all together. The of the LLM fitting it all together. The of the LLM fitting it all together. The LLM is able to, you know, intelligently LLM is able to, you know, intelligently LLM is able to, you know, intelligently react when something unexpected happens. react when something unexpected happens. react when something unexpected happens. When we get a build error, we get, you When we get a build error, we get, you When we get a build error, we get, you know, something doesn't restore from new know, something doesn't restore from new know, something doesn't restore from new Git, the LLM's able to jump in. Git, the LLM's able to jump in. Git, the LLM's able to jump in. >> You just said something I think is >> You just said something I think is >> You just said something I think is really important. You said unexpectedly. really important. You said unexpectedly. really important. You said unexpectedly. Yeah. And this is the thing I think Yeah. And this is the thing I think Yeah. And this is the thing I think people don't realize is that I think I'm people don't realize is that I think I'm people don't realize is that I think I'm starting to realize it and it is that starting to realize it and it is that starting to realize it and it is that LLMs deal with ambiguity. Yes, LLMs deal with ambiguity. Yes, LLMs deal with ambiguity. Yes, >> but but if it's deterministic, it needs >> but but if it's deterministic, it needs >> but but if it's deterministic, it needs to stay deterministic. So there are to stay deterministic. So there are to stay deterministic. So there are things like what you need to do to things like what you need to do to things like what you need to do to upgrade a CS project, what you need to upgrade a CS project, what you need to upgrade a CS project, what you need to do to uh you know make your startup.cs do to uh you know make your startup.cs do to uh you know make your startup.cs work correctly. These aren't these work correctly. These aren't these work correctly. These aren't these aren't opinions, they are best aren't opinions, they are best aren't opinions, they are best practices, practices, practices, >> right? But then everybody's got some >> right? But then everybody's got some >> right? But then everybody's got some edge case. Everybody's got them edge case. Everybody's got them edge case. Everybody's got them something ambiguous and that's where the something ambiguous and that's where the something ambiguous and that's where the LLM adds adds value. So I think it's the LLM adds adds value. So I think it's the LLM adds adds value. So I think it's the mix mix mix >> of a proper migration tool that's that's >> of a proper migration tool that's that's >> of a proper migration tool that's that's like hardened for lack of a better word like hardened for lack of a better word like hardened for lack of a better word based on experience and then they're based on experience and then they're based on experience and then they're like, "Oh, this is weird."

  19. like, "Oh, this is weird." like, "Oh, this is weird." >> Yes. Send that to >> Yes. Send that to >> Yes. Send that to >> and there's always something weird. You >> and there's always something weird. You >> and there's always something weird. You know, for the longest time, you know, know, for the longest time, you know, know, for the longest time, you know, before we had, you know, co-pilot, we before we had, you know, co-pilot, we before we had, you know, co-pilot, we were trying to do the best we could with were trying to do the best we could with were trying to do the best we could with these static tools and they were okay. these static tools and they were okay. these static tools and they were okay. They got you, you know, 80% of the way They got you, you know, 80% of the way They got you, you know, 80% of the way there or whatever. But there's always there or whatever. But there's always there or whatever. But there's always something unusual. It doesn't like something unusual. It doesn't like something unusual. It doesn't like guaranteed you sit down with a customer, guaranteed you sit down with a customer, guaranteed you sit down with a customer, you try to modernize their app, you're you try to modernize their app, you're you try to modernize their app, you're going to hit something weird. You know, going to hit something weird. You know, going to hit something weird. You know, maybe I worked with a customer who uh maybe I worked with a customer who uh maybe I worked with a customer who uh had created this whole plug-in model had created this whole plug-in model had created this whole plug-in model using system.addin, which doesn't exist using system.addin, which doesn't exist using system.addin, which doesn't exist in .NET Core. Well, you don't see that in .NET Core. Well, you don't see that in .NET Core. Well, you don't see that very often, but it's out there. You very often, but it's out there. You very often, but it's out there. You know, I've got another customer who who know, I've got another customer who who know, I've got another customer who who had this fancy remoting setup. There's, had this fancy remoting setup. There's, had this fancy remoting setup. There's, you know, there's always there's someone you know, there's always there's someone you know, there's always there's someone I work with at Microsoft, one of my I work with at Microsoft, one of my I work with at Microsoft, one of my colleagues, she she had a great colleagues, she she had a great colleagues, she she had a great expression for this. She said, "Helping expression for this. She said, "Helping expression for this. She said, "Helping uh customers and partners modernize apps uh customers and partners modernize apps uh customers and partners modernize apps is like a herd of unicorns. There's a is like a herd of unicorns. There's a is like a herd of unicorns. There's a ton of them, but they're each ton of them, but they're each ton of them, but they're each individual." And man, that's the best individual." And man, that's the best individual." And man, that's the best way to describe it because that that way to describe it because that that way to describe it because that that really is how it is. But yeah, that's really is how it is. But yeah, that's really is how it is. But yeah, that's where C-Pilot can help. It's hey, we've where C-Pilot can help. It's hey, we've where C-Pilot can help. It's hey, we've got this tool that's going to do the 75% got this tool that's going to do the 75% got this tool that's going to do the 75% that's all the same. We know how to do that's all the same. We know how to do that's all the same. We know how to do this. Now, for this last quarter, let's this. Now, for this last quarter, let's this. Now, for this last quarter, let's have the LLM use its intelligence to, have the LLM use its intelligence to, have the LLM use its intelligence to, you know, maybe fix some things, maybe you know, maybe fix some things, maybe you know, maybe fix some things, maybe just point you in the right direction, just point you in the right direction, just point you in the right direction, maybe just be a sounding board so that maybe just be a sounding board so that maybe just be a sounding board so that you can go and have a good brainstorming you can go and have a good brainstorming you can go and have a good brainstorming conversation as you figure out the right conversation as you figure out the right conversation as you figure out the right path forward.

  20. path forward. path forward. >> Yeah. But the LLMs are not going to >> Yeah. But the LLMs are not going to >> Yeah. But the LLMs are not going to solve bad uh infrastructure. They're not solve bad uh infrastructure. They're not solve bad uh infrastructure. They're not going to solve a lousy application going to solve a lousy application going to solve a lousy application experience where you can't even build experience where you can't even build experience where you can't even build the thing reliably. the thing reliably. the thing reliably. >> Yeah. Yeah. You know, I I I imagine that >> Yeah. Yeah. You know, I I I imagine that >> Yeah. Yeah. You know, I I I imagine that if they don't have a build server, then if they don't have a build server, then if they don't have a build server, then that's going to be a challenge. If they that's going to be a challenge. If they that's going to be a challenge. If they don't have any tests, that's going to be don't have any tests, that's going to be don't have any tests, that's going to be a challenge. I don't think you'd want to a challenge. I don't think you'd want to a challenge. I don't think you'd want to yolo or vibe migrate something. Well, yolo or vibe migrate something. Well, yolo or vibe migrate something. Well, no, but what you would do is you would no, but what you would do is you would no, but what you would do is you would yolo or vibe a part of it. You know, yolo or vibe a part of it. You know, yolo or vibe a part of it. You know, let's say let's say you've got an app let's say let's say you've got an app let's say let's say you've got an app that you you know, like this customer we that you you know, like this customer we that you you know, like this customer we were talking about at the beginning of were talking about at the beginning of were talking about at the beginning of the of the show where they've got no the of the show where they've got no the of the show where they've got no tests, they've got 50 apps, 100 apps, tests, they've got 50 apps, 100 apps, tests, they've got 50 apps, 100 apps, whatever. You know, maybe the place you whatever. You know, maybe the place you whatever. You know, maybe the place you start is you say, "Hey, hey, co-pilot, start is you say, "Hey, hey, co-pilot, start is you say, "Hey, hey, co-pilot, write some documentation for me about write some documentation for me about write some documentation for me about how these projects work because they're how these projects work because they're how these projects work because they're not well documented." Okay, cool. We not well documented." Okay, cool. We not well documented." Okay, cool. We spend a day doing that. Day two, spend a day doing that. Day two, spend a day doing that. Day two, co-pilot, use these documents as input. co-pilot, use these documents as input. co-pilot, use these documents as input. Now, help me create a good set of unit Now, help me create a good set of unit Now, help me create a good set of unit tests or some integration tests that are tests or some integration tests that are tests or some integration tests that are going to validate that these work. Cool. going to validate that these work. Cool. going to validate that these work. Cool. Okay, now that part's done. And you sort Okay, now that part's done. And you sort Okay, now that part's done. And you sort of incrementally walk through this of incrementally walk through this of incrementally walk through this process. Not that you just tell Copilot, process. Not that you just tell Copilot, process. Not that you just tell Copilot, hey, here's 100,000 lines of code. It's hey, here's 100,000 lines of code. It's hey, here's 100,000 lines of code. It's got to run in Azure this afternoon. But got to run in Azure this afternoon. But got to run in Azure this afternoon. But you you break it down and co-pilot helps you you break it down and co-pilot helps you you break it down and co-pilot helps with each piece along the way and that's with each piece along the way and that's with each piece along the way and that's where you really get the benefits of the where you really get the benefits of the where you really get the benefits of the of the LLMs, I think.

  21. of the LLMs, I think. of the LLMs, I think. >> Yeah, I think that's a great point. >> Yeah, I think that's a great point. >> Yeah, I think that's a great point. People try to do what's called a People try to do what's called a People try to do what's called a oneshot. oneshot. oneshot. >> Yeah. >> Yeah. >> Yeah. >> And and then they're then they find it >> And and then they're then they find it >> And and then they're then they find it wanting and they're like, well, this is wanting and they're like, well, this is wanting and they're like, well, this is just an eager, energetic intern that is just an eager, energetic intern that is just an eager, energetic intern that is just going to mess everything up, just going to mess everything up, just going to mess everything up, >> but say, make me a plan, you know, look >> but say, make me a plan, you know, look >> but say, make me a plan, you know, look at the plan, validate the plan with at the plan, validate the plan with at the plan, validate the plan with knowledge, execute on the plan, and go knowledge, execute on the plan, and go knowledge, execute on the plan, and go from there. I think also though that if from there. I think also though that if from there. I think also though that if you if you're at a company like this big you if you're at a company like this big you if you're at a company like this big one that we talk about that has 50 one that we talk about that has 50 one that we talk about that has 50 different projects, they might have different projects, they might have different projects, they might have unique things that are shared amongst unique things that are shared amongst unique things that are shared amongst the 50 projects. the 50 projects. the 50 projects. >> Absolutely. >> Absolutely. >> Absolutely. >> Can I then go into co-pilot and say, >> Can I then go into co-pilot and say, >> Can I then go into co-pilot and say, "Hey, I'm here at company X and they all "Hey, I'm here at company X and they all "Hey, I'm here at company X and they all do this weird thing. Here's some custom do this weird thing. Here's some custom do this weird thing. Here's some custom instructions that I want you to think instructions that I want you to think instructions that I want you to think about during the migration." about during the migration." about during the migration." >> Yeah, absolutely. That's >> Yeah, absolutely. That's >> Yeah, absolutely. That's GitHub copilot chat does have the GitHub copilot chat does have the GitHub copilot chat does have the ability to accept instructions files ability to accept instructions files ability to accept instructions files that describe how it needs to solve a that describe how it needs to solve a that describe how it needs to solve a particular problem. That's where you particular problem. That's where you particular problem. That's where you could put something like that or even could put something like that or even could put something like that or even with our tooling. with our tooling. with our tooling. >> The the the tooling has the ability to >> The the the tooling has the ability to >> The the the tooling has the ability to accept additional instructions files accept additional instructions files accept additional instructions files that guide or even learn from what you that guide or even learn from what you that guide or even learn from what you do. One of the cool things that the app do. One of the cool things that the app do. One of the cool things that the app modernization tool does is sometimes modernization tool does is sometimes modernization tool does is sometimes it'll get stuck. It'll try to fix a it'll get stuck. It'll try to fix a it'll get stuck. It'll try to fix a build error three or four times and then build error three or four times and then build error three or four times and then it it pauses and asks the developer to it it pauses and asks the developer to it it pauses and asks the developer to help. After the developer addresses the help. After the developer addresses the help. After the developer addresses the issue, the app modernization tool looks issue, the app modernization tool looks issue, the app modernization tool looks at the diff to see what how the at the diff to see what how the at the diff to see what how the developer solved it and then we store developer solved it and then we store developer solved it and then we store that locally in your VS folder so that that locally in your VS folder so that that locally in your VS folder so that later on in that same solution if we hit later on in that same solution if we hit later on in that same solution if we hit a similar problem, C-pilot can say, "Oh, a similar problem, C-pilot can say, "Oh, a similar problem, C-pilot can say, "Oh, wait. This is like that one that I had wait. This is like that one that I had wait. This is like that one that I had to ask for help for two hours ago. Let to ask for help for two hours ago. Let to ask for help for two hours ago. Let me see how they fixed it." And so yeah, me see how they fixed it." And so yeah, me see how they fixed it." And so yeah, I think that in general, you know, as

  22. I think that in general, you know, as I think that in general, you know, as you're working through these things, you're working through these things, you're working through these things, having the ability to tell C-Pilot, you having the ability to tell C-Pilot, you having the ability to tell C-Pilot, you know, here in our organization, we have know, here in our organization, we have know, here in our organization, we have this pattern. This is what you need to this pattern. This is what you need to this pattern. This is what you need to do about it is is super valuable. Even do about it is is super valuable. Even do about it is is super valuable. Even even things that aren't that specific to even things that aren't that specific to even things that aren't that specific to particular customers. One of the things particular customers. One of the things particular customers. One of the things I've learned using GitHub Copilot myself I've learned using GitHub Copilot myself I've learned using GitHub Copilot myself is that it always wants to use the is that it always wants to use the is that it always wants to use the latest and greatest tools. So if I'm latest and greatest tools. So if I'm latest and greatest tools. So if I'm working with an old .NET framework app working with an old .NET framework app working with an old .NET framework app trying to get it to run an app service, trying to get it to run an app service, trying to get it to run an app service, it's going to try to do things like, oh, it's going to try to do things like, oh, it's going to try to do things like, oh, I'm calling net build to build it. Well, I'm calling net build to build it. Well, I'm calling net build to build it. Well, .NET build isn't going to work with an .NET build isn't going to work with an .NET build isn't going to work with an ASP.NET MVC app. And so I have ASP.NET MVC app. And so I have ASP.NET MVC app. And so I have instructions files that I've collected instructions files that I've collected instructions files that I've collected that I just drop in and say, okay, this that I just drop in and say, okay, this that I just drop in and say, okay, this is my instructions file for when I'm is my instructions file for when I'm is my instructions file for when I'm working with .NET Framework to remind working with .NET Framework to remind working with .NET Framework to remind C-Pilot this is uh targeting an older C-Pilot this is uh targeting an older C-Pilot this is uh targeting an older version of .NET. You need to use MS version of .NET. You need to use MS version of .NET. You need to use MS build. When you install Nougat packages, build. When you install Nougat packages, build. When you install Nougat packages, this is what that looks like. Don't just this is what that looks like. Don't just this is what that looks like. Don't just assume you can add a package reference assume you can add a package reference assume you can add a package reference because we're still using packages because we're still using packages because we're still using packages config. And yeah, so having the ability config. And yeah, so having the ability config. And yeah, so having the ability to guide the LLM is is is pretty key. to guide the LLM is is is pretty key. to guide the LLM is is is pretty key. you developed a thing I think uh called you developed a thing I think uh called you developed a thing I think uh called XTOY dependency transformation.

  23. XTOY dependency transformation. XTOY dependency transformation. >> Yeah. Yeah. That was something our team >> Yeah. Yeah. That was something our team >> Yeah. Yeah. That was something our team came up with. Yeah. So that's one of the came up with. Yeah. So that's one of the came up with. Yeah. So that's one of the engineers on my team Manford came up engineers on my team Manford came up engineers on my team Manford came up with that originally and we've all sort with that originally and we've all sort with that originally and we've all sort of adopted it. What we discovered is of adopted it. What we discovered is of adopted it. What we discovered is that there are certain patterns of of that there are certain patterns of of that there are certain patterns of of prompts that work well for for co-pilot. prompts that work well for for co-pilot. prompts that work well for for co-pilot. Copilot responds well to having a lot of Copilot responds well to having a lot of Copilot responds well to having a lot of structure in its prompts. it responds structure in its prompts. it responds structure in its prompts. it responds very well to having a detailed task list very well to having a detailed task list very well to having a detailed task list of of steps it needs to walk through of of steps it needs to walk through of of steps it needs to walk through like having like a to-do.md or a like having like a to-do.md or a like having like a to-do.md or a progress.mmd. So we found these best progress.mmd. So we found these best progress.mmd. So we found these best practices that made co-pilot effective practices that made co-pilot effective practices that made co-pilot effective at code transformation. So what the xy at code transformation. So what the xy at code transformation. So what the xy transformation is is it's really just a transformation is is it's really just a transformation is is it's really just a codification of that where we have a codification of that where we have a codification of that where we have a template that has all of these sorts of template that has all of these sorts of template that has all of these sorts of best practices embedded in it. So then best practices embedded in it. So then best practices embedded in it. So then when you want to transform your code, when you want to transform your code, when you want to transform your code, let's say you've got a problem, you need let's say you've got a problem, you need let's say you've got a problem, you need to update your code to log with library to update your code to log with library to update your code to log with library Y instead of library X. Oh, instead of Y instead of library X. Oh, instead of Y instead of library X. Oh, instead of just saying to C-pilot, please update my just saying to C-pilot, please update my just saying to C-pilot, please update my code to use library Y instead of library code to use library Y instead of library code to use library Y instead of library X, what you do is you tell C-pilot, use X, what you do is you tell C-pilot, use X, what you do is you tell C-pilot, use this template that has a lot of best this template that has a lot of best this template that has a lot of best practices in it to create a prompt that practices in it to create a prompt that practices in it to create a prompt that will that will move my code from from X will that will move my code from from X will that will move my code from from X to Y. make sure you, you know, follow to Y. make sure you, you know, follow to Y. make sure you, you know, follow this template that has all these best this template that has all these best this template that has all these best practices in it. And so Copilot now practices in it. And so Copilot now practices in it. And so Copilot now makes you the prompt. Copilot doesn't makes you the prompt. Copilot doesn't makes you the prompt. Copilot doesn't make the change. Copilot makes the make the change. Copilot makes the make the change. Copilot makes the prompt. Then in a new session, you have prompt. Then in a new session, you have prompt. Then in a new session, you have Copilot execute that prompt. And it's Copilot execute that prompt. And it's Copilot execute that prompt. And it's got all these best practices like, hey, got all these best practices like, hey, got all these best practices like, hey, it's got to use this this task list. It it's got to use this this task list. It it's got to use this this task list. It has clear success criteria defined. all has clear success criteria defined. all has clear success criteria defined. all of these things that we've learned over of these things that we've learned over of these things that we've learned over the past, you know, year or two that

  24. the past, you know, year or two that the past, you know, year or two that make C-pilot effective get put into that make C-pilot effective get put into that make C-pilot effective get put into that prompt. So that it just works a lot more prompt. So that it just works a lot more prompt. So that it just works a lot more effectively than you just running in and effectively than you just running in and effectively than you just running in and like you said, just oneshotting it like you said, just oneshotting it like you said, just oneshotting it saying, "Hey, get rid of X, put in Y," saying, "Hey, get rid of X, put in Y," saying, "Hey, get rid of X, put in Y," like, "Yeah, it might work." But if if like, "Yeah, it might work." But if if like, "Yeah, it might work." But if if you use this sort of two-phase approach, you use this sort of two-phase approach, you use this sort of two-phase approach, it it it works better in our experience. it it it works better in our experience. it it it works better in our experience. >> Now, we've heard people say 10x more >> Now, we've heard people say 10x more >> Now, we've heard people say 10x more productive and other people have been productive and other people have been productive and other people have been like, "No, I'm not more productive at like, "No, I'm not more productive at like, "No, I'm not more productive at all." It seems like it it's very wildly all." It seems like it it's very wildly all." It seems like it it's very wildly ranging. Like I feel when I'm doing it ranging. Like I feel when I'm doing it ranging. Like I feel when I'm doing it I'm probably 25 to 50% more productive. I'm probably 25 to 50% more productive. I'm probably 25 to 50% more productive. >> Sure. >> Sure. >> Sure. >> But then like right now I'm not coding >> But then like right now I'm not coding >> But then like right now I'm not coding so like I'm not more productive. Like a so like I'm not more productive. Like a so like I'm not more productive. Like a lot of people don't code full-on lot of people don't code full-on lot of people don't code full-on hands-on keyboard 40 hours a week. Y hands-on keyboard 40 hours a week. Y hands-on keyboard 40 hours a week. Y >> you know I maybe get I don't know 12 >> you know I maybe get I don't know 12 >> you know I maybe get I don't know 12 hours a week I'm actually coding. Yeah. hours a week I'm actually coding. Yeah. hours a week I'm actually coding. Yeah. >> So an extra 50% that's great. That's >> So an extra 50% that's great. That's >> So an extra 50% that's great. That's giving me like a whole half a day. What giving me like a whole half a day. What giving me like a whole half a day. What what are you hearing like anecdotally what are you hearing like anecdotally what are you hearing like anecdotally from folks about whether or not they're from folks about whether or not they're from folks about whether or not they're faster in migrating with Copilot? faster in migrating with Copilot? faster in migrating with Copilot? >> It it really depends on the on the >> It it really depends on the on the >> It it really depends on the on the customer because it it varies, but yeah, customer because it it varies, but yeah, customer because it it varies, but yeah, generally customers are telling me that generally customers are telling me that generally customers are telling me that they're, you know, 25% faster or they're, you know, 25% faster or they're, you know, 25% faster or whatever it is. It does depend on the whatever it is. It does depend on the whatever it is. It does depend on the kind of work they're doing. One of the kind of work they're doing. One of the kind of work they're doing. One of the things I saw recently with a customer things I saw recently with a customer things I saw recently with a customer was that it was the senior developers was that it was the senior developers was that it was the senior developers who were telling me these 25 50% numbers who were telling me these 25 50% numbers who were telling me these 25 50% numbers and the junior developers were like, and the junior developers were like, and the junior developers were like, "Nah, it didn't make me faster." And "Nah, it didn't make me faster." And "Nah, it didn't make me faster." And when we dig in, there's I think there's when we dig in, there's I think there's when we dig in, there's I think there's a few factors that go into that. First a few factors that go into that. First a few factors that go into that. First of all, one junior developer told me, "I of all, one junior developer told me, "I of all, one junior developer told me, "I don't use C-pilot because I don't know don't use C-pilot because I don't know don't use C-pilot because I don't know what to ask it." I said, "Well, that's

  25. what to ask it." I said, "Well, that's what to ask it." I said, "Well, that's interesting." Like, you you sort of have interesting." Like, you you sort of have interesting." Like, you you sort of have to know enough about your problem space to know enough about your problem space to know enough about your problem space to know how something like GitHub to know how something like GitHub to know how something like GitHub Copilot chat's going to help you. But Copilot chat's going to help you. But Copilot chat's going to help you. But also, it depends on the kind of work also, it depends on the kind of work also, it depends on the kind of work you're doing. You know, if you're doing, you're doing. You know, if you're doing, you're doing. You know, if you're doing, you know, I think Copilot always can be you know, I think Copilot always can be you know, I think Copilot always can be involved, but how much it's going to involved, but how much it's going to involved, but how much it's going to help depends on on what it is that help depends on on what it is that help depends on on what it is that you're working on. If you're if you're you're working on. If you're if you're you're working on. If you're if you're debugging something, yeah, you'll bounce debugging something, yeah, you'll bounce debugging something, yeah, you'll bounce some ideas off of it. It helps a little some ideas off of it. It helps a little some ideas off of it. It helps a little bit, but you know, may maybe the the bit, but you know, may maybe the the bit, but you know, may maybe the the savings is more limited. If you're if savings is more limited. If you're if savings is more limited. If you're if you're generating a lot of code that, you're generating a lot of code that, you're generating a lot of code that, you know, you can describe how it's you know, you can describe how it's you know, you can describe how it's supposed to work. You can give a nice, supposed to work. You can give a nice, supposed to work. You can give a nice, you know, spec for it. Hey, Kobai can go you know, spec for it. Hey, Kobai can go you know, spec for it. Hey, Kobai can go off and it can do a whole day's worth of off and it can do a whole day's worth of off and it can do a whole day's worth of work in 20 minutes if if it's the right work in 20 minutes if if it's the right work in 20 minutes if if it's the right kind of work. Yeah, I think it's a great kind of work. Yeah, I think it's a great kind of work. Yeah, I think it's a great point and the thing that you said that I point and the thing that you said that I point and the thing that you said that I resonates the most and I think uh resonates the most and I think uh resonates the most and I think uh Marinovich and I have a paper coming out Marinovich and I have a paper coming out Marinovich and I have a paper coming out on this is that if you're junior and you on this is that if you're junior and you on this is that if you're junior and you don't even know what to ask. don't even know what to ask. don't even know what to ask. >> Yeah, >> Yeah, >> Yeah, >> that's a really tough spot to be in. So >> that's a really tough spot to be in. So >> that's a really tough spot to be in. So while we're having all these while we're having all these while we're having all these conversations about what it means for AI conversations about what it means for AI conversations about what it means for AI for the software engineering like for the software engineering like for the software engineering like discipline, we need to be thinking about discipline, we need to be thinking about discipline, we need to be thinking about how to bring early in career people in how to bring early in career people in how to bring early in career people in because the qualifications right now for because the qualifications right now for because the qualifications right now for migrating 20-year-old code is be an old migrating 20-year-old code is be an old migrating 20-year-old code is be an old programmer.

  26. programmer. programmer. >> Yeah. >> Yeah. >> Yeah. >> And that's not very fair to everybody, >> And that's not very fair to everybody, >> And that's not very fair to everybody, you know. you know. you know. >> It's not, >> It's not, >> It's not, >> you know, like how do you know that? >> you know, like how do you know that? >> you know, like how do you know that? Well, back in the early day, you know, Well, back in the early day, you know, Well, back in the early day, you know, like that's not so how do we bring how like that's not so how do we bring how like that's not so how do we bring how do we use AI to augment the knowledge of do we use AI to augment the knowledge of do we use AI to augment the knowledge of the early in career person? Because I'd the early in career person? Because I'd the early in career person? Because I'd love to have a 25year-old or someone love to have a 25year-old or someone love to have a 25year-old or someone who's got 5 years experience who's got 5 years experience who's got 5 years experience >> go on a customer engagement with you >> go on a customer engagement with you >> go on a customer engagement with you >> and have success y >> and have success y >> and have success y >> but also have the AI teach them >> but also have the AI teach them >> but also have the AI teach them >> and accelerate their learning. And that >> and accelerate their learning. And that >> and accelerate their learning. And that that I think is a tough spot to be in. that I think is a tough spot to be in. that I think is a tough spot to be in. >> Yeah. No, no doubt. Yeah. Yeah, I mean >> Yeah. No, no doubt. Yeah. Yeah, I mean >> Yeah. No, no doubt. Yeah. Yeah, I mean that's that's a challenge. Let me know that's that's a challenge. Let me know that's that's a challenge. Let me know when that paper's ready. I'd love to when that paper's ready. I'd love to when that paper's ready. I'd love to read it because uh it's something I read it because uh it's something I read it because uh it's something I don't know that I have an answer to, but don't know that I have an answer to, but don't know that I have an answer to, but I I'm sure as as AI improves, it'll be I I'm sure as as AI improves, it'll be I I'm sure as as AI improves, it'll be better able to help help people better able to help help people better able to help help people understand its capabilities, what what understand its capabilities, what what understand its capabilities, what what they need to know. But yeah, it's a hard they need to know. But yeah, it's a hard they need to know. But yeah, it's a hard problem that I think we're going to have problem that I think we're going to have problem that I think we're going to have to, you know, iterate on till we figure to, you know, iterate on till we figure to, you know, iterate on till we figure out a good path forward. out a good path forward. out a good path forward. >> Well, I think it all comes down to >> Well, I think it all comes down to >> Well, I think it all comes down to exposure. Like you you can't be exposure. Like you you can't be exposure. Like you you can't be successful unless you get exposed to successful unless you get exposed to successful unless you get exposed to these things. So you you as a customer these things. So you you as a customer these things. So you you as a customer engagement person are getting to spend engagement person are getting to spend engagement person are getting to spend time with a customer. So you know more time with a customer. So you know more time with a customer. So you know more than you know you and your team know than you know you and your team know than you know you and your team know more than anybody more than anybody more than anybody >> Yeah.

  27. >> Yeah. >> Yeah. >> what it's like out there in the in the >> what it's like out there in the in the >> what it's like out there in the in the real world. I still remember what it was real world. I still remember what it was real world. I still remember what it was like to not work for Microsoft. So I like to not work for Microsoft. So I like to not work for Microsoft. So I have so much empathy when I go into a have so much empathy when I go into a have so much empathy when I go into a customer and I like, oh man, customer and I like, oh man, customer and I like, oh man, >> I I know what this code looks like and I >> I I know what this code looks like and I >> I I know what this code looks like and I know how it happened and I know I know know how it happened and I know I know know how it happened and I know I know all the I know all the office politics all the I know all the office politics all the I know all the office politics that got us. that got us. that got us. >> Yeah. Yeah. you've been there. You you >> Yeah. Yeah. you've been there. You you >> Yeah. Yeah. you've been there. You you know how you end up with that sort of a know how you end up with that sort of a know how you end up with that sort of a solution and solution and solution and >> Yeah. It's got to be very satisfying to >> Yeah. It's got to be very satisfying to >> Yeah. It's got to be very satisfying to get it uh to get it in production and a get it uh to get it in production and a get it uh to get it in production and a lot of those apps that you did in this lot of those apps that you did in this lot of those apps that you did in this engagement are in production now. engagement are in production now. engagement are in production now. >> They are. Yeah. And that's one of the >> They are. Yeah. And that's one of the >> They are. Yeah. And that's one of the things we love to see is just sort of things we love to see is just sort of things we love to see is just sort of the you know crossing the finish line the you know crossing the finish line the you know crossing the finish line getting something running in Azure getting something running in Azure getting something running in Azure running on at 10 or you know if it's a running on at 10 or you know if it's a running on at 10 or you know if it's a PF question you know seeing that you PF question you know seeing that you PF question you know seeing that you know 2x perf gain or whatever it is to know 2x perf gain or whatever it is to know 2x perf gain or whatever it is to say like wow yeah that's you know hey say like wow yeah that's you know hey say like wow yeah that's you know hey there's real value there and it's yeah there's real value there and it's yeah there's real value there and it's yeah that's yeah that's always how software that's yeah that's always how software that's yeah that's always how software development is though when when you run development is though when when you run development is though when when you run your app and you actually see it do the your app and you actually see it do the your app and you actually see it do the thing that it's supposed to do it's you thing that it's supposed to do it's you thing that it's supposed to do it's you know that that's the time when you when know that that's the time when you when know that that's the time when you when you love this job. you love this job. you love this job. >> Fantastic. Well thanks so much Mike >> Fantastic. Well thanks so much Mike >> Fantastic. Well thanks so much Mike Russos for hanging out with me today.

  28. Russos for hanging out with me today. Russos for hanging out with me today. >> Yeah my pleasure. Thank you Scott. This >> Yeah my pleasure. Thank you Scott. This >> Yeah my pleasure. Thank you Scott. This has been another episode of Hansel has been another episode of Hansel has been another episode of Hansel Minutes and we'll see you again next Minutes and we'll see you again next Minutes and we'll see you again next week.

Summary

The discussion revolves around specialized tools for developers, contrasting them with generic screen sharing solutions like Teams or Zoom. It highlights the need for efficient collaboration in programming, mentioning Tupil as a tool designed specifically for this, offering features like one-click annotations and shared control meant to reduce communication overhead. The takeaway is that for developers who engage in pair programming, dedicated tools like Tupil are significantly more effective and improve the overall coding experience.

View original episode ↗