WEBVTT

00:00.230 --> 00:03.840
So let's wrap this up with a little role playing exercise as an activity.

00:03.860 --> 00:07.970
So imagine that we're in a situation where we need to crack down on code reviews.

00:07.970 --> 00:10.970
You know, the quality of the code in our team is starting to slip.

00:11.000 --> 00:15.740
Imagine you are the project manager for a new application that's being developed in your organization,

00:15.740 --> 00:20.300
and more than one engineer has come to you and said, Hey, you know, our coding standards aren't really

00:20.300 --> 00:21.530
being enforced consistently.

00:21.530 --> 00:24.590
You know, people aren't really doing code reviews like they're supposed to be doing.

00:24.590 --> 00:26.810
They're not applying consistent criteria to them.

00:26.810 --> 00:29.320
And as a result, we kind of have this mess on our hands.

00:29.330 --> 00:32.030
You got to do something about this, Mr. Project Manager.

00:32.360 --> 00:35.840
So you're going to have to corner the technical lead and get to the bottom of what's going on.

00:35.840 --> 00:38.210
And that's what this next activity is all about.

00:38.210 --> 00:42.290
I'm going to play the role of the technical lead, who you've called into your desk to talk to about

00:42.290 --> 00:43.430
this situation.

00:43.430 --> 00:48.680
And I'm going to pause after each piece that I talk about and give you an opportunity to think about

00:48.680 --> 00:53.390
how you might respond in a way that might be effective in communicating with this engineer who is across

00:53.390 --> 00:54.410
the desk from you.

00:54.410 --> 00:57.020
And then I'll show you how I might have dealt with that situation.

00:57.050 --> 01:01.970
Things to practice As you're going through this activity, risk check the engineer's time and respect

01:01.970 --> 01:02.660
their focus.

01:02.660 --> 01:04.130
You know, make sure you're acknowledging that.

01:04.130 --> 01:05.290
Yes, I understand.

01:05.300 --> 01:07.670
I dragged you away from your desk or you're being productive.

01:07.700 --> 01:09.350
But this is important.

01:09.710 --> 01:11.240
Practice, reflective listening.

01:11.240 --> 01:15.710
You know, make sure you're confirming with the engineer across the desk that they understand what they're

01:15.710 --> 01:18.170
being told and you understand what they're telling you.

01:18.200 --> 01:19.130
Be direct.

01:19.130 --> 01:20.900
You know, don't waste don't mince words.

01:20.900 --> 01:23.200
You know, get right to the point of what you want to talk about.

01:23.210 --> 01:24.620
Don't waste their time.

01:24.630 --> 01:29.690
Identify any communication barriers you may have with this person up front and address them directly

01:29.690 --> 01:33.710
and work together to find a solution and make that solution happen.

01:33.720 --> 01:35.000
So let's dive in.

01:35.000 --> 01:38.360
I'm going to play the role of the engineer here sitting across the desk from you.

01:38.360 --> 01:42.920
And after each thing I say, I'll give you an opportunity to pause and think about how you might respond

01:42.920 --> 01:46.640
before hearing how an actual manager might respond in that situation.

01:49.920 --> 01:51.120
Hey, you wanted to talk?

02:00.160 --> 02:00.730
Yeah.

02:00.820 --> 02:02.170
Promise to keep this short.

02:02.170 --> 02:06.040
I tried to catch her right after lunch to avoid distracting you.

02:06.430 --> 02:07.000
Thanks.

02:07.000 --> 02:07.240
Yeah.

02:07.240 --> 02:09.220
I'm neck deep in coding up that new app.

02:09.220 --> 02:10.000
What's up?

02:10.810 --> 02:16.150
I've been hearing from others on the team that they're worried about inconsistent coding standards.

02:16.180 --> 02:21.490
Our app has a lot of different styles and designs within it, and it's making it hard to maintain.

02:21.490 --> 02:26.890
I just want to understand what our code review and design review policies are right now and if you think

02:26.890 --> 02:28.030
changes are needed.

02:28.880 --> 02:29.120
Yeah.

02:29.120 --> 02:32.560
Honestly, it's just been too crazy to have time for reviews lately.

02:32.570 --> 02:34.610
A lot of them have fallen by the wayside.

02:42.840 --> 02:46.440
I understand there just isn't enough time in the day to build things.

02:46.440 --> 02:50.640
So schedule pressure is what's causing some reviews to get skipped.

02:50.670 --> 02:52.260
Well, that's a big part of it anyhow.

02:52.290 --> 02:55.330
Technically, I guess we are actually ahead of schedule right now.

02:55.350 --> 02:57.540
So you're saying schedule is just a part of it?

02:57.570 --> 02:58.820
Is anything else going on?

02:58.830 --> 03:02.390
Well, to be blunt, some folks on the team don't take kindly to feedback.

03:02.400 --> 03:05.160
It's easier to just let them do their own thing sometimes.

03:05.580 --> 03:06.960
Why do you think that is?

03:06.990 --> 03:08.970
I'm an engineer, not a psychotherapist.

03:09.000 --> 03:10.080
You tell me.

03:18.240 --> 03:20.760
I mean, it could be a number of things.

03:20.790 --> 03:27.180
Some people just take their work very personal and interpret any criticism as a criticism of themselves.

03:27.210 --> 03:32.120
Sometimes there are weird social hierarchies at play we might not even know about.

03:32.130 --> 03:37.020
Or maybe people just want to get stuff done and see code and design reviews as a waste of time.

03:37.050 --> 03:39.090
Could it be anything along those lines?

03:39.270 --> 03:42.030
I guess I could think of cases where all of those might apply.

03:42.060 --> 03:43.920
For myself, I just want to get things done.

03:43.920 --> 03:47.100
Really triggering personal drama just gets in the way.

03:55.370 --> 04:01.190
I understand nobody likes dealing with interpersonal issues when they're stuff to build, but nobody

04:01.190 --> 04:06.160
likes maintaining systems that have inconsistent coding and design practices either.

04:06.170 --> 04:08.420
You have to think about the long term to.

04:09.330 --> 04:10.400
Yeah, you're right.

04:10.410 --> 04:12.780
I guess we have to put the hammer down on code reviews.

04:19.060 --> 04:23.600
Well, maybe we can do it in such a way that diffuses some of the drama.

04:23.620 --> 04:26.170
How are code reviews supposed to work right now?

04:26.200 --> 04:27.490
Who reviews who?

04:27.610 --> 04:32.740
Well, you're supposed to publish a request for a review, and whoever grabs the request first does

04:32.740 --> 04:33.250
it.

04:33.280 --> 04:35.470
Usually that's Denise for some reason.

04:35.500 --> 04:41.810
Sounds like we might need to change that system and make code reviews more than just Denise's opinion.

04:41.830 --> 04:46.990
I can see how people might just start to feel like it's personal criticism if it's always from the same

04:46.990 --> 04:47.720
person.

04:47.740 --> 04:51.610
How could we improve the code review system to spread the load more?

04:51.850 --> 04:56.650
Well, what I've seen in other places is a system where others in the team are just randomly assigned

04:56.650 --> 05:00.670
to a code review request and at least two different people review the same code.

05:00.700 --> 05:03.580
That way you can see if they picked up on the same issues or not.

05:03.580 --> 05:09.100
And that helps you understand where the real problems are as opposed to just individual stylistic preferences.

05:09.220 --> 05:11.140
That sounds like a good practice.

05:11.170 --> 05:15.520
Do we have solid guidelines for what the right coding styles are and everything?

05:15.640 --> 05:17.950
Well, we do, but they're not really enforced.

05:25.960 --> 05:32.080
It might also remove some of the personal nature of the feedback if it adhered to well understood standards.

05:32.110 --> 05:38.090
Saying this code doesn't fit this standard is a lot less likely to be taken personally.

05:38.110 --> 05:39.610
It's just stating a fact.

05:39.640 --> 05:41.080
Right, right.

05:41.080 --> 05:41.470
Right.

05:41.470 --> 05:42.580
Yeah, I agree.

05:42.610 --> 05:44.170
So let's make that happen.

05:44.170 --> 05:49.000
As you said, we're ahead of schedule, so let me carve out some time to shore up on our code review

05:49.000 --> 05:52.530
system and make sure our coding standards are properly distributed.

05:52.570 --> 05:56.350
Looks like we could pull Tim and put him on this for a couple of weeks.
