158. Positive Reinforcement and Agile

We know that we can learn a great deal from the animal kingdom, so today we’re exploring the relationship between positive reinforcement for dogs and Agile. We kick the show off with Dave sharing some of the lessons he learned from Don’t Shoot the Dog, a book he read after adopting his dog. While the title may suggest it’s strictly about dogs, he feels that the lessons can be more broadly applied. We then talk about providing positive reinforcement to the humans that you work with. Agile inherently provides feedback loops, and adding positive reinforcement into these loops can help everyone working on a project. We round the show off by discussing how we can be kinder to ourselves when learning new skills as well as how getting continual user feedback helps us stay positive. Be sure to tune in today!


Key Points From This Episode:


  • Find out about the book Dave read, Don’t Shoot the Dog, and how it helped with his dog.
  • Why pull requests are good times to give your partner positive reinforcement.
  • The Losada line and what it tells us about positive and negative reinforcement.
  • How positive reinforcement can be used when you are learning a new skill.
  • Why trunk-based development can also help with positive reinforcement.

Transcript for Episode 158. Positive Reinforcement and Agile





[0:00:01.9] MN: Hello and welcome to The Rabbit Hole, the definitive developer’s podcast. Live from the boogie down Bronx. I’m your host, Michael Nunez. Our co-host today.


[0:00:09.3] DA: Dave Anderson.


[0:00:11.3] MN: And our producer.


[0:00:12.4] WJ: William Jeffries.


[0:00:14.5] MN: Today, we’ll be talking about positive reinforcement training for doggos, yourself and Agile. This is a topic that Dave was really passionate about. You have any thoughts you want to drop before we begin, Dave?


[0:00:28.4] DA: Yeah, I guess for it all as we’ve talked about in the past episodes at this time and socialize isolation mode. So that means like, if you have a dog, you’re spending a lot more time with the dog and also, there’s a lot of people who have been like adopting more dogs into their lives. And if you’re like rescuing a dog then you’re probably going to need to start learning abort dog training. I know that when I adopted my dog last year, she was like kind of a mess, there’s a lot of work that we’re trying to do with her, so I started reading this book, Don’t Shoot the Dog by Karen Pryor.


It’s like about like the fundamental idea of positive reinforcement training. It’s not really like a set sequence of things you can apply. But just like, what are the basic ideas and how do you apply them. And you know, they’re very generally applicable, not just for a dog or a dolphin but you know, even like looking at like – you can just be good to yourself as well. That also kind of can be helpful.


[0:01:35.3] MN: Yeah, I’m looking forward to see if there’s any correlation or any information I could use for when rewarding my son with certain things that he does and changing behaviors for other things. So, is it mainly about positive reinforcement?


[0:01:53.2] DA: Yeah, it’s kind of about like providing a feedback loop, right? That’s also like fundamental to like Agile. Like we’re building these systems that gives us feedback loops and reinforces us when we’re doing the right thing. We’re able to keep this way to correct ourselves to a better thing.


The basic idea of positive reinforcement training – So like with dogs, it’s like very popular to use like a clicker. So, if you see a behavior that you want that the dog does then you would mark the behavior which is a click or you say yes and then you give her a reward, so, normally it’s like food or attention or whatever. But that tells the dog that they did something right and they like the rewards so they’re going to try to keep doing it.


It’s like really like the simplest way to send some information to the creature that doesn’t speak English. If you say you did it right, then they know that they can do that again and get something good. Where, if you said you did it wrong then like they don’t really know what they should be doing. Instead, there’s like too broad of a possibility of like what it could be.


[0:03:10.9] MN: The idea that I had in mind because I think it will be really rude if I was pairing with someone and when they did something right just like click their face, that’s probably not what I want to do. But like, the idea that to reward positive behavior like the first thing that came into mind was like a pull request. Because often we look at pull requests as something that we want to like, show what we think is correct and how to fix things.


But we should also be like sending thumbs up or like sending comments that are positive to individuals in pull requests so they can then feel good about what they’ve done. If whether they introduce new pattern to the feature or like they’re following behaviors that the team wants the move forward in. Just giving thumbs up during the PR. I found like that could be a cool way to add it to show that you want these behaviors to continue.


[0:04:03.4] DA: Yeah, definitely like giving positive words to your teammates is a good way to like, let them know that you’re aligned and that appreciate what they’re doing. And yeah, that is a positive reinforcement in itself. Like just a simple emoji being like, “Wow. Yes, good job.” Yeah clap emoji, clap emoji is great. You know, you got some good test coverage? Clap emoji. You deleted a bunch of code and cleaned it up? Two clap emojis.


[0:04:36.8] WJ: Yeah, there’s this concept in the field of positive psychology called the Losada line. He’s a researcher who used some really advanced fluid dynamics modeling and to do some analysis of how effective positive and negative reinforcement is at different ratios. And the math that he used and I think the use of the math in that paper has largely been discredited at this point. But there were a bunch of studies along that same vein which looked at the effect of positive and negative reinforcement. And that they all seemed to just sort of conclude that the ratio is pretty high so that Losada line was like 3.9, 2.9 something which was like the absolute minimum number of bits of positive reinforcement you could give before you could give piece of negative reinforcement and have it be effective.


[0:05:29.8] DA: Interesting. So precise.


[0:05:32.5] WJ: Very precise. And I think there’s been some backlash about the math there and the simplification of human psychology to a number like that. But I think most people would agree that it’s a sort of intuitively true and it also seems to have been corroborated by several studies that it definitely seems like you need a lot more positive reinforcement than you do negative reinforcement.


Even though negative reinforcement can be really critical.


[0:06:00.1] MN: Right, yeah. I mean like yeah, people are complicated. But you know, there are a lot of ways that you can have a nuanced exchange to discuss like architecture and things like that. But just the fundamental thing of like just being like, “Hey, this is good. I like this.” It’s a pretty powerful thing that is encouraging. Sometimes it’s easy to forget that, you don’t have to just call out like you know, “Hey this line in the PR is trash like I hate this variable name.” Like that’s the worse feeling. When someone gives you a big red X on the PR because like you gave the wrong variable name or something.


It’s like, I like to give the green check, you know, approved and be like, “Well, you could think about these things.”


[0:06:54.5] MN: If you want.


[0:06:57.2] DA: Yeah, exactly.


[0:06:58.7] MN: I approved it. I have some things but if you - it’s okay with me. All good.


[0:07:04.0] DA: Yeah but like one of the things in the book that I mentioned earlier was like this is a tool to shape your own behavior in a way as well, where maybe you are trying to learn something new, like you are learning a new programming language and you have programmed in other languages before and you know how to get things done very quickly in those languages. This is situation I found myself in pretty recently and it is easy sometimes to get frustrated with yourself.


And be like, “Oh my god, why is this taking me so long? Why don’t I know this?” And instead reframe that as being a positive exchange for yourself where you’re like, “Oh, okay, I figured out this new thing.” Focusing on the incremental learning that you are doing instead of focusing on the things that you are doing wrong or the things that you have confused or that you’re not understanding right now.


[0:08:02.7] MN: Yeah. I think another small way of the idea of influencing and encouraging positive behavior is the idea of having trunk based development where you have very, very small commits to add to features to your code because that way the reward being that the work that you’re doing is in production faster like will let you and your users know that the work is being done and that it is a good product in itself because you are releasing these new features out to the user as fast as possible.


[0:08:40.6] DA: Right, you’re doing CI/CD and just getting work out in front of people quickly.


[0:08:50.9] MN: Right, I imagine that like you in – if like a release of a feature took six months and then you saw would be – you wouldn’t get the same effect if you are releasing new changes and new features every week or every two weeks. So, I imagine like the more you see positive changes and customers are using this feature and it is positive review then the more good you’ll feel about releasing more stuff more faster and I think that is worth doing that.


[0:09:21.6] DA: That is totally true. So, you are sharing the work more frequently with the people who matters with and that is I guess shaping what direction you might take with the next work, maybe like you decide that some feature is really working great. Like everybody loves your new red button. The red button is amazing so we just need to make more red buttons everywhere. So.


[0:09:48.3] MN: Right and make them all red. But you would find out if you released that every two weeks to know that maybe not all the buttons need to be red but some but if you did it every six months it will take another six months to you to then realize, “Oh, that wasn’t the best way to color all the buttons,” even if you say we were doing this two-week iteration or sprint.


But then the team decides to split the work up and that more members can then release more pieces of code and that is even more features that are out but the users see what the positive reviews or the uses of that particular feature you be able to give more for your users and then that’s positive for you and the team because you guys have been given praise on this new feature that all the users are using and it is just a great feeling to have to know that you are producing this work.


And I think the other ceremonies like stand up is feedback that you are getting from your team on a daily basis where the people are working as expected and it is like you can encourage them, tell them they are doing a good job and if they need help they’ll be able to say that and stand up other pieces of feedback that we normally get including CI/CD like Dave mentioned before. when you know something is broken then we know we need to fix it and then we see that it is green again. It is enforcing positive behavior. And when something is wrong then we will see it’s red.


We can’t just go around clicking all of our developers to make sure that they are doing a good job like there is other ways for us to do that.


[0:11:24.6] DA: Right, yeah. I do feel like when CI/CD is flaky though or when some of these signals are out of whack and you are getting a signal that says you did it wrong and it is not clear like what you did wrong or like if the tests are flaky or inconsistent or really slow then it becomes a bit more challenging for that to be useful tool. The longer time you have to wait in order to get that feedback. And if you can’t trust that it is actually telling you something that’s useful then that is also an issue. But you know if the feedback is timely and correct and clear then it can lead to really solid outcomes.


[0:12:20.1] MN: Yeah, if all of that infrastructure is in place and it is done correctly there are definitely ways to enforce positive behaviors. And I think the idea of Scrum and XP has all of these different ways to do that and we just have to make sure everything is green as we pushed new features for our users. Dave what was the name of the book and author, again?


[0:12:43.0] DA: The book has a crazy name. It’s Don’t Shoot the Dog.


[0:12:45.6] MN: Don’t Shoot the Dog. That’s not so far off.


[0:12:48.1] DA: By Karen Pryor. But it is more broadly applicable than the name sounds. It is not just about not shooting the dog. I feel like the name itself is a form of negative reinforcement like, “What should I do instead of shooting the dog?” Which is actually the majority of the book. The majority of the book is like what you should do instead of shooting the dog. And shooting yourself while you’re learning View.


[0:13:09.1] MN: Yeah definitely. Don’t shoot yourself while you are learning View.


[0:13:13.0] DA: Right, you are doing so much right.


[0:13:15.6] MN: Yeah, I think we might have to purchase the book and see what I can apply to myself and like –


[0:13:23.6] DA: Yeah maybe apply it to Gio.


[0:13:24.4] MN: Yeah. I got to apply it to my son because these guys are wild behaviors right now and we got to change them. And yeah, including headbutting. So, he’s been head butting my chest whenever he wants something and that’s not fun. It is painful and it is not cool.


[0:13:38.9] DA: Are you reinforcing him for headbutting?


[0:13:42.0] MN: I guess, he likes when I grunt because it hurts. It is not fun. Yeah, I got to look into this and see what other ways in the Agile methodologies we could use so that I can refrain Gio from headbutting me.


[0:13:57.5] DA: Maybe you just grunt and he doesn’t head butt you.


[0:13:59.9] MN: Yeah exactly. Yeah maybe I should do that. I just grunt all the time make sure. He’s going to punch myself in the chest, grunt.


[0:14:09.0] DA: It’s like tool time, guys.


[0:14:10.3] MN: Exactly, right green refactor. But punch chest, grunt, oh happiness this is what is going to happen.


[0:14:16.7] DA: Okay.




[0:14:17.4] MN: Follow us now on Twitter @radiofreerabbit so we can keep the conversation going. Like what you hear? Give us a five-star review and help developers like you find their way into The Rabbit Hole and never miss an episode, subscribe now however you listen to your favorite podcast. On behalf of our producer extraordinaire, William Jeffries and my amazing co-host, Dave Anderson and me, your host, Michael Nunez, thanks for listening to The Rabbit Hole.


Links and Resources:

The Rabbit Hole on Twitter

Don’t Shoot the Dog

Trunk Based Development