 What's going on YouTube? My name's Lee Brand. I'm a developer advocate at Okta. Today we're going to talk about what being a musician for most of my life has taught me about being a software developer. Let's check it out. Not sure why I pointed that direction. Okay, so I've been a musician for most of my life. Started off in junior high school in my first couple of bands and was in bands all through junior high school and high school all the way up until joining the military at 19. And even when I got out of the military I was in a band or two here and there but nothing steady. By the time I got out of the military I was kind of focused on getting a real job which led me to becoming a programmer. Lately I've been back in bands again. One of the things that kind of struck me about it is some of the parallels between being in a band or being a good band mate and being a good software developer. So I wanted to kind of share some of those thoughts along the way. I've got some notes down here to kind of keep me on track because I am the type of person that will just blather on like this. So the first thing, number one, practice your craft. That doesn't just mean practicing the song. So I play in a lot of cover bands, a few original bands, but practicing the songs, practicing your part, making sure that you know how to play the part you're meant to play. For me as a drummer that means a couple of things. Knowing what the tempo of the song is and what that tempo feels like, being able to keep that tempo strong, always being able to, your band mates always being able to count on you to get them back to the one. So that's not just practicing the song or practicing the part that you have to play. It's also practicing your craft, practicing playing drums. Sometimes practicing drums is just getting on a practice pad and practicing your doubles, practicing your paradiddles, these very rudimental things that make you a better player. It also means knowing the parts of the song before you get to rehearsal. It's kind of an old running joke is practice is where you learn your part, rehearsal is where your band gets together and figures out how to play it together. So practicing your parts on your own as well as being able to practice with a band. Now, how does this kind of translate to software development? Well, it's not only just good enough that you be just good enough, right? If you want your team to be good, everyone on the team should feel this way. They should want to practice their craft. Even though there's a work-life balance that you need to strike, I think it's still possible to find one night a week. I mean, everybody has things going on. You have spouses, you have children, you have mortgages to pay. But I think everyone can find one night a week and read a blog post about some new technology that might be helpful at work, or maybe it's just some new technology that you want to learn that you find interesting. Watch a video about a particular technology that you're interested in. Watch a 101 video. This has been great for me. I've gone to a lot of conferences because I speak at a lot of conferences. I have a tendency to go and take 101 courses, do the 101 tracks, just because most of the time I learned that thing on my own and just kind of only picked up what I needed to pick up for that particular job. And sometimes it's good to go back and see some of those fundamentals, some of those rudimental things that you may have missed early on. I mean, I've been a drummer for a long time. And I just recently, in the last year, so really have started to put time into my rudiments. And I've been playing in bands since I was in junior high. So yes, you could be a programmer without knowing all the rudiments or knowing how the JavaScript V8 engine works or knowing how Redux actually works. But it can make you an even better programmer to go back and figure out some things about maybe watch a 101 video on how the JavaScript V8 engine works or rewrite. There's a video out there where the creator of Redux walks you through creating a very simple state management machine, a very simple version of Redux. And that really opened my eyes to how Redux works. And that can be super helpful. So I'm not saying spend every waking moment thinking about programming and all that good stuff. That's just not healthy. But even with all you've got going on, you could probably find one night a week to set aside a couple of hours to read a blog post or work through an example or something like that. So really practice your craft, practice the craft of software development, and practice your parts. So if you're the database person, then make sure that you know the database inside and out. If you're the back end developer, make sure you know how to write node for the back end as good as you can. If you're the front end developer, make sure you can write react for the front end or whatever stacks you're using. That's not important. What's important is it's about practicing your craft so that when you come back to the team, you're prepared, you're ready to go, and you're just knocking stuff out. That makes you a great teammate. And if everybody on your team does that, then that really makes for a really high functioning team. So number two, let go of mistakes. This one's hard. There's nothing harder, especially for somebody like me, because I'm an overthinker. I will dwell on something for days and pick it apart and think about what I could have done differently or how I could have acted differently in a situation. But one of the things that I've discovered over the last few years of really diving into music and being a drummer is the best musicians I know, when they make a mistake and they do, it doesn't even phase them. And the fact is, most everybody else in the audience probably didn't even know. But that's the thing. The quicker you can really good musicians, I feel like, can make a mistake and immediately drop it. Just think, oh, well, miss that and just keep right on going. And then later on, they can come back and go, huh, I wonder, should I move my symbol a little closer if I missed that? Or what else could I do there? Or maybe I need to practice that little rudiment there that I was using for that fill that I kind of screwed up. And it's the same thing in programming. When you make a mistake and you're going to make mistakes, it's important not to dwell on it. Because what happens is, it's called quicksand. Once you make a mistake and then you think, oh, man, I really screwed that up. And while you're thinking, man, I really screwed that up, you screw something else up. And you're like, oh, crap. Now all of a sudden you've made two or three mistakes and things just kind of start to snowball and you sink faster. The best thing you can do is when you make a mistake. Now, making a mistake in software is not like you making a music, making a mistake in a song where you have to play the next beat anyway. You can stop and take a minute and go, huh, what are, oh man, I should have, you know, or I couldn't have or man, I shouldn't have done that or, okay, for future reference, don't do this, whatever it is. Just know you made a mistake, own up to the mistake and say, sorry, everybody, I won't do it again. Right. And that's something you can just kind of file away for the future of, I'm not going to make this mistake again. You probably will. But for me, it's taken several of the mistakes along the way have taken me two or three times of making that mistake over a period of years now, not in the same week or anything, but over a period of years, making the same dumb mistakes and then coming back and going, I did it again. Okay, don't do that. And then after two or three times of doing that, I'm like, every time I'm doing it, I'm like, okay, make sure I didn't do that thing again. Okay. So the other half of this is also when your teammates make a mistake, when your bandmates make a mistake, don't dwell on it. Definitely, you don't need to call them out. They know they made a mistake. And just know that, man, it sounded good, you know, I mean, yeah, I could hear the one little mistake in there, but other than that, everything was good, man. You know, it's all good. It's all good. If you've ever made a mistake, you know how good it feels when somebody just says, dude, don't worry about it, you know, made a mistake, it's going to be okay. Everything will, everything will get back to normal. It's all good. Just hearing someone tell you it's all good when you've made a mistake can be such a load off. And for somebody who's an overthinker like me, it can be super helpful for me to stop. I'm only going to think about it for a day and a half now instead of for a week and a half because somebody said, man, it's all good. You know, you made a mistake. It's cool. We fixed it. It's good. All right. This can really help build a stronger team cohesion when you, when you let your teammates mistakes go, when they let your mistakes go, and when you let your mistakes go, when you say, man, okay, for next time, don't do that, right? And that builds a really good team bond there. And nothing, I'm telling you, nothing is better for a software development team than a team of people who enjoy working together, a team of people who are tight and cohesive unit. Those teams are way more productive and they're way more fun, right? When you're working with a team of people that you enjoy working with, getting up in the morning and going to work is a non-issue. You know, it's just like, you know, when you were back in school, you dreaded going to school at first, but after you made some friends and you had a tight knit group that you hung out with, you couldn't wait to see those people at school tomorrow and tell them about some thing that happened to you last night or to do those things that you do with your friends all day, right? Now on the flip side of that, you really need to be able to celebrate your teammates' victories. It's not uncommon to feel a tinge of jealousy if a teammate, maybe they get a certification that you've been wanting or maybe they got a certification that you failed the test for. It's cool. It's okay to be jealous that you or to feel bad that you didn't pass that certification they did, but that doesn't mean you shouldn't be happy for them. It's important that when your teammates do something good that you let them know and that you celebrate with them. So it's not just a certification or a really big promotion or something like that. It could be something as small as they wrote a function and when they checked it in, you looked at it and you're like, man, that's clean. That's exactly how I would have done it. Or maybe it taught you something new. You saw some new thing that they used and you're like, God, I never thought of that, but that is awesome. It's important for you to tell your teammates, man, you killed it today, just like it's important in a band to tell your bandmates, man, you killed it tonight. That solo was fantastic. It's important because those are the types of things that build a closer tight knit team and a team that you'll enjoy getting up and going to work with every day. I mean, you're going to be spending eight hours of every day, one third of your life with these people. It's important that it be a team environment that you enjoy being a part of. Now, this leads me down another track. In a band, it's important to find those players that you play well with that you can just tell, man, I know this guitarist likes to do this little lick at the end of his solos. There's that lick. We're coming out of the solo and going back into the verse now. Those are the sorts of things that you just pick up working with people for a long time. Sometimes you just have that chemistry and you can just feel that. You just know that, man, he plays exactly the way I would hear it in my head and I can just play right along with him. I just know it's going to happen. When you work with a team of people that just get each other, it makes an enjoyable experience. Now, all of this stuff comes in under, for bands, what we call being a good hang. It's just about being a good person and being somebody that people want to hang out with. Again, for work, you're spending a third of your life with these people. It's important that when you're looking for a job, you find a job with those people that you want to work with and if you find yourself on a team of people that you just don't want to work with, it's time to move on. Or if you find yourself on a team that has one person that nobody wants to work with, it may be time for them to move on, right? Which brings us to our next point. If you have to move, if you have to lose a teammate and you will, sometimes it's just their spouse got a job at another city that's a really good pay raise and so they're coming with them. Sometimes it's, I just got an offer out of the blue that's just too huge of a pay raise to pass up. Or maybe it's, I haven't been happy here for a long time and I found this other job that's doing stuff that I really want to do. You will lose band members. You will lose teammates along the way. But it's important to leave, when you leave a team, it's important to leave on a positive note. And when a team member leaves, it's important for them to, for you and them to leave on a positive note. I was a consultant for most of my career. You'll never know when you're going to need that reference from somebody or when one of those people who was on a team with you a couple of years ago that left it, maybe it was a really crappy place to work, but the team was good. Everybody enjoyed working together and people enjoyed working with you because you're a good hang, right? And so when they, when they need a teammate, they're going to call you, right? So leaving a team on a good note or on good terms is super important. And when a member leaves your team, it's important that you leave on good terms, that they leave on good terms with you. So even if you're staying, it's important to leave on good terms. Now, if it's somebody that you just couldn't stand, okay, maybe it's okay, but you don't, you don't want to go out. I mean, it's, I've seen people along the way say all the things that they've been meaning to say to this jerk that they've been working with and it just never works out well, right? Because even that jerk might refer you to another job later on down the line. Even if you don't want to work with them ever again, that's fine, but they may be leaving a job and recommend you to replace them, or they may hear about a job or maybe a friend of theirs is leaving their job over here to come work with them. They may call you up and go, Hey, my friend's leaving this job. So they're going to have an opening very soon. Check it out, right? So in anything, whether it's music or in software development, your network is, is paramount. Your network can really, really help when you're looking for another bass player. It's important to know as many bass players as you can find, right? As you can get on good terms with. And the longer you know them, the better, right? Because you know they're going to be a good hang before you even invite them over to jam. Just like if I'm on a team, I already know they're going to be fun to work with before they even show up. There's almost no need for an audition. If I know how well you play, there's no need for an interview or a code test or any of that stuff. If I already know, you know your stuff. Finally, I've played in a lot of cover bands and this is true for originals bands as well. Not every song is going to be your favorite song. Maybe it's just that your part's kind of boring with the drums. It can be very easy playing cover songs because you're playing songs that people at bars will want to hear, right? So since you'll be playing cover songs, songs that people at the bar want to hear, sometimes those songs are kind of boring to play on your instrument. And even if those songs are boring to play on your instrument, I can't count the number of songs on drums that are just all the way through the song. But people love that song. So it's important that I play that song with just as much enthusiasm as I play the songs that I really enjoy playing. And it's the same with software development. Sometimes there's grunt work to be done. We all have those things that we don't like to do. Maybe it's a database migration. Doing an ETL process on a database always takes about four times as long as you think it's going to, okay? And it's just not my favorite part of the job. But sometimes they have to be done. And if you're the database person, that's going to be your job to do. And even though maybe making an ETL process or creating some reports for executives is not going to be the funnest thing in the world to do, it's important that you do them with as much enthusiasm as you do the stuff that you enjoy doing. Because later on, when there are promotions to be had, your boss will call you and say, or call his boss and say, Lee has done every crappy job we've thrown at him, every really hard job we've thrown at him, and he's done both of them with a smile on his face and with just a happy attitude. Now I know you can't be happy every day. Things happen in your life. When you come to work, those things bleed into work just like work bleeds into your home life. But it's important to remember whenever you're given one of those crappy jobs to do, it's important to go, okay, I understand. It needs to be done. It's cool. I get it done. And just try and make it as fun as you can make it. Just remember that not every song you play is going to be your favorite song. Not every song is going to be even a song you like. It might even be a song that you did test. But audiences enjoy hearing bands play those songs. I'll even throw in one extra bonus tip and it's one that I suffer from greatly. So in musician circles, we call it gas, gear acquisition syndrome, right? Thinking that if you buy that new snare or that new cool symbol that it's going to make you sound better. New cool super expensive gear doesn't make you a better musician. Just like having the coolest computer doesn't make you the best programmer. It's cool if you want to buy the $10,000 computer. That's fine. But don't think that that's going to make you a better programmer. Just like buying the new cool $1,000 symbol is not going to make you a better drummer. Only practicing your craft can do that. So if you're a musician and you're a programmer, what have you found that's very similar like these things? What tips do you have? Put them in the comments below. Also, make sure you hit the like button if you liked this video. Make sure you subscribe if you like this type of content. We do this. We do programming content on this channel every week. So make sure you hit that subscribe button. Hit the little bell notification so you'll get a notification in YouTube when you've got a new video, when we've got a new video coming out. And we will see you next time.