 I'll stay here I guess, unless, does the audience hope you don't wander, or do you want me to stay here? The wanderer, wanderer, wanderer, okay? The wanderer's also a wanderer. We can do this. I'll kind of wander, I won't wander it. So, first of all, I want to tell you that this is the crazy screen to stay in the front of. The perspective right here is nuts. We're gonna be talking about making better decisions, and this wasn't coordinated at all, but Katrina's talk this morning actually covered some of the really cool scientific background of some of the things we're going to get into. My name is Marty Hought, as you see here. Most of you might know me, because I help run RubyConf and RailsConf. I used to run a conference in Boulder called Rocky Mountain Ruby. They also helped organize Mountain West Ruby Conference back in the day, so it's about nine years of conference organizing. So I just now got back into speaking, and we're gonna talk about today. So, who has read Choose Your Own Adventure? I have a book. Yeah? Oh, cool. All right, fans, great. So we're gonna do a little Choose Your Own Adventure story today, and this one is called Haring Your Next Developer. So, your boss loved you. Says you're gonna be on the energy team, and you're like, oh, okay. So he joined your energy team, and they're a collection of unlovable individuals, and you're given a stack of resumes, and this is your first time doing this, by the way, but you're cool, you're like, I got this, and so you start going through the resumes, and you come across one that stands out. You decide you would like to look at this individual. His name is Steve, and he has pretty much what you want to see in a resume, and you decide that his resume is good enough that you choose not to look at the resumes at this point. You just wanna go ahead and you choose the first option, which is you're gonna interview Steve. So he shows up, and he matches pretty much what you expect. He looks like a typical developer. Now, his answers are a bit short, but they're correct, you know. They're times where the others get talking about like the tacos and chunky bacon, and you do wanna delve in a little bit further into some of the questions, but the other team, the rest of the team wants to move on. So you go ahead and you seem to ask how it fits, so you move on. Now, you go ahead and offer him, with Troy's on the back, the other slide there, and so things aren't quite right though. It turns out that he's pretty slow to get onboarded with the team. That's not unusual, but after a couple weeks, some of the skills that you expected him to have as a developer are a little bit lacking, and so you've got this situation. Which are you gonna choose to do? Well, you choose to question Steve about his skills, and he doesn't take it too well. He reacts a little poorly to it, and actually it turns out that Steve is not really a developer, but a benevolent older god. You have chosen poorly. So let's back up a second. Yet, this is you. You're probably wondering how you got ended up in this situation. And to really explore this, we have to dive into how we make decisions. Now, our brain that has two modes of thinking and when it comes to decision making, and as Troy has already touched on some of this, we have the instinctive, and we have the rational. The instinctive part of our brains is fast, it's intuitive, it's automatic. And an example of when we think this way, if someone's a threw a ball or some object have hurtling at you, you would immediately react. Depending on your experiences, you would either catch it or you duck. This is your instinctive mind at work. So if Cthulhu showed up and vaporized part of your office, your reaction would be instinctive. You would not stop to think. So you could say the instinctive way of thinking, what's really neat about it is it's incredibly powerful and it is responsible for most of what we do, say, and believe. And Katrina already covered a lot of this earlier, so it's a really, really cool part of our brain and those who become experts or master some skill use this part of their brain heavily. Now, rational is what we normally consider when we're making decisions. This is very slow, it's logical, it takes effort. It's like calculating things, I'm analyzing a lot of data, reading through stuff, spinning a lot of effort. So this is the analytical ability that takes a lot of attention, time and effort. So there's a lot of cost with this. And there's some interesting things about this that I would love to get into about, we don't have time and we're gonna move on to the rest of a catch that our brains have because both of these might ways of thinking are very neat and powerful, but they have cognitive biases that get in the way. Now, cognitive biases, these are these preloadish shortcuts that we have developed over time, over evolution, that at one point served us very well. They're what allows us to make these good decisions that can save our lives or protect us from bad things. But unfortunately, a lot of these biases also are responsible for us making terrible decisions. We essentially can be manipulated when people understand how these work, they can use them against you and you don't even know it. Matter of fact, there are so many of these biases, this cool infographic has over 108 of these things categorized. So this is a very rich, interesting space to get into, but it's important for us to know these because these trigger and affect how we make decisions. We're gonna look at a few of them that played into our hair in your bubble, played out earlier. So the first thing is confirmation bias. So in our example, when we looked over Steve's resume, it matched a lot of the preconceived notions we had about what developers should look like, what they should know, what they should have been doing. And when we saw these things, we had matched up with what we expected, thus we didn't feel the need to look further. We assumed that was correct. So this is confirmation bias. This happens quite a bit, so the powerful one affects you probably daily. The other one that we're gonna look at is stereotyping. This is one that we've heard quite a bit, so this is not a new cognitive bias that we've heard about. But this one pairs pretty well with confirmation bias. And again, when Steve came in, in person, he looked like the developer. We saw things on the resume and we assumed that they were good enough. We didn't need to dig deeper, verify things. And sometimes this is how our brains work and we won't, even though we should, we won't borrow it because we see enough to know that it's a good match. The final one is bandwagon effect. We've heard this one as well. And this is the idea that as the others on the interview team were comfortable with how things were going with the answers they were hearing, you can pick up that they were comfortable and you didn't feel as comfortable disrupting or rocking the vote by raising any concerns. So it's important that we know these because only you can prevent other chores by avoiding these bad decisions. So the question is what do we do about these? And thankfully my cartoon foxes are here to help me ask the question. There are things we can do and what I would tell you is we can train ourselves through deliberate practice and mindfulness to be aware of these biases. It's a first start. We can also direct our experiences to improve our skills and intuition to make better decisions. Though we've heard previously about instincts and intuition that it does seem pretty magical, we can build them up. It's through our experiences that we are able to shape these. So one of the important pieces to understand here is that experience is really key. And we use it as the foundation of our good decisions. But yes, as you guessed, not any experience matters. You want to make sure that you have the right kind of experiences. So the quality of your experience and what you're working on, what you're working through makes a huge piece of knowing, developing that expertise. One of the examples of this that I can recall is when I started programming in the 90s, I worked on some teams where the developers were pretty much just going through the motions. It was all good enough. It was like just a normal paycheck and they weren't interested in really improving themselves. They were good enough with the level of work they were doing. And it was a bit frustrating because I would have liked to gotten better, but it was surrounded by people that didn't mind or didn't care. And the moment that I joined the extreme programming team, I learned so much more in six months than I had learned over five years of doing this more traditional corporate IT experience. And it's actually one of the reasons why I started Hot CodeWorks because I was sick and tired of working at places that didn't really care about our process or how to make software better and they weren't interested in improving. So I wanted to explore this question, whether or not I could make something that worked better as a team and make better software. And three years ago, because mentoring is a foundation of our culture at my company, we started an apprenticeship program. And I've had six apprentices go through in the three years. And a lot of what I'm gonna present to you today is based on my experiences, both when I've had them do and things that I recognized I would like them to do. So we have eight weird tricks, or maybe not all weird, tricks to making better decisions. So trick number one, learn about cognitive surprises. So we've already touched on this. This is good. There's a lot more you can get into, though, but both thinking fast and slow by Daniel Kahneman is a great place to start. So I recommend you look at that. Or if you're not, don't wanna read that book quite yet. There are four that I recommend you look at for now, although this whole subject matter is very fascinating. And I really enjoy reading more and more about these. But anchoring, availability, heuristic, cost aversion, and some cost fallacy are four that really stand out, that affect us quite a bit, especially in the kind of work that we do. Trick number two, use a deliberate process on high value decisions. That's a good decision. Also don't put the glass of water on a tilted surface. So what we're talking about here, this is a five step process that you can use for making small and or big decisions. And you can use this on your own or you can use this with a group. This probably seems a little familiar. So step number one is to find the goal. What are you trying to accomplish? You want to ask why is it need to be solved? You need to know the why. What is the value of what you're doing? What is the solution you used to have? And are there any constraints? So before I do any of this, I want to make sure I have those three answers. Now it's important that we have these answers because they form our compass or our varying in terms of how we proceed with making the decision about this process, how we're going to go about solving the solution for this. And we also want to make sure that our answers here are honest, accurate, complete. Sometimes we might not want to be either deep enough to answer one of these questions or we maybe don't want to be honest about the answers. But if you really want to make the best decision possible, then you really want them to be honest, accurate, and complete. Step number two, identify your options. Seems pretty obvious. Start off with a list of potential approaches. It could be the ones that are really clear. In your mind, it might be something that is far out or kind of unconventional. That's all fine, depending on how large of the problem is or how monumental it is, you'll want to have more options to work with. If you don't have enough options, if you're not happy with the options that come to mind, there's another way you can get more. Research such as Googling or looking on Stack Overflow or other sources in books can provide some different approaches that you might have thought of. Networking, social media, talking to your peers. It's another way to get some potential approaches. And then brainstorming. So I won't get into any brainstorming techniques today. There are lots of really good ones that can help you and a group come up with ideas that may not have been really obvious to you. You can do nothing. But one thing I would say about this is make sure you collect them all before you proceed and don't eliminate any of them yet because that's not part of this step. Step three, qualify your options. So we're gonna go through each of the options and we wanna answer the following questions for collecting data on at this point. What's the likelihood that this option is gonna be her goals? We know. What are the risks involved with this particular option? And what's the time, effort and cost? You wanna collect these equally for all. Don't skip over any of them. You need to fill out your figures of data knowing how all of your options compare to each other this way. Step four, choose the best option, right? For the profit, something like that. So before we choose the best option, we do need to get one more piece of information. We need to determine the important factors for making our decision. It could be time, it could be cost, it could be process, it could be people-based. There's lots of different angles, depending on your problem, that are gonna be important for providing the best way of weighing your options. So once you know your important factors, you can then sit through them. I do recommend that you cut down the number of your options in case there, if you have like eight or 10 or 15, that's a lot to go through. I like to limit it down to maybe like five or three and then you can really look closely at them. At that point, then hopefully one stands out. If one doesn't stand out, there's a couple things you can do. First of all, you can involve others or expand your circle from wherever it was involved in this process to get some feedback from them. But you can also just go with the best one. You don't need to be paralyzed by trying to make the perfect choice. Sometimes it needs to be a good enough choice and you move on. You've already had so much work at this point that you're gonna be well better off than you had if you just guessed in the beginning. The fifth step is reflection. And this is one that lots of organizations do not do. They may have done these four steps informally at this point but they might not do this step. And this is actually really crucial. You want, this is your retrospective essentially, once you've gone far enough into your solution and gotten some results, how did it turn out? What sort of lessons were learned from it? Why are there ways to improve your process? This is such a critical part because this is how you can maximize learning. And matter of fact, it is sort of your secret sauce. So some things to keep in mind. Bigger than the issue, or you should be, if it's a really, really small issue, you might rush through all these in the course of five minutes. It can be that simple. It doesn't have to be a week long process but it's a really big issue. It might be multiple weeks or longer depending on if it's a multi-organization type deal. Consider their overall value when you're investing your time and effort. If it's not a big deal, it's not that important that you probably shouldn't unless you're just practicing spend too much time on it and be aware of too many choices that can really slow you down. Trick number three, know your context. You've probably heard folks answer questions, it depends, right? Well, that's context playing out, but it is important. So in our industry, here's a few contexts that you can consider. And if you're starting out, if you're newer to this, these are things that I recommend you definitely know. For example, know your tech stack and its alternatives. What are the implementation details and gotchas that you might go through as you try to do something in one stack or another? You should know this, it'll help you make your decisions. Know your stakeholders, what it's important to them, what do they value, how risk adverse are they? What's the cost of a mistake in their eyes depending on what your stakeholders, how they view things, that's gonna affect how the kind of decisions you're gonna make. Know your teammates, what are their skills, what are their politics involved, what are the things that you shouldn't be doing. You wanna know and be sensitive to your teammates so that when you are facing decisions, you can then decide and factor in their input or how they are when you're doing that. And finally, your product's business and market. This is one that I see so many developers, they don't really know this, and I'm a little confounded by this, like this is so important because we, especially when we're down building how a feature works and how it plays out, that we can take a walk from knowing how the business really needs to work and how the market works because we can make a better decision about how to implement something or maybe raise a red flag when something, the stakeholders were mis-, didn't understand. All of a sudden, you can see them work clearly, you can communicate that back up. So all of these, knowing these contexts can help you give, it can give you important insight that you can then make better decisions. Trick number four, keep a depth journal, I hope somebody might be going, oh, really, you're definitely not serious. Well, yes, actually for my purposes, this is something that I have them all do and they got some really, really good results. If you're pre-experienced, perhaps you may, if you like, you don't need to do this, but even one of my most experienced team members does still keep a depth journal and is really very valuable to him. So the way it works, at least the way that I sort of instruct on it, is I start off with a very task-centric journaling. So we have a pre-task entry as these are, these are the four sort of questions or areas that I want them to jot down before they get started on something. You know, what is your understanding of this task? Are there any questions or uncertainties? What represents done-ness? And then map out your approach for how you think you're gonna solve the problem. The important piece here is that I'm having them exercise a mental model of what is needed to accomplish the task and I don't want them just diving into code, I want them to think about it and it will probably be a little rough for them in the beginning, it always is, but it's very illuminating for them as they go through the post-task entry. So once they've gotten started and they're wrapping up, I want them to enter these things as they go along. What did they learn? What did they get stuck on? And he sort of feedbacks, like in a PR or their barrier or when they're talking to their fellow teammates, I want them to record that. This is important so when they look back, they can think about how it went. This is about a knee reflection on what they're doing and tracking their progress. So this is really important, it's helpful when they look back on things. I do want them to use it daily and I want them to be pretty rigorous about their notes. It could be anything work-related, it doesn't have to be just tasks. We start off with that because that's very easy. I can verify and say, okay, I'm showing you your notes. Now where do you go? Okay, great, why didn't you take your notes? You do want to use your up daily and you want to stop the end of the day to reflect. And this is about creating a habit of paying attention to your reflection daily. And if you've developed this, whether you write it down or not, you will be getting this feedback as you go along daily to get better. Trick number five, estimate. And yes, I do have them estimate when they're starting off. Little rough, that's the point. So estimation. So with estimation, I start off with a process like this and it's pretty basic. Write down the task in smaller parts. And how small the part needs to be is until they can imagine pretty much everything that happens in that part. So much so they can now record time, their estimate of what they think. And I usually tell them to keep it like a half day day, multiple day, we kind of level it first. If they want to do hours, that's fine. All they care about is they're thinking about it. If they're putting some sort of estimate there, some sort of number that they're gonna pay attention to, then they have to track their time. Now, I don't do this for the business. I don't turn these numbers over to project management or anything like that because that's not the point here. This is not why I'm having to do this. This is about their mental model and understanding what their perception of what it takes and what it actually takes and how it varies. So in step four, we compare actual time with estimated time. Usually it's not good. In step five, reflect on why they were different. That's actually really the most interesting piece. Why are they different? We're just not good at estimation. Are you just not missing something? Is there some piece of complexity that's not there yet? That's really the interesting conversation that happens when they're doing this. So that is trick number five. Trick number six, intentional practice. So I want them to be deliberate. This is them working towards something. I want them to work towards a goal. Take something they can work on and sort of improve their skills. I want them to do this on their own. So pairing doesn't count. This is not a count for this sort of practice. I also want them to practice as they wish to perform. That's kind of an odd thing to say. It comes from my musician days, but if you're practicing and you're making mistakes or you're not being mindful, then that is going to be learned by your mind and your muscles and that's how you're going to perform later on. So when you're practicing, I want them to strive for sort of like their vastness. This is like a code retreat type exercise where they are, it's not realistic. It's not like you're shipping production code. You're just working on something to learn and you should be evaluating your process. Trick number seven, fail. So I, unnoticed to my apprentices, I always give them at least one or two tests that I know they're not going to succeed at them. I purposely give them something they can't handle. If you say I want them to have a camera moment, I want them to hit the wall, what happens when you don't know what to do, when you don't have the answers? You learn a lot about someone or yourself in those situations. And I want this to happen because it's going to happen when we're in another and I like to have it in a little controlled environment. So we call this fail-like Goldilocks. So the piece here that I guess the key is here to remember is that I want you to go and be on your comfort zone. I want you to try something that you probably want to succeed at. You might succeed or you might only partially succeed or you might just be able to fail. That's okay. I do want it to be in a safe place, so yeah, not in production. But there is a point you go too far. You want to avoid being overwhelmed and confused. If you go too far and your mind shuts down and you realize I can't do anything right, I'm just completely, this is, I should just quit. Why am I here? I don't want to go that far, but I want to get to that place where they're like, whoa, I'm not sure and I'm flailing here. And this is about learning from your mistakes and you'll learn that actually this is fairly normal. I mean, I don't know about you all, but I've certainly been in this place lots and lots of times and knowing how to be in that space and how to adapt is so critical to what we do. Seven, trick number seven. Trick number eight, seek feedback. So feedback is a critical part of what we do. We do it at so many levels. I mean, you can think of you're in the editor and you're, if you're compiling or if you're writing, actually in your code, does it work? That's a form of feedback. You're at the website test suite telling you how does the bill or as you get it out and deploy and what does QA tell you? What is it? Stakeholders tell you, your client review, your users, there's a lot of different levels of feedback. And getting feedback from your co-workers on how you are doing is just important. Sometimes it's not offered and if it's not, you should seek it out. Now you might not be very comfortable with this. It might be hard to go and ask for feedback, but you should push through that and do it anyway. The, it's pretty rare that people will give you that feedback and usually they'll be doing it for your own good or giving you good feedback so you can grow. So part of this is learning to receive feedback gracefully. There are a few things I want to mention about this. Listen carefully. This includes paying attention to body language, tone of voice, emotions, may not be very good at that, you should start to try, you should listen carefully. Listen empathetically. Consider the speaker's reasons for offering feedback and assume the best intentions. Restating feedback in your own words, this is where you repeat back what you hear. So the speaker who's not offering you the feedback can hear it as well. They might realize that how you heard that feedback is not how they intended and they didn't clarify. So that's important as well. And then notice how you're feeling. If you become angry or defensive about the feedback you're giving, that's gonna cloud your ability to listen effectively and take it in. If it's, if that's reality, if that's how things are, then there's no point in denying it. Know that feedback is a gift except that we are always learning and that you cannot improve your skills if you aren't receptive. Making better decisions come from our practice being mindful as we intentionally improve our skills. As it comes down to, with my apprentices and the way I look at this, my ultimate goal is this. Can you be independent? Can you be consistent? And can you be trusted? That is the basis of making good decisions. I know you can do it when I can answer yes to all those questions. You may not get it right. It's not about being perfect if we aren't, but it is about us using growing and using our resources to try to make this possible. Thank you.