🎙 Develpreneur Podcast Episode

Audio + transcript

Automation for Better Habits - Streamline Your Workflow and Boost Productivity

In this episode, we discuss the importance of automation in improving productivity and workflow. We explore various tools and techniques for automating tasks and processes, including shell scripts, AWS, and code generators.

2024-10-27 •Season 23 • Episode 4 •Automation •Podcast

Summary

In this episode, we discuss the importance of automation in improving productivity and workflow. We explore various tools and techniques for automating tasks and processes, including shell scripts, AWS, and code generators.

Detailed Notes

The hosts, Rob Brodhead and Michael Milosz, introduce the topic of automation and its benefits in improving productivity and workflow. They discuss various tools and techniques for automating tasks and processes, including shell scripts, AWS, and code generators. The guests share their own experiences with automation and provide examples of how it has improved their workflow. They also emphasize the importance of identifying daily tasks that can be automated and creating a plan to do so. The episode concludes with a challenge to listeners to try automation in their own workflow and share their experiences.

Highlights

  • Automation can save you 10 minutes a day by cutting down manual tasks
  • Use a shell script to automate tasks and processes
  • Identify daily tasks that can be automated and create a plan to do so
  • Use tools like AWS to automate tasks and processes
  • Code generators can automate the process of building websites and applications

Key Takeaways

  • Automation can save you 10 minutes a day by cutting down manual tasks
  • Use a shell script to automate tasks and processes
  • Identify daily tasks that can be automated and create a plan to do so
  • Use tools like AWS to automate tasks and processes
  • Code generators can automate the process of building websites and applications

Practical Lessons

  • Create a plan to automate daily tasks
  • Use tools like AWS to automate tasks and processes
  • Use code generators to automate building websites and applications

Strong Lines

  • Automation can save you 10 minutes a day by cutting down manual tasks
  • Use a shell script to automate tasks and processes
  • Identify daily tasks that can be automated and create a plan to do so

Blog Post Angles

  • The benefits of automation in improving productivity and workflow
  • How to identify daily tasks that can be automated and create a plan to do so
  • Using tools like AWS to automate tasks and processes

Keywords

  • Automation
  • Productivity
  • Workflow
  • AWS
  • Code generators
Transcript Text
Welcome to Building Better Developers, the Developer Nord podcast, where we work on getting better step by step, professionally and personally. Let's get started. Well hello and welcome back. We are Developer Nord, we are Building Better Developers, and this season, I think I can remember, we are Building Better Habits. And in season 23, we are a couple episodes in. Each episode we are talking about a topic, we pick a topic, how can we be better, what are some things that we can do, how can we make some habits that are going to make us better, and then we have challenges. Now last time around, one of the things that we did, as we talked about the Pomodoro technique, and one of the things we challenged you guys to do is one Pomodoro, you know, little session a day. Love to hear how that went. Did you at least get a week of Pomodoros? I am like, I think I'm day short, I will do one today. It is really interesting that I've done, doing one has been really interesting because every single time the timer goes off and I'm like, I don't know, I actually have had every single time I've spent a couple more minutes afterwards, just sort of like, oh wait, I got to do this, I'm going to do this, and then had to like cut it off. And I did come back to that later, but it was, it actually was really good to just be like, all right, I'm going to get really focused. And when I do, it's amazing how fast that 25 minutes goes, because I was doing 25 and fives. It's amazing how fast that goes. And it was amazing. It's like, oh yeah, I did get a lot of crap done. So let us know how these challenges go. This episode, we're going to talk about automation. We're going to talk about finding ways to make your life better by looking at what you do a lot. It's the same thing, it's our profession. So we should be good at building automation of some sort and scripting things and batching things and all those things that are what we do for everybody else. Before I get too far, let me introduce myself. My name is Rob Brodhead. I'm one of the founders, developers of Building Better Developers. Also, the founder of RB Consulting, where we essentially, what I just talked about, we help businesses understand where they're at. Take a look at your current systems and positions and roadmaps and things like that, if you even have one, and then help you create a plan, a roadmap for the future to make sure that you're using your technology better. You're taking that technology sprawl and all the pain related to it, and through integration, automation, and simplification, finding a better way to use all those things to leverage technology to make your life better. Good thing and bad thing. Good thing for me is I went to vote the other day. I did some early voting, and it took me, I don't know, maybe 10 minutes total, something like that. It was really quick. I didn't have to stand in line very long. Actually, sort of like icing on the cake is as I was going through, I looked back and the line was growing the whole time I was there. So I got in. We got in just in time, got our voting done, got out. So good thing. Bad thing. Oh, gosh. What kind of bad things do I want to? I've had a week of bad things. Bad thing is, it's one of those business things. It's always bad for me when I have to go nudge people, when I have to nudge a customer where it's like, hey, you got an invoice out there, or hey, you've got something you owe me. Sometimes, now the invoices are harder because it's like, hey, I need you to pay us for our work. Work is not quite as hard, but still where it's like, hey, you promised me this file, or you promised me this content, or this stuff that I need in order to work to move forward. And I had a couple of those. It was sort of my Friday, like yeehaw, it's Friday thing as I had to go through and poke several people to say, hey, you know me this, I need this. Hey, you forgot to give me that. And that's just never fun. So that's a culmination of a week of bad things. One of the good things though was on the other side of the internet there, Michael, go ahead and introduce yourself. Hey, everyone. My name is Michael Milosz. I'm one of the founders of developer NURB, Building Better Developers. I'm also the founder of Envision QA, where we do multiple things. We help small to mid-sized companies work with their software stack, help you understand and deal with problematic software. If you're a healthcare clinician or small healthcare shop, we also help you build medical software customized to your clinics, to your office spaces. So you don't have to go buy those big expensive tools out there, epic, to kind of get what you need out of your software. And to kind of lead into today's discussion, we also help you improve your user experiences with quality control solutions through things like automation testing, building automation scripts and actually working with users to identify what your software actually needs to do so you can test it before it actually rolls out. Good and bad. Good thing this week, I actually finally checked off a couple of to do things I had to do around my office for probably the last six months. I've had some spotty internet connections with one of my routers, kept thinking it was a switch. Finally, I just went out and replaced everything, rewired everything. Everything is working now as it's supposed to, except all the last night. The bad thing is I think I have a Plex server that might still be going down, so I may have to replace one more thing, but I almost have all the media stuff in the house working smoothly. So my wife, who is not technology sound, is happy. Happy wife, happy life, as they say. Our happy life is going to come from automating some of our work. Now this is amazingly to me, this is actually a challenge a lot of developers run into. If we are essentially, I'm probably over dramatizing it, but just a little. If we are dragged kicking and screaming into automation, we will do it. And then once we are, we're usually fairly confident with that. We're pretty happy with it. We're like, we're content. For example, I know a lot of times that people, developers have stepped into something, built a project, they've got version control, they've got some basics things. But when they get into the CI-CD world and automating builds and deployments, they're like, no, I'm not going to do that. That's like, I don't want to do that right now. Then when they get to that point where it's like, okay, every time I do a commit that gets reviewed, it goes in and it pushes out to all the places, they're like, that's great. That's awesome. But we don't want to do that naturally. We have too many of these manual tasks that we do on a regular basis that if we just would invest sometimes 10 or 15 minutes, we can save ourselves easily that 10 or 15 minutes in the first day or two and maybe more than that. And we have talked in the past about things like utilizing tools that are out there like your mail filters with your mail and cleaning that up and streamlining that. I don't want to talk about that this time. I want us to take something that's a little bit bigger and I want us to look at how do we find a way to make it easier. Now when we step into this kind of a, we'll call it a mini project. When we step into this little mini project of I want to improve something, that is wide ranging. So what we first want to do is find some targets of what we can improve. Now like we do for our customers in a lot of cases, one of the things we're going to do is we're going to look at what are the things that have the greatest value to improve them, to do process improvement. That could be either something that is run occasionally that takes a very, very long time and it would be very helpful to have it take a very long, a very less long time or something like that is to cut that time down. Maybe cut like monthly processing if it takes three days and maybe it would be much better if we could do it in three hours, things like that. But more likely what's going to help us are the things that we do on a daily basis, the things that we spend five or 10, 15 minutes or maybe an hour or two each day doing and find a way to improve that or automate that. And that's where I want us to look as we're moving forward into this is we're embracing this particular habit. What we need to do is take a period of time, like usually a good time is a week because this is where we're going to see multiple daily tasks and keep a little closer eye on it. So it's essentially like maybe at the end of the day, take a look back and just do like a little brief like log or something of like, what did I do today? And give yourself at least a rough, like how long did it take? The how long did it take in itself can be a very interesting question to answer because there's a lot of times that if you're asked how long does it take you to do X, you'll quickly say that takes five minutes. If you actually look at the time during the day, it may be 30 minutes or an hour. Checking mail is one of those things. People will be like, oh, I just spent a few minutes a day looking at mail. But if you actually really break it down, you'll find out that maybe you're looking at it for an hour every day. Now, there are certain things that we do that are our rituals, essentially, that we're going to do with a developer. A lot of times these things come into play like maybe researching something, downloading a file, checking if something needs to be updated, maybe checking status, like ticket statuses and things like that, looking at my dashboard. What are the tickets that are on me to do today? Prepping or fallout from a standup meeting. So like, okay, how do I get my daily status? How do I put my own status together? I fill that out. We also do a lot of things like the equivalent of now, a lot of people don't do compiles, but you may compile or build or deploy software. You may spin up and down virtual machines or containers or things like that. There's all these little tasks that we do during the day that we do regularly enough that even if it takes us five minutes a pop, if we could cut a minute off of that, it may save us 10 minutes a day. Not only that, is if we can find a way to automate these things, to effectively make it either run one command line thing or click a button, then it saves us from typos and things like that. So one of the things that I think we can look at, if you live, if you find yourself regularly on the command line doing something, usually it's going to be like a build, a run, a test run, executing a couple of scripts, those kinds of things. That would be a great place to start. If it takes you five commands to do that, and they're basically the same commands all the time, especially if you've got the history and you're just scrolling back up and you go like, execute this, back up, execute that, execute that. That's a perfect example. Turn it into a bachelor shell script. Take those couple of things, and maybe it's three or five or 10 commands, and instead of running them, put it into a shell script, and now it's one script. It may be one that is just literally all you do is you execute that script and that's it. Maybe it's like you execute that script, but with a path parameter or something like that. This is where if you're looking from day to day, you may find things like, hey, I do this for a project when I get going. When I start my day, I execute these couple of things to get my project going, but I also have five projects I'm working on at this time. Now, I'm executing this five times a day. Maybe I can take those disparate steps and give them like a, I mean, it may be as simple as I just give it a value that's like one, two, three, four, five, that's with each of my various projects. I can execute that, have it do the setup or whatever it is that it needs to do, and then I'm off and running. If you want to get a little more graphic or gooey in your world, then maybe what you do is it could be something like, let's say you log in every day. When you log in, you have five applications that you fire up every time. You may want to put it in the startup, but you may say, ah, that's too heavy. I don't always want to do that. Instead, maybe you have a button that's just basically like fire off these five applications. You may also want to do some sort of an organizational kind of approach. I usually go to these six folders to get information. Well, okay, instead of doing that, let's pull those folders into one location or have a central button I can look at to give me a link of that. Maybe there's a plot of a lot of websites that you go to. You can always use favorites and things like that. You can keep up 15 tabs that you can keep open at a given time. Or maybe what you do is create yourself a little webpage that is a click on this and it spawns the 15 tabs that you want to have and logs you into everything. Those are the kinds of tasks that we can't really have somebody else step in and tell us this is what you need to do. These are the ones that we are going to be the best to do it because we need to look at what we do each day. What's the time and the effort involved in it? And where can we maybe skip a couple steps or automate going to step one, two, three instead of us manually doing each of them? Maybe do all three at once. Maybe do something where there's something we're sort of eyeballing at every second. We're watching logs and we're just looking for something to happen. Automates a watcher on the log. Automates something that's going through there and says, hey, if I get this thing, pop an email or pop a message box or whatever it happens to be. These are just a couple of places that you can go in your automation exploration, but they are all going to be, I think, very valuable. It may take a little bit of time to figure this out and how you automate it, but I think you will find that it will be worthwhile. And at some point you'll get to a point where you're like, wow, how did I ever do it? Why did I ever do it manually? Now you may ask, why would I ever pass control over to Michael? Well, you're going to find out right now. So what are your thoughts on this? Hey, Rob, thanks. So you've already talked about using like the command line interface. You talked about the history and that with automating scripts and builds. I'm going to take this and build upon that. So I'm going to actually go by example. One of the biggest things, and me and Rob talked about this a lot, is we don't necessarily always deal with daily tasks when we look at automation. When we think automation sometimes, because we've been doing this for a long time, we look at the tasks we're working on. So am I building a website? Okay. What things do I need to always do when I build a website? Okay, well, am I doing like a lamp, a map or some type of MySQL, Linux PHP build? Well, if you do that, you can almost guarantee build a script to install. So once you do it one time, if you go through and you go through your history and you take everything you did that first time, save that as a script summer, you're going to probably use that again on the next project. One of the key things, though, if you do write these script files and you do keep track of these, make sure you add readme files or some type of documentation with your scripts or within your scripts, add some comments. I have been very bad at this over the years. I found old scripts that I've been looking for where I didn't document the script. The file got moved away from the documentation and I'm like, what the hell is this? Oh, this is what I need for this. And it's like crap. Okay, so. The reason I stress this is one of the cool things, especially for those of you starting out as new developers or even new entrepreneurs, one of the big things we always need as business owners is we need a website, right? So we need to spin up a new website. Well, AWS provides a free tier that lets you get away with almost no cost to throwing up a standard blank, you know, standard template website. You can throw up a WordPress site, whatever. Well, the cool thing is if you do it once the following year, if you need to keep kind of keep it on the low ball, you can create a new website, spin up a new AWS instance, free tier, extract your WordPress site or your website, run that script on the new server and just copy your files or even write a script to export your files over. So at the end of the year, you can have a push button solution to literally take one site from one domain to another domain with little or no effort where to spin it up the first time probably took you three hours or longer depending upon your skill level. Secondly, Rob, you mentioned logs, so logs are wonderful. So if we kind of stay within the AWS world, there's a lot of information stored in that AWS console. There's logs, there's service alerts, there's performance benchmarks. AWS is a great example of where you can use automation because you can go in there and you can apply alerts. You can go in there and you can apply thresholds. Oh, if my instance is starting to peak out at 90, 100% spin up a second instance or spin up a load balancer that could load multiple instances in the background, your application scales and all that is handled through automation scripting. If you don't have that and your system crashes, you're going to get an angry call from that customer and you're going to have to go onto the site, figure out what's going on. And that takes time, money and frustration with your customer. So you want to do these things. You want to automate them. Now, when you first spin it up, that may not be in your mind. That's fine. But before you go live, you better have at least walked through some scenarios where you have some automation in place to keep that application live. So you have zero downtime. The third thing I kind of want to touch on our frameworks. So as developers, we write a lot of code and a lot of the code that we write is pretty much standard boilerplate, which is what we call we have to paint upon the language. You have to have some structure or some format of some type of method structure, whatever within your code base to actually run the file, to build a website, to build a mobile app. Well, you can actually write code generators or use code generators to automate that process. You can push a button. Boom. Here's a crud. Here's a basic application. Now just go fill in the blanks. Now just go quickly add all the pieces you need to get your application up and running. Now, for those of you that are more junior, look at using like third party dependencies or potential tools to do this initially. But once you get better at this and you get more advanced, you'll probably want to start writing your own. You're going to get into these habits of, oh, I like this approach. I like this frame. This seems to be the best practice for this. And what you do is you break that into your code generators. So when you go build the next project, you kind of have a little checkbox. Oh, I need this. I need this. I need this build. Here's your application. Now go fill in the blanks. So it's just one way to kind of step in through automation. And the last point I want to talk about is kind of from my years of teaching Microsoft professional, which is teaching kind of business developers how to use Microsoft application products like Word, Excel, Access. It's funny because there's not just .NET, but behind the scenes in the Microsoft office framework is like a visual basic architecture or a visual basic application, macro system that's hiding behind the scenes. Now there's over time, it's been more replaced by C sharp or .NET. But what is interesting about it is even if you are not a developer, even if all you do is business documentation, you write spreadsheets, you build little access databases to store collections of data, or you write templates or Word documents constantly for business meetings and that. You can use macros, which are automated scripts within office to essentially script out tasks to build templates, to build spreadsheets, to do calculations for you that you would have to sit there and figure out your formulas for. So macros are just another way to think about using automation. Ironically, on Windows, macros are also another way through the Windows dashboard to kind of do those collection things like Rob was talking about where you could, oh, you want to spin up five applications, well, set up a little macro. Build the macro to say, hey, start this, start this, start this, kick it off. Macros essentially translate into, can be transferred into shell scripts. It's just another kind of scripting way of doing things in a Windows environment. Mac has something similar. They have an automated tool that you can use. But these are just things. Look at your daily tasks. If you see yourself doing something again and again and again, you probably want to automate that. And ideally, if you don't know what you're doing every day, if you're on Windows, it's a little bit harder, but maybe look at like key tracking tools or possibly even look at like application tracking to see what you're in or you're spending your time. And that can help you identify, oh, I spent two hours doing this today. That really is a five minute task that I can write a script for and push a button once a day or maybe two or maybe not even push the button, maybe schedule it to run when I need it to run five or six times a day and just have it email me what I need or just put it into a file. And at the end of the day, there's my report or whatever I need to do. So again, automating isn't just about programming. Automating can be simply taking your tasks and batching them together using these kind of automated tools, scripting, batching macros. So no matter what your technical level is, take a look, you know, do a quick Google search on how can I automate something? How can I write a macro? And you'll find thousands of examples online very quickly to just kind of tailor to what you need. And now that we live in the world of semi-AI smartness, pick your favorite AI tool and just say, hey, I do this. Is there a way to automate that? And but be careful, throw in an operating system because there are different solutions based on your different platforms that you're using. So now after that, I know you're like itching to go. So let's give you a challenge for the week. What I want you to do, the challenge for this week is to take this week ahead of us and spend at least five days of looking at what do you do each day? What do you do? Where do you spend your time? One of the things that Michael mentioned, there are a lot of apps out there that are basically time tracking apps that will show you where do you spend your time? What are you doing? So you may want something like that. If you don't feel that you are going to be able to figure it out yourself, if you feel like you're just like, I'm just too busy. I get to the end of the day. I forget what I did. I get that. Use a tool. It'll help you out. When you get to the end of that time, look at the things that you do and pick one, pick one of the things that's out there and spend a little bit of time, maybe an hour or two, maybe even, and automate it. Build an automation process for that. It doesn't have to be, for example, it doesn't have to be a full blown code generator. If all you do is build a little shell script that copies and puts together from maybe 10 selections of code snippets and turns around and builds a file for you, boom, you have automation. If it's something as simple as something that goes out like this, something I used before, there's all these sites like Michael talked about, like the Google Maps, the Google Maps form, there's all these sites like Michael talked about. If you've got all these customers, you've got all these sites that you just want to make sure that they're good, that they're up. That was the simplest thing, or an API. Is it still running? Are things going? You could build a little app that goes out and pings each of those things. Those kinds of tools, it wouldn't take you very long. It's a really good little side hustle kind of thing to do. It's a little side project to do. It may be an opportunity to learn something new. Maybe it is you go out and you're like, hey, I spend way too much time building status reports in Word. Go look up VBA and how do I maybe templatize some of that, or how do I pull in information like from Slack that all my Slack discussions, how can I pull that information in and build a status out of it, or connect to Jira and get information from that? Those kinds of things. Look at if this, then that, IFTTT. I think there's three Ts there.com, or Make, or some of these other sites that are out there that that's their whole purpose. Zapier. These are the places they are built to automate these kinds of things. If you haven't looked at them, make that part of it. Take a look. Take five minutes and look at one of these sites and see if it makes sense to, or if they've got a built-in automation for something that you do on a regular basis. Along the way, make sure that within that automation, you send us an email at the end of it and it says, hey, I automated this and this is why. Okay, you don't have to send us the automation. You have to do it every day, but I would love to hear from you. We'd love to get your suggestions out. Not only your suggestions for moving forward, but feedback on what you've done. How have these challenges worked? Where have they improved? And maybe even, dare I say, built a habit that has helped you out. Because our goal is not for you to just do this challenge and be done. Do this challenge and then the next week, do it again. The next week, do it again. Because that is how you're going to build your habits. As always, like I said, you can shoot us an email, but you can also reach out on developpreneur.com. We have contact form there. You can see us on, see us. You can follow us. You can do all those good things on x at developpreneur. You can go out to YouTube. If you aren't there, you can check out the developpreneur channel. You can see this and lots of other content that we've put together over the years. Just however it is, if you're out there on a podcast, whatever your favorite podcast device and listening thing is, there's almost likely a way to do a comment, to give us some sort of a like, a follow-up, some sort of feedback. We want to hear it. Good and bad. We want to hear because you guys help us make this whole thing better. We're doing it for you. So we need to get your feedback. That being said, go out there and have yourself a great day, a great week, and we will talk to you next time. Thank you for listening to Building Better Developers, the Developpreneur Podcast. You can subscribe on Apple Podcasts, Stitcher, Amazon, anywhere that you can find podcasts. We are there. And remember, just a little bit of effort every day ends up adding into great momentum and great success.