Transcript: Cursor for AI-Driven Development: How To Use It For Maximum ROI Webinar

1
00:01:02.950 –> 00:01:12.279
Jeffrey Palermo: Hello, hello, welcome to today’s training. I’m excited about this topic, and we have a tremendous amount of interest in this one.

2
00:01:12.680 –> 00:01:32.210
Jeffrey Palermo: And, we’re excited about this one, too, because we’re an implementation partner for Cursor, recently acquired by SpaceX, and so, we’re helping clients adopt AI-driven development with Cursor, and I want to showcase today

3
00:01:32.290 –> 00:01:48.860
Jeffrey Palermo: all the different aspects of how to use Cursor put, but most importantly, how to get the most out of it when using AI-driven development, and when really up-leveling the team’s capacity to deliver world-class results. So, we have a lot to cover.

4
00:01:49.090 –> 00:01:54.890
Jeffrey Palermo: And we only have a short time to do it in, and so, I’m gonna… I’m gonna get going.

5
00:01:55.150 –> 00:02:10.099
Jeffrey Palermo: Now, using Cursor doesn’t automatically make your software faster, just like every AI tool. It doesn’t automatically make your software faster, or safer, or more stable. How you architect around it does, and…

6
00:02:10.389 –> 00:02:15.329
Jeffrey Palermo: I’ve been… I’ve been helping teams, get better and deliver world-class results.

7
00:02:15.390 –> 00:02:30.330
Jeffrey Palermo: For my entire, consulting career. I’ve been in consulting for over, for, 20 years, and, I’ve been, I’ve been, developing software for almost 30. And so,

8
00:02:30.330 –> 00:02:38.739
Jeffrey Palermo: I want to steer you away from some of the rookie mistakes and point you in the right direction. You’re gonna walk away knowing how to delegate the right work to Cursor.

9
00:02:38.740 –> 00:02:54.160
Jeffrey Palermo: Versus staying, staying hands-on, typing the code yourself, how to delineate between those, how to measure whether quality and stability and delivery speed are actually improving, and how to report return on investment to leadership

10
00:02:54.400 –> 00:02:58.040
Jeffrey Palermo: In, in terms… in terms that, really make sense.

11
00:02:58.370 –> 00:03:12.090
Jeffrey Palermo: So, what we’re gonna cover. We’re gonna cover the Cursor platform, all the different flavors, everything around it. We’re gonna cover AI-driven development, and then we’re gonna put the two together, and we’re gonna cover the software factory pattern

12
00:03:12.130 –> 00:03:27.630
Jeffrey Palermo: which, implemented in your team, in your software organization, brings all these related concepts together to actually turbocharge your software delivery. So, there’s a lot in there. Alright, starting out.

13
00:03:29.340 –> 00:03:39.990
Jeffrey Palermo: AI, it’s an era in software development, but it’s not just another tool or technology. It’s a new paradigm.

14
00:03:40.180 –> 00:03:47.880
Jeffrey Palermo: Each of these prior transitions has really reshaped how teams build software, and AI is a… it’s kind of a change…

15
00:03:48.080 –> 00:03:49.729
Jeffrey Palermo: in, in, in…

16
00:03:50.190 –> 00:04:06.710
Jeffrey Palermo: what software is, not just… not just a little detail. And so, let me walk through the transitions really briefly. With the internet transition, we connected all computers. Before then, computers weren’t… weren’t perpetually connected. And Agile.

17
00:04:06.710 –> 00:04:22.160
Jeffrey Palermo: When Agile started, we focused on smaller batches, and it helped us realize that we don’t know the right answer for which feature or software behaviors is gonna work in the marketplace. We have to test, we have to iterate, and the users in the marketplace are the testbed.

18
00:04:22.160 –> 00:04:27.609
Jeffrey Palermo: In the mobile transition, we went to all-time computing. We took the computer with us, it was in our pocket.

19
00:04:27.610 –> 00:04:37.509
Jeffrey Palermo: With the DevOps transition, we began extending everything we learned with the Agile engineering practices to Agile system administration.

20
00:04:37.530 –> 00:04:47.999
Jeffrey Palermo: We learned how to apply small changes to infrastructure as well. And as an industry, we learned the beginnings of dynamic scaling and safe server and infrastructure changes.

21
00:04:48.190 –> 00:05:07.900
Jeffrey Palermo: With the cloud transition, we learned on-demand infrastructure. Every prior era has required kind of a special person who knew the language of the computer, and our job was to make the software speak the language of the business, because computers inherently speak a specific language that software engineers, us, we had to know, we’ve learned.

22
00:05:07.900 –> 00:05:18.949
Jeffrey Palermo: And even simple informational websites for mom-and-pop businesses had to be painstakingly coded by someone who knew programming. Well, now we have

23
00:05:19.100 –> 00:05:26.400
Jeffrey Palermo: this era of artificial intelligence, which is the GPT era, generative pre-trained transformer with the language models.

24
00:05:26.660 –> 00:05:40.949
Jeffrey Palermo: Where computers can simulate language, and this bridges so many scenarios. Programs can simulate speaking in languages all around the world, and really any task that requires generating text

25
00:05:41.240 –> 00:05:56.259
Jeffrey Palermo: is open to this world now. And so, we can now stitch together many computer tasks into full workflows, and the whole world is discovering how to automate more and more, and certainly.

26
00:05:56.640 –> 00:06:00.920
Jeffrey Palermo: Certainly with, with custom software. Okay. So…

27
00:06:01.830 –> 00:06:05.770
Jeffrey Palermo: Let me bring a big idea, big idea.

28
00:06:05.900 –> 00:06:17.399
Jeffrey Palermo: The surgical team returns and is here. The old Fred Brooks’ surgical team model, if you haven’t read the book by Fred Brooks, The Mythical Man Month, I highly recommend that you do it.

29
00:06:17.890 –> 00:06:24.179
Jeffrey Palermo: And… and basically the premise of that is, in an operating room, you have

30
00:06:24.180 –> 00:06:39.340
Jeffrey Palermo: two competent professionals, two surgeons, with the hands in the patient. And there’s kind of only room for a small number of hands in the patients, but the room is also filled with other roles that are important to make sure the surgery goes well.

31
00:06:39.350 –> 00:06:40.670
Jeffrey Palermo: But you have…

32
00:06:40.850 –> 00:06:55.769
Jeffrey Palermo: two people who know how the inside of the body intimately works and the hands in the patient. Same thing with software. You have a small number of people with the fingers and the code in the software, but then you have other roles that help make sure that the project goes well.

33
00:06:56.150 –> 00:06:59.810
Jeffrey Palermo: Okay, and so, I wanna…

34
00:06:59.940 –> 00:07:10.910
Jeffrey Palermo: bring that into some… some really timely research by McKinsey and Company, and I’ve included the link at the bottom of this slide. And…

35
00:07:11.780 –> 00:07:18.580
Jeffrey Palermo: it’s a great article based on some research called Rewiring Software Delivery for the Agentic Era.

36
00:07:18.580 –> 00:07:33.580
Jeffrey Palermo: And it was just in May of 2026, very recent, and it’s talking about the micro teams, the software pods, the feature teams, really being a very, very small number of people for a particular outcome.

37
00:07:33.890 –> 00:07:48.819
Jeffrey Palermo: And that… that comprises the software organization. So you might have a big software operation, but then you take a major feature, and then you put in there a… you put in there a small number of people.

38
00:07:48.920 –> 00:07:49.830
Jeffrey Palermo: And…

39
00:07:50.510 –> 00:08:05.600
Jeffrey Palermo: work like that. And so, how it might work is you have a market expert, you might call them product manager, or whatever title you have for them, but you have… you have a market expert, and you pair them with a technology expert, and that could be a pod.

40
00:08:05.600 –> 00:08:15.780
Jeffrey Palermo: And that’s just two, and maybe you have three, but a lot of teams are adopting this two-person per pod for, kind of, feature teams or feature pods.

41
00:08:15.780 –> 00:08:39.590
Jeffrey Palermo: Where you have someone who’s really, really a subject matter expert on the market, on the way the users need to use it, and then you have a software engineer, a technology expert who actually understands what’s going on under the covers, and that pod is responsible for a feature, and now that so many constraints of the mechanics are really going away.

42
00:08:39.590 –> 00:08:43.830
Jeffrey Palermo: with AI tools like Cursor, that…

43
00:08:43.860 –> 00:08:47.229
Jeffrey Palermo: Teams are adopting this with great success, okay?

44
00:08:47.360 –> 00:08:48.280
Jeffrey Palermo: Now.

45
00:08:48.420 –> 00:09:06.690
Jeffrey Palermo: So, I want to talk about what is a software factory, because this is where we bring it together. I want you to understand what I mean when I say software factory. Well, let’s talk about factory first. The Cambridge Dictionary defines factory, a little bit of paraphrase, it has a little bit to this, but it’s a place where large amounts of goods are made using machines.

46
00:09:06.790 –> 00:09:12.489
Jeffrey Palermo: And I want to focus on the word machines, because we are there.

47
00:09:12.490 –> 00:09:28.210
Jeffrey Palermo: You don’t put a human inside the machine, experts design the machines, and then we place them in the right spot. We feed them raw materials, we keep them running. So AI-driven development raises the bar for senior engineering expertise.

48
00:09:28.590 –> 00:09:35.160
Jeffrey Palermo: Way back in early 2000s, there were some people who tried to float the idea of a software factory

49
00:09:35.450 –> 00:09:54.689
Jeffrey Palermo: that was basically based on cheap labor and a software factory comprised of people doing highly standardized things. It didn’t work, and it fizzled out. And so, for those of you who were not working in the early 2000s, you don’t know what I’m talking about, because you don’t remember it. But there was a concept.

50
00:09:54.690 –> 00:10:04.319
Jeffrey Palermo: Factories are machines. Well, now, with artificial intelligence, the different ways… the different machines of the Cursor platform, we have the machines

51
00:10:04.460 –> 00:10:09.999
Jeffrey Palermo: actually necessary to create a software factory, alright? So…

52
00:10:10.150 –> 00:10:18.569
Jeffrey Palermo: You know, anytime a factory is constructed, we put together assembly lines of these machines.

53
00:10:18.570 –> 00:10:30.450
Jeffrey Palermo: And they have to keep going, and they have to be fed, and they have to be organized, they have to be maintained, and so the actual engineers who design and operate these machines-intensive factories

54
00:10:30.510 –> 00:10:43.879
Jeffrey Palermo: are very senior engineers who know what they’re doing, and so… and so that’s super important with an AI software factory, and I’m gonna highlight that a little bit more. Okay, before we get into our first demo.

55
00:10:44.500 –> 00:10:58.430
Jeffrey Palermo: I want to talk about kind of the flow of the assembly line. First, you have the backlog, and then you go into your software development lifecycle, and that produces release candidates of software that get deployed to

56
00:10:58.430 –> 00:11:07.250
Jeffrey Palermo: different environments, of course, all the way to production, where the users are using the software. And so, our factory, what does it have? It has machines, and each machine is in a station of work.

57
00:11:07.280 –> 00:11:14.610
Jeffrey Palermo: And so we deploy those machines, we need them to run reliably. No factory can output good finished goods

58
00:11:14.700 –> 00:11:24.589
Jeffrey Palermo: using unreliable machines. And so, we’ve all seen where you put a prompt into a large language model, and you basically get back

59
00:11:24.800 –> 00:11:41.220
Jeffrey Palermo: slop. You get back stuff that’s not usable, it’s not good, and so we can’t have that. We can’t have an unreliable machine just giving us code that we don’t like, right? So we have to build this so that we get

60
00:11:41.390 –> 00:11:49.080
Jeffrey Palermo: Designs, and tests, and code, and scripting, and all… so that we like what we get.

61
00:11:49.380 –> 00:11:51.000
Jeffrey Palermo: And… and…

62
00:11:51.200 –> 00:12:08.669
Jeffrey Palermo: for a software factory, we apply DevOps thinking, and then we add the AI automation. And the assembly line in the factory is a series of stations of work. Each station has exit criteria for what it means to have good output from that station of work.

63
00:12:08.740 –> 00:12:20.030
Jeffrey Palermo: then we automate the evaluation of that exit criteria, because some people are talking about human in the loop. Well, my view of human in the loop is

64
00:12:20.380 –> 00:12:21.680
Jeffrey Palermo: a person

65
00:12:21.840 –> 00:12:30.409
Jeffrey Palermo: operating the machines of the software factory. Not… not doing part of the work, but operating it. If you are

66
00:12:30.750 –> 00:12:39.110
Jeffrey Palermo: If you are operating, adaptive cruise control in your car, yes, you’re making sure that it’s doing the right thing.

67
00:12:39.240 –> 00:12:54.619
Jeffrey Palermo: But you take your foot off of the accelerator, okay? So, human in the loop doesn’t mean that you’re still pressing the accelerator. Human in the loop means that you’re kind of… you’re aware. You’re in the loop, you’re in the know, okay? That’s how I think about it.

68
00:12:54.660 –> 00:13:13.459
Jeffrey Palermo: And you want all of the work to be visible. So, we need to measure the entire assembly line, and that learning fuels improvements, and we improve the machines on the assembly line, and the process, and the exceptions that might happen from time to time. And so, when we operate this, we’re dealing with exceptions. We’re not…

69
00:13:13.460 –> 00:13:18.849
Jeffrey Palermo: the worst thing… the worst idea that I’ve seen surfaced is that

70
00:13:19.150 –> 00:13:27.169
Jeffrey Palermo: our software engineers are going to be reviewing pull requests. To me, That is impractical.

71
00:13:27.530 –> 00:13:34.840
Jeffrey Palermo: The… the productivity that we get, it increases the rate of pull requests, and if…

72
00:13:35.030 –> 00:13:37.380
Jeffrey Palermo: I am going to have to personally

73
00:13:37.580 –> 00:13:40.709
Jeffrey Palermo: Review every single pull request.

74
00:13:40.980 –> 00:13:54.129
Jeffrey Palermo: then, well, now I’m just a different bottleneck. And I’ll tell you one thing, the type of software engineers that I have hired for my entire career, if I told them that their job is now,

75
00:13:54.490 –> 00:14:07.689
Jeffrey Palermo: to review pull requests of code that is written by AI, two things are gonna happen. One, some of them are gonna say, no, I’m not gonna do that, I’m gonna quit. Go to another company, okay? And the others are gonna say.

76
00:14:07.820 –> 00:14:09.360
Jeffrey Palermo: No, I’m not gonna do that.

77
00:14:09.540 –> 00:14:12.970
Jeffrey Palermo: But I’ll build a machine that does it automatically and does it well.

78
00:14:13.040 –> 00:14:32.729
Jeffrey Palermo: But either way, I’m still not doing that, okay? So, one of the dumbest ideas that I’ve… that I’ve heard, is that real software engineers are going to be personally reviewing the pull requests. Now, do we still need to ensure that everything is good? Yes, we do. I’ll come back to that later, later, later on.

79
00:14:32.990 –> 00:14:51.519
Jeffrey Palermo: But we need to make sure that all the work is visible. And then we run through small batches of work, we learned that from Agile way back two decades ago, and we focus on continuous flow, we learned that with Kanban, and so we continue to apply that. And in the AI software factory, we automate 95% of the work, and we’re gonna see

80
00:14:51.620 –> 00:15:07.340
Jeffrey Palermo: what that might look like, and how that might be implemented using the Cursor platform. Okay, we’re gonna demo. So, we’re gonna demo, a regular work tracking board, we’re gonna use GitHub Projects for that, and…

81
00:15:07.720 –> 00:15:20.780
Jeffrey Palermo: We’re gonna show… we’re gonna show continuous flow, we’re gonna… we’re gonna show some skills and, using sub-agents, the command line flavor, we’re gonna… we’re gonna talk about the… the, iPhone flavor of Cursor.

82
00:15:20.780 –> 00:15:34.090
Jeffrey Palermo: We’re gonna talk about how to handle production incidents, we’re gonna also, integrate the Cursor Grokbot team, and we’re gonna have lots of things running in parallel. So, why don’t we… why don’t we get into the demo?

83
00:15:34.110 –> 00:15:42.100
Jeffrey Palermo: Alright? And I’m gonna show you a really quick, application that we’re operating on, just so that you have context.

84
00:15:42.150 –> 00:15:49.689
Jeffrey Palermo: Okay, so let me… Let me pull up… this application here.

85
00:15:49.900 –> 00:16:08.409
Jeffrey Palermo: Top, okay. So, here’s the application, by the way, log out, log in. I can log in as someone, I have a… just for a demo application, there’s no password in this. We’re going to log in as Timothy Lovejoy. And for those of you who are fans of The Simpsons, you’ll recognize the theme of the first Church of Springfield.

86
00:16:08.620 –> 00:16:19.490
Jeffrey Palermo: With the, Reverend Timothy Lovejoy, and we can create… we can create work orders, we can assign it to Groundskeeper Willie, to, you know, mow the grass.

87
00:16:19.770 –> 00:16:25.819
Jeffrey Palermo: And… and we can do all that. That’s, that’s basically a very simple, simple…

88
00:16:26.220 –> 00:16:29.750
Jeffrey Palermo: application. Of course, we have an AI agent, you know, have…

89
00:16:30.510 –> 00:16:41.249
Jeffrey Palermo: And do you really mow the grass? And we can just create a work order like that, and should come back pretty quick. And then when it does, we can go to the search screen.

90
00:16:41.360 –> 00:16:48.370
Jeffrey Palermo: And we can see… that they’re creating a sign, okay, E10E, and my work orders…

91
00:16:48.620 –> 00:17:01.359
Jeffrey Palermo: Go to the bottom, E1E, that’s the one we just created, mow the grass. Okay, that was our little AI agent. Okay, that simple application, it has SQL Server on the back end, it’s running in Azure, and…

92
00:17:02.650 –> 00:17:13.020
Jeffrey Palermo: that’s basically it. So… Let’s, let’s go through… Let me… Pull up…

93
00:17:15.740 –> 00:17:17.369
Jeffrey Palermo: Alright, let me pull up the Kanban board.

94
00:17:17.730 –> 00:17:24.629
Jeffrey Palermo: So… we’ve got some things going, some work items that we’ll come back to, but let me just show one thing. Alright, so we have our application.

95
00:17:24.630 –> 00:17:44.830
Jeffrey Palermo: And here it’s running, and here is the health check. Let me just refresh that. Let me show production incidents. So, in AI Software Factory, one of the things you want to automate is making sure everything’s healthy. So, I’m going to click a button off to the side that’s basically going to trash one of the processes in the environment, and so if I come back and refresh this…

96
00:17:44.830 –> 00:17:51.260
Jeffrey Palermo: We can see that, okay, server health check, unhealthy. Server health check returns, blah blah blah, there we go.

97
00:17:51.310 –> 00:17:55.689
Jeffrey Palermo: And if we look at… Can’t we look at detailed?

98
00:17:55.900 –> 00:18:06.240
Jeffrey Palermo: We might actually… the other URL… I need to go to… E… Server health check.

99
00:18:06.790 –> 00:18:22.340
Jeffrey Palermo: And there we go, the one that’s unhealthy, memory is corrupted, restart the process. So if we go to the Kanban board, we can see that a production incident has already been detected, already been filed as a production incident with the tag.

100
00:18:22.800 –> 00:18:32.179
Jeffrey Palermo: And then, a cursor session, a Cursor cloud session through the SDK has already been assigned, and it’s journaling through the comments.

101
00:18:32.180 –> 00:18:45.939
Jeffrey Palermo: And I can click on that, and I can actually see on Cursor.com, I can actually see the session, and if I come back, it happens pretty quick, but all we have to do is kind of, you know, bump the server, hey, something happened, restart something, and then we’re back to healthy.

102
00:18:45.940 –> 00:18:50.559
Jeffrey Palermo: And so, we’ll come back to that, because it should happen… it should happen pretty quick, actually.

103
00:18:50.610 –> 00:19:00.660
Jeffrey Palermo: I think it finished. Well, let’s… let’s make sure. Let’s refresh this, and… oh, yep, it’s healthy, and so if we come back to our…

104
00:19:00.890 –> 00:19:02.610
Jeffrey Palermo: health check.

105
00:19:03.120 –> 00:19:13.970
Jeffrey Palermo: then we should see healthy, and there we go. Healthy, okay. So that’s a production incident where there’s all kinds of things that just little things that happen, and we can… we can spawn

106
00:19:14.120 –> 00:19:19.600
Jeffrey Palermo: We can spawn, through the Cursor SDK, Cursor cloud agents that do things

107
00:19:19.600 –> 00:19:41.619
Jeffrey Palermo: and then, of course, just automatically move the card over. What’s important with an AI software factory is that the software development lifecycle and the process that you have figured out what works for your organization, that that process be followed exactly. We’re not creating a new process because we’re automating more of it with AI. We are automating

108
00:19:41.660 –> 00:19:42.700
Jeffrey Palermo: The…

109
00:19:42.780 –> 00:19:55.169
Jeffrey Palermo: process. And so, putting… putting a production incident on the board, on release queue, is what this team has done, right next to the, you know, production. It doesn’t need to go back through the development, but…

110
00:19:55.350 –> 00:20:03.290
Jeffrey Palermo: and release, and then we work it, and we resolve it, and then we move it to done, okay? So that’s… that’s…

111
00:20:03.400 –> 00:20:07.960
Jeffrey Palermo: tracking. Now, if we were to, if we were to…

112
00:20:08.280 –> 00:20:17.669
Jeffrey Palermo: turn on, you know, this SDK under the covers, you know, I might say, add work order constructions as a new field. Okay, I can do labels.

113
00:20:17.710 –> 00:20:30.800
Jeffrey Palermo: I can say that, we are going to… is this ready to move? Yeah. I have a few labels, and I have… I have some, you know, my AI factory… AI software factory scripts running under the covers.

114
00:20:30.830 –> 00:20:44.169
Jeffrey Palermo: And so, add work order, this is, what, 9153, and, you know, it should pick it up and delegate it to the Cursor SDK under the covers, start a cloud agent, and just start working, working that one.

115
00:20:44.410 –> 00:20:51.779
Jeffrey Palermo: In addition, In addition, I can… if I move this over…

116
00:20:51.880 –> 00:20:56.659
Jeffrey Palermo: And I’m gonna pop up the Cursor CLI, the Cursor agent, okay?

117
00:20:57.120 –> 00:20:58.870
Jeffrey Palermo: And I’m gonna open this guy.

118
00:21:02.070 –> 00:21:14.269
Jeffrey Palermo: There we go, and so what I’m gonna do, make sure I’m configured… I have this configured with access to the board. I’m gonna take another one, make the login… let’s see, what is this? 91…

119
00:21:14.770 –> 00:21:21.300
Jeffrey Palermo: Yeah, 9155. Okay, let’s do that one. And I have some skills here, I’ll do, I’ll do…

120
00:21:21.470 –> 00:21:31.260
Jeffrey Palermo: work 9155 with Feature Loop, okay? And so, I can… I can set that in motion.

121
00:21:32.260 –> 00:21:33.700
Jeffrey Palermo: Alright, what’s another one?

122
00:21:33.840 –> 00:21:42.340
Jeffrey Palermo: Because I want to take… and that’s… that’s gonna go. But I want to take another… where’s my other terminal?

123
00:21:43.920 –> 00:21:47.740
Jeffrey Palermo: Okay, here’s another terminal, and I’m actually going to use…

124
00:21:47.880 –> 00:21:52.540
Jeffrey Palermo: the remote. I’m gonna… I’m going to create a local worker.

125
00:21:52.640 –> 00:21:58.099
Jeffrey Palermo: So that I can use this computer for multiple agents. And by the way, let me pause.

126
00:21:58.230 –> 00:22:00.320
Jeffrey Palermo: You see this, the command line.

127
00:22:00.680 –> 00:22:08.399
Jeffrey Palermo: It is mapping to my existing software development lifecycle, the… the…

128
00:22:08.620 –> 00:22:24.049
Jeffrey Palermo: columns on my board, conceptual definition, user experience design, technical design, test design, development, functional testing. What’s… and then… and it’s starting, okay? So, what’s important with any board is that your coding column is in the middle.

129
00:22:24.510 –> 00:22:33.670
Jeffrey Palermo: Alright, let me take an aside. Your coding column is in the middle, and if I shrink this down, and then you want to have a mirror on either side. The items…

130
00:22:33.810 –> 00:22:40.450
Jeffrey Palermo: The columns to the left of the column where you write the code, you do a feature branch, you write the code, you do a pull request.

131
00:22:40.820 –> 00:22:43.110
Jeffrey Palermo: The coding column, we call it development.

132
00:22:43.460 –> 00:22:47.489
Jeffrey Palermo: The columns to the left of it are making decisions about

133
00:22:48.300 –> 00:23:02.060
Jeffrey Palermo: what we want. We’re making design decisions, and so conceptual definition is you’re thinking about the, you know, what’s the concept here? What’s the overall business requirements, the business goal? Then UX design is, how do I want someone to

134
00:23:02.100 –> 00:23:20.019
Jeffrey Palermo: use the software, and then technical design is, how am I gonna make this actually happen and technically work? And let me start breaking down the technical work to make it happen. And then the test design owns the definition of done. It’s like, okay, when this is all done, when this is actually in place.

135
00:23:20.110 –> 00:23:30.309
Jeffrey Palermo: how am I going to test it to verify that it is complete and works the way that we said it should work? And armed with all of those decisions?

136
00:23:30.310 –> 00:23:53.579
Jeffrey Palermo: then it’s pretty clear what code to write. And then after the fact, you see we have validation or testing columns that basically mirror the design decisions that we made before development. First, we’re going to test that it functions and is complete, then we’re going to test the user experience from a market or product perspective, and then the release queue, we’re gonna test to make sure that it’s actually going to work

137
00:23:53.580 –> 00:23:58.799
Jeffrey Palermo: Downstream that it’s releasable, open telemetry, observability, all those things.

138
00:23:59.190 –> 00:23:59.990
Jeffrey Palermo: Okay.

139
00:24:00.120 –> 00:24:07.879
Jeffrey Palermo: So, you saw one was moving across the board. And then you can see the, 9155…

140
00:24:08.400 –> 00:24:11.540
Jeffrey Palermo: is… is kind of in UX design. Alright.

141
00:24:12.410 –> 00:24:18.950
Jeffrey Palermo: So… let’s go here, let me… Let me… start this…

142
00:24:20.860 –> 00:24:34.329
Jeffrey Palermo: Okay, and this makes… this makes my computer, which is quite powerful, most of the computers that you’re using are quite powerful, it makes your computer, the runner. So, now I have on… I have my…

143
00:24:34.470 –> 00:24:39.069
Jeffrey Palermo: I’m gonna pull up my… Pull up my phone…

144
00:24:39.830 –> 00:24:42.570
Jeffrey Palermo: And I am going to move over…

145
00:24:42.890 –> 00:24:47.020
Jeffrey Palermo: the camera, this is my… this is my phone, and now, when I go…

146
00:24:47.230 –> 00:24:53.230
Jeffrey Palermo: here, instead of selecting a cloud environment, I can see that one of my desktop computers

147
00:24:53.760 –> 00:24:57.619
Jeffrey Palermo: is available, and I can…

148
00:24:57.840 –> 00:25:04.150
Jeffrey Palermo: you know, dispatch another work item. And I actually didn’t get a number. What work item do I want to dispatch to this guy?

149
00:25:04.260 –> 00:25:09.729
Jeffrey Palermo: let’s do… let’s do one of these APIs. 9158.

150
00:25:10.060 –> 00:25:20.690
Jeffrey Palermo: Okay, so… Work… 9158… Actually, I can be… I can be more terse than that.

151
00:25:21.080 –> 00:25:22.119
Jeffrey Palermo: I can say…

152
00:25:22.700 –> 00:25:33.739
Jeffrey Palermo: feature loop. And that’s… that’s one of my skills that kind of defines my software delivery lifecycle. And by the way, you notice that I’m using… you notice that I’m using auto cost for the model?

153
00:25:33.830 –> 00:25:46.940
Jeffrey Palermo: when you put in place all of these stations of work and your quality gates and organize the AI DevOps environment properly, you actually unlock the power of

154
00:25:47.050 –> 00:26:05.910
Jeffrey Palermo: all of the models that are not the most expensive ones, and they’re really useful. But if you don’t have any of that structure in place, the only way to get reasonable output, and it’s still not perfect, is by spending… way overspending on the most expensive models.

155
00:26:06.310 –> 00:26:16.650
Jeffrey Palermo: Okay, so we can see that it’s now working, and it’s actually using a sub-agent that we’re showing here. Alright, so that’s…

156
00:26:16.780 –> 00:26:29.570
Jeffrey Palermo: So that’s basically the iPhone, and we’re using our computer. That’s one flavor of it. So let me pull this back over, and you can see this just… this just kind of sits in your terminal, and you can walk away, you can… you can…

157
00:26:29.870 –> 00:26:31.180
Jeffrey Palermo: You can,

158
00:26:31.900 –> 00:26:39.179
Jeffrey Palermo: make your computer available if it has some specific things, if it has, you know, a Docker setup that’s specific for you or whatnot.

159
00:26:39.180 –> 00:26:58.050
Jeffrey Palermo: And… or if your computer, you have some, you know, some .NET user secrets on your computer that you want to use for some things, you can set this and walk away, and you can go to the gym with your… go to the gym with your smartphone, and you can just be exploring some things. And actually, I did that last night, I do it quite a bit.

160
00:26:58.050 –> 00:27:05.189
Jeffrey Palermo: Just to be able to have my computer at my disposal, but an easy interface with it from the iPhone.

161
00:27:05.440 –> 00:27:12.460
Jeffrey Palermo: Okay, so that’s another flavor, and we’re also going to…

162
00:27:13.800 –> 00:27:18.540
Jeffrey Palermo: Click away from here, and this login button, it’s gone to technical design.

163
00:27:18.670 –> 00:27:22.279
Jeffrey Palermo: I want you to see that while it’s happening.

164
00:27:22.470 –> 00:27:30.599
Jeffrey Palermo: we have more information being augmented in this work item. And so, Most of you have… have…

165
00:27:30.670 –> 00:27:41.789
Jeffrey Palermo: built up a… built up some context in a session window, and the problem with that is that you have to have everything in a single session. But once you start using sub-agents.

166
00:27:41.790 –> 00:27:51.450
Jeffrey Palermo: you take advantage of all this optimization, but you still have to have the context of what you’re working on available. And so I found

167
00:27:51.450 –> 00:28:08.640
Jeffrey Palermo: that… and not just I… everybody’s finding that the actual work item in your work tracking system… well, guess what? If you’re doing everything manually without AI tools, you’re going to put the context of what you think about this item in the work item.

168
00:28:08.640 –> 00:28:18.969
Jeffrey Palermo: So if we’re simulating our current process, then what should the AI tools use? The AI tools should put the accumulated context and information about

169
00:28:19.370 –> 00:28:28.150
Jeffrey Palermo: How we’re working this work item in the work item, and you can see we have a comment, and of course it’s using my identity here.

170
00:28:28.150 –> 00:28:39.559
Jeffrey Palermo: A comment with conceptual definition, a comment with user experience design, and that… oh, it’s complete. A comment with the technical design, we… the AI tool

171
00:28:39.670 –> 00:28:54.930
Jeffrey Palermo: The Cursor session inspected the existing code and determined where… what tasks would need to be appropriate, and even might have suggested some prototype CSS code. You can have it be as verbose or as terse as you want.

172
00:28:54.930 –> 00:29:10.140
Jeffrey Palermo: And, you know, some things… oh, these are out of scope, so no big deal on that, so technical design is complete. Oh, look, test design just got posted while we were looking at it, and so it’s even specifying… actually, this text is kind of small for you guys.

173
00:29:10.230 –> 00:29:13.770
Jeffrey Palermo: It’s even specifying If we go back down to Test Design.

174
00:29:15.760 –> 00:29:27.340
Jeffrey Palermo: some candidate tests, okay? And what the… what the test should do for the full system acceptance tests that actually click on links using Playwright and whatnot.

175
00:29:27.970 –> 00:29:39.130
Jeffrey Palermo: All right. So, by the way, this is a lot. For questions, throw them in, throw them in the, chat or the Q&A panel, and I’ll make sure to get to them. Alright, so that’s…

176
00:29:39.310 –> 00:29:44.099
Jeffrey Palermo: That is, just a few ways to get some things going.

177
00:29:44.750 –> 00:29:58.730
Jeffrey Palermo: Alright, I want to show you additionally, and I’ll come back to it, Grokbot. So let’s take another one of these guys. Let’s take… take another one of these APIs, 9161. Alright, and I’m gonna pull up my…

178
00:29:58.920 –> 00:30:03.749
Jeffrey Palermo: Pull up my Grokbot, and I’m just gonna tell my scribe. My scribe will coordinate for things.

179
00:30:04.090 –> 00:30:06.830
Jeffrey Palermo: Alright, I’ll say… wait, which one did I say?

180
00:30:07.110 –> 00:30:10.080
Jeffrey Palermo: 91… 9159. Okay.

181
00:30:10.550 –> 00:30:12.040
Jeffrey Palermo: 9159.

182
00:30:12.740 –> 00:30:17.490
Jeffrey Palermo: 9159… approved for…

183
00:30:18.760 –> 00:30:28.490
Jeffrey Palermo: Feature Loop Dispatch. Now, Feature Loop Dispatch is another one that can actually take multiple. So, you know, let’s give it multiple. Let’s give it also 9163.

184
00:30:31.220 –> 00:30:33.480
Jeffrey Palermo: 9163.

185
00:30:35.560 –> 00:30:36.820
Jeffrey Palermo: Make it happen.

186
00:30:37.790 –> 00:30:43.770
Jeffrey Palermo: Alright, and we’ll come back to that, because, I’ll tell you how Rockbot works in a little bit.

187
00:30:44.140 –> 00:30:48.530
Jeffrey Palermo: But, let me come back to it, because this is a big demo.

188
00:30:49.860 –> 00:31:01.639
Jeffrey Palermo: And ultimately, when you have all the different flavors of Cursor running, you’re orchestrating things, and things are moving across the board, and

189
00:31:02.040 –> 00:31:09.480
Jeffrey Palermo: You know, work is getting done, and it’s important to have a great process and break down work.

190
00:31:09.880 –> 00:31:27.449
Jeffrey Palermo: into, you know, easily implementable tickets. It’s always been a great practice to create a work item that can actually be done by someone in a given day, within one day. And so, if you do that.

191
00:31:27.690 –> 00:31:39.579
Jeffrey Palermo: if you do that, then it turns out you can actually get a lot of them done by AI tools. Now, of course, we don’t want AI slop, we don’t want crap.

192
00:31:39.710 –> 00:31:40.950
Jeffrey Palermo: And so…

193
00:31:41.010 –> 00:32:00.219
Jeffrey Palermo: We’re gonna… we’re gonna see how you actually orchestrate all of the different parts of the Cursor platform so that you get the code that you are happy with. That is so important. You need to be happy… oh, look, another production incident popped up and is being worked by another… another, Cursor session, and…

194
00:32:00.580 –> 00:32:10.990
Jeffrey Palermo: It looks like… I clicked a button off to the side, by the way, just to approve all of the other work that’s going through, so all the other work is getting picked up automatically and is being worked.

195
00:32:11.200 –> 00:32:13.140
Jeffrey Palermo: Alright, let’s go back…

196
00:32:13.920 –> 00:32:20.710
Jeffrey Palermo: Let’s go back and keep moving on. Alright, so, simple application I already showed you. Now.

197
00:32:21.260 –> 00:32:31.559
Jeffrey Palermo: Here’s what our build looks like in GitHub Actions. Notice that a lot of these jobs run in parallel, because we need to keep the build time short, okay?

198
00:32:31.700 –> 00:32:32.560
Jeffrey Palermo: Now.

199
00:32:32.620 –> 00:32:43.589
Jeffrey Palermo: With the advent of continuous integration back in 2005, 2006, we kind of learned about the concept of, or we as an industry, learned about the concept of a software build, and you should have one.

200
00:32:43.590 –> 00:32:56.100
Jeffrey Palermo: But if you have one, then, you know, you add up all the different things that need to happen, and you could have a build that’s, you know, 10, 15, 20 minutes, 30 minutes, because you’re doing all the things. But if you really dissect it.

201
00:32:56.100 –> 00:32:59.540
Jeffrey Palermo: Not all of the things have to run sequentially.

202
00:32:59.540 –> 00:33:16.839
Jeffrey Palermo: And so, by taking all of the piece parts of the conceptual, what a build needs to be for your software, and figuring out which of them can run in parallel, you can keep the timing of your job down. It’s so important with AI-driven development to keep the overall time

203
00:33:16.840 –> 00:33:17.660
Jeffrey Palermo: of…

204
00:33:18.030 –> 00:33:37.639
Jeffrey Palermo: the build down, right? So, we have a total build time here of 6 minutes and 48 seconds, but we’re doing a lot of stuff! We’re doing our integration build, but we’re also checking it against SQL Server, also SQLite, we’re checking it against running on ARM processor versus Intel, we’re checking against Windows versus Linux.

205
00:33:37.820 –> 00:33:42.090
Jeffrey Palermo: And then we’re publishing Release Candidate to Octopus Deploy, okay?

206
00:33:42.800 –> 00:33:50.990
Jeffrey Palermo: But it’s important that it runs fast, and I’ll come back to tests, because you absolutely need tests. Alright, so let’s dive into that.

207
00:33:51.040 –> 00:34:08.579
Jeffrey Palermo: This is a quick, a quick rendering from the actual software. Yes, it was generated by Cursor, but it’s from the actual software for how many tests of each type that we have to make sure that we actually have a testing pyramid. And you can see we do have a testing pyramid, we have our unit tests.

208
00:34:08.600 –> 00:34:15.149
Jeffrey Palermo: Which we have, at this time, 273 of those. We have 119 integration tests, and 88

209
00:34:15.190 –> 00:34:25.640
Jeffrey Palermo: full system acceptance tests, and so we, in fact, do have that, alright? It’s a real quick, a real quick, prompt to, you know, build your testing pyramid.

210
00:34:26.420 –> 00:34:33.940
Jeffrey Palermo: So, I encourage you to know what the shape of your testing pyramid is, so that you can know what to work on.

211
00:34:36.250 –> 00:34:46.209
Jeffrey Palermo: Okay. Now, let’s dive into the actual Cursor platform. Alright, I want to talk about the platform. It’s a lot of pieces, a lot of pieces.

212
00:34:47.320 –> 00:34:54.570
Jeffrey Palermo: In 2023, at the public launch of the AI Native Editor in VS Code.

213
00:34:57.780 –> 00:35:04.880
Jeffrey Palermo: And then, codebase indexing came along, we had the inline AI autocomplete.

214
00:35:05.130 –> 00:35:15.359
Jeffrey Palermo: you know, tab, tab, tab, and the first AI code review capabilities, the Cursor bot integrated for, for code review. In 2024,

215
00:35:15.780 –> 00:35:20.650
Jeffrey Palermo: The, we had the first agent that… that…

216
00:35:20.730 –> 00:35:36.599
Jeffrey Palermo: uses the terminal. In 2025, we had Cursor rules that came around, and MCP support. You know, 2025 was the year of the model context protocol. We had the agent view becoming the default experience instead of just the VS Code

217
00:35:36.600 –> 00:35:41.149
Jeffrey Palermo: IDE, and then we had BugBot for automated pull request reviews.

218
00:35:41.150 –> 00:35:50.119
Jeffrey Palermo: Then we had, background agents, memories feature, I think we went up to 8 parallel agents with,

219
00:35:50.250 –> 00:36:05.460
Jeffrey Palermo: rules and commands being able to be shared among the team. And now in 2026, it’s accelerated even more. The command line interface has the plan, ask, as well as auto mode, and also the cloud handoff, and cloud environments.

220
00:36:05.770 –> 00:36:17.620
Jeffrey Palermo: We had the second generation models, Composer 2.5. The IDE was rebuilt around the agent’s experience with design mode. The whole thing was kind of…

221
00:36:17.810 –> 00:36:31.070
Jeffrey Palermo: change to be optimized for long-running work, instead of… instead of prompting while looking at every function of code internally. You had an agency could kick off and just kind of go to lunch and come back.

222
00:36:31.280 –> 00:36:34.020
Jeffrey Palermo: the…

223
00:36:34.630 –> 00:36:46.289
Jeffrey Palermo: Cursor was, in the summer, acquired by SpaceX and XAI, and is integrated Grokbot, and so now, the… there’s so many ways to use Cursor

224
00:36:46.360 –> 00:36:58.880
Jeffrey Palermo: That you can, you can take your pick depending on what you’re trying to do. Are you doing a prototype? Are you, refactoring some really tricky, really tricky and complex code where you need to be in the code?

225
00:36:58.880 –> 00:37:06.440
Jeffrey Palermo: Side by side, or are you doing something super, super easy, where you can just kick something off and go to lunch and come back?

226
00:37:06.440 –> 00:37:19.209
Jeffrey Palermo: or kick off some analysis, or even some exploratory manual testing, kick it off overnight, and come back in the morning and see what broke. So, there’s so many ways to use the Cursor platform.

227
00:37:19.250 –> 00:37:36.379
Jeffrey Palermo: And if you look at some of the industry surveys and studies of people using AI that is older than, let’s say, a year and a half old, or two years old, invariably, the respondents to those surveys will be Cursor users, because Cursor was the first mover.

228
00:37:37.910 –> 00:37:38.750
Jeffrey Palermo: All right.

229
00:37:39.230 –> 00:37:47.310
Jeffrey Palermo: Now… I want to stress that Cursor is… It is no longer just…

230
00:37:47.530 –> 00:38:04.929
Jeffrey Palermo: the editor in VS Code. You’ve got the same agent capabilities, the same rules, the same context that kind of follow us along every interface type, and so the standards that we establish and apply anywhere, they kind of…

231
00:38:05.170 –> 00:38:13.429
Jeffrey Palermo: they just automatically, automatically get used. Alright, one thing… you know what? One thing I forgot to do, and I’m remiss, let me…

232
00:38:14.250 –> 00:38:29.229
Jeffrey Palermo: I’m gonna… I’m gonna fix that. I actually didn’t kick one off in the… in the Cursor agents window, and so I’m gonna do that right now. And… let’s see… one thing… you know what? They’re all moving across, so I’m just… I’m actually gonna… I’m gonna use Cursor to define one.

233
00:38:29.740 –> 00:38:33.709
Jeffrey Palermo: So, let’s see here… I’m going to…

234
00:38:34.220 –> 00:38:38.169
Jeffrey Palermo: Use a cloud environment… I’m just gonna make something easy.

235
00:38:40.480 –> 00:38:49.430
Jeffrey Palermo: Windows H, and now I’m transcribing into the window. Create a work item on the project board to…

236
00:38:53.750 –> 00:39:00.169
Jeffrey Palermo: Give me 3 new options of user experience design, with some different color schemes.

237
00:39:01.430 –> 00:39:06.329
Jeffrey Palermo: Don’t implement them, just give me some candidate screenshots in UX design.

238
00:39:08.190 –> 00:39:19.789
Jeffrey Palermo: Alright, there we go. So now I’ve got the agent’s view, and, you know, I can open up IDE, but, yeah, that’s been around for so long, most of you are even familiar with it. But I just wanted to kick one of those off.

239
00:39:19.850 –> 00:39:30.060
Jeffrey Palermo: And that’ll get going. It’s creating the cloud session. That takes a little bit of time to get spun up. You can see now that the name happened, it’s starting up.

240
00:39:30.430 –> 00:39:32.120
Jeffrey Palermo: Okay, we’ll come back to that.

241
00:39:35.070 –> 00:39:35.940
Jeffrey Palermo: Alright.

242
00:39:36.250 –> 00:39:45.050
Jeffrey Palermo: Now… I’m really excited to kind of talk about the architecture under the covers, because

243
00:39:45.740 –> 00:39:50.350
Jeffrey Palermo: The Cursor is designed intentionally to…

244
00:39:50.390 –> 00:40:08.990
Jeffrey Palermo: to be able to use any model that is out there. It can auto-route across, you know, various models, and more and more, the choice of which model to use isn’t as important as how you integrate the platform, but at the same time.

245
00:40:08.990 –> 00:40:12.149
Jeffrey Palermo: You’ve got the composer line, for…

246
00:40:12.460 –> 00:40:26.040
Jeffrey Palermo: fast, Agentic coating. It doesn’t need… it doesn’t need to be good at everything, it needs to be good at coding. And then you have the Grok line of models that, you know, is really top-tier already.

247
00:40:27.680 –> 00:40:28.580
Jeffrey Palermo: Okay

248
00:40:29.720 –> 00:40:34.319
Jeffrey Palermo: So I’ve kind of… kind of gone over the different ways to use it, so I’m just gonna go forward,

249
00:40:34.470 –> 00:40:36.720
Jeffrey Palermo: So that we can… we can get into the next demo.

250
00:40:37.120 –> 00:40:40.250
Jeffrey Palermo: Okay, so…

251
00:40:40.670 –> 00:40:59.610
Jeffrey Palermo: cloud development environments via the SDK. I want to talk about that a little bit more. I showed you that we can already kick one off automatically and use the cloud environments. What you’re going to get is a VM, it simulates a VM, and you’re gonna get,

252
00:40:59.700 –> 00:41:16.900
Jeffrey Palermo: basically 4 virtual CPUs, you’re gonna get 16 gigs of RAM, 256GB of disk space, and… but this is unofficial, by the way, there’s no commitment to these, but if you just run some scripts and you check, hey, what… what is this running? That’s what it’s currently running.

253
00:41:16.900 –> 00:41:26.720
Jeffrey Palermo: I think the… the Grokbot VMs, which I’ll talk in a little bit, give you more… give you more CPUs, so… so these will probably be upgraded a little bit.

254
00:41:26.740 –> 00:41:29.840
Jeffrey Palermo: Okay. Alright.

255
00:41:30.840 –> 00:41:32.920
Jeffrey Palermo: Let’s… let’s go forward.

256
00:41:34.030 –> 00:41:42.850
Jeffrey Palermo: All right. One of the things that Cursor is really good at is, is…

257
00:41:42.990 –> 00:41:50.219
Jeffrey Palermo: Doing design and making… little videos, little demo videos. And so, I am actually going to…

258
00:41:50.390 –> 00:41:56.509
Jeffrey Palermo: play this. There’s no audio, but just, you can kind of see a demonstration.

259
00:41:56.680 –> 00:41:59.089
Jeffrey Palermo: This is where church staff start their day.

260
00:42:00.070 –> 00:42:02.190
Jeffrey Palermo: And I’m actually going to…

261
00:42:02.630 –> 00:42:09.149
Jeffrey Palermo: Well, I can fast-forward a little bit, but you can see that it actually runs the application through.

262
00:42:09.330 –> 00:42:22.420
Jeffrey Palermo: just recently, in the last couple days, it implemented something and said, I said, create a demo video, make it standard to create a demo video every time a new feature comes online. And so, that’s what this is doing. It’s a new demo of the due date

263
00:42:22.490 –> 00:42:37.839
Jeffrey Palermo: I added a due date field so that we could see when a work order was going to be due. And if it’s the same day, then it’s yellow. If it’s, if it’s past the due date, it’s red. Okay? So,

264
00:42:37.990 –> 00:42:41.660
Jeffrey Palermo: You can, you can create videos directly, directly in here.

265
00:42:42.020 –> 00:42:50.669
Jeffrey Palermo: Alright, let’s go… to… You know what? Before I get into that…

266
00:42:50.790 –> 00:42:53.810
Jeffrey Palermo: I want to show you a little demo.

267
00:42:55.230 –> 00:42:58.180
Jeffrey Palermo: So let’s go back to Grok.

268
00:43:00.480 –> 00:43:09.730
Jeffrey Palermo: Oh, you know what? Let me check on our cursor agent… And… There we go, it’s working.

269
00:43:10.480 –> 00:43:11.140
Jeffrey Palermo: Sweet.

270
00:43:11.660 –> 00:43:14.140
Jeffrey Palermo: And… let me go to Grok.

271
00:43:14.910 –> 00:43:16.399
Jeffrey Palermo: Alright, here is Grok.

272
00:43:16.810 –> 00:43:23.980
Jeffrey Palermo: And behind… Grok, we are going to have… the application.

273
00:43:24.120 –> 00:43:27.370
Jeffrey Palermo: Alright, so my… actually, I’m gonna go to the…

274
00:43:27.680 –> 00:43:30.960
Jeffrey Palermo: AI Agent screen. I’m gonna put it on the left-hand side.

275
00:43:31.650 –> 00:43:32.670
Jeffrey Palermo: And…

276
00:43:36.540 –> 00:43:39.980
Jeffrey Palermo: A little bit bigger, just so we can do it. Okay.

277
00:43:40.610 –> 00:43:46.050
Jeffrey Palermo: And… Let me… Sorry, I’m Managing windows.

278
00:43:46.190 –> 00:43:52.969
Jeffrey Palermo: Alright, let me go to the… I have a bot that’s not working on the software, but it’s our Work Orders Admin.

279
00:43:53.150 –> 00:43:57.810
Jeffrey Palermo: Alright, so… S. T. Lovejoy.

280
00:43:59.590 –> 00:44:05.730
Jeffrey Palermo: Have Groundskeeper Willie.

281
00:44:06.530 –> 00:44:09.469
Jeffrey Palermo: Mow the grass. Every.

282
00:44:09.620 –> 00:44:10.990
Jeffrey Palermo: It’s Saturday.

283
00:44:11.680 –> 00:44:15.040
Jeffrey Palermo: For the next 10… Weeks.

284
00:44:15.450 –> 00:44:19.289
Jeffrey Palermo: Create and assign those work orders.

285
00:44:20.410 –> 00:44:21.290
Jeffrey Palermo: Okay.

286
00:44:21.530 –> 00:44:22.750
Jeffrey Palermo: In here.

287
00:44:22.870 –> 00:44:27.719
Jeffrey Palermo: Show… Work orders assigned to…

288
00:44:28.110 –> 00:44:35.930
Jeffrey Palermo: I’m in the… so the left side, I’m in the application itself, and I could go to the search screen and look for the records,

289
00:44:36.040 –> 00:44:39.730
Jeffrey Palermo: And… That was actually fast.

290
00:44:40.190 –> 00:44:47.259
Jeffrey Palermo: I didn’t even get the response from… I expected to be able to see… Okay, so we got a lot going on.

291
00:44:47.500 –> 00:44:55.560
Jeffrey Palermo: And… Okay, so… Let me… let’s see, create attend…

292
00:44:55.740 –> 00:44:58.119
Jeffrey Palermo: Assigned to Willie starting this Saturday.

293
00:44:58.650 –> 00:45:01.710
Jeffrey Palermo: And… let me go to Search.

294
00:45:02.160 –> 00:45:03.509
Jeffrey Palermo: Just so you can see.

295
00:45:03.790 –> 00:45:07.760
Jeffrey Palermo: The creator is, timothy Lovejoy…

296
00:45:08.100 –> 00:45:11.899
Jeffrey Palermo: Actually, this is easier to find. Groundskeeper Willie…

297
00:45:17.960 –> 00:45:19.809
Jeffrey Palermo: Groundskeeper Willie, there we go.

298
00:45:22.580 –> 00:45:24.249
Jeffrey Palermo: No, not Todd Flanders.

299
00:45:25.140 –> 00:45:26.870
Jeffrey Palermo: Where is he? Where is he?

300
00:45:27.180 –> 00:45:28.159
Jeffrey Palermo: I’m gonna blank him out.

301
00:45:29.160 –> 00:45:29.890
Jeffrey Palermo: Search.

302
00:45:30.100 –> 00:45:31.759
Jeffrey Palermo: Alright, there’s all the ones.

303
00:45:32.130 –> 00:45:37.750
Jeffrey Palermo: And the ones at the bottom were just created October… yep, there we go, mow the grass, mow the grass, mow the grass.

304
00:45:37.890 –> 00:45:44.129
Jeffrey Palermo: And then I’ll come back and say, cancel them. Alright?

305
00:45:46.130 –> 00:45:54.039
Jeffrey Palermo: And cancelling those, and we should be able to refresh and see that instead of being assigned, it just did it.

306
00:45:55.700 –> 00:45:56.430
Jeffrey Palermo: Sir?

307
00:45:57.260 –> 00:46:02.310
Jeffrey Palermo: And… Search again…

308
00:46:05.590 –> 00:46:06.330
Jeffrey Palermo: Refresh.

309
00:46:07.470 –> 00:46:08.879
Jeffrey Palermo: I think I have caching in here.

310
00:46:09.390 –> 00:46:10.060
Jeffrey Palermo: For that.

311
00:46:10.330 –> 00:46:24.120
Jeffrey Palermo: Alright, so… Groundskeeper Willie… Search… And… oh, cancel, don’t even show up, so they’re gone. They’re totally gone. Okay.

312
00:46:25.120 –> 00:46:28.089
Jeffrey Palermo: But I can go back to my AI agent just to prove it.

313
00:46:28.680 –> 00:46:31.610
Jeffrey Palermo: Show recently canceled.

314
00:46:31.780 –> 00:46:34.800
Jeffrey Palermo: Work orders for you.

315
00:46:34.930 –> 00:46:40.950
Jeffrey Palermo: Alright, what I’m showing here is that, yes, our application does something, it keeps track of,

316
00:46:41.770 –> 00:46:58.930
Jeffrey Palermo: it… oh, they’re canceled, of course they’re not assigned. They’re gone. We can use… we can use the old, you know, forms over data view, where I can assign it to Groundskeeper Willie, mow the grass, or we can now use our… our chat agent built into the application, or…

317
00:46:59.010 –> 00:47:14.389
Jeffrey Palermo: We can use something like Grokbot, or practically anything, to integrate with the MCP server that our application is exposing. Yes, our application has web APIs, but the MCP server is the integration over to

318
00:47:14.500 –> 00:47:15.680
Jeffrey Palermo: any kind of…

319
00:47:15.950 –> 00:47:34.320
Jeffrey Palermo: language model tooling. And so, Grokbot, one of the… is so easy to integrate with everything. So, I could do this directly from Cursor or anything that has MCP support. But, now, if the team is working on the application, I can even, I can even set up a test environment

320
00:47:34.520 –> 00:47:50.129
Jeffrey Palermo: by just saying, hey, set up some test records, or reset the test data back to so-and-so, and I can have easy MCP server to my pre-production environments. It’s infinitely flexible, so I just want to highlight Grokbot over there. Now, let’s come back and let’s talk about

321
00:47:50.520 –> 00:48:01.549
Jeffrey Palermo: let’s talk about what this is. So, Grok Botta was launched literally this month, and it’s available through Cursor Ultra and Cursor Teams Premium.

322
00:48:01.670 –> 00:48:21.449
Jeffrey Palermo: As well as the Supergrok Heavy, and behind the scenes, there is one persistent cloud Linux, virtual machine server under the covers, and you can actually use it, so if you’ve never seen it, if I… if I open this up, this is the computer that it’s actually using it, using, and I can, I mean.

323
00:48:21.480 –> 00:48:28.189
Jeffrey Palermo: I’ve got… I’ve got, web, I’ve got terminal, I’ve got…

324
00:48:28.420 –> 00:48:31.109
Jeffrey Palermo: You know, the file system?

325
00:48:31.670 –> 00:48:34.709
Jeffrey Palermo: And… and you can see that there’s been doing all kinds of…

326
00:48:35.520 –> 00:48:40.890
Jeffrey Palermo: all kinds of things on here. Willie… I like Groundskeeper Willie, so…

327
00:48:41.010 –> 00:48:49.540
Jeffrey Palermo: Alright, so that’s… that’s an actual computer, and, I mean, it… it’s a computer, and you can drive it, and that’s…

328
00:48:49.710 –> 00:48:55.460
Jeffrey Palermo: It’s… it’s pretty… What happens is, there is one of these

329
00:48:55.460 –> 00:49:11.650
Jeffrey Palermo: VMs for your Crockpot pane, so all of the different bots use the same VM. Now, they’re gonna use a different UI session, so they’re not gonna stomp on each other, and they can use MCP servers, they can use APIs, they can also

330
00:49:11.650 –> 00:49:19.690
Jeffrey Palermo: Just navigate to some web application with the browser, and mimic anything that you could do with a browser.

331
00:49:19.910 –> 00:49:26.890
Jeffrey Palermo: You can have up to 50 bots share the same VM, and whatever a bot is doing.

332
00:49:27.380 –> 00:49:41.730
Jeffrey Palermo: with that VM, you can jump into that VM and take over, okay? And you can… it runs on, grokbot has an application for Windows, for Mac OS, and iPhone.

333
00:49:42.140 –> 00:49:54.079
Jeffrey Palermo: And, you can… you can set up some credentials on the VM, you can store durable work in a certain, you know, file structure.

334
00:49:54.270 –> 00:49:59.590
Jeffrey Palermo: And so, one thing that is incredibly useful is

335
00:49:59.590 –> 00:50:14.699
Jeffrey Palermo: testing, okay? Overnight, just have it do manual testing, run through all of the functions of the application, even beyond your automated test suites, and just poke around and see if there’s anything that can be made to throw an error, for example.

336
00:50:14.700 –> 00:50:20.789
Jeffrey Palermo: It can capture screenshots, it can create remotion videos. Actually, that’s one of the things that I’ve

337
00:50:21.400 –> 00:50:23.520
Jeffrey Palermo: That, that I found tremendously useful.

338
00:50:23.780 –> 00:50:29.690
Jeffrey Palermo: When you’re doing unattended aI-driven development.

339
00:50:30.170 –> 00:50:36.159
Jeffrey Palermo: you want to see if it was good. And so, I’ll come over here, and this,

340
00:50:37.360 –> 00:50:43.340
Jeffrey Palermo: Let’s see… Qi engineer, yeah, we have this, this… video.

341
00:50:43.570 –> 00:50:46.970
Jeffrey Palermo: And so, let’s see, I downloaded the video, where’s the video?

342
00:50:49.470 –> 00:50:50.510
Jeffrey Palermo: Here we go.

343
00:50:53.400 –> 00:50:57.860
Jeffrey Palermo: And so, I just had to do… I just had to do an easy demo.

344
00:50:58.150 –> 00:51:12.259
Jeffrey Palermo: Flying through… and it actually drove the real application and captured real screenshots, and then, you know, just do… and then, oh, here’s the plans for the work order system, okay? So, it does videos. But also, actually, I don’t want to do that.

345
00:51:12.660 –> 00:51:17.090
Jeffrey Palermo: Also, if I… if I scroll up, I mean, there’s all kinds of…

346
00:51:17.140 –> 00:51:23.229
Jeffrey Palermo: There’s all kinds of, testing sessions that it can do, and I… and…

347
00:51:23.270 –> 00:51:40.819
Jeffrey Palermo: I have it just used the AI agent, some tweaks to that, and actually create a demo of the feature, or a demo of the pull request, and so that’s… that’s cool, too, and even screenshots. I mean, your test can do that, but now everything that’s… that’s happening… okay, there we go.

348
00:51:42.740 –> 00:51:49.890
Jeffrey Palermo: And… for the… Let’s see… Architect?

349
00:51:50.100 –> 00:52:09.690
Jeffrey Palermo: Just this morning, just so that it was, it was ready, I asked for a updated architecture diagram, because we’ve done a lot of things to this application, and I said, okay, let’s, let’s review, let’s review any changes to the architecture diagram. And so, we can see that this, this, work order system, you can see the boundary here.

350
00:52:09.690 –> 00:52:22.120
Jeffrey Palermo: the… we have a server process, we have a WebAssembly process, the presentation layer, and then we have Azure SQL, and we also have Grokpot over on the side integrating with the MCP server.

351
00:52:22.120 –> 00:52:40.429
Jeffrey Palermo: that is actually running in the main web process, along with the UI serving APIs up to the WebAssembly application. And then we have a worker off to the side that does things. So, there’s so many different ways that you can imagine just

352
00:52:40.710 –> 00:52:43.840
Jeffrey Palermo: defining… defining your eyes. And there’s also,

353
00:52:44.290 –> 00:52:51.640
Jeffrey Palermo: There’s also work groups, and they’ll chat back and forth, but you can see the bots…

354
00:52:52.040 –> 00:53:05.800
Jeffrey Palermo: messaging each other. So the scribe is messaging the coder, and whatever your process is, you can model the process and, and then monitor the work. And, by the way.

355
00:53:06.260 –> 00:53:10.029
Jeffrey Palermo: You’re gonna dispatch the work that’s easy.

356
00:53:10.370 –> 00:53:22.609
Jeffrey Palermo: you’re gonna reserve the complex engineering for yourself. After all, you are the software engineer. We want to delegate to the computer anything that can be delegated to the computer.

357
00:53:23.320 –> 00:53:40.469
Jeffrey Palermo: And when we do that, it frees us up to work on the truly complex problems that don’t have obvious solutions. It frees us up for actually working on the problems that really require engineering.

358
00:53:40.710 –> 00:53:42.839
Jeffrey Palermo: So, super excited about that.

359
00:53:43.770 –> 00:53:44.550
Jeffrey Palermo: Okay.

360
00:53:44.850 –> 00:53:49.010
Jeffrey Palermo: Here’s a screenshot, I’ve already, I’ve already showed you that. But,

361
00:53:49.140 –> 00:54:02.969
Jeffrey Palermo: here is a video of 16 hours where I put in a whole lot of work items, and it’s a video of 16 hours of the Grokbot team working on, probably about

362
00:54:03.040 –> 00:54:20.709
Jeffrey Palermo: 12 different features that added in, and then I just… and then I just had Grokbot, use FFmpeg to speed up the video so that it would fit in a shorter amount of time where I could actually show it to you. So, this is basically 16 hours of the Grokbot team

363
00:54:20.730 –> 00:54:23.850
Jeffrey Palermo: You know, interacting and just going to town and working.

364
00:54:23.900 –> 00:54:24.640
Jeffrey Palermo: Alright?

365
00:54:25.160 –> 00:54:31.150
Jeffrey Palermo: And so this is how, you can see that…

366
00:54:31.470 –> 00:54:34.929
Jeffrey Palermo: You can see the technology that’s gonna enable

367
00:54:35.350 –> 00:54:51.670
Jeffrey Palermo: The feature pod organization of a software team, where you can pair a market expert and a software engineer around a major piece of functionality, and you can really figure out the hard parts of it, and what you want to do, and how it needs to be designed.

368
00:54:51.670 –> 00:55:03.200
Jeffrey Palermo: The proof of concept, the architecture, all the hard stuff, and then as you break down the work and identify, you know, the easier tasks that are well-defined, then you can delegate them to the computer.

369
00:55:03.600 –> 00:55:12.469
Jeffrey Palermo: Alright, but I want to show you a few more things. By the way, this is the architecture of Grokbot, because we always think in architecture.

370
00:55:12.580 –> 00:55:14.220
Jeffrey Palermo: Not gonna go into it.

371
00:55:14.400 –> 00:55:32.720
Jeffrey Palermo: But let me… let me go… the final question. Is this build of the software good? Super important. Yes, we can generate a bunch of code, but we’re not talking about just vibe-coded, brand new games, or vibe code, Minecraft. That’s trash. We’re talking about business-critical software applications where

372
00:55:32.860 –> 00:55:44.660
Jeffrey Palermo: if you… if you get it wrong, you disrupt the business. We can’t have that. We have to have good output. Our software factory has to give us good, finished goods. And so…

373
00:55:44.810 –> 00:56:03.089
Jeffrey Palermo: we need to… we need to map out what we’re doing, we need to measure as we go, we need to analyze the product, we need to have diagrams, you know, pictures worth a thousand words. We need to think in pictures, and then we need to report on how things are actually going. And the… the DevOps environment that you’ve worked so hard for.

374
00:56:03.160 –> 00:56:20.290
Jeffrey Palermo: that all is needed, and you need to up-level it. You need to increase your quality assets. So let’s talk about what quality assets have done. By the way, this is only the top third of, this is only the top third of our AI DevOps poster, and…

375
00:56:20.970 –> 00:56:39.299
Jeffrey Palermo: If you would like a high-resolution copy of our AI DevOps poster, the full thing, then just ask us in the chat or send me an email, and we’d be happy to send it to you. I know you can’t read all the words on the screen, and I’m not going to go through all of it. I’ve had other trainings in the past where I deal with it. Alright, but let’s talk about quality, alright?

376
00:56:39.500 –> 00:56:44.019
Jeffrey Palermo: We have to know good quality. And so, let me go to…

377
00:56:45.190 –> 00:56:47.670
Jeffrey Palermo: Let me go to our build.

378
00:56:47.780 –> 00:56:58.759
Jeffrey Palermo: And… In our build, you can see our crap score, and you can see the crappiest code files

379
00:56:58.890 –> 00:57:11.100
Jeffrey Palermo: they’re at the top. Now, this application’s, this application’s average CRAP score is 1.9. Now, if you… if you have never heard of the change risk anti-patterns analysis.

380
00:57:11.470 –> 00:57:27.150
Jeffrey Palermo: then you need to be using it, because I guarantee that your codebase probably has some change-risk anti-patterns. But I don’t want to say that anymore, so I’m going to say, chances are, your code has some crap, alright? And this is how you measure it, it’s free, free tools.

381
00:57:27.300 –> 00:57:34.670
Jeffrey Palermo: And… and so what we want to do is measure and have the build break if AI gives us

382
00:57:34.940 –> 00:57:50.089
Jeffrey Palermo: change risk anti-patterns, because we don’t want that, okay? And so we want to measure it, and we can see that if, if I have a relationship between psychomatic complexity and test coverage, and I can see my tests.

383
00:57:50.500 –> 00:58:03.919
Jeffrey Palermo: And I can see the average coverage… by the way, the lowest ones on this list have 100% test coverage, but they have… they have a score of 5, because it’s all based on psychomatic complexity. The things at the top of the list

384
00:58:03.920 –> 00:58:22.399
Jeffrey Palermo: do have gaps in test coverage. So the best thing that you can do is get test coverage, because that proves that even if the code could be made simpler, it proves that the test does work, and if we accidentally break the tests, we’re going to find out. Also, static code analysis. Sonarcube, Roslyn, Kodana from JetBrains.

385
00:58:22.400 –> 00:58:27.639
Jeffrey Palermo: Those are important. So, what I’m showing you here is a Codana

386
00:58:28.100 –> 00:58:43.870
Jeffrey Palermo: scan, and we’re scanning every file for all kinds of rules, scanning it for accidental code duplications, because we know the language models like to duplicate code, and we’re going to test that and get a baseline.

387
00:58:43.870 –> 00:59:00.480
Jeffrey Palermo: And then we’re gonna set that baseline so that in the future, if we introduce any new violations, then we’re gonna fail the build. And then we can, as we go along, we can set some agents working overnight to resolve some of the things

388
00:59:00.480 –> 00:59:06.290
Jeffrey Palermo: that it did find initially, and ratchet up the quality. That’s important, we want to ratchet up the quality.

389
00:59:06.810 –> 00:59:07.630
Jeffrey Palermo: Okay.

390
00:59:07.750 –> 00:59:15.149
Jeffrey Palermo: Our Clear Measure Intelligence Scorecard gives you the ability to know how are things going? And so,

391
00:59:15.390 –> 00:59:24.699
Jeffrey Palermo: if I… you know, I’m gonna pull over… pull over this version of it, and… and you wanna see, week by week, how much work that you’re doing.

392
00:59:24.700 –> 00:59:42.509
Jeffrey Palermo: and what’s going on. So I can see the work, and I can see the columns that it moved through. I can click and drill down, and I can see on the GitHub board, what happened with that particular work item, click directly into it. And one offer we have

393
00:59:42.700 –> 00:59:47.470
Jeffrey Palermo: Actually… Let me… let me pull that back.

394
00:59:49.900 –> 00:59:51.400
Jeffrey Palermo: It’s on the wrong screen.

395
00:59:52.880 –> 00:59:53.830
Jeffrey Palermo: So…

396
00:59:54.250 –> 01:00:01.930
Jeffrey Palermo: Let me do that again, now I’m on the right screen. You can click what work was actually done, and if we see, we had some production incidents.

397
01:00:02.070 –> 01:00:05.150
Jeffrey Palermo: And we can click directly onto the GitHub board.

398
01:00:05.350 –> 01:00:17.009
Jeffrey Palermo: And then you can see what happens. Now, one offer we will make, we have a Microsoft Excel version, and if you… if you go to your, if you go to a…

399
01:00:17.500 –> 01:00:18.549
Jeffrey Palermo: Not that one.

400
01:00:19.530 –> 01:00:24.260
Jeffrey Palermo: If you go to one of your work tracking boards, I have an old client project.

401
01:00:24.410 –> 01:00:29.380
Jeffrey Palermo: that we have permission to use. There’s a lot of work in here. And if we go to…

402
01:00:31.810 –> 01:00:42.070
Jeffrey Palermo: paste in our work tracking board, you can select whatever tracker you want, and it’ll detect the organization, the project, you give it a… you give it a security key.

403
01:00:42.180 –> 01:00:55.339
Jeffrey Palermo: and then in Excel, it’ll pull out, it’ll harvest your historical metrics for your throughput, your defects, your production incidents, and you can, you know, you can

404
01:00:55.600 –> 01:00:59.130
Jeffrey Palermo: Drill down, and and you can…

405
01:00:59.350 –> 01:01:07.350
Jeffrey Palermo: you can use those. Alright, so… Actually, let’s… Let’s go to…

406
01:01:10.520 –> 01:01:19.329
Jeffrey Palermo: There we go. And now, click, it pulls open the work items, and you can see exactly what happened. You can click over to your work tracking board.

407
01:01:19.610 –> 01:01:24.219
Jeffrey Palermo: Alright, so if you’re interested in that, then just, just,

408
01:01:24.290 –> 01:01:40.669
Jeffrey Palermo: Ask us, we’d be happy to get a scorecard set up for you so that you know how things are going, so that you can understand what your throughput is, what your defects are, what your stability is for your team, and deliver your, you know, executive-level, metrics-based reports to your team.

409
01:01:40.860 –> 01:01:51.019
Jeffrey Palermo: There’s also two Cursor skills that you can plug in. At the beginning, I showed you I was using Feature Loop and Feature Loop Dispatch. If you would like any… if you would like to use

410
01:01:51.560 –> 01:02:09.240
Jeffrey Palermo: these feature loops, then, sorry, if you would like to use these cursor skills, then go ahead and send me an email or ask, I’d be happy to get these, skills to you, and… and you can use those instead of inventing.

411
01:02:09.320 –> 01:02:12.639
Jeffrey Palermo: inventing them. The feature loop dispatch.

412
01:02:12.690 –> 01:02:31.089
Jeffrey Palermo: can dispatch an epic or multiple work items, and then it wraps the feature loop, which takes you through the whole board and runs all of your quality gates and tests and everything, and then gives you, gives you screenshots, through the backend, and makes sure that you are monitoring your builds on the pull request and all the things like that.

413
01:02:31.350 –> 01:02:43.230
Jeffrey Palermo: Alright, in closing, because I know I’m taking you over, in closing, Cursor is a platform bet that, really, you can defend. There’s 7 million, people that use it every month.

414
01:02:43.230 –> 01:02:54.639
Jeffrey Palermo: and half of the Fortune 500, so definitely include this in your tool belt. It’s now part of, SpaceX and XAI. That acquisition did close this month.

415
01:02:55.010 –> 01:03:11.850
Jeffrey Palermo: And, for Clear Measure’s part, we want to empower your team to do world-class software delivery. And that’s our mission, that means improving your software so that you can deliver those world-class results. And wherever there’s a gap.

416
01:03:11.850 –> 01:03:26.230
Jeffrey Palermo: between the results that you’re getting today and the results that you want, well, that’s exactly where Clear Measure comes in. So you can send me an email, give me a call, I’ll leave it up on the screen, and I know that was a lot of information.

417
01:03:26.230 –> 01:03:35.929
Jeffrey Palermo: But, we are… we want to help your team deliver absolutely world-class results, and that’s why… that’s why we get up in the morning.

418
01:03:35.930 –> 01:03:42.750
Jeffrey Palermo: give me a call or send me an email if we can help you do that, and I think I was able to answer,

419
01:03:42.890 –> 01:03:45.530
Jeffrey Palermo: Answer the questions that came through.

420
01:03:46.120 –> 01:03:57.309
Jeffrey Palermo: in line, and if there’s any others that I didn’t, I can follow up with an email and do that, but I appreciate your time, thank you so much, and we look forward to, to…

421
01:03:57.420 –> 01:03:59.540
Jeffrey Palermo: Helping you empower your software delivery.