PurePerformance - Agile for real? Or, Are you still faking it? with Leandro Melendez

Episode Date: February 14, 2022

Do you regularly go to the gym or are you just wearing your sweat pants and sneakers at home and think that will do it? Or how about agile practices? Do you think by religiously attending your daily s...tandup your colleagues think your performance testing all of a sudden happens within each sprint?Leandro Melendez (aka Senor Performo), a DevRel Advocate for k6 load testing, tells us what he has seen in organizations he is helping to transform their performance engineering practices. The true benefit of becoming Agile, DevOps or whatever the next buzz word is, is to enable engineers with automated performance feedback on their changes. Listen in and also learn about Leandro’s ideas on PDD (Performance Driven Development).Show LinksLeandro on Linkedinhttps://www.linkedin.com/in/leandromelendez/Señor Performo Sitehttps://www.srperf.com/K6 Load Testinghttps://k6.io/

Transcript
Discussion (0)
Starting point is 00:00:00 It's time for Pure Performance! Get your stopwatches ready, it's time for Pure Performance with Andy Grabner and Brian Wilson. Hello everybody and welcome to another episode of Pure Performance. My name is Brian Wilson and as always my co-host is with me the wonderful lovely amazing all dressed in I imagine all black today but I only see him from the top up Andy Grabner. How are you doing Andy? It's good it's good that you only see me from the top up because you don't know what's down under. I know. Hey, you know what? A while back, we had our honorary 150th recording with Mark Tomlinson, but as we know, it wasn't the 150th one. We just figured for timing or whatever.
Starting point is 00:01:00 It was fake news. I don't even know. Yes, yes. Ladies and and gentlemen it was fake news we're admitting it but today is our actual real 150th episode wow and uh someone related to mark someone i don't mean maybe by perhaps although maybe well who knows maybe if you go back well he speaks he speaks german too a little bit i know mark does and i know our guest does a little bit too because before you joined the recording session he talked german with me oh very interesting oh yeah and well so so people might be hearing the voice they may have heard him before he's been a guest you've been i think he's been a guest before i know i've done podcasts with him and you've done podcasts with him. He's got fantastic mustache, a fantastic cat with a mustache, very similar to his. And I, you know, I'm sorry.
Starting point is 00:01:53 I'm, I love to sing the praise of this guy. He's doing so much for the performance field, especially in areas that haven't really been concentrating on performance. So I don't nicht, Andy, kannst du die Vorstellung beenden? Weil ich habe versucht, sie dort zu machen, aber ich bin nicht wirklich gut bei ihnen. Du machst immer die Vorstellung.
Starting point is 00:02:10 Ich habe nur gesagt, wie es geht. Hallo, wie geht es dir? Hallo, wie geht es dir? Wie geht es? Auf Deutsch und... Nein, hallo, hallo, alle. Ja, es ist ein Vergnügen, zurückzutreten. Danke für diese kinderlichen Worte, Brian. Und wow, ich bin a pleasure to be back. Thanks for those kind words, Brian. And wow, I'm on a special episode. I yeah, I'm sure. Oh, my God means you shouldn't better not
Starting point is 00:02:33 mess it up. Oh, my. This one will be our lowest rating. I predict it will not, though. I think this will be our second highest rating. I know I'm going to break things, but I hope for a good and a good perspective. Hey, Leandro, I think last'm going to break things, but I hope for a good perspective. Leandro, I think last time when we had you, you were just about to publish your book. Oh, yes. Yeah, we were talking about it. Yeah, it's already out there in the world
Starting point is 00:02:57 and I hope people are still enjoying it. I have heard good feedback out of it. Have you been nominated for the Nobel Peace prize for performance? Not yet. Or that I know. Has anyone given them my number? I'm not sure. I'm sure they find out. But the thing is when they call you, they might, you didn't speak Swedish.
Starting point is 00:03:19 Maybe somebody from Sweden called and you didn't pick up because you thought strange number. Ah, those robocalls. I mean, you cannot pick up the phone lately at all. Hey, for anybody who might not know about the book, what was the, can you remind our listeners about the title and topic? It is a hitchhiking guide to load testing projects, a fun walkthrough guide into the steps for a traditional load testing project where you go on those old phases that you discover what to do, you design or put
Starting point is 00:03:55 together a plan, a set of scenarios, automations to do, put up your scripts, create them and then execute the test. But in a very guiding up the people in a very traditional way to do those things, scary things. And I think one of the feedback I remember that you asked me and I'm pretty sure Brian and others as well to give you some reviews before the book was published. I loved it. But then also I think in the end I said, hey, wouldn't that be, what's next?
Starting point is 00:04:26 Because you've been talking about, let's say, as you got just reiterated, a more traditional way to load testing projects. And then I said, hey, we've been talking about DevOps, we've been talking about SRE, we've been talking about automation, we've been talking about agile. And I said, hey, we want to have you back
Starting point is 00:04:42 if you want to tell us more about these topics. And then you, I think, and I have the email open, I think it was around Christmas time last year. You said, hey, I want to talk about Agile for real. And I had some salsa and some good camole on it because you also want to talk a little bit about Aztec automation sacrifice pyramid. I mean, there's a lot of things you, you threw to us in an email, which is now, which is a, I love to, uh, especially start with, uh, agile for real because, uh, the, the thing that you brought up is some people think they're doing agile, uh, whatever agile means for them. Some for some, however,
Starting point is 00:05:20 it feels like they're just impersonators or imposters. They're just pretending to do an agile, but actually they're not doing Agile. And I know you've been teaching people and you have your own experiences. And this is why I would like to dive into that topic. What can you tell us? What have you learned? What are you teaching? And how can people figure out if they're doing Agile for real or not?
Starting point is 00:05:43 Well, good that you bring it up from the book's perspective and what was pending, because I can say right now it's a work in progress part two where I'll be diving fully into how to tackle this performance thing in an agile way and an element while writing it that has been jumping a lot at me, and it's not just from the book. It has been jumping since I started to get into this Agile thing and learning it and understanding it, not just in the traditional way that, hey, I'm on Daily Stand-Ups
Starting point is 00:06:19 and now I am Agile. It's something that I started to notice while I was as a consultant jumping on different organizations providing services and finding lots of them saying yeah now we are agile we do this scrum thing DevOps and all those terminologies I'm gonna use them somewhat interchangeably. The people that know the trades, please don't jump at me. I'm just referencing all these modern methodologies to produce software. And I think that the big element here, as you mentioned, the thing that when I started to learn it better and understand this beast was
Starting point is 00:07:06 that hey you are not agile you are not I mean you are embracing it you are doing some of the things you are trying at least but it doesn't feel like to me that you are getting the benefits and I came up with an example that has helped some people to understand what i'm trying to say so being agile is more or less like being a fit person in terms of fitness doing some workout staying in shape like trying to take care of the good old gut box that we were given. And some people may be just saying, yeah, I'm so fit, I'm taking care of my body, just because they wear yoga pants. I mean, it's a pandemic. We all do that. And some others are, and I have people that I know that started to do some of the right things. And then they ended up just having protein milkshakes,
Starting point is 00:08:16 but that's it. They just drink lots of protein milkshakes. I'm like, well, you're still not there. Some mothers would buy the most modern jogging shoes and have them wearing them all the time. And yeah, I'm super fitness now and I'm a speedster. I have never seen you running or actually doing the thing. And I think that we all can agree on more or less what are the kind of things that make you a fit person right that you more or less take care of your what you eat doing some exercise like whatever you you do it's really really good to have the yoga pants to have some protein and all
Starting point is 00:09:02 of the things that I said but there are key elements that if you're not doing them, it's like, okay, well, good for you. And it's very similar. Good for you. You had a write-off. It's so polite. Good for you. Hey, good for you.
Starting point is 00:09:17 I mean, you're at least in your mind trying, but that's not it. You're not getting the benefits of what we are looking for and trying to be fit, which I would say, be more or less acting up, doing some sort of exercise, given if you are into weights or swimming, running or golfing, yoga, whatever you do, or what you're looking to at getting good at. And the second would be some sort of consistency. Like, yeah, this is exactly the good time of the year for that example.
Starting point is 00:09:54 We are all in January going New Year resolutions that, yeah, I'm going to be going. But third week of January or starting February, we're like, yeah gonna and little by little you start show up if you show up there at least I would say once a week or twice and my personal opinion would be the bare minimum to consider like hey yeah you're trying to keep good care of your physical staying in shape right and it And it's very similar with Agile. With the Agile practices, I see all over the place that, yeah, daily stand-ups, we have a Kanban board, we do the Scrum meetings and these plannings and the backlog and the reviews but most of the organizations
Starting point is 00:10:46 that I've been at are not doing the key component like I said with the gym most of them are not doing them or getting those benefits and don't get me wrong I there's a benefit or doing the daily stand-ups. There are benefits of organizing, following up, having little pieces of deliverables. But to me, there are three components, like I said with the gym, that would define if you are truly embracing this agile philosophy.
Starting point is 00:11:23 And it had me down the rabbit hole to read who's his name Jeff Sutherland's scrum book where all of these things are described I think as a starting point and I think that some of them and keeping it with the gym example, get into the CrossFit mindset where everything is about CrossFit and I need and the life starts to spin around it. But it's not anymore about being fit. It becomes about CrossFit. It's like you're doing the craziest exercises you're doing. And in Agile I have noticed that as well,
Starting point is 00:12:02 like religiously the daily stand-ups and start to polish and the burnout chart and all those things have become for the sake of Agile, not for the benefits that Agile will bring us. And I think I've turned around these topics, but I think the first one that is really critical to achieve this agility would say to be releasing to production frequently. There's most of the time, that's a key component. Some may get benefit to releasing to those pre-production environments, staging, QA, any of the flavors that you know that come before production. But the key element of it is release frequently into it so that your end users, whoever has to use the software that you're creating, have the capability to give it a try, to start using it, to start seeing that's the point of these sprints, these little deliverables so that
Starting point is 00:13:05 everything can continuously be showing up hey what do you think of this new thing um let's try it out let's uh push it for to say it in a way for the world to see it and to close the loop the second element will be to pay attention to what happens once it's out there, once the end user is using it. If the person or the audience likes it, hates it, is having bugs, is having problems, and quickly loop it back. Because on one hand, pushing frequently to production, some say like, yeah, we are pushing once a month. I mean, to me, that's pushing it a little bit because then to close the loop and have that feedback will be another month.
Starting point is 00:13:52 And then to push a new thing will be another month. And three months later, you barely are fixing something that was requested three months ago. It's like a very, very long period to have those risks in production or be holding up things and that and that's why those two week sprints are happening that's the main reason to give you a chance to push in front of people these new things and quickly get feedback and pay attention to that feedback would be hear the people and act on what you're hearing
Starting point is 00:14:24 because other organizations like yeah yeah yeah you have problems but we're working on these new features and that's all they care about or we have this deliverable this big release in six months and that goes a little bit against this agile philosophy that that you should be able to continuously check, see if what you're doing makes sense, if it's okay, if it's good, if you're going in the good direction and be able to, in an agile way, change direction. Otherwise, you are still blindly driving towards a goal that who knows if it's going to be really what generates impact that you're looking for and it the same story that we had with the waterfall days you will find out in six months in a year when the release happened and if anything is
Starting point is 00:15:14 found out maybe a waste but we will see in the next six months when we do another one and many organizations are not aware of those key elements they are just into like yeah I have the yoga pants and the protein powders and all that. But they are not doing or getting the real benefits from these philosophies or these methodologies. Where I think the third component that I would say, and this is the one where I'm not so sure, I wouldn't set it in stone, but I would say that your scope is not defined or with a clear end date for a real Agile project. Most of the solutions that are developed in an Agile way, you keep switching lanes
Starting point is 00:16:03 or changing direction or this little piece I'm gonna put it this way I'm gonna remove it and it's not like by the end of year the software has to be released with these disease and that is some what elastic no pun intended another no modern technologies but it shouldn't be like an old waterfall practice. This date, these deliverables, and it's going to be the end of the world if you don't commit to that. Because especially you are hearing your market, your audience, your end user, just change those directions. And there are some things that you may not be able to complete or you may not even complete.
Starting point is 00:16:47 Say like, hey, the user hated it, does not need it. We thought it was good, but no one is using it. Let's drop it. Why don't we add something new? Or just we sadly wasted some time on this, just out of the picture. Let's not waste more time, because if we did it in a long release process,
Starting point is 00:17:05 it would be six months until we figure out and we waste even more time. So those are the advantages. And most organizations have no idea. They are just jumping into it for the sake of some buzzwords or activities that we hear, see all over the place. And it's amazing to me. And even reading the Scrum book, as I said, it dives a lot into the process because, yes, you want people to learn the process,
Starting point is 00:17:36 but then you get lost into the weeds and it's like the process for the sake of the process and not for reaping the benefits of all this. Wow. I mean, yeah, he brought up a lot of points that i would love to dive into but i also want to make sure we stay focused on on a little bit on performance but one thing i want to highlight a couple of things um that getting into smaller deployments or like breaking bigger features into smaller things and allowing you to be flexible and then reacting to it is obviously the desired state, but it's also very challenging because it
Starting point is 00:18:11 needs a lot of planning. How can you break down a big feature into smaller chunks that it can deliver something that is actually valuable? And I think the trade-off is always, yes, of course, I want to deploy something that already provides some value, but it has to have at least the minimum value because otherwise you are making your users mad. I just had a conversation yesterday with a friend and in Austria we had years ago, they switch over to a new system for electronic track record keeping of healthcare data.
Starting point is 00:18:43 So basically doctors were able to put in all of your data electronically and they had this new system and when they they deployed that system they forgot a search feature so that means every doctor couldn't search for the patients you know couldn't search for any of the records so they had to manually click through everything and obviously it was a minimal viable product, but nobody used it anymore. Nobody started using it. No, not so viable. So I think this is important.
Starting point is 00:19:12 And I think this was years and years ago. Andy, can I add one thing to that? Because this fits right in in the idea of how agile. We had a similar thing with the medical records here. And I went to a doctor. And it was for my daughter and their version of the electronic records as they took all the notes by hand scanned it in and then pulled up the pdf yeah this doesn't give you any any value right so that's one thing um the other thing i
Starting point is 00:19:40 really also love the fact that when you deploy fast and frequent, you can get feedback, but then you also need to be very careful, I believe, as the one that makes decisions to which feedback you listen to and to which feedback you need to be also careful with. Because if you listen to every feedback and change direction with every two weeks, you're never finding kind of your end goal. I think that's also challenging. And the last thing, this is now my segue over what does this mean for performance engineers or let's say site reliability engineers or
Starting point is 00:20:11 whatever we call them these days if we move towards a continuous deployment model every other week what has to change in these teams what do they need to adapt does it help them if they just participate in the stand-ups and then know what they are supposed to do or what other what does it mean to be agile for a performance engineer and yeah that's a a question and a discussion that i have had even with organizations now what they say help us, what type of people do we need and what type of roles. And this is another one that I'm kind of suggesting how, because how organizations should work as it is a, you need to change the mindset of how we used to do performance and load testing in the old days, like these big load testing projects were at the end of the
Starting point is 00:21:06 project like six month project they left the last three weeks for a load testing that was somehow supposed to cover all performance possible issues already from that departure point was already a little stretching of things. But you would get to those three weeks that you gave to the project and in reality were just a week because everyone else ate that slot of time. And none of that will work anymore in these continuous and agile ways. There's a full change of mindset and practices that a performance engineer, I think that's why you may not be hearing so much the performance tester term anymore. Where the tasks of the performance tester before were you are kind of a scripter and then you execute and create the scenarios. Do some sort of analysis and generate a load test. But nowadays, I wouldn't say it's so much about those traditional big-ass load tests
Starting point is 00:22:12 that we used to have where, yeah, almost everything was related to capacity planning. Nowadays, as you say, we are continuously, we already have the software in production. We already have an idea of how it is doing if we are doing things accordingly. So the way we do things, how we attack it and who attacks it is going to be very different for performance engineers nowadays. And that's another one. I recently had a discussion with an organization that were asking like how many Scripters should I hire and I'm like, I don't think you should hire Because they were migrating to micro services
Starting point is 00:22:54 Ditching all an old monolith that they had as a solution Hey, are you still gonna use the monolith or working around it? Yeah a little bit half of it Okay, have a couple there. That's that's unavoidable. You need to keep doing it the old to use the monolith or working around it? Yeah, a little bit, half of it. Okay, have a couple there. That's unavoidable. You need to keep doing it the old ways with the monolith. But for the new pieces, I wouldn't recommend to have a scripter holding your Agile team with the handover, waiting for things to finish, to do the test and back that back and forth you only have technically like two weeks if your sprint is a standard some teams are shorter or you have continuous releases you
Starting point is 00:23:33 don't have the time for waiting for a scripter to do that automation front-end automation god forbid you're doing that in the these new more times sometimes have to, and there's no other way, but you should not be creating software that is also difficult to test and automate at different tiers. And that brings a little bit the topic of the tiers and the sacrificial Aztec pyramid of automation. But before I get into that, the role of the performance engineer i think is
Starting point is 00:24:07 more around i'm not sure if using the term but evangelization or being an ambassador with the agile teams because as well you have these smaller teams that you should or cannot depending on the organization but wouldn't be good that you stay with them. You just come in, teach them about some of these practices, you teach the developers to do animations at the correct tiers in the pyramid, and teach them what are the things that they should care for, be aware or checking, and don't give them or do the fish for them teach them how to fish what type of fishes are interesting and trying to keep in the fishing
Starting point is 00:24:53 analogy that the teams become self-sufficient and that can automate some performance metrics and measurements and i would say with that you're continuously releasing tests for some sort of load. And the performance always, I mean, you should have performance testing in the purest definition, like when you measure impact and response times in a given scenario. The base performance testing should be done everywhere all the time, and coming from Dynatrace observability, all those things, I think you all agree that should be happening.
Starting point is 00:25:35 As a matter of fact, no argument or no question there. And the point for the big, huge load tests, I don't see a true need anymore for doing it always. Rare occasions you will need it. There are so many other practices where you can do some sort of load testing with beta users, releasing into production. Again, you are already in production
Starting point is 00:26:03 if you are doing Agile, so you have some idea of how do you respond to some loads. There are very few scenarios like a Black Friday. Of course, you need a load test. They're traditional and try to push it as far as possible. But very specific scenarios. I don't see that the team should be like some other teams that I met, like we need a production load test before we release into production. Why? You released last sprint,
Starting point is 00:26:32 you are going to release the next sprint. Don't you already have an idea? Just check the new thing that is not bringing too much noise and most probably you will be able to do well. And also focus on rolling back if for any reason you have a bottleneck so that you can tune it and and that's the importance of going back and forth quickly as well if you can identify that you have an issue right
Starting point is 00:26:56 away observability wise you will notice it immediately in production say hey hey alert alert these strings in the Toyota production line that you could pull and stop everything and send it back. Can't remember what's the name of that string, but... I think it's string you make string face. Like, yeah, an alert and an alarm, stop the machinery. And it's important to try to release the software with all that in mind instead of just holding on to those old practices and old methodologies. The role of the performance engineer is more on teaching the people in the team
Starting point is 00:27:44 because they should have some knowledge around what is happening and if possible, being able to do most of those automations that you should do nowadays instead of just front-end, end-to-end old automations and help them.
Starting point is 00:28:02 Like, okay, you may need to integrate your Jenkins with observability and triggering some stuff after you do a check-in. I can help you to implement it. I can teach you to implement it, but you need it because this, this, and that. When you do a check-in, have a unit test,
Starting point is 00:28:18 service level automation, some things that quickly will tell you if what you just created is okay, and don't waste time waiting to attest or to come in to verify it and I mean you have the checks in the production line I mean here you will hear a lot of analogies with production lines and assembly spiritually but that's the idea you identify the problem where it's happening and not waiting until I don't know in that production assembly line the car is already on the road and you figure it out when they are already crashing that's when it gets more costly
Starting point is 00:29:01 more expensive slower and all those ugly things that we want to avoid yeah i think the um the key there even ties not to plug your book again but it ties back to the concept of your your first book right because we're going from traditional low testing to more modern style and if you think about the people who are coming in, let's say net new, right? They haven't been doing the old style load testing. All of this makes, I think, very clear sense. You test the bits that need to be tested, you roll it out, you observe, you have feedback loops and you roll things back.
Starting point is 00:29:39 But for the people who've been coming from more of the traditional world, I remember when I started hearing stuff, and every time I hear these conversations, I feel a little fear because you're like, but, but, but, but, right? But I always realized, number one, you were never testing everything anyway. You're testing scenarios you scripted for. But number two, all of this idea of not doing, as you call it, the big-ass load test, I guess you should term the word bolt, right? That's a bolt test. It's because you have a bunch of other checks and balances in place.
Starting point is 00:30:10 If you're teaching, as you're saying, if you're coaching your developers, to me, performance starts when the code is finished, or actually, technically, I guess, before it's written. You think about it before you write it. But the first time you could really test it, you don't even need a load. You run one run-through of it. And then if it's something that existed before, you can compare it to the other one.
Starting point is 00:30:28 Did we increase our CPU time? Did we increase maybe the code lock time? Did we introduce something? Did we improve things? And before it's even under scale, before it's under any load, you can see if there's a net change that's either good or bad, right?
Starting point is 00:30:41 So if you're getting people to do that and then maybe test their services and all, right, you're mitigating the risk. You can't do a full risk analysis for everything except for those Black Friday deals. But there are a bunch of checks and places going back to the factory line, right? There are sensors everywhere for small little deviations to pick these things up to really, really mitigate that risk. And there's a comfort level you have to get to it. But for, you know, again, someone coming from the older style of load testing, or I don't want to call it older, but the bigger style of load testing, right?
Starting point is 00:31:10 It's making sure you don't just switch over, but you switch over and you have all those checks in place. And that's the key piece, is having those checks and balances in place so that you are mitigating that risk. And the most important one, as you say, is having something like that two-week release cycle and a good rollback plan so that if something did escape, you can either roll back or you have a fast path towards a fix if you need to move forward.
Starting point is 00:31:33 But these all have to be in place. It's not just, oh, we're going to do spot checking and not big. But you have to have everything there. You have to build it all. Again, you can't just wear the sweatpants. I love that analogy, by the way. that's a fantastic analogy because yeah that's me i'll go do that i'll buy my new sneakers and i'll work out for a few weeks and then all that there is is just the yoga pants for amigo brian one thing i wanted to add leandro is
Starting point is 00:32:04 and maybe you you meant this, the way you said it, but I understood it maybe incorrectly. You said the performance engineers are more like mentors, so teaching them how to build the tests and how to integrate them with Jenkins. For me, it feels like, at least the way I tell it to our users and the community, I want to encourage the performance engineers to not only teach them how to write scripts and the community. I want to encourage the performance engineers to not only teach them how to write scripts and then how to integrate with the CI CD, but actually provide that level of automation
Starting point is 00:32:33 already so that the engineers only need to check in their description of what they want to have tested, their test scripts, whatever, like K6S or other new tools we have out there, then check in their definition of what metrics are important for them in Git. But then I don't think that every engineer or engineering team should figure out how to now integrate all of these tools in the pipeline. I think this is what I thought, at least a modern performance engineer, is that they're working with the platform teams, the pipeline teams, the DevOps teams,
Starting point is 00:33:10 whatever team that is, and kind of bake performance into the pipeline. And then obviously enable, and this is where the mentoring comes in, show developers, hey, when you create a new microservice, here is where you put in your test folders, I will use it where you put your test, here's where you put in your test folders. I have a user where you put a test user. You put your observability definition. Here's where you put in your SLIs and SLOs. And then from that on, every time you check in, you will make sure we will make sure that your tests get executed. So that you are sharing the framework, right?
Starting point is 00:33:40 And that goes a little bit in line with what you were saying, Ryan. Maybe I didn't go as far at the explanation. I'm toying with the term PDD, like test-driven development, performance-driven development, where not even in the definition or the meetings when you are doing the sprint planning and what we are going to do or creating the requirements on your tasks on your Kanban board from the very beginning when you are about to start a project bring on the performance engineer and say hey mr. performance engineer what would you recommend do we need to have these Jenkins pipeline our solution is
Starting point is 00:34:20 going to be created I don't know in, in C Sharp or in Python, what tools, at what levels, what best practices, and even at a level of infrastructure, like how many of us have walked into a load balancer that is misconfigured just because it was just dropped down out of the box. And some of these little problems and defects, the performance engineer should have some assessment, give a feedback. And when the team establishes these processes, as you said, Andy, we have this new requirement. Not all of them are going to be the same. Not all the teams will use the same tools, the same integrations. And one process may require more attention on web performance, one requirement, and the other may be more on database.
Starting point is 00:35:09 I don't want more than 10 connections to the database or that the query brings back this much information. Some of those things should be defined at the very moment in those sprint plannings where we create the backlog and say this to do this task that I'm putting on the cam and board has a check for performance that when the developer finishes it can be moved to done and this includes having some sort of levels of automation unit testing and some checks and passes for hey you just created a I don don't know, a database request, should not be reading more than this number of records, not do any full table scan, and have no response in this period of
Starting point is 00:35:53 time for five threads. So just give a quick example, right? And to be completed as done and be able to be fully checked in or move further in our repositories or even to production should come paired up with some of those automations, unit testing, service level testing, and some of what I was wanting to say with the automation pyramid, to make sure that we have coverage where we need it or should have it at the earliest. Checks and balances at the earliest. Keeping with the gym
Starting point is 00:36:30 reference, you are going to the gym because you want to lose X amount of pounds. That's it. Have your SLOs, SLIs defined for that little element so that you create software with all that included, which you know is important, and you'll be able to use it even once you're in production. I mean, some of those things hand in hand, and if you teach the developers to give an example, to do those automations, to do those things,
Starting point is 00:36:59 they are the ones creating the code. They are the ones that understand it better and how to check it. I mean, if it's a service, if it's a unit, it's super fast, super straightforward. Shouldn't be leaving it for a tester to wait and see, and hey, what did you change? What are the differences? The developer already knows it. And most of the modern services, microservices, unit tests, are pretty much function calls or method calls for classes. It should be done there. It's the most efficient way.
Starting point is 00:37:37 I mean, and to jump a little bit. Amen. Yes, I thought that was the quietness. Yeah, so quiet. I was about to do a drop mic... Amen. Yes, look at that. That's the quietness we're like... Yeah, so quiet. I was about to do a drop mic and get out of here. Yeah. And I think, Brian, what you were alluding earlier,
Starting point is 00:37:57 I want to come back to my earlier thoughts. If we are modern performance engineers, help build this into the... Build a framework or help build the platform. Obviously, I need to plug in what we do around Captain because that's exactly what we try to do. And by the way, a lot of this was inspired talking about performance and performance as a self-service by Mark Tomlinson, because Mark Tomlinson was the one who showed me and told me the story of what he did at PayPal back in the days when he automated the whole sequence of actions when a developer wanted to get some performance feedback. The only thing they had to do is they had to create a Jira ticket,
Starting point is 00:38:40 and that triggered the automation. And the automation deployed, tested, and then pulled back metrics and put it back on the same Jira ticket. So the Jira ticket became the trigger of the automation. You know, today we would probably use just a pull request and that would then trigger the build, the deployment, the test. And we're trying to do this with what we do with Captain. We're trying to provide this as well as
Starting point is 00:39:05 one of the use cases yeah and i think uh it's important you know as you mentioned andy to as the performance engineer to enable the developers as much impossible as possible we don't want to do the phishing for them right as you as you said le. But at the same time, I think an easy way out a lot of people take is to push it on the developer, right? So what can we as performance engineers do to enable them and make the efforts that they have to contribute as easy and seamless as possible? And that's where I think a lot of it comes into,
Starting point is 00:39:41 this establishing a framework, maintaining a framework, and then teaching the developers about what's important about performance, what to look out for, so that they just have to plug in a few things. It's a low effort on their part, but it gives them the ownership without the maintenance or, you know, how should we even tackle it? I think that's where performance engineer can use their expertise and their knowledge to build that all up for them and say, here's your inputs, plug your stuff in here, and you'll be good to go. And I want to point out, sorry, you had a comment on that one, sorry. No, no, on that level, some automation tools that are designed or are code-based
Starting point is 00:40:22 so that the developer, hey, this one uses Python, this one is JavaScript, this one, all of them, and here a plug for the ones that like JavaScript, K6 can use it, and it's the goal. Like, hey, Mr. Developer, you don't need to learn this new or thick SDK clients or user interfaces, drag and drop and complicated. It's just almost the same code that you are doing already in the solution. Just write a couple more lines, hit it.
Starting point is 00:40:55 Straightforward. Make it as easy and transparent for them. Agreed. And one comment unrelated, because I guess we're about, we got to wrap up in a moment, but I wanted to point out that there's a term that you need to be aware of for the wearing of the workout pants and the workout clothes and the fancy sneakers. Without it, it's called athleisure, a combination. It's a fashion term, athleisure. And we have a, before COVID-19 hit Denver, we've had for years a pandemic of athleisure in Denver. Everywhere you go, people just wearing the workout clothes to the supermarket to pick up the kids, even not to eat.
Starting point is 00:41:33 You know, it's a really such an important concept, though. Right. And it's human nature. What you're talking about is human nature is I want to do this cool new thing. So I'll get all the tools and all the looks but i don't necessarily practice it and maintain it and execute it but i look like i am same thing happens i think we see with kubernetes so many people are like oh kubernetes is there let's move to kubernetes oh what does that mean we spin it up and we lift and shift our stuff
Starting point is 00:42:01 onto kubernetes like no no no no you didn't do it you did not do it you're not doing it you're not learning anything you're not getting the benefits and that comes to anything you know if you look behind me i have all this fun musical gear right a lot of it you acquire because it looks fun and then it sits there for months before you even get around to it to start exploring what you can do unless you're making a practice of of of really exploring it and this just really really comes back to human nature over and over again. And we see it manifest itself in everything, including the agile. There's the old joke, what's a stand-up meeting? Meeting in a room where there's no chairs. Doesn't mean it's a five minute meeting. It's just complicated. Anyhow, that's my rant.
Starting point is 00:42:43 Sorry. No, I think we all have those type of rants because we have faced all those situations. It can be frustrating at times and some, like what you say, like hey, you're clearly not doing workouts. Why are you wearing the yoga pants or things like that, right? Walk around with a spray bottle, keep a constant sheen of parents' sweat looking like, oh no. You just sprinkle it in. Yeah, yeah, yeah, I totally did it.
Starting point is 00:43:11 And I see organizations doing that. Like, no, truly, truly, really, I just did. No, you're not. So then maybe Leandro, to kind of wrap it up here here what I took away from this is that it's I like the the gym analogy like Brian does and I think what we want to do is we want to encourage people that really want to make a change in their organization if they find anybody if you see something say something right if you see somebody that is that is just faking to be agile. Try to be a role model and really do it for real and show them the benefits of it.
Starting point is 00:43:48 If you not do it once a week, if you continuously do it. For the performance engineers out there, there's obviously, first of all, more developer natural tools, friendly tools, as you said, right? No longer the UI rich point and click tools, friendly tools, as you said, right? No longer the UI rich point and click tools, but more everything is code, whatever language or declarative and maybe in the ML or JSON. And also tools that can be fully automated and integrated
Starting point is 00:44:16 in your pipeline. And I encourage every performance engineer to look at these tools, figure out in your development teams what are the languages of choice. I think that's also good, because while scripting languages are easy to learn, but if you already have, let's say, knowledge of Python or JavaScript, then pick a tool that provides these languages,
Starting point is 00:44:36 makes it easier. And then also work with the DevOps teams or the pipeline teams to integrate those into your pipeline. Because in the end, the developer needs to make as little change as possible teams to integrate those into your pipeline because in the end the developer should needs to make as little change as possible to get the automated feedback off on performance and and i think that's how that should be the goal of every performance engineer yeah i will close close with a a small analogy there as well from what you said um making the task as easy and transparent for your team as possible because many times the developers are like
Starting point is 00:45:08 we were all when we were kids, children, and our parents were forcing us to brush our teeth before going to bed. It's a little thing. It takes just a couple of minutes. You should do it a few times a day and it just takes a little bit of time. If you don't, the consequences
Starting point is 00:45:25 may be long sits at the dentist, painful sits with it and having lots of issues. And in the same way to the children, when I get to that, don't give them the full blast of mouthwash and flossing and just give them a funny toothbrush tiny for them that is i don't know baby shark themed or something like that um yummy uh paste uh for them to be excited about it so to not to suffer little by little you start to introduce them to start to give them a path to instead of having to take them to the dentist and have root canals or ugly things. The gamification for the key. It's a great analogy.
Starting point is 00:46:09 Making the game, and I think we need to find the same thing for IT. Baby shark themes for IDEs. Yeah. I dare everyone to take that song out of your heads now. Yeah, thank you. Some people, fortunately, might not know, although they did, I don't know if you've seen Ted Lasso, it's a fantastic show on many levels, even just from
Starting point is 00:46:29 a leadership point of view, but there's a guy named Jamie Tartt and his chant is, but Jamie Tartt do do do do do do. Anyhow. Okay, now you took this tune into everyone's mind. Yeah, I'm just obsessed with that show lately. Me too. Thank you so much for this. This is fantastic. It's always great to have you on. And thank you for being part of our 150th actual show. I'd like to say if there's anybody out there who's been listening to us since day one,
Starting point is 00:47:03 get in touch because I'd like to buy you a gumball. It's about the budget we have for the show. But seriously, to everyone who's been listening for however long you've been listening, if you just tuned in or if you've been listening for a while, thank you all so much. Leandro, thank you for everything you're doing for the performance community. We need more people like you that are actually trying to help and not just get speaking credentials but really trying to help people and do so much more. So it's fantastic.
Starting point is 00:47:34 And I'm glad to know you. We've got to make a better world. Thanks, Andy. For the children. For the children and the baby shark. And the baby shark, yes. Thank you for getting that stuck in my head. Andy, any closing?
Starting point is 00:47:48 You said it well. I just say goodbye. Hopefully we'll see each other soon in person. Someday. Take care, everybody. Bye-bye. See you soon. Thanks.
Starting point is 00:48:00 Bye-bye. Bye. Thanks. Bye-bye.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.