Feedback is Deeper Than You Think – Dev Leader Weekly 45

TL; DR:


What’s In This Issue


Exclusive Article: Feedback is Deeper Than You Think

Feedback Isn’t Just…

I know when we think about feedback as software engineers, one of the first things that comes to mind is having conversations with our manager about our performance. We can think about these meetings, whether they’re in person or on Teams/Slack/Zoom/Whatever, and bracing to hear either how awesome we’re doing or getting grilled about the stuff we have to work on.

But how often do you just hear “Yeah, so you’re doing good. Just keep doing the good stuff and you’ll be good”.

It sounds like bullsh*t though, right? What the heck are you supposed to do with that?

In this article, I’m going to go through different levels of software engineering (and even end up at a manager level) and explain to you actionable things you can consider for improving feedback. And if you read nothing else, think about this:

ACTION: If you want constructive feedback so you can improve, why aren’t you doing the same for others?

Junior Software Engineers and Feedback

As a junior software engineer, you’re probably thinking that you’re in the spot to get feedback dumped on you and that’s where it stops. While it’s true that you may be in a position that is most likely to have the most obvious feedback, it’s important we go a bit deeper.

I strongly suggest you get in the habit of soliciting feedback from your peers and your manager early in your career. Ask for direct actionable feedback on ways that you can improve, or areas that seem like the best opportunities for growth. Like with other advice I have on software engineering careers, don’t just sit back and wait for it.

ACTION: Be proactive. Ask for feedback.

ACTION: Be clear about your feedback requests. Ask for areas you can improve on AND best opportunities for growth.

In the introduction, I left you with a thought about feedback going both ways… So the hard part isn’t asking for feedback: It’s finding ways to give it. You know how I talk about soft skills all the time? Here’s a great opportunity to start building those up.

Find ways that you can give your peers feedback. Let them know when they’re doing awesome things that help you do your work more effectively — but better yet, find ways that you can communicate to them when they can do a better job. This is NOT an easy thing to do — even as a manager of 12 years it can be hard for me to give feedback. This is exactly why I am suggesting you practice it early.

ACTION: Practice giving positive and constructive feedback to your teammates.

If it feels awkward — try using some reframing. Selfishly, if you can help others coach you better, you’ll do even better, right? Help others help you. Build on these work relationships with your peers and you’ll see the level of trust within your team improve too.

Feedback Considerations for Mid and Senior Software Engineers

Mid and senior-level engineers have it pretty tough. You sometimes feel like you’re stuck helping the juniors out and other times you feel like you might be doing the bidding of the even more senior/principal engineers. It also means you’re potentially getting feedback from multiple different directions — so it can be a challenging time.

But this is going to be one of your absolute best periods for growth because there’s so much opportunity for feedback.

Like at junior levels, you want to solicit feedback. Ask for constructive criticism from the junior people you help coach and mentor. Ask for it from the principal engineers you’re working with on the big important projects. You probably start to even get opportunities to have engineers on OTHER teams give you feedback, so solicit it from them too!

ACTION: You’re positioned to get feedback from SO many directions, so ASK FOR IT! USE IT!

But like my guidance for junior engineers, it’s also on you to provide constructive feedback to your peers. If you find it challenging to do, you can try framing it in different ways including:

  1. Selifshly: If you help make this other person better, you might need to spend less time coaching them on some things
  2. Being Helpful: You want your whole team to win together and build awesome stuff, so if you can give advice to someone that you think will help level them up, why wouldn’t you want to share that with them?

ACTION: Help your peers by giving them feedback and advice that you feel will make them more effective.

Remember, these types of interactions require focus on your soft skills. It can feel like a chicken and egg problem because if you haven’t been developing your soft skills this will feel HARD. But if you’re not doing this kind of thing, you’ll find that it’s very difficult to get better without practicing it.

Feedback at the Principal/Staff/Knighted Level

Okay, so you’ve achieved top-dog status in the engineering IC universe. First of all, congrats. Second of all, when was the last time you gave someone on your team constructive feedback?

I hope it’s not that long ago — because as one of the highest-level engineers on the team, you are in one of the absolute best positions to help others grow. You have an entire team of engineers that is going to try and emulate your behavior. They look up to you, whether you consciously recognize it or not. There’s an implicit level of respect that generally comes with this — and hopefully, you’re building trust and respect with your teammates additionally.

Your situation is unique because the feedback you give to your teammates will likely be taken to heart. You’re relatable to them because you’re either at their level doing similar work, or you’re senior to them and they aspire to be where you’re at. You can deliver some very valuable guidance as a result:

ACTION: Leverage your position of experience to help level up the ENTIRE team

Remember, your influence has grown over time and you can truly help shape the overall culture of the team by focusing on this.

But what about the other way? You should be soliciting feedback as well, just like I mentioned for the other levels. But you know what’s super valuable for you? Getting additional feedback from other teams, organizations, roles/stakeholders, managers and leadership… Get it from everywhere you can because you’re likely doing much more interfacing outside of just your immediate team. And the feedback and perspective opportunities are MASSIVE at this point.

ACTION: Think about your network and try to get a diverse set of perspectives from across the org you’re working with

Remember, hearing “So and so is great to work with” is nice, but it’s the least actionable thing you could hear. So ask for direct feedback, and consider giving direct feedback when you can so that you can help others.

How Managers Can Improve Their Focus on Feedback

And now for the managers… You know who you are when I ask this:

Were your last career conversations mostly “You’re doing a good job, keep it up”

Don’t fall into this trap. Being a manager is freakin’ HARD. It’s hard because you NEED to be having what can be hard conversations and if you shy away from them you’re not helping anyone. This can become what’s called ruinous empathy — and you’re leaving your team to stagnate.

So this is me giving you some direct feedback, because I want YOU to succeed in your role:

ACTION: Suck it up. Have the hard conversations with your directs about where they need to improve.

ACTION: Be honest. Be transparent. Don’t beat around the bush.

One of your primary responsibilities as an engineering manager is to help your team level up and grow in their careers. If you’re not giving them direct feedback that can help them grow, don’t be surprised if the majority of them are:

  • Confused about their growth
  • Disappointed every rewards/promotion period
  • Not improving how you’d expect them to

But maybe you know this already — and that’s good. Maybe you just needed a little kick in the butt to say “Ok, Nick. You’re right… I’ll do it”. And that’s great 🙂 See what a little direct feedback can do?

But guess what? You’re not special in that you don’t get to ask for feedback. Consider what was mentioned for every other level — probably principal-level actions make sense for you too. But there’s one more thing you can REALLY lean into here:

ACTION: Get feedback from your reports about how you can be more clear with your expectations and feedback for them

It seems meta to get feedback about feedback… But if you’ve never asked your direct reports about how you can improve your communication and alignment with them, don’t you think that’s an easy win?

Try it out, thank me later.

Wrapping Up Direct Feedback

To summarize:

  • You aren’t going to grow effectively if you’re not giving feedback
  • Giving feedback can be hard, but you’re not helping anyone grow by not giving them feedback
  • … If you want direct feedback, why the heck won’t you deliver it to others?

Look — I know it’s easier said than done. Giving direct feedback can make us uncomfortable. But if you don’t practice this, you’ll continue to avoid it, and you’ll always think that it’s challenging to do. To this day, it makes me uncomfortable. However, I know it needs to happen because ultimately we all get better together when we help each other grow.


C# From Zero to Hero - Dometrain Course
Get this DISCOUNTED course bundle NOW!

Should You Join A Coding Bootcamp? – Interview With Brooke Sweedar

YouTube player

My journey through software engineering was pretty traditional: go to college/university directly after high school to study… then go into the workforce. But it’s important that we keep an open mind about the different paths that aspiring software engineers can take to get into the industry.

In this video, I was joined by Brooke Sweedar who shared with me her journey through coding Bootcamp. It’s great to hear about her successes going through such a program and understand what made this such a valuable experience for her.

Thanks for the awesome chat, Brooke!

Developer Burnout – Principal Software Engineering Manager AMA

YouTube player

This was an AMA live stream where the focus was on burn out! The discussion was focused on last week’s newsletter issue.

Forget Entity Framework Core! – How to Use Dapper and Strongly Typed IDs

YouTube player

To be clear, there’s nothing wrong with using Entity Framework Core. In fact, it’s the popular choice for CSharp developers! However, EF Core is now how I like to write my own code. It’s just personal preference since I like having the SQL queries in front of me when I’m developing my data access patterns.

Dapper, on the other hand, has been great to use! It perfectly fits my needs. When we combine this with Andrew Lock’s StronglyTypedId Nuget package, we can get some great repository APIs to work with. But how can we expand upon the suggested way to integrate Strongly Typed IDs from this package with Dapper?

Let’s find out!

Data-Driven Approach to Software Engineering – Interview With John Vandivier

YouTube player

Yeah, you read it right on the thumbnail. A freakin’ PhD! I was fortunate to sit down with John Vandivier of Ladderly.io to talk about his approach to helping guide software engineers to employment.

This conversation was awesome because you’re going to hear some cool perspectives from John (many of which I strongly align with) but… He can back them up with data. That’s what makes this so awesome — it’s not just a “Source – Trust me, bro”.

Thanks for the awesome chat, John!

How To Build Modular ASP NET Core Applications With Plugins

YouTube player

Want to build flexible and extensible ASP NET Core applications? Look no further than building with a plugin architecture!

Plugin-based systems allow us to develop software in very dedicated modules — even supporting the notion of vertical slices if you like the idea of vertical slice architecture. In this video, I’ll walk you through how I setup ASP NET Core applications to be extended via plugins.

Of course, there are pros and cons to everything… and we’ll go over some of the complexity challenges of plugin systems in this video as well.

Dapper And Strongly Typed IDs – How To Dynamically Register Mappings

Dapper And Strongly Typed IDs – How To Dynamically Register Mappings

How can we use Dapper and strongly typed IDs from the StronglyTypedId package? Let’s see if we can generalize the guidance from the original author!


As always, thanks so much for your support! I hope you enjoyed this issue, and I’ll see you next week.

​Nick “Dev Leader” Cosentino
[email protected]

Socials:
Blog
Dev Leader YouTube
Follow on LinkedIn
Dev Leader Instagram

P.S. If you enjoyed this newsletter, consider sharing it with your fellow developers!

author avatar
Nick Cosentino Principal Software Engineering Manager
Principal Software Engineering Manager at Microsoft. Views are my own.