Two seasoned salty programming veterans talk best practices based on years of working with Laravel SaaS teams.
Joel Clermont (00:00):
Welcome to No Compromises, a peek into the mind of two old web devs who have seen some things. This is Joel.
Aaron Saray (00:08):
And this is Aaron.
Joel Clermont (00:16):
I don't think I've ever met a developer specifically that's like, "You know what? Every day I sit down and plan I'm going to do this, and I get it all done. And every week I finish everything on my to-do list and I'm just really on top of everything." And, Aaron, not even you.
Aaron Saray (00:33):
Oh dear.
Joel Clermont (00:35):
I could see you gearing up and I'm like, "No, not even you."
Aaron Saray (00:38):
I was trying to remember the year we met. I'm like, "You don't remember meeting me in 2007?"
Joel Clermont (00:43):
I could anticipate it. Honestly, I don't think it's specific to developers, I think just in general there's always more work to be done or more things we want to accomplish than we can get done. But I thought I'd bring it up this week specifically around developers because it's... I mean, that's what I am and that's kind of the people I know. And just talk a little bit about some tips around time management and even just mental attitude that I think can help overcome some of the negativity we may feel or the defeatist approach. Like, "Oh, I'm never going to get this done anyways." It can kind of weigh on you if you let it.
I guess the first thing, I know we've talked about in the past how we plan projects but to get a little bit more specific the way I plan out a week. Because I think this is probably the first tip is to try to minimize the number of decisions you have to make as to what should I work on next. The reason I find this helpful is it eliminates decision fatigue but it also can tamp down the tendency we may have to jump between things or to let new "emergencies" derail what we had planned for a given day or week. I have a weekly routine. At the start of the week, I kind of know what I want to accomplish. And maybe there's several things I want to accomplish, I'll even rank those.
Like, "Well, if I only got one of these things done this week, this would be the one," and I kind of sort them that way. And very often I will look at it and I'm like, "You know what? These four things will never happen this week, maybe I should drop that to three." Aaron, what would you say? You'd say, "No, drop it to one." Right?
Aaron Saray (02:34):
No, I was going to say, very often you'll look at your list and say these four things... Whenever me and you talk, you're like, "These are the four things I'm going to get done and then I'll be able to do some more things." I'm like, "No, you do one or two of those possibly."
Joel Clermont (02:46):
It's true.
Aaron Saray (02:47):
So continue to lie. I mean, continue to explain.
Joel Clermont (02:50):
Aaron is here to keep me honest. But it's a tendency, it's like, "Oh..." And you might even say, "You know what? I have to get all these things done this week, they're due this week." It's like just because you say you have to doesn't mean it's going to happen anyway, so don't enter the week with an impossible expectation because you're just setting yourself up for stress and failure. But to kind of focus in on the original point is by planning it upfront, number one, you'll hopefully come to the realization early in the week, "Oh, I can't get all that done," and you'll lower your expectations. But number two, going into the week with that mindset, if something new pops up you'll be like, "Well, I absolutely can't add something to it this week. I'll put that on my list for next week." And it just sort of changes the mindset from trying to be reactionary to like, "No, here's my plan. I'm going to try to stick to it and I'm going to try to make it a realistic plan." Not a super optimistic, sunny day scenario, if everything goes right, I could get all these things done.
Aaron Saray (03:50):
I just had an idea and I kind of want to derail your topic here a little bit.
Joel Clermont (03:53):
Please.
Aaron Saray (03:54):
But it's super important.
Joel Clermont (03:55):
Okay.
Aaron Saray (03:55):
One of the things that makes a developer not great and not fulfill their potential is panic and being rushed. You might start thinking, "Well, I'm working at this job," or, "I'm working for these clients and I have to get these things done." That's how I always thought too because I'd hear people tell you, "Oh, just prioritize and if you don't get everything done, it's fine." And I'm like, "You don't understand. If I don't get everything done, my boss is going to fire me. I won't have any money." And then there's a lot of stuff. I have a family to support, all these different things, right? So lot of this stuff comes into your mind so you're like that's all great and thanks for this other useful book on How To Prioritize Your Stuff: Getting Things Done. But I actually have to get things done. I'm not fancy like you that can have all your money and all that.
One of the biggest things that I wish I would've done sooner and everyone talks about it, at least in circles I've been around, and I never could discipline myself to do it. And turns out once I took a little bit of a sacrifice and disciplined myself for a couple months, my life had changed. That was to actually develop an emergency fund, some actual money. For a little while I spent nothing and it was horrible I was three, four months in saving and going like, and this was a while ago, but I was like, "I can't believe I'm doing this to myself. This isn't what life has to be, right?" I'm eating ramen for four months, I'm not doing anything with people, I'm slowly putting another couple bucks in my savings account and all this stuff. And I'm like, "Ah, is this really worth it?" But what's amazing is that whole action right there made me a way better programmer. And the reason is because I was able to have something saved up a little bit so that if my boss did fire me, I wasn't going to be done, right?
Joel Clermont (05:39):
Yeah.
Aaron Saray (05:39):
I could find another job or I worked hard enough and I could find another job. Now, finding another job within two weeks if you're living on your paycheck to paycheck, it's basically impossible. How do you get the money?
Joel Clermont (05:51):
Sure, yeah.
Aaron Saray (05:51):
Once you've developed this idea of saving up this money it makes it easier that you're like, "Well, if I did get fired then I still have some money and I can find my next job."
Joel Clermont (06:01):
But that's one mechanic of it. But really how it made me a better programmer was once I knew that that was that main stress, trying to prioritize stuff and I didn't get it all done and my boss was going to fire me, I cared about being fired but it no longer was the worst thing in the world. I suddenly was able to follow this advice. I took a couple months, saved up some money so if I did get canned, which actually never happened. It was something I made up in my head but it's something I had to get past. And then I was able to prioritize, I was able to actually develop better, I learned more skills and all this stuff. It was actually probably the best thing I've done in my career, was saving up a lot of money so I could then follow these steps.
And the reason I bring this up and kind of derail us a little bit is because, I think I've mentioned in the past, I have a pet peeve of people that come on that are in a different part in their life they're trying to give me advice on how to get there without talking about the steps that you actually need to do and the hard work getting there. When someone is super famous and they say, "Well, if you just put away 1%, suddenly you have a million dollars." It's like, "No, I put away 1% of my current income that's $4," or whatever. But then acknowledge it's going to be a rough couple months.
Joel Clermont (07:12):
That's a fair point. I think what I was going to ask you but I think you kind of hinted at is the reality wasn't you were about to get fired or you were going to get fired. It would have to be a pretty bad boss or client if you actually worked your hardest and you couldn't accomplish everything that was thrown at you that they fire you for that. Like it's through no fault of your own unless they expect you to work 80 hours or something crazy. But just even if it's irrational fear, you're saying sort of conquering that by having a little bit of a cushion helped you to banish that irrational fear and just focus on doing the work and not sweating so much. Like, "What might happen if I don't get this done this week?"
Aaron Saray (07:56):
I'm going to argue with you a little bit on that because I think-
Joel Clermont (08:01):
Surprise.
Aaron Saray (08:01):
... our career paths were pretty different. I can imagine people listening to that saying, "What do you mean having a bad boss? I've had only bad bosses." Based off what I know about your experience and it was great. You worked for yourself for a while, you had some decent bosses starting out. I had some pretty poor ones and that affects how I look at this. You say, "Well, it had to be a pretty bad boss to give you crap." Yeah, I had bosses that would call me day and night about this kind of stuff. I think you have to remember that there's a lot of different scenarios there. That's why when you say, "Well, they went to fire..." I'm like, "Yeah." My first technical job was kind of not adjusted, the place was. But I got fired three times by the same owner who it was a partnership with the other owner brought me back that night. I'd get fired during the day and I got brought back that night. That is a thing that happens.
Joel Clermont (09:01):
Yeah, that sounds so bad.
Aaron Saray (09:01):
It was tech support and I wasn't hitting the numbers that they wanted but it was because I was spending a little bit more time with customers to make sure the problem was solved than getting them off the phone. I guess my point is I don't want to ever downplay that like, "Oh, no." There are really tough situations and especially when you're first starting out, you get in situations where you don't have a choice. It might be a bad boss but there are a lot of them, there's a lot of people that shouldn't be bosses that are.
Joel Clermont (09:27):
So depending on your circumstances, it actually may not be a completely irrational fear. That if somebody shovels all this work on you and you can't get it done because it's not realistic, they could still hold you accountable for that?
Aaron Saray (09:40):
Yeah, I think that happens a lot. I mean, I've heard lots of horror stories about that too. Now, that's not to say that wasn't partly the developer's fault for not setting proper expectations and all that stuff. But I want to kind circle back around and say that was the reason why, for me, setting up that whole fund, having some money is because, well with the boss I had it turns out to be a logical fear. At that time when I finally made that decision it was bosses before that gave me that kind of almost a PTSD of some sort. Where I'm just like, "All bosses want to do is fire you for the smallest slip up."
Joel Clermont (10:15):
Fair point, I think it was a fair derailment. Not everybody has just sailed through life like me without a bad boss. I did have a bad boss early in my life but it wasn't tech related. I was dumb, young and probably deserved to get the grief I got at that point in my life. But I guess just to kind of summarize what I was thinking of as far as a takeaway piece of advice. Number one, have some formal planning. Don't just sail through each day trying to get through as much as you can. Pause generally at the start of the week and have a plan. And number two, try to be realistic. It's hard as developers, we're always optimistic. Like, "Oh, I could do that in three hours."
No, that's going to take three days. Not that you're bad but just complexity that can't be seen upfront. And then number three, stick to the plan. To the extent that your circumstances allow, don't let things derail you. In my case, maybe I get an email and it's like, "Hey, Joel. Would you want to help us with this?" I could say, "That'd be great. Let's get on a call, let's do it." No, this week I have these things planned. You know? I can get in touch with you next week. Would that work? Something that can really help you to not constantly feel like you're underwater.
Aaron Saray (11:31):
I think number four would be also to add communication to that list. I mean, that process. When you've developed your goal, try to find a way to communicate that to the people that it kind of matters to. I'll give two examples. One is if you're working for someone and you made your list of things you're going to do this week, tell them.
Joel Clermont (11:54):
Sure.
Aaron Saray (11:54):
As a former manager myself, I was less... I mean, I cared about the output but it was an information job. I needed to know what you were going to do so I could communicate that and I could put that together with the other 20 people I had to manage and say in general, "This is where we're going." Or on the flip side, for a contractor like me and you work together too, we'll start out our week then telling each other what we're going to do this week. Because there are some overlaps and there are some that don't but it's kind of a way of reinforcing, "This is what I'm going to do." And it also gives us that chance then to say, "Hey, are you sure you're not doing too much?"
Joel Clermont (12:28):
"Yeah, it doesn't sound realistic. Maybe you want to do half that amount." I've maybe heard that once or twice from you, Aaron.
Aaron Saray (12:34):
Yeah, this week.
Joel Clermont (12:36):
Yeah.
Here in Wisconsin, we do have some severe weather. I think we're sheltered from a lot of natural disasters but like tornadoes, right, Aaron?
Aaron Saray (12:55):
Yeah. I mean, have you seen winter here? But okay, anyway.
Joel Clermont (12:58):
Blizzards, sure. But the reason I mentioned tornadoes specifically is because generally there's warning systems and you have to take action. Like, "Go in the house, get in the basement," whatever. You don't want to mess around with that. You don't want to be like when I was a kid and the tornado siren would go off and people go outside to see where it was. That's not a good idea, don't do that.
Aaron Saray (13:21):
Oh, I still do that. Especially that's a (unintelligible 00:13:23) thing. If it's storming, you go in your garage and you stand there with the door open and watch.
Joel Clermont (13:29):
Right.
Aaron Saray (13:30):
You just hope it doesn't come from the other direction.
Joel Clermont (13:31):
Yeah, exactly. I've done that too But anyways I get that. In fact, you're watching a TV show, they'll interrupt it with "Weather alert. Seek shelter." But last week there were some thunderstorms and there was some high winds but they interrupted TV to be like, "It's storming outside." I was talking to my dad about this. He was more annoyed because it happened during a football game. I mean, that's a big thing. He's like, "I'm already inside. I don't have to seek shelter. I don't have to go in my basement. What do they want me to do?" Anybody seeing this on TV is already in the place they need to be, unless they happened to be outside. But then if they were outside, they would see the storm and they would go inside because they don't want to get rained on. But it was just kind of an interesting thought. Like sometimes the weather people get a little overexcited and it's like they'll take 10 minutes to tell you it's going to rain in 20 minutes. And it's like, "Okay. What am I supposed to do with that information?"
Aaron Saray (14:34):
Well, they're excited because they're finally right.
Joel Clermont (14:35):
That's right.
Aaron Saray (14:35):
They're like, "Ah, we're double or triple down on this."
Joel Clermont (14:40):
Exactly. (Unintelligible 00:14:43).
Aaron Saray (14:42):
"People are going to know my name."
Joel Clermont (14:44):
That's probably a part of it, it's a good observation.
Aaron Saray (14:47):
Get off the news, Stormy Waters.
Are you curious what we've been working on or want to know about our most newest updates?
Joel Clermont (15:01):
You can sign up for our newsletter, It's at masteringlaravel.io. Right at the bottom of the homepage, plop in your email address and you'll get all the great news.