Episode 42

Habits

00:00:00
/
00:50:53
Your Host

About this Episode

In this episode of the Acima Developers podcast, the panel talks about the intricacies of habit formation within the context of software engineering, sparked by Justin's interest in James Clear's Atomic Habits. Justin brings up how Clear's work resonated with his desire to become a better engineer and begins by identifying Clear's four laws of habit formation: making it obvious, attractive, easy, and satisfying.

The conversation unravels how these laws intersect with software development practices. For instance, making a habit obvious could involve placing reminders or tools in clear view to prompt action. The notion of attractiveness is discussed in terms of reframing mindsets towards habits, such as viewing challenges as opportunities rather than chores. Making habits easy is touched upon with examples like simplifying tasks to remove barriers to starting, while the aspect of making them satisfying involves setting up rewards and tracking progress to reinforce positive behavior.

Personal anecdotes and professional experiences shared by the panel highlight the application of these principles in their work as engineers, such as leveraging gamification to make tedious tasks more engaging or adopting meditative approaches to problem-solving. The significance of environmental and social factors, like changing one's surroundings or engaging with communities of practice, is also discussed as a means of supporting habit formation.

Transcript:

DAVID: Good afternoon and welcome to the Acima developers podcast. We have got a really fun panel and topic. It's kind of exciting today to talk about habits. We've got Eddy, and Mike, and Ramses, and we also have Justin on. Justin was the one who asked about this. I'm just going to hand this over to you. You've picked up something, and it prompted a question. I'm just going to hand you the mic.

JUSTIN: All right. Well, I don't know if I really deserve it for that much, but we'll go over what I was thinking of. So, I was listening to a podcast, The Peter Attia podcast. He's a great guy who does some very involved podcasts that are often, you know, several hours long. But one of the ones that he has was with an author by the name of James Clear who wrote Atomic Habits. This is a book that came out a couple of years ago, like, in 2018, I think. 2017?

In it, he talks about how to basically make habits that help you and break habits that hinder you. He doesn't necessarily talk about the exact habits that people want to do other than kind of, like, the obvious ones. But it was kind of an interesting conversation around how we make habits and how those habits help define who we are. And then, he goes into, like, how we define ourselves or how we want to define ourselves, how important that is in our lives if we want to lead a fulfilling life.

And he goes in and talks about if you want to be a better person, you have to define that better person. And then, you have to think about the things that that better person does. And by doing those things, you know, that makes a new definition of who you are. And so, a good example was like, a habit that you're trying to do is eat better. And so, rather than saying, "I'm on a diet. I'm trying to stop eating these certain foods," you say, "I'm a healthy person, and I'm going to eat healthy food." And there's kind of an interesting distinction there. But this is kind of a long-winded answer to, like, a developer podcast.

DAVID: No, it's good. We do that here.

JUSTIN: [laughs] But tying it back to this, I was thinking about, I want to be a better engineer. I want to be a great engineer. What are the things that I can do? What habits can I make that define me or that can define me as a great engineer? The question I want to bring to the group is like, what are the habits that people have that they've found help make them great engineers?

DAVID: That is fantastic. I had told you in the pre-call that I hadn't read Atomic Habits, that I had come at this from the other one. But James Clear he's the guy that played baseball, right? And he had, like, a career-ending injury in high school?

JUSTIN: Yeah.

DAVID: And then he picked every behavior performance, behavioral habit that was holding him back or that he needed to work on. And he ended up captaining the college baseball team?

JUSTIN: Yeah, basically, he kicked butt. He actually has a couple of laws in his book, the four laws that help define how to make a habit, and we can go into those a little later. I don't want to necessarily make the podcast about that, but we can go into that later.

DAVID: We certainly can, like, maybe, like, survey them a little bit. I have started Atomic Habits. I think I got to the part where he was talking about his bio, and I'm like, yeah, get to the meat. So yeah, so I came at this from reading The Power of Habit by Charles Duhigg and Tiny Habits by BJ Fogg. It's like an email list.

JUSTIN: [laughs]

DAVID: This will date me a little bit. This is, like, 2009 kind of thing. But do we want to take just a real quick minute and touch on these things? I don't want to spend, like, a thesis defense on all of these things. But if you want, I can have you throw out the four things that you're thinking of because I want to make sure we cover the topic the way you're looking at it. I don't want to just turn it into the Dave Brady show and say, "Oh, let's talk about dopamine, and motivation, and da da da," unless that's where you wanted to go with this.

JUSTIN: Those all come into it. So, why don't I talk about these four laws, and then we can kind of discuss those items? And then, we can go into, like, some specific software engineering habits.

DAVID: Fantastic.

JUSTIN: Law number one is make it obvious. So, make whatever you're trying to do make it very very obvious about what you're trying to do. He goes into different strategies for identifying and creating cues to make and break habits, so things that are very, very obvious.

EDDY: Can you elaborate on number one on what you mean by make it obvious? So, for example, if you're trying to achieve something, it should be easily explainable to someone. Is that sort of what you mean by obvious, or?

JUSTIN: Yeah. So, what I mean is, like, if you have a goal of reading books, of reading specific books, put them right in front of you. Put them on your nightstand. Put them on your pillow. Don't hide them. If you're reading them on your Kindle, you know, put them on your home screen, or something like that, or put goals. Put things that will remind you to do the thing.

Another good example is if you want to eat fruit every day, put fruit around in front of you, hopefully, in front of the potato chips [laughs], such that you see the thing that you want to do. And another one, if we were to tie it back to programming, well, actually, let's wait, [laughs]. Let's wait on that. But first, law number one, make it obvious.

DAVID: My 10-second take on that is that I want to get better at guitar, and I have a couple of guitars. And I hung my guitar on the wall, and it is about four feet away, and it never gets played, which is why my other guitar is literally on the floor in arm's reach, where I literally don't have to even lean over to pick it up.

EDDY: I do want to say that maybe making it obvious, putting it in front of you, does attribute to using it, right? And this might be part of the other topics you want to talk about, like, with your points. But I have found that putting it in front of you, and giving you arm's reach, at least for me, it didn't really help. What really helped I was exposing myself with individuals who already did what I wanted to achieve.

DAVID: Ooh. Modeling behavior.

EDDY: So, for example, if I wanted to read more often, then I'd join a club with individuals who would read on a daily habit. That sort of motivates me to kind of follow the crowd. And it is not just applicable for reading books, like, in general, you know.

DAVID: I think that actually dovetails into...I'm not sure how Clear...Fogg does motivation and trigger are two of his things, and the motivation is that. I bet that's the make it attractive that you were about to say.

JUSTIN: Yeah, exactly. The make it attractive, however you do it, you need to make it something that you want to do. And you can incentivize yourself various ways into doing it. You can bundle it together within a reward. You can make it a habit, some sort of ritual that you do every day. You can put social incentives around it. So, do it with a buddy, or do it with a group.

The other thing he mentions is, like, reframe your mindset, so rather than saying, "I have to do this every day," say, "I get to do this every day." And getting to do it is, you know, making it more attractive in your mind. So, those are the kind of examples on the attractive side.

EDDY: I'm curious if maybe I'm getting ahead of the topics here, but, like, how do you get over the hurdle of wanting to read when you don't have the motivation to read, right? Like, that's really the key, right?

JUSTIN: Yeah. So, all four of these laws are designed to help you get over that hurdle because they go into, like, the theory a little bit behind habits. Like, what makes a person get bad habits, and what makes a person get good habits? They brought up a lot about smoking because, obviously, smoking is not the best thing to do. But you have to recognize that smoking is a very in-the-moment reward. Like, you get that nicotine hit. You might get the habit of doing it. You get the social if you're, like, going out and smoking with somebody.

So, there's a lot of immediate rewards to smoking that makes it easy to fall into that habit. If you think about it, the long-term consequences of smoking are really pretty bad. That's why these laws are designed to help you overcome the short-term attractiveness of bad habits and help you realize the long-term benefits of habits.

Another example kind of going the other direction is exercising. When you start an exercise program, you know, for the first couple of weeks, you're, like, feeling like crap. You're like, oh, my body is not designed to move that way anymore, or you're always sleepy, or you have aches and pains that you never had. And so, all of those things prevent you, like, short-term prevents you from wanting to do that exercising. But the long-term things really help you out a lot. And so, these four laws help you do the long-term.

EDDY: I was actually going to interject a little bit here and say maybe I'm just wired differently than most people because I actually have the opposite effect when I start working out. I'm like, oh yeah, two-three weeks in, I'm like, I have good rhythm. I feel amazing. I'm super motivated, you know. And then comes the big fall of, like, I don't want to get out of bed. I hate getting up at 5:00 in the morning. I hate eating healthy, you know, and, like, just, I sort of, like, spiral then.

DAVID: There's a novelty effect that is especially exacerbated if you have ADHD, where doing something new is ten times more rewarding than doing what you've been doing.

EDDY: Exactly. Change of habits.

MIKE: There's something related to this. You mentioned smoking. I wanted to share, but I'd have to go look up the source. But there was some research done by a woman, and this is relevant because this was done in, like, the 60s. And her research was ignored because she was a woman until it was very clearly verified, and she was vindicated. And she was right, way ahead of her time. But I can't remember her name, so I'd have to go look it up.

She did research about soldiers returning home from Vietnam, and a lot of them came back with a heroin addiction. And she was researching, and what she found was that soldiers who quit before they came back from Vietnam to the United States were usually able to stay clean, which is almost unheard of in addiction. Because if you're addicted, you're addicted. But the soldiers who got clean in Vietnam and then came to the United States were able to stay clean. But those soldiers who came back and used while in the United States were not able to stay clean.

DAVID: Oh wow.

MIKE: And this is, I think, really connected to this idea of habits because if you can change your environment...and, usually, we can't go from being a soldier in wartime to, you know, a civilian life, and that's such a dramatic life change that most of us can't pull that off. But there are things that we can often do to change our environment, to fundamentally reshape the way that we do things. Put the fruit in front, for example. And she found that that was critical, that something even as extreme as heroin addiction, which is, you know, known to be very problematic, could be overcome if you are able to change your environment.

So, not just give up the bad habit but couple that with a lifestyle change, you know, dramatic. When I say lifestyle change, a life change, right? You know, going from one set of habits to another, and I think that some of these fundamental shifts really need that kind of change in mindset. You say, "Well, I'm going to do this different." And the way that you make it happen is by living that different life, and if that's the life that you're living, it becomes this new routine. You know, you've established a new identity almost.

JUSTIN: Absolutely.

DAVID: Those were the first two, Justin. What were the other two?

JUSTIN: So, law number three is make it easy. And this talks a little bit about the two-minute rule, and now we're getting to the parts that I haven't read yet [laughs]. But what I believe this is, is, like, make it so that you can start doing your new habit within two minutes, so whether that means having a gym in your home or whatever new habit you have is not, like, a whole bunch of prep work or friction that you have to work your way through before you can start doing the new thing.

DAVID: I had heard the two-minute rule expressed in another way, which was, it was part of, like, making it tiny and accessible. And I may have misunderstood this. The version of the two-minute rule that I had heard was make it something that you can commit to just do it for two minutes, and then you give yourself an out. And so, it's part of the, like, how do I make this less painful, right? It's like, nobody wants to get an exercise program. That's too big.

JUSTIN: Oh no, yeah.

DAVID: That's too much work.

JUSTIN: Yeah, I think you're right, actually. I think you're right.

DAVID: But, like, I can walk for two minutes and then turn around and come back. And then, I've just walked, and that's all I've done.

EDDY: You know, a really easy way to achieve that is to just get a dog [laughs].

DAVID: You'd think that, but I also have a wife.

EDDY: [laughs].

DAVID: And so, she's the responsible adult.

JUSTIN: Yeah, I think you're right as well. Now that I looked a little farther into it, I was like, oh yeah, you're right. So yeah, doing it within two minutes. It mentions that it, like, overcomes procrastination and laziness that you could do it within that time period. I kind of question about that. But like I said, I haven't gotten that far in the book yet, so...

EDDY: I guess I have a question. Is [inaudible 13:53] the moment that it crosses your mind that you should do it or the moment that you established when you want to do it and do it within those two minutes? Because I'll go on record in saying that I have a really short attention span. So, I can have, like, a really good idea and be like, oh yeah, I should really go get some food [laughs]. If I don't do it exactly within, like, seconds that I think about it, I won't do it.

JUSTIN: So, in here, I just saw another example. It talks about a famous writer called Anthony Trollope, who I've never heard of before, but he published quite a bit. Instead of measuring his progress based on the completion of chapters of books, Trollope measured his progress in 15-minute increments. He set a goal of 250 words every 15 minutes. And he continued that pattern for three hours each day. So, it was, you know, rather than writing a chapter a day or something like that, he shrunk his goal from writing 3 hours a day to writing 250 words in 15 minutes. And that very measurable small goal allowed him to feel a sense of accomplishment every 15 minutes. And it helped move him throughout the day.

EDDY: That's interesting, right? Because I want to say anytime I've always wanted to read a book, I felt awkward leaving it in the middle of the chapter. Instinctively, we want to get to the end of the chapter, so it's, like, a really neat way the way the author intended.

I do want to add something, though. My wife and I tried something different the other day. It's kind of interesting. We'll, instead of finishing a whole episode, we'll watch half the episode and then stop, pick up on that half episode, and leech over to the next episode, and that way, you know, you're stopping abruptly halfway in the episode every day. And then, it doesn't leave you with the sensation of, ah, what happens next? You know --

DAVID: Cliffhanger.

EDDY: So, it's easier to stop, right?

DAVID: Wow. That is the most psychopathic thing I think I've ever heard you say, stopping in the middle [laughter]. That's amazing. That's amazing.

EDDY: But it works, right?

DAVID: Yeah, yeah, no, it's, yeah.

EDDY: Because instinctively, what we want to do is finish. Like, I think we just want to finish whatever we started, and leaving it like that or leaving things unfinished is kind of uncomfortable. But you get over the habit of binge-watching, you know, and you're able to control your habits much easier because it's much easier to tune off, you know, when it's something boring.

DAVID: Related to the two-minute rule, BJ Fogg's Tiny Habits, he dials that up to 11. When he says tiny, he's like, think two-second rule. For him, the definition of a good habit is I want to get better at guitar. When I walk into my office and I see my guitar, I'm going to pick it up, and I'm going to play one note. That is literally the thing that you write up. This is what I will commit to do.

And now it's so small that as a commitment, it's like, oh, I don't have to grapple with my fear of failure as a musician. I just have to play the one note, and whether the note sounds good or bad, I can do it. You can just take things smaller. And this is like what you're saying, Eddy, where, like, sometimes it gets too big and too painful. One way to move the teeter-totter is to just make it smaller and smaller and smaller and smaller without grinding too much into it.

But there's a bunch of stuff that I was reading up on dopamine, and it talks about, like, the writing 250 words in 15 minutes. I've had times where it's been I'm going to intentionally focus, and I'm going to write one sentence. And then, I'm going to step back, and I'm going to look at the sentence I wrote and go, "Yes, I wrote a sentence." And then, I'm going to step in and say, "I'm going to write one sentence," and it's this winch.

And you look at it, and you think that's not going to be satisfying. One sentence doesn't mean anything. And that's how you poison yourself. That's how you talk yourself into this; oh, it's my whole writing career that's at stake because I've discounted that. Because guess what? That whole writing career is based on one sentence, and then another sentence, and then another sentence.

EDDY: You know, early, early, early on in my career when I wanted to penetrate the industry, I read something, or someone told me, I don't remember, but it resonated with me forever. And they basically said, "Starve yourself from dopening." Let me elaborate a little bit on that. And you probably have heard this. But instinctively, what we want to do is we want to reach out to a phone, you know, and browse, whatever, play a game, read something, go through the social media, whatever, you know, and, like, you're inducing your brain with dopamine. You're rewarding it, essentially.

DAVID: Rewarding yourself for doing nothing.

EDDY: For nothing, exactly. And there is a limit to how much your brain, and I'm paraphrasing here, obviously, but there's a limit to how much dopamine your brain gets. And if you starve yourself for those rewards and instead go cold turkey and just don't do it, you'll prioritize the things that you want to achieve first. And then, you reward yourself, you know, with getting on your phone, as an example. And it's just an easier way to kind of manipulate your habits.

DAVID: Yeah. The small slicing on the dopamine, the trick that you're trying to get into, is to trick yourself into—you write the sentence. And this is going to sound stupid, but I've literally done this this month—where I hate exercising. I'm just not built for it. And I was walking down the street, and I literally looked at my neighbor's tree, and I said, "I'm going to walk that far on the sidewalk." And as soon as I got there, I'm like, okay, yay, I did it. Good. Next tree, literally 15 feet. I'm going to walk to that one.

It's tiny, and it's stupid, but you're conditioning yourself to get that little, tiny hit of dopamine from chasing the task rather than completing the task. You want to move. If you focus on getting the reward, you'll actually drive yourself into a negative cycle, where it'll actually taper out. And if you focus on the pursuit of the task, you drive it into where all of a sudden, it's the chasing that gets after it that you enjoy. You don't enjoy winning the marathon. You enjoy grinding through, you know, pounding through mile 17, like I know anything about this. I'm literally talking a minute ago about walking from one tree to the next.

JUSTIN: [laughs].

DAVID: You know, but finishing the program is less exciting to me than it is to just bashing out one more module, one more function, one more refactoring. It's very satisfying to me. Okay, Justin, bring us home. What was the fourth one?

JUSTIN: The fourth one is make it satisfying, and by that, he has a couple of examples of using reinforcement rewards. So, once you've completed your habit, have, you know, some sort of reward.

Next one is habit tracking, you know, writing down in your journal or, you know, recording your exercise by a Fitbit or some other exercise tracker.

Number three is accountability partnerships, so doing your reward and working with somebody and letting them know that you did it. And it gives you a sense of accountability that you are working with somebody to accomplish something together.

And then, finally, gamify the process, which is, you know, doing some sort of competition that incentivizes you to complete, you know, the new habit that you're trying to do.

EDDY: Justin, I can't stress enough the tracking part of it. I'm sure all of you have heard, to a degree, P90X. One of the quotes that's said in one of those episodes is track, track, track. And, like, the way he kind of related to that is, if you don't track your progress on what you're doing, then how do you know you're getting better? Write it in a notebook. Write it in a whiteboard. It doesn't matter.

Because let's say, for example, your first week, you can only do one push-up. So, you go on the whiteboard, and you go, cool, this week, one push-up, right? The following week, you can look at that, and you're like, cool, I started with only being able to do one push-up. Now I did two, right? So, now you're able to contrast, and you're able to see easily the progress, your achievement. And so, being able to track your progress really helps to keep motivated, and I can't stress that enough.

There are times where we want to achieve something and, like, we feel unmotivated because we don't realize how far we've actually come because we're too busy looking at the actual ambition, you know, that we wanted to achieve, but we're completely lacking all the steps that we took already.

DAVID: Tracking is key. I had a boss years and years ago who said...he was like six foot six, and he loved playing basketball, and I was not a very competitive person; I'm still not. But he was trying to explain to me the notion of competition, and he basically said, "If you're not keeping score, why play?" He didn't want to see other people lose, but he wanted to rack up the highest score possible. And he loved it when he had somebody who forced him to score well in order to play. So, it was a very positive style of competition, but he was very enthusiastically competitive about a lot of things.

Dovetailing on that, Goodhart's Law, I think, is what it's called, which is when a metric becomes a goal, it ceases to be a good metric. But the reverse of this is when you gamify something, some things we try to reach an objective, and the goal is to get the objective and win and finish. And other times the objective is to keep the game going, keep it playing, keep it moving for as far as you can. And when you gamify something, you're kind of weaponizing the opposite of Goodhart's Law. You're basically saying, "Oh, I got two points. I got three points. I did this."

Circling around to Justin, because we spent half our time talking about what this is, and I feel like it's important.

JUSTIN: [laughs].

DAVID: But, like, segueing into, like, engineering habits, like, we have, you know, multiple websites that keep track of how many pull requests we've opened, and how many reviews we've done, and how many lines of code we've turned in. All of these we know they are bunk metrics for code quality and how good your project is and all that stuff. But as a scoreboard for gamifying something, it's very satisfying.

JUSTIN: [laughs]

DAVID: And that keeps you playing the game, and that makes you get better. And that indirectly causes the code quality to go up and the satisfaction to go up. Very, very interesting.

EDDY: I don't think that kind of works for me, though, Dave. I'm not competitive by nature --

DAVID: Neither am I.

EDDY: I'm okay with losing, and I'm comfortable with it.

DAVID: Yes.

EDDY: But some people utterly are distraught by the idea of, like, I cannot lose, and if I lose, I hate myself [laughs].

DAVID: Yeah. Yeah. And I am not that at all. But I am not immune to the pleasure of seeing the line go up when I measure something.

JUSTIN: I think it's interesting how you don't have this one-size-fits-all solution. I think the emphasis here is do what works for you. If gamify works for you, gamify it. If, you know, small rewards work for you...we're trying to follow these four laws, but at the same time, there's lots of ways that we can accomplish them.

DAVID: There's developers that I've worked with who you can set your watch to them. They show up at 8:00 o'clock. They pound out a thousand lines of code. They go home at 5:00, day in day out. And they're just machines. And that is not me. I am very much not somebody to mark time on a clock. And I felt really bad about it until somebody pointed out. They were like, "Dude, when you see a rabbit run across the field, you are off like a shot, and we don't see you for three days."

JUSTIN: [laughs].

DAVID: And I'm like, yeah, I will tear off after that field, and my wife will be like, "I guess I'll see you Tuesday." And then, Tuesday, she's like, "Will I see you Tuesday?" I need more fingers than the fingers of one hand to count the number of places I have worked at where I took a sleeping bag to work because I was in the habit of sleeping under my desk to do, like, a 36-hour rotation multiple times. That's my privilege and the way my family grew up. I had that time and a wife that was willing to support that and no kids at home. But it was an opportunity to do some very, very hard work, and I did it, and that was me chasing after rabbits.

So, if there's blood in the water, I go full shark mode. I try to bait the hook with something bloody and fresh and like, ooh, let's go do this thing. And I try to be compassionate with myself when 8:00 o'clock rolls around in the morning, and I'm like, I can't. I can't. It's just, ah, you know. I try to get the steadiness back in. And meanwhile, I lean on the guy on the team who, at 5:01, he's not around to answer the phone because he did what works for him, right? He marked his time. You need both kinds of people. You need dragon slayers, and you need bear skinners.

There is something that you touched on, Justin, and it circles back on the dopamine thing. Charles Duhigg wrote The Power of Habit. There's two books by that name, by the way, so Charles Duhigg is the one that I really liked. They were studying housewives. They put cameras in the bedroom to film them cleaning the room. And there were some wives who...this study was from the 60s, so it's necessarily very sexist.

JUSTIN: [laughs].

DAVID: But there were these housewives who kept an immaculately spotless bedroom, and there were housewives who struggled. And they asked them to just go in and clean, and make the bed, and da da da da. And one of the researchers, he's like...I want to give this guy just the biggest hug in the world because one of the researchers noticed a very subtle thing. It was like, if you blink, you miss it, but once you see it, you can't unsee it.

The wives who were very, very organized they would come in. They would make the bed, and after they make the bed, they would step back and they would just look at it for just a second. And then they would walk out. What they're doing is they're charging up the dopamine. They're basically doing the I did a thing. I made a clean spot. Go me. This is awesome. This is what I want. That's part of, like, the make it satisfying. So, jumping finally into engineering habits.

JUSTIN: [laughs].

DAVID: I don't know if this is [inaudible 27:24] be a graphic. I'll throw one out, and then I'll ask you guys what yours are. But I have a hook that when I want to push up a pull request, literally, there's a script called git cram, and it crams the PR into the server and tracks it and says, "I want to open a PR on this." And the last thing that git cram does is it puts a message in pretty colored font that says, "Did you run RuboCop?"

JUSTIN: [laughs].

DAVID: I always forget to run RuboCop. And I hate RuboCop because it's very much of, you know, organized. We're going to do this organization, whether it makes the code readable or not. I don't know if I can ever be friends with B Batsov. That's the guy who maintains RuboCop. But when I see that sign, I crack open RuboCop, and I just look for the stuff that's low-hanging fruit, and I just do one or two. Maybe I do the dash a and do all the low-hanging fruit.

Then I step back and go, oh, that is actually nicer. I do like this. I made a clean spot. And I might stop there. Half the time, I stop there and say, "You know what? The rest of this is legacy code, and changing that's really tricky." And I don't want to fight that dragon right now." But other times, I'm like, "Ooh, I'm on a roll. I'm going to finish this." And then, you get to that magical time when you run RuboCop, and you get a green dot.

I don't know if the code is truly more readable, but I've got a, and, again, that's, like, the Goodhart's Law. As a metric, it doesn't mean the code is perfect, but I do have something that I've gamified. And I've got a green dot on the board, and that makes me very, very happy.

JUSTIN: And I think it's interesting because you mentioned the green dot, and I don't think that's a mistake at all that green dots are all over the place where it says that you are doing something good. You got green dots when your unit tests pass. You got green dots when you push something that is all clean and everything. And so, that green is just like, hey, I just did something, and it feeds a little jolt of dopamine that you're happy, and that makes you happy.

DAVID: Yeah. There was a phrase going around in the noughties: test infected. And people in the Agile community, especially, were banding this, "Oh, I'm test-infected. I want to write tests. I want to do unit testing." And the hallmark of this is you get addicted to the green bar.

JUSTIN: [laughs].

DAVID: And it's real. I have, like, physically felt uncomfortable because I had not seen a green bar in a long time. People who have paired with me know that I have colored lights, a light strip over on the wall. And when I run my specs, they turn blue, and when it finishes, that whole light strip on the wall over my desk turns red or green.

JUSTIN: Wow.

DAVID: And it is very, very satisfying. People that I work with they don't pay attention to that. They don't track it and do the, "Ooh, that's good," or "Oh, that's bad." You get blind to it. You don't focus on what the output of your specs are. And so, you don't notice you've got pending specs, and you've got warnings, and you've got errors. You just ignore them. You're like, yeah, whatever, specs, whatever. And I'm over here going, that turns the spec output yellow! Yellow is not green! It's...no! Don't do that!

JUSTIN: [laughs].

DAVID: I feel bad! You know, and everyone's like, "Dave, calm down. What are you freaking out about?" I'm like, "I need my green specs! I need green dots."

JUSTIN: All the methodologies that are out there to help us be more productive and things like that, how much that feeds back into these habit-forming things. We talked about the habits of breaking the thing that we want to do down into smaller and smaller parts. That kind of rolls right into breaking our stories down into more manageable stories where we can get that shot of dopamine that we completed a thing within a day or something like that, rather than trying to work on this new feature that's one story for a week or two weeks, or something like that. Having that tighter cycle benefits us in so many ways. And it kind of rolls right into this habit-forming that we have talked about.

DAVID: Absolutely. Absolutely. There are a whole bunch of habits that I have that somehow got filed into the banks of my brain as Engineering Discipline: Capital E, capital D. And it was before I knew what habits were. It was just like, if I'm a good engineer, I have to do these things. If there is a holy first commandment of engineering discipline is, do not commit code that you have not run the tests on. And it is very rare, not impossible, that it happens. It's very rare that when I push a pull request up to GitHub, Jenkins pulls it down and runs it. It's very rare that CI fails on me.

And when it does fail, half the time, it's because of a flaky test or something in the system broke rather than what I did, and it's because I'm religious about it. And when I find myself in a spot where I can't run my tests the way I want, or I'm working on something that I can't lock down, and I get the computer to tell me, "Yes, this does what we think it does," first of all, I get very, very anxious. And secondly, my compromise, my fallback engineering discipline is I commit myself to chiseling away at whatever is stopping me from being able to run my tests.

So, on the team that I'm on, if you run any test suite with database-seeded data, it takes 90 seconds to start up the test, and if you've got ADHD, that's awful. I'm in the kitchen making a sandwich. I'm talking to Liz. I'm at the grocery store picking up a soda pop. And, like, wait a minute, how did I literally end up across town? I'm supposed to be running my test.

JUSTIN: [laughs].

DAVID: So, I figured out how to chisel away the tests so that they don't depend on the seeds. And I will run my tests without the seed thing on. And I was pairing with a programmer earlier this week who shall remain nameless to protect me from the innocent. They did bin/rspec.

And he leaned back and he said, "Now we wait for a minute and a half." And I'm like, "Do you have spec seed turned on in your bash profile?" And he said, "Yep." And I said, "You don't run your tests unless you have to. And you run them at the very end, and you run big, long steps before you..." And he's like, "How do you know all this?" And I'm like, "Because your tests hurt you. And it's like, do they have to hurt this much?" So, that might be an engineering habit of if something hurts, try to fix it. If you can't fix it, chip at it. Just knock a piece of it.

Power of Habit from Duhigg was recommended to me by Amy Hoy, and she did an online entrepreneurial class called 30x500 that I took and I really, really enjoyed. And one of the concepts she talks about is she calls it the winch. And the idea is you can succeed with just an inch of progress if you can make an inch and not lose it—if you can winch yourself forward just a little teeny tiny bit.

So, that makes you want to step back and say, if I work on this, am I slapping at it, and then I turn away, and it just comes back and goes back to rest? Because if that's the problem, I've got to pick it up. I've got to carry it across the lawn and set it down, or I can't make any progress because it's going to blow back and forth.

But if I can find something and lock it down, like git cram, for example, that little thing, that is an actual script on my computer in my path. And it just does git push and git set origin and track and then, you know, display the message. And when I first did it, all it did was push and do a track. There wasn't anything else to it, and it just kind of winched forward from there. I have a bin repo up on GitHub that's just all my public stuff that I put on all my machines. There's, like, 200 scripts in there now that I've built over 15 years.

JUSTIN: [laughs].

DAVID: I'm really proud of Git RuboCop because I type Git space Rubocop, and it runs RuboCop on the files that have changed since I last diverged from master, which, okay, that's not that hard to do. That's just RuboCop and a list of files—getting that list of files. I wrote another script called Git files changed that will tell you what changed, little, tiny thing. It makes the job easier, and then you come back to it.

You do have to be careful not to spend 40 hours gaining that one inch on something that your product owner doesn't need because that can cost you your job, and eventually, it will cost you your career. You have to learn how do I take five minutes on this and gain two hours down the road? There's an old xkcd comic about how long it takes you to do something versus how much time it saves you, versus how many times a day or week that you run this thing. It's just a chart, and it tells you this is how long before it will pay off.

And at the end of the chart, it's like, this is going to take ten years to pay off because you run this once a year, and you spent 40 hours saving 2 minutes on it. You spent 2 hours on it, but you run it 30 times a day, and you only save 2 seconds, but that's going to pay off in, like, three weeks. And you're like, hmm, interesting. What are some things that you guys do that's down at the habit level that you don't have to think about; you don't have to summon this force of energy to tackle? You're just like, oh yeah, I got to do the thing.

MIKE: One thing that's been on my mind as we've been talking about this, you know, there's all these little tricks we can do, and there's some utility to them. And sometimes, maybe you're not going to feel like it [laughs]. There's maybe two related things that I'm thinking of connected to this. So, I'm going to follow this thread first. I ran cross country in high school. For everybody's who's done that, it just hurts.

JUSTIN: [laughs].

MIKE: I'm just going to [inaudible 36:11]. And, actually, I had somebody tell me, a fellow cross country team member, that long-distance running is mostly about pain management. You know, the people who are really good at it get really good at tolerating pain and, you know, learning to kind of segment that off in their brain. And I thought, oh, that's interesting. I don't know how I feel about that [laughter]. I'm not vouching for the truth of that. It's actually not quite my point. My point is that if you think about what's happening to you physically, it's not necessarily fun. There are some, you know, endorphins that come from it that are nice.

But I loved it, not because I necessarily loved the pain that I was going through [chuckles]. And I wasn't particularly good either, by the way. I started the team late. I remember my first race I got last place [laughter]. Don't think of me as a great runner. I got better, but, you know, never great, but I just loved running around outside. I got to run around outside. The sense of capturing the beauty and awe of the world around me still sticks with me. I loved doing that.

I noticed that Justin's profile image looked like he was hiking somewhere [laughter]. You know, hiking is not necessarily different. You go up there because you want to experience that beauty, you know, have some awe, some sense of being in something bigger than yourself. And it's related to the idea of a flow state. You know, people tend to become really successful when they are not immediately aware of what they're doing, but instead, they feel, like, one with the work.

And similar to the hiking, to the running, doing something deliberately to be meditative, and developing that sense of meditative immersion, you might think, well, I can't develop that. But I think we can. It's something that you practice. It's like other things that you can work on. You don't necessarily go into the day looking for that hit of dopamine, or endorphins, or whatever it is. Instead, if you go in just as kind of an open slate, like, what am I going to experience [laughs]? It kind of washes over you. Rather than value judgments to your experience, instead, treat that experience as an adventure.

And that subtle mindset shift it takes some work. It doesn't just happen, but it can change the way that you approach your work. That is one habit, I think, that has benefited me a lot is developing that kind of mindset that I can be there. I can have...the world is on fire [laughs]. Things are broken [laughs]. This is...I want to be cautious here. I'm not saying that we should be in an abusive or in a deliberately bad situation.

However, developing the ability to consciously put yourself in that situation and say, "Well, you know, this does matter to me. I want to provide for myself and my family. This is something I want to be doing." Then you can make a conscious choice to put yourself in that situation and go through all of the fiery arrows coming at you and find it fascinating, you know, and see it as, like I say, an adventure.

And that particular approach works for me far better than being competitive. I don't really care if I win, but that sense of adventure, that sense of awe at the world around me is satisfying or is motivating in a way that nothing else can be. When everything else is bad, which sometimes it will be, if I can do it anyway because I've chosen to have this experience, it changes my mindset. And that's something that has, I think, helped me a lot.

And a minor point, honestly: getting exercise when I can helps me to be a developer. It just helps your mind work better. All the tricks we talked about help with exercise. You know, help [inaudible 39:38] with somebody, go out with my kids, helps a lot. But even more so, developing that different mindset about the work, I think, is a big deal.

DAVID: There's a thing that resonates so strong with me with what you just said. I can't remember where I heard it. I want to say it might have been Jordan Peterson. The comment that they made was bearing your cross is only bearable if it's meaningful. Otherwise, it's just a hell that you have to go through. The world's on fire, and people are upset, and there's money being lost, and people are screaming, and dah, dah, dah, dah, dah. And you're just in there going, "I'm providing for my family." I don't know if I said this on the podcast. I know I've said this to you before, Mike, that sometimes the good money is to be found by shoveling crap out of a latrine.

JUSTIN: [laughs].

DAVID: And I have reached a point in my career where I can get down in that stinky, smelly, awful, terrible, and I don't think too much about what I'm up to my hips in. I just start shoveling because I know I'm making a clean spot. I'm making a clean hole that we can get some work done and get some, you know, some stuff done. So, yeah, you're not down there going, "Oh, yay. Look at all this smelly poop on my shovel." No, it's, I'm making a clean spot. Every bit I lift is one tiny, little bit of poo out of this hole. That's what we go after.

The competition thing, like I said, I'm not competitive against other humans. Like, I can't stand to see other people be sad or be frustrated. But, for me, watching the number go up, like, the gamifying, so I will compete with myself. And so, I think it's important to find what is it that makes you tick?

I've worked with you, Mike, enough to know that you have, like, a very meditative presence to things. And I can picture you just standing in the garden watching the azaleas and thinking, I need to prune the grapes back. I hate being outdoors. I hate plants. I'm allergic to anything if it's got chlorophyll in it. And I was like, what an awful way to do it. And I can see you in that environment going, the sun is shining. There's a beautiful breeze. There's a ton of work to do. And that's not what I'm here about. I'm here about this moment, this meditative moment that I can be present in. So, we've gone around the horn quite a bit. Are there any other tricks and hacks?

JUSTIN: I mean, we spent a lot of time kind of defining what makes a good habit or how to have a good habit. I almost, like, want to have a part two of this podcast that, like, goes more into the good habits.

DAVID: I'm realizing, like, one of the...I talked about my bin folder, and I thought, well, that's stupid. It's so small that nobody will care about it and value it, and I realized I've got a thousand of these little things. I have alarms on my phone. I have an alarm on my phone that tells me to check my alarms. I'm not kidding when I say that.

JUSTIN: [laughs]

DAVID: And what it is, like, I have time blindness. I can sit down at the computer. There's Slack, and there's email. There's a problem; there's a bug, da da da da da. [inaudible 42:20] is going off. And all of a sudden, it's 1:30 in the afternoon, and I haven't checked email, and there's a hot message on Slack that somebody's been trying to get a hold...right? So, I've got a checklist. It's like a pilot's checklist for flying a plane of: check this, sign in. You know, we have four different single sign-in thing, which is, you know, increasingly erroneously named single. We have four SO, I guess.

Sign into all four systems, then, you know, go do this. And that means you have to hit this one system that you don't normally do, which, oh, yes, I need to log in there. I need to check to see if I've got any trainings outstanding in our online training stuff. And it's on a checklist. The training thing is a good example. If I don't have an alarm on my clock to remind me to check, the only way I get my trainings done is when I literally start getting emails from the legal department saying, "We're about to be out of compliance because not all our people are trained," and you are that people.

JUSTIN: [laughs].

DAVID: Oh, okay yeah. So yeah, I probably got a dozen of these that I realize are now probably too small. On the larger side of things, there's a couple of people that I've talked to in the past like Dan [SP] Cub is somebody who comes to mind. He's kind of a minor luminary, moderate luminary, not minor. He's moderately famous in the Ruby community.

He mindfully and intentfully writes experiments, you know, hypothesis. I'm going to try this, and I'm going to document and capture. And he will have, like, five code experiments running every week, and I've stolen that from him. And so, like, this week, I'm trying a thing where I write a test that's useful to me, and then I delete it. And I push it up.

And I just got feedback from a co-worker going, "Where are the tests?" And I'm like, "Yeah, they weren't any good." Maybe I should write some good ones. But it's an experiment, right? Try and...and the habit is try and experiment. Justin, I think you're right. I think a follow-up on this would be really, really good. I feel like we're getting to a good close for this one. Any final thoughts out the door?

EDDY: I will say the thing that attributes to success, at least for me, was getting compensated for it. Like, that made loads of difference [laughter]. Circling back to development, right? Like, you can tell someone, "Yeah, if you have the discipline, you can teach yourself." But what they don't really understand is it's a full-time gig, you know, doing that without any sort of compensation. And so, you're doing two full-time jobs or a full-time job and a part-time job. And it's really hard to continue to keep stabbing and stabbing and stabbing when you're not getting paid for it, right?

DAVID: Yeah.

EDDY: So, I will go on record to say if someone, you know, was trying to get good habits to penetrate the career, you know, and, like, establish some sort of status in development, getting into something, you know, that's remotely close to what you're trying to do really, really, really, really, really aids, you know, in success.

DAVID: There's a whole thing we could dive into about career-adjacent activities, where you can expose yourself to an environment where somebody taps you on the shoulder and say, "Hey, do you want to come play with us?" And it's just blind luck. It's not blind luck. You sat down in the lunchroom next to the people doing the thing that you wanted to do.

EDDY: Exactly. And, like, that can be applied to anything in life. Like, you want to get really good at basketball. You want to join the NBA. You know, you have to be comfortable doing that for hours and hours, for months and months without getting paid. Same thing, like; I feel like the surge of YouTube is a huge example. Like, if you're a YouTuber and you're like, "Oh yeah, I want to monopolize, and I want to make money." [laughs] But what they don't understand, you know, is that people who found success in that platform did it and grinded for years.

DAVID: For two years before they broke a thousand viewers, yeah.

EDDY: Exactly.

DAVID: Chris Williamson and Evan and Katelyn are two people that are really, really big that I like watching right now. And both of them talked about: we did this for years and no payoff. And it's interesting that they said they didn't do it investing in their future. They did it because they're like, this is the grind. We're going to get on this. This is going to be the grind that we're going to be on, and we're going to do this. And they focused on just do the grind.

Don't focus on the reward because the reward is going to hit, and it's going to be pale. You're going to be like, I did all that for this? No, you did all that in order to spend two years of your life on a thing that you can now look back and say, "I'm two years older, and I have all these things behind me." Cultivate that itch to learn something, and that'll keep you up at night reading programming books.

EDDY: [inaudible 46:43] compensation, like I'm saying. I can't stress enough how much value that helps [laughs] that provides, you know, the success.

DAVID: I'll throw this out as my closing thought on it, regarding compensation. I've always had an itch to learn. My wife was very frustrated. We were not making much money, and I was buying very expensive books, like, $100, $150-books in 1990 money, so, like, $50 books back then was a lot of money. And my wife just shook her head. She's like, "I would be mad, except that you read them, and so I can't complain."

JUSTIN: [laughs]

DAVID: And I got into Perl programming, like, in 1999 or so. And in 2002, my Perl number was, like, three, I think? I'd never met Larry Wall, and I had never been asked to maintain the Perl tarball. Like, nobody knew who I was, but if you had a Perl question, I knew the answer.

And I had a co-worker that came over to me, and he says, "Hey, how do you get the length of an array in Perl?" And I'm like, "Oh, it's..." and I gave him the line noise string of like, you know, pounds, dollars, you know, whatever it is to do that in Perl. "And hey, how do you do a file X?" "Oh, it's this." "Hey, how do I check for a range of things in Perl?" "Oh, it's this operator." "Well, how..."

And about the 10th time he asked me a question, I'm literally writing code, and I don't even...I'm just like, "Oh, it's this," and I keep typing. And I wasn't aware that I was doing it until he stopped and he goes, "Do you just know everything about Perl?" And I'm like, "What? What?" I have been glowing and coasting on that compliment for 20 years [laughter]. That happened in 2000, 23 years. That happened in Y2K, and I'm still happy. I was so startled. I'm like, oh my gosh, I'm not any smarter. You just asked questions that I knew the answers to, which turned out to be all of them.

EDDY: I do want to say, though, that the outcome could have been not drastically different but, like, you could have had a different outcome had you been given those books to you versus you having skin in the game and investing hundreds of dollars, right?

DAVID: Yeah. For me, that is the key difference between being invested in the payoff, in the reward, versus being about the grind. It's like, I'm going to do this. I'm going to put this effort in. You say compensation, and I'm 100% on board for compensation in the sense of I'm going to get myself on a payroll because then it's part of the grind. It's like early salary negotiations for me where it's like, well, I can tell that this number is bigger than that number, and I like the line to go up. That is a motivating thing.

EDDY: I typically when someone...because I've had people who have said, "Hey, well, how do you attribute your success?" And I say, quote, unquote, "Success," because, like, that's very subjective. But, like, there's people who do aspire, like, doing something that Ramsey and I have done, where we have been able to penetrate something without prior experience. And typically, my go-to advice has always been grind, discipline, and spending money on resources. And they're like, "Oh, I don't know if I want to spend money on it." Like, if you spend money on something, suddenly, you're invested [laughs].

DAVID: And I would call that investment. I had a co-worker years ago who had 13 children. And we were talking about something, and I had stayed up all night reading about it. And I'm like, "You're not reading about this in the office. How do you have time to have read about this?" And he's like, "I get up at 4:00 o'clock in the morning, and I have about an hour where it's quiet." And so, I'm like, "Okay, so you're a lot more focused because you've only got an hour before all hell breaks loose and pandemonium breaks loose in your house." And he's like, "Yeah, so I use that hour very intentionally."

And we were comparing notes and I'm like, "Yeah, you're getting about three times the efficiency because you're investing a resource that, for you, is so much more scarce." It'd be like, you and I go into the bookstore, and I buy a book for $50, and you buy the same book. But you have to pay $750 for it.

EDDY: Huge.

DAVID: One of us is going to read that book cover to cover and then eat the cover.

EDDY: [laughs]

DAVID: Ah, this was a good talk. I do want to carry this on again. Everyone listening, thank you for coming. This was awesome. I'm looking forward to talking about this again.

EDDY: Let's do a part two.