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:15):
Having been a programmer for a while and being one of those programmers that's also on social media, I've noticed some patterns and I know you have too, Aaron, that's why we're talking about this today. But sometimes there can be a proclamation or some new course or something that happens that some programmers will hear and it sounds good to them and they'll just kind of adopt it. And maybe it's because the person saying it is somebody that's said good things before. So we're not saying there's necessarily anything wrong with the idea, but this idea of kind of jumping a little too fast to follow maybe a fad, if that's not too strong of a word, or some new way of doing something or some new technique, or like something that. Just kind of like we're the grumpy old man, right? We come in and take, not the opposite position but sort of maybe the more stable and kind of tried and true position.
Aaron Saray (01:11):
Yeah, I think when you're talking about there you're talking about maybe something that was introduced by someone that maybe people look up to-
Joel Clermont (01:16):
Sure.
Aaron Saray (01:16):
... because they have a track record or they're friendly or they're nice on social media, or you've met them in person. There's a lot of different reasons to know a person or look up to them or whatnot.
Joel Clermont (01:27):
Or they've been helpful to you before. I mean, I think that's a valid reason too.
Aaron Saray (01:30):
Yeah, absolutely. So you see that new example of something and they say, "This is the way to do it," and then you just kind of blindly copy it or implement it or... Maybe blindly is too strong of a word, but just without thinking of like, "Is this necessary for me?" Or, "Is this something that's worthwhile? Is this going to bring tangible business value in addition to making my life easier?" Because a lot of times we'll say, "Well, does this change bring in more customers?" And you're like, "Well, I can really kind of say, 'Well, it made my programming experience better so therefore I'm more efficient.'" Like you can connect it if you really want to. But I think if we look at both those two things together, is it going to bring in customers and make my experience better? That's probably more of a combination.
Anyway, is this something that should be applied to what I'm working on? And there's a term that I've used and I've heard for this sort of thing, which sounds a little strong at first but I don't know if there's any other way to refer to it. It's this concept of hero worship. Saying you have a person that you think has done a great job and then everything they put out, you're like, "Yes, that. That now, that immediately." I think that can be a little dangerous. Or just this idea of, I guess... \I don't want to be too controversial-
Joel Clermont (02:47):
Go for it.
Aaron Saray (02:47):
... but there are some people that are popular but they are good communicators or friendly or personable and their core message isn't strong or it's wavering, it's changing. So as the grumpy old man, you kind of sit here and you watch and you're like, "Okay. Well, I've seen that happen 10 years ago." And you're like, "Well, we already solved that problem. A decade ago we tried that pattern, there's some good things we kept those in the Zeitgeist of Laravel programming or whatever, and there are some things you shouldn't be doing." But you see this other person who maybe hasn't been around for a long, that's perfectly fine, rediscovering something new on their own and they bring it up and then everyone says, "Oh, this is the way to do it," because they that person.
Joel Clermont (03:32):
Yeah, I've probably fallen into that trap a little bit myself too at times. So it's not a judgment call against anybody that maybe you're listening to this like, "Are you talking about me?" We're not. But if you kind of feel that way, just... It's okay, we've all done this to some degree. Maybe not Aaron but I probably have gotten excited about something and maybe jumped into it quicker than I should have. But now a little bit grayer Joel is looking back and like, "Yeah, you know maybe that's not the best approach." Especially when working on a work/business project. I think that's another delineation here. It's like, yeah, if you want to go play with something on a hobby project or a proof of concept or something, that's different than sort of just jumping in on some new way of doing something in an actual production app that people rely upon.
Aaron Saray (04:22):
You can kind of tell if you're falling... Not falling but if you're kind of being influenced by this. If when you go to explain something you start out telling or asking if the person knows or has heard of a person who's shared the information. I like to say, "Let's talk about ideas and then give credit where it's due." The Credit doesn't start the conversation. If anyone ever said to you, "Oh, have you heard of Joel Clermont?" And you're like, "Yeah. Oh, he wrote that book on validation and that's how we learned to do validation." It's like, well, that's kind of okay but really I'd rather it be, "Well, do you have a specific validation issue?" "Yeah." "Okay. Well, I found this book that maybe covers that. It's written by Joel Clermont." (Inaudible 00:05:08).
Joel Clermont (05:07):
They can't forget that. I think a variation on that too, because I was actually thinking a different direction when you started saying that. Which is when you're explaining the idea to somebody and maybe they push back or ask for clarification and the only argument you can come up with is, "Well, Joel said this is the way to do it." They call that appeal to authority as one of the logical fallacies in an argument and that can kind of show... at a minimum, it shows that maybe you haven't fully understood the benefits of this approach and you're only doing it because you respect or worship the person that proposed the idea. It doesn't mean the idea's bad, it just means you probably haven't figured it out fully whether or not it's good for you if you can't explain why it's good in your circumstance.
Aaron Saray (05:57):
When I was leading a team of developers, one of the things that the developers that have been there for a little while longer would tell new developers that came in. It was like, "Well, Aaron has a reason. So if you don't understand it, go ask him." Because a lot of times to save time I'd say, "Just do it this way," and I'm going to go on to my next thing because I was managing a couple teams of developers. But I always tried to instill in them though, "There is a reason behind this, I'm just not sharing it all the time because time constraints. But if you need to know that reason or if this is the first time you ran into this and this is not a refresher for you, you need to stop me and make me make the time to talk about it and find out what this reason is." So I totally agree with you on that that the justification should be, "This is a good idea but it was introduced to me by X, Y, Z." Not, "They say it's the way to do it."
Joel Clermont (06:46):
Yeah, that's a secondary thing. Like you said, "It's giving credit too." Like, if you think this is a good idea and you explain why, why not say who told it to you? I mean, that's kind of a nice thing to do to pass on the credit for it.
Aaron Saray (06:58):
Well, and the last thing too I'll say about all of this is sometimes you run into this issue where then the conversation gets a little stuck. Especially since I don't go on social media a lot so if someone will say to me, "Oh, well, have you heard of X, Y, Z?" "No. I don't really follow Twitter."
Joel Clermont (07:15):
Aaron's over there reading his newspaper.
Aaron Saray (07:18):
No. But I'll be like, "I don't know who that is," and then that kind of makes the conversation a little bit more rough. So the person that's sharing the idea now feels maybe they have to justify who that person is, you know? It's like, "No. They have a good idea, let's talk about their idea."
Joel Clermont (07:36):
Yeah, I like that too. And one parting thought I had is-
Aaron Saray (07:41):
Oh, you're trying to get the last word, huh?
Joel Clermont (07:43):
Absolutely. Is, this applies to us in this podcast too. I think we always try to couch our advice or experience in the idea that, "Oh, maybe this doesn't apply in your situation." We might preach one thing but we don't think this is the absolute truth for every Laravel project. I guess maybe just a little acknowledgment there, like we're holding ourself to the same standard. Like, don't just do something because we said it, we'd you to think critically about it as well.
Aaron Saray (08:14):
I usually will listen to our podcast the day it comes out not just because I want to inflate the listening numbers but sometimes we record these ahead of time. I sometimes forget about what we talked about, I just want to know if someone replies on Twitter what they're talking about. I just want to stay current, I want to listen to... Make sure it's all put together. I don't know, there's a lot of... It's probably something-
Joel Clermont (08:45):
You're checking my work, Aaron. That's what you're doing.
Aaron Saray (08:47):
Yes, it's probably some sort of vanity thing too. But what always surprises me and I'm sure it's for everyone, is the sound that is recorded does not match the sound that's in my head for my voice. Do you have that? Where you hear yourself and you're just like, "Is that what I sound like?"
Joel Clermont (09:07):
I think so. I haven't experienced that so much with the podcast but I have a distinct memory of watching a conference talk that had the video recorded and watching myself talk and gesture and pace around. I'm like, "Who is that goofus up there talking?" And I sort of had that same kind of disconnect experience in my mind.
Aaron Saray (09:26):
Oh, yeah, conference talks are the worst. I remember I've watched somewhere I'm like, "What am I doing with my hand all the time? Stop that. Stop chopping at the air or whatever is going on here." But, no, it's funny because I used to sing a lot, I used to make music. And my singing voice sounds to me really similarly recorded than it does in my head but my talking voice doesn't. When I listen to my talking voice it sounds almost more nasal. Everyone on the podcast listening and be like, "Yeah, of course, dude. You sound like your nose is plugged," I don't know. But it just doesn't sound like what it's... It sounds super smooth in my head and then what records out is a combination of my voice and, I don't know, a duck being strangled or something.
Joel Clermont (10:11):
Oh boy.
Aaron Saray (10:12):
It just sounds super weird to me.
Joel Clermont (10:14):
So what you're saying is, "Stay tuned for the next all-musical version of the No Compromises podcast."?
Aaron Saray (10:20):
That'll be great.
Maybe you just want to ignore all the advice we gave you and blindly trust us.
Joel Clermont (10:30):
We're happy to help. Go to masteringlaravel.io and you can check out our validation book or other resources.