It’s a fact of life that people are imperfect, so why do we try as coders to be perfect in our jobs? It’s just not feasible nor rational. This episode of Programming Leadership sheds light on the unrealistic expectations that clients, bosses and ourselves set because we strive to be perfect in an imperfect world. Programmers need to set realistic goals with their bosses, teams and with themselves. It’s only when we get real, do real results happen.
- Leadership is creating an environment where everyone can contribute.
- We can’t say yes to something until we can truly say no to something.
- Look for the good and the bad in the retrospective of a project. Document lessons learned.
- Stop trying to be perfect in front of your boss and colleagues. It’s okay to not know the answer and to be imperfect.
Announcer: Welcome to The Programming Leadership podcast where we help great coders become skilled leaders, and build happy high performing software teams.
Marcus: Welcome to The Programming Leadership podcast. I’m Marcus, and this is the show that helps great coders become great leaders and build happy teams. Today I want to talk to you about getting real. I see a lot of insanity in companies in software development, I have absolutely been an insane person when it came to leading software development teams. And I’ll be honest, the primary place and way that I was not sane was about my expectations for how much could be done by the team in what period of time. The other place I was insane was about what quality level could be accomplished in that period of time and I feel like I want to just get you so focused on this topic because if you are acting like me like a crazy person, like an insane beast where you have these expectations that make no sense, you are hurting your team.
Marcus: Let me pause and thank today’s sponsor, GitPrime. GitPrime’s platform allows you unprecedented visibility into your development team. For too many years I’ve had to guess at the status of projects without any real data to make decisions from. Oh, I have tried everything: StoryPoints, Velocity, burndown charts, burnup charts. You name it, I’ve tried it. Worse yet, I’ve made the mistake of promising my boss when something would be done only to be disappointed. When I dug into things with my team I was always surprised between what the charts show and what’s actually happening. Now, it’s not like anyone’s messing up, but things are happening that I have no visibility of, which meant I couldn’t even discuss it with my team. GitPrime changed all that.
Marcus: With GitPrime, you can leverage git-level analytics. That’s where the real work is happening. It provides deep insights to help you have better conversations with your engineers and your whole team. See things better. Build things faster. Learn more and sign up for ademo at GitPrime.com.
Marcus: This creates an environment where the people who are working for you, the people on the software team, get the sense that nothing they do is going to be good enough. That they can never please the boss. Not really, they might have a few wins. But ultimately, they are looked at as going too slow, making things too complicated, and in general, just not living up to expectations and when you have a team that thinks they’re not living up to expectations, you can guarantee that you have people worried that they’re going to lose their jobs. This is not a psychologically safe place. This is a place where they are never fully appreciated because there is always a sense of faster, faster, faster, more, more, more. Now, I know maybe this doesn’t apply to you. And you might say, “Sure, in our retrospectives we continually try and improve, but we don’t have a lot of pressure to get stuff done.” I’m glad you don’t have a lot of pressure to get stuff done. I would say that if you stopped getting much done, that pressure might hit pretty hard.
Marcus: But even in your retrospectives, are you being real? Are you being realistic? I think every team can make small incremental improvements. But remember, change is hard. And so if you’re asking your team to make big changes every sprint, that is going to take a toll on them. No matter how good your team is, they are not perfect. The way they work together is not perfect, and you are not perfect either. In fact, the people that demand all this more, and more, and more faster, faster, faster, they’re far from perfect as well. Okay, you should be expecting your team to fail in all sorts of ways, and so should your boss and your customer. That may sound crazy to you, but recognize that if you don’t expect your team to fail, you can guarantee they’re not going to talk about it when they do. In every single sprint, there is a failure that can be learned from. And guess what?
Marcus: Even if you do everything so perfectly that no one at the retrospective, no one even if they were completely honest over a beer in a bar, like if no one said, “No, we have no failures on this sprint. We executed perfectly.” Then the question is, “What can we learn from our success?” But when we are focused on perfection, we’re missing all of that goodness, we’re missing that improvement. We instead replace that with shame, with expectations, with negativity, with a sense that the boss will never ever be happy. Does that resonate with you? I really want to hear from you, you can email me at Marcus and marcusblankenship.com because I hear from software managers all the time that tell me that their bosses are unrealistic, that their bosses always want more, and no matter how good a job the team does the boss never really celebrates. The boss and we’re using that term in a very interesting way. The boss is always dissatisfied. There’s a lot of areas where perfection mindset creeps in here in a really nebulous, subtle, and damaging way.
Marcus: So one way as we talked about was when we have estimates, and plans, and projects, and we are going to do things on a schedule. Let’s be honest, that never works out. Does it? Not perfectly. My friend Jerry Weinberg told me once he said, “Imagine what a perfect schedule might look like to you.” I said, “Okay, I got the perfect schedule in mind.” And he said, “Now has any project ever gone perfectly?” I laughed. I said, “No, not perfectly.” He said, “Okay. So whatever number you’ve budgeted for your perfect schedule, your happy path, you know that’s wrong. Right now, you know that’s wrong. In fact, I would say if you added an hour to it, that is the minimum that it could take, that’s the floor. You recognize that you are perfection is wrong, and it’s the minimum that this thing could take.” And frankly, I was kind of flabbergasted because I’d never thought about that in quite that way.
Marcus: And what he was trying to tell me was, just because you don’t know the perfect number, doesn’t mean you don’t know anything. I love that story. I believe it’s up on our YouTube channel, Jerry and I chats, and we can post that in the show notes. But here’s the thing, just because you don’t know the perfect estimate, the perfect timeframe, the perfect effort, doesn’t mean you know nothing, and that’s what he taught me. Now, there is a huge problem in addition, not just expecting too much of your team, and not just your boss always wanting more, but with you expecting too much of yourself. And I really mean this, I recognize maybe you give yourself a break. But when you are in front of your people, when you’re in front of your boss, it feels like being on stage, isn’t it, doesn’t it?
Marcus: It feels like you are up there doing a performance, you’ve got to have the perfect words, you’ve got to look right, you’ve got to sound competent, you have to appear confident and coherent; something that I struggle with as you can hear on this podcast. And yet I am here being imperfect in front of you, because I believe the greater message is important. In the same way, I want you to take that approach. I want you to be in front of your boss and your team, not imagining that you have to be perfect in every meeting, not imagining that it’s better to say nothing than it is to admit you don’t know something, or to admit that you don’t understand, or do admit that you don’t have the answer, or even to admit that you failed. Those are actually all better responses than saying nothing. Hey, I get it. You’re probably listening to this thinking, “Marcus, you’ve never worked in a big corporate environment, you have no idea what it looks like when there’s 10 team leads around the room, or 10 vice presidents, and you think I’m going to be the one to raise my hand and say, ‘I don’t know what you’re talking about Bob?” I know exactly what that’s like.
Marcus: And I learned from my boss, this beautiful technique. Oh, it was so lovely. My boss was an Indian gentleman, and I’d never worked for anyone from India. I was a young White guy from Oregon, kind of a redneck, not real educated, and he had a master’s degree in mechanical engineering and I remember seeing him sit in meetings with the most important people in the company. And when someone said something that didn’t make any sense, when someone said something that he didn’t understand, he would not just sit there. He would do this, he would cock his head to the side scratches head and say, “Sue maybe I’m just dense here, but I don’t really get what you’re saying. Could you explain that again?” He did this in this beautiful way, this non-threatening way where it was so simple and the power of that was amazing. I actually remember the first time I ever saw him do it I thought, “Whoa, he doesn’t understand something? Well, I don’t understand it either. But I’d never admit that.” What happened was the person who he said that to stopped, looked around the room and explained it more clearly. Shocking.
Marcus: And then guess what? I understood it. Everyone I suspect had that same question, but only he was brave enough to get real, to be realistic. Oftentimes, we pretend that we understand things, we pretend that our budgets will work, that our project schedules will work and we are just gilding the truth. We’re covering it in gold. It’s a lie, but we don’t want anybody to know that. But the point here is we’re putting on a mask, we’re pretending. Okay, I want you to get real about everything at work, and the simplest way to do that is when you hear something you don’t understand for you to say, “I don’t think I get that. Could you explain it again?” When somebody puts a proposal in front of you that looks unrealistic, instead of simply nodding and saying, “Okay, we’ll do that.” I want you to say, “I don’t know if this is going to work. I’m not sure what we would have to do to accomplish this. How many more developers can we add? How can our other projects slip?” That’s realism.
Marcus: Realism is acknowledging the you don’t have all the resources in the world, that you don’t have infinite superpowers, that your team is not perfect. And so truly getting real talks about this idea that we’re not going to pretend at work anymore. There’s an awful lot of pretending. And of course, like I talked about, I also want you to stop pretending that you’re perfect. I want you to stop pretending you have the answers, because let’s be honest, you know you don’t. I want you to stop pretending that you’ve done all the kinds of projects before because there’s new challenges every day. And that’s all I’m asking, is that you get real. Part of this is owning your mistakes, being transparent with your team, I hate to say it but maybe even apologizing to your team if you’ve done something wrong. It’s modeling humility, it’s pushing back on unrealistic ideas from outside the team and inside the team. This is a big problem on your teams. Your developers are optimists. I love optimists, but it does not serve them well.
Marcus: One of the things I noticed that developers smell really quickly is when people are unrealistic. And when they’re unrealistic, whether it’s you, or other Debs, or the boss, and that’s sometimes when it’s worse. They lose respect for you, they do. When you’re not willing to just be honest, and open, and candid, they look at you differently. They look at you as a game player, and I don’t want them to look at you that way. I think that it creates an environment that encourages games. Remember, we go back to our idea that leadership is creating an environment where everyone can contribute, and we find that not everyone can contribute when we’re playing games. It also breaks down the relational leadership aspect because it erodes trust. If you’re not realistic, how can they trust you? You might make promises you never intend to keep, you might commit them to things that are impossible. They have to trust you. Trust is the bedrock of your relationship with them. Unrealistic behavior, thinking everybody’s perfect, only talking about the good stuff and the easy stuff, agreeing to every schedule, pretending you have all the answers, none of this builds trust.
Marcus: Now, this might seem really crazy to you, but I’m going to let you in on a little secret here. Okay, this just between you and me, the thing that builds trust with your team is when you are humble, transparent, wrong, when you screw up, when you make mistakes, when you say, “I don’t know.” And then you deal with those things. That’s what builds trust. I’ve seen this firsthand because I spent so many years trying to be perfect for my team, trying to have all the answers, trying to put on the face of competence. As a leader, I wanted more than anything to look like I knew what I was doing. And all I was, was a nutty tech lead, who’d gotten promoted from being a programmer. I absolutely didn’t know what the heck I was doing, but I wanted people to think that I did. And so therefore, I pretended. Pretending is lying. Being unrealistic is insanity. And if you’re not real, then you are simply covering over the truth. All of that erodes trusts, hurts your relationship with your team, and truthfully, it hurts your relationship with your boss and your customers.
Marcus: They won’t believe you when you say you can deliver, they won’t believe you when you say you need more people, and they won’t believe you when you come to them and say, “This thing you want, it’s a bad idea for these reasons.” They’ll think, “Oh, well, you can just figure it out, right? Because you’ve always figured it out before.” Now I want to end by teaching you a technique, it’s pretty advanced. It is a technique that the best leaders in the world use when they see crazy all around them, and these are leaders that are committed to realism. These are the leaders who get real, and I respect them. These leaders have a very simple, but it’s like a Bruce Lee punch. It looks easy, but it is hard to master. Okay, I’m going to give it to you here. You’re ready? When you hear something that sounds unrealistic, when you hear something that you know won’t work, what you say is, “No, that won’t work.” There you go.
Marcus: A few simple words, and then you know you say next? Nothing. Nothing. I’m not kidding, you shut your mouth. You say, “No, that won’t work.” Okay, we can maybe be a little bit softer here, “I don’t think that’ll work.” Is a good substitute. The simplest thing to say is the beginning of that sentence, “No.” “Oh, golly, no? You’re just going to say no, and leave it right there?” I guarantee that will not be the end of the conversation. But that’s what you want, you want someone who is not used to hearing, “No. No, thank you. No, I don’t think that’s going to work. No, we won’t do that. No, we can’t do that. No, that’s not a good idea.” Whatever variation you want to use, feel free to steal the scripts.
Marcus: You want that person to perk up and ask you the natural next question, and that question is, “Why?” Is, “What do you mean that won’t work? Why?” Now you don’t have to have an absolutely ironclad logic. If you do at the time, great. Launch into it, tell them why it won’t work. It’s far better than pretending it will. What you are allowed to say is, “My gut tells me that won’t work, and I bet you want to know why and I’m going to get you that reason about why I don’t think it’s going to work by tomorrow at noon, and I’ll call you and I’ll explain it to you. But I’ve been in situations like this before, and the last time we tried this, it just didn’t work out like we’d hope. We didn’t get the outcome, we didn’t meet the deadline. The customer wasn’t happy. So I’m not going to commit to it right here. I will tell you that I’ll follow up with you and have another conversation.”
Marcus: It’s amazing how that single change in your stance, again, you can think about it like Bruce Lee the fighter, right he had a great stance, that change in your stance to saying no, to being willing to hold a boundary, to being willing to have an opinion and to saying, “I’ll commit to come back to you, and we will discuss the rationale for that.” That is a game changer, that protects your team. That will win you over actually more trust and respect from the person you’re saying it to, and from other people who’ve heard you said it than almost anything else you can do. Okay, so in this episode, I have encouraged you to get real, be realistic, don’t expect perfection from your team, don’t expect perfection from yourself, and learn to say no. No to your team, no to your client, and especially no to your boss. You see if you can’t say no and mean it, how can you possibly say yes and mean it? I think that’s an important takeaway here. We can’t say yes, unless we can truly say no.
Marcus: This has been The Programming Leadership podcast, I’m Marcus. And we’ve got one question coming in from the audience here, so let’s do this. All right, Sue wrote in and asked me this question about last week’s episode on relational leadership, “Marcus is relational leadership just getting everybody to like you?” That’s a great question Sue, thanks for writing. If you’d like me to answer your question on the air, drop me a line at Marcus @marcusblankenship.com. Sue, the answer to that is no. It’s actually not about getting everybody to like you because if that’s what it was about, we’d really not be in relational leadership, we’d be in manipulation. But I’m really glad you asked this because it’s a common misconception. And even when I heard about relational leadership, I thought, “Oh, what that means is I should try to be like by everybody on my team, and then they’ll do what I want.” It’s not actually very relational. Again, that’s pretty manipulative. So what does relational leadership mean? Relational leadership, again, says that the better honest relationship we have with our team.
Marcus: And these relationships we want with our team are going to be based on trust and bi-directional respect. The better the relationship, the happier our team is. The happier they are, the better they perform. High performing individuals who stay at jobs for a long period of time have good relationships with their boss, and so that’s what we want to build. Now think about maybe a romantic partner or a friend, are your interactions with them always just about getting them to like you? No, of course not, especially if you’re married. I’ve been married 28 and three quarter years, and I can guarantee you that it is not all about getting the other person to like you, it is about creating a place where both people can express themselves, can be respected, can negotiate, can talk about what’s really happening, can problem solve together. That’s what it’s about. You know this, you know these are the kinds of relationships that you have in your personal life, or that you want. And so therefore, they’re also the same kind of relationships you want in your professional life.
Marcus: A wonderful, wonderful book to help you if this sounds challenging, is actually a book that has a religious bend. It is a Christian book, and I’m a Christian so I don’t mind referring you to it. The book is called Boundaries, and it’s by Townsend and Cloud. It is highly recommended for people who want to have relationships where it’s clear who owns what in the relationship, having good boundaries is necessary. Crucial Conversations is also an excellent book. This does not got a religious bend to it. It talks about how to have conversation when the stakes are high. Now, of course, I’m assuming that there are things you might want to talk about that are difficult. But not everything in a relationship is hard. Some parts of a relationship are just about eating together, getting to know each other, asking each other about your family, your hobbies, your vacation. It’s about being transparent, as well as asking the other person to be transparent. I guess it goes back to what the episode was about being real.
Marcus: If you can be real with your team, they’ll trust you, they’ll have a good relationship with you. And guess what? They’ll actually start to give you feedback about how you can improve. We’re going to cover feedback in an upcoming episode. But feedback is critical for you to know how to improve being a manager. Yes, most of the time, we imagine that feedback is for managers to give the programmers, but how do you know what your team wants or needs in a leader unless they’re giving you feedback? And how can they possibly give you feedback unless they trust you, and they know what you’re going to do with it, and why you want it? That’s another episode. But no, the answer is relational leadership is not just about being liked. It’s about creating healthy, strong, bi-directional, trusting professional relationships. All right, this has been Programming Leadership, the podcast that helps you, a great coder, become a great leader and build happy teams. I’m Marcus of marcusblankenship.com. Thanks for your time. We’ll see on the next one.
Announcer: Thank you for listening to programming leadership. You can keep up with the latest on the podcast at www.programmingleadership.com, and on iTunes, Spotify, Google Play, or wherever fine podcasts are distributed. Thanks again for listening, and we’ll see you next time.