The benefits of working with other developers
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):
Some people, Aaron, think about important days in their life, like-
Aaron Saray (00:23):
Weddings, funerals, births of children.
Joel Clermont (00:25):
I was just thinking for you it's probably when you started working with me and I wanted to talk about that today and I'm giggling a little bit so it's a little tongue in cheek. But in a serious vein, we were reflecting recently on the benefits of working with somebody else. Most of my career I've been solo, working by myself for clients or on a small team and you've had different experiences in that. But I think the two of us working together we've observed some things, some benefits and thought it might be nice to kind of talk through those today.
Aaron Saray (01:00):
Yeah. I think the main point here is that there is benefits to working with someone else even if you're not on the team with them. One of the first benefits is, me and you kind of made this agreement that we'll work on our own stuff. But for larger projects you might even see us both signing the same NDAs even though one of us is working on a project, the other one isn't so that we can go and have those conversations. The very first thing is having someone around that is familiar with your stuff, but not necessarily doing it is nice because the whole concept of the rubber duck, right?
Joel Clermont (01:37):
Yes.
Aaron Saray (01:37):
You want to explain something to someone and it's much easier when they have some sort of context so you don't spend all your time beginning the whole setup. So Joel knows what client I'm working with kind of in general, the project, and so I say, "Hey, in Laravel I was trying to do this and this and this and that didn't make sense. And either he has some input or I was able just to do my whole rubber duck to him, he was able to listen, but I had that person there to bounce stuff off of and that's super useful.
Joel Clermont (02:06):
Like those times where I'm out for a walk and there's messages in Slack and all of a sudden it's like, "No I've figured it out." Like, I've done that so many times where you were away, or you know... it is a useful thing. But it is also useful when that person responds and actually does give you an insight or like a little nudge over the thing that you're stuck on, I've definitely benefited from that. I think too one of the practical benefits I've observed that I didn't have when I worked solo is the idea of code review too. Even that sometimes is viewed as a negative thing and sometimes I get annoyed when you're like, "Well, what if you did it this way?" I just say, "Shut up, Aaron. I did it that way because I'm smart." But seriously it is nice to have just somebody outside you look at it and give it a thumbs up or an opportunity to improve it. I didn't realize I was missing out on that when I was working by myself. And it does slow you down a little bit occasionally but it definitely results, not only in a better result, but it also, I think, is more interesting and better for self-growth too. For myself as a developer having that feedback.
Aaron Saray (03:20):
Yeah. Whenever you kind of have to explain what you do, you then have to confirm that you actually know what you're talking about in order to explain it.
Joel Clermont (03:27):
Right, yeah.
Aaron Saray (03:27):
And you say it takes a little bit longer, it's one of those things. It's just like testing or anything else where it does take a little bit longer but since you're now the only dev as a freelancer, you are responsible for everything that goes wrong or right in this project.
Joel Clermont (03:40):
True.
Aaron Saray (03:40):
So in reality, what we're doing is we're helping each other make sure that we have less bugs. With less bugs, we can do more work, get paid more, have more trust from our clients. It's just better in general. And so, it's more of... I would look at it as an investment.
Joel Clermont (03:56):
Yeah, it's a nicer way of looking at it. The thing I've noticed too along those lines is even just the basic knowledge that somebody is going to review this makes me write the code a little different. Like, when I'm facing a situation where I could do something two different ways, I do pause a little bit longer and think, "Well, what is the best way? If asked, what reason would I give for why I chose this way versus another?" Just that little bit of a conversation in your own head, anticipating the future conversation during a code review, I find it results in kind of clearer thinking about the project and the different technical decisions made in it.
Aaron Saray (04:41):
Another benefit that I get from working with another person even if they're not on my project is, again along these technical lines is... I don't know if I've ever admitted this to you, Joel?
Joel Clermont (04:52):
All right, here we go.
Aaron Saray (04:53):
It's a little bit of competition. When you're in your own little bubble, you can be as good as you are, and who's ever going to challenge you?
Joel Clermont (05:03):
That's right, yeah.
Aaron Saray (05:04):
But if I am working with you sometimes, especially if we have a conversation and you say, "No, I'm not going to take your advice," which is perfectly fine, you do whatever you want, right?
Joel Clermont (05:15):
Right, yeah.
Aaron Saray (05:16):
I'll then later on go and take that my advice and do it in my own little project and kind of do a proof of concept. Sometimes I learn that I was right and now I get to giggle a little bit, and other times I learn that maybe I was wrong. But that whole competition sort of thing too helps you become a little bit better of a programmer. As long as you don't let it get unhealthy.
Joel Clermont (05:38):
Right, yeah, within reason. I think maybe the times I felt most frustrated was when I put in a long day on something, maybe it was behind schedule, and then you suggested something that would take me more time to do. But the most frustrating thing is when I knew right off the bat that it actually was good feedback, I'm like, "Ah." It's like, "Come on, why didn't I think of that?" But no, I do think it is healthy and it is something too... Just to get some perspective outside yourself can also help not even just with the code, but kind of all the things around the code. Like, how do you set up your dev environment? How do you navigate your editor? How do you do CI? All these little things I think we kind of picked up from each other and pushed each other to be better. Whereas I could technically have done any of those things when I worked by myself but it's just not the same sort of feedback cycle. I've seen that when we joined a team and just something commonplace to me, but they've struggled with it and kind of written off. Like, "Oh, we can never do that." I'm able to say, "No, you can. Here's how I've dealt with that in the past." It's a nice way to kind of level up quickly by working with somebody else.
Aaron Saray (06:53):
The last sort of thing I think I would say on this is, your career especially, as a freelancer, goes through different peaks and valleys and understanding that if you're going to be a freelancer forever or if this is some sort of sabbatical and you're going to go work with a team or whatever. There's a certain set of skills that you need to have as a programmer to work with humans. The more time you spend especially, like I always joke, the better the programmer the worse they are talking to humans. But I mean, that's not necessarily true. But this idea of like if you're always working by yourself and then working for a client and communicating only those two types, you start to learn some of the other tools which is communicating with other developers. Not even learning, but just the sort of communication it's a little bit different. Even if you're a freelancer and you want to work by yourself, having someone else that you can join in a meeting or two a week... and I know people hate meetings, but when you control your own meeting it's totally different.
Joel Clermont (07:53):
Yeah, you're right.
Aaron Saray (07:54):
Than the manager coming and saying, "Everyone tell me what you need," and you're just sitting there going like, "I don't care." But when you can have some time with someone that you trust and maybe working on a different project it helps you continue to exercise that muscle of like, "This is how it would be in a team and here's how I can work at..." For me for example, it's like you're keeping patience.
Joel Clermont (08:17):
Sure.
Aaron Saray (08:17):
I'm not saying you require a lot of patience. I mean, I am.
Joel Clermont (08:21):
I mean, I wouldn't fault you.
Aaron Saray (08:23):
No, but just the patience of having to explain something, the patience of knowing that not everyone knows exactly what you do and vice versa and then going through that and keeping those muscles sharp. Because you never know, you might be augmenting a team next time or you might just say, "Enough with this," and go work for the man directly.
Joel Clermont (08:41):
Right. Yeah, where it's not optional to deal with those things. It's now a part of your day-to-day job.
Aaron Saray (08:46):
Yeah.
Joel Clermont (08:46):
I think it was something nice to reflect on. Especially it's something I know I'm going to go back to in my mind when I'm feeling frustration. I'll be like, "All right, this is a net positive so just settle down, Joel."
A little behind the scenes as we're recording this, I'm preparing to go on a road trip with my family. It reminded me of a funny road trip story from years past. This one was just me and my dad and when you're in a car for a while... I think we were driving from Wisconsin to Florida. And we were driving straight through, He was a third shift worker his whole life. He's like, "Oh, we'll just go straight through." It's like 20+ hour drive. But it's a long time in the car and so one of the things we thought might be nice is listening to an audiobook. This was the era of the... Do you remember the, what was it? The Nomad Jukebox? It kind of looked a CD Walkman but it was an MP3 player. And what was so cool about it is it had like 10 gigs of storage which at the time was crazy.
But anyway, I had music loaded up on there and I had a few audio books. The one we were listening to was Lord of the Rings, a nice long book. In fact, I don't even think we could listen to the whole thing but we were going to listen to just one book. When I started it up I remember reclining. My dad was driving at the time and I said, "You know what? I'm going to listen. I've read this book a bunch of times." But you're kind of in that state where you're dozing in and out and you're on the road, you're looking at different things. But I want to say three, maybe four hours into it I'm like this story seems really weird. And I asked my dad, because he's also read the books, right. "Does this seem weird to you? I don't remember the story like this." He's like, "Yeah, I was kind of thinking the same thing too." Well, I had it on random and so the audio book was... I think it was randomized on chapters, so a file was a chapter of the book.
But it's one of these epic stories that jumps from scene to scene and there's multiple plot lines, so it's not completely unusual that you'd jump from character to character. But I just remember like, "This seems totally different. I don't remember that happening before this other thing," and, yeah. So we didn't go back and re-listen to it in order but it probably has completely messed with my memories of that book now that I've listened to it on shuffle for several hours.
Aaron Saray (11:20):
Yeah, it's probably one of those things where if you had tracks 1 through 12 and you know, you didn't prefix the ones, you know single digits, so it's like chapter 1, chapter 10, chapter 11, 12, chapter 2. You're like, "What?"
Joel Clermont (11:35):
Yeah, that�s another thing that could throw it off.
Aaron Saray (11:38):
Do you have to then watch the movies in random order as well?
Joel Clermont (11:42):
Yeah, there should be...
Aaron Saray (11:43):
From now on?
Joel Clermont (11:44):
I guess now it would be Blu-Ray or whatever, but an option to randomize by chapter. I don't even think that's a feature on my Apple TV or anything.
Aaron Saray (11:56):
We're really in favor of finding a colleague or an equal, someone that that you can work with and practice this and get someone that you can bounce stuff off of and better yourself. But if you cannot find someone that, we can help.
Joel Clermont (12:10):
Head over to nocompromises.io and give us a call.