📺 Develpreneur YouTube Episode

Video + transcript

Code Reviews - Part1

2021-12-28 •Youtube

Detailed Notes

Code reviews are starting to become more common in enterprise development.  Dev Ops and related automation have helped shine the light on improving quality and reliability in our processes.  This presentation looks at how we can set our teams up for success in code reviews through better and consistent processes.

Code Reviews In Detail There is a time and place for code reviews.  Likewise, there are ways to approach these complex tasks that can make the most of both our time and resources.  Nevertheless, this process does not come without cost. Therefore, we need to be intentional in our approach and requirements to craft better code and provide a path for building better developers.

The Mentor-Mastermind Group This series comes from our mentoring/mastermind classes.  These classes are virtual meetings that focus on how to improve our technical skills and build our businesses.  The goals of each member vary.  However, this diversity makes for great discussions and a ton of educational value every time we meet.  We hope you enjoy viewing this series as much as we enjoy creating it.  As always, this may not be all new to you, but we hope it helps you be a better developer.  Drop us a line to find out when the next one is so you can join our group.

Transcript Text
[Music]
we will get started here and this time
we're going to go we're going to talk
about code reviews we have
mentioned code reviews
a couple of times and
also static analysis tools and
so those are going to come into play as
part of this presentation
but it's
we've talked about code reviews as and
you know hey they're good things they're
nice to have
this is a little bit more about
how to do them and thinking about making
them a part of your life basically a
part of your processes because there
definitely is a value to it
and so we're going to talk we'll start
with just sort of what is a code review
what
what entails
actual code reviews where you think
about them put a little bit of a
definition around it
we're going to talk about the benefits
of code reviews there's also costs you
know you can think pros and cons but
there's definitely
an investment essentially that you're
making into your
your code your organization
when you're do and it's really is it's
your organization more than even your
code when you do code reviews
we're going to talk about some
some points you know some places where
it makes sense to do a code review
and sort of how to
factor that into your processes
particularly if you have uh very well
defined you know like ci cd things like
that
that have sometimes even automated
process is built into your whole
flow from writing code to deploying out
to production
and then we're going to talk a little
bit
about building habits
making it something that
um
it's something that you're you're
not only comfortable with but it just
becomes
you're it's very natural to your your
process whether it is an organization or
it is um a personal
kind of code review
whatever that would be it's not so much
a culture there but a code review
attitude we'll say
so first
what's a code review
i mean go with the definition i started
you know checking out a little bit on
this one so from d-zone developer zone
uh
quick shameless plug for them uh if if
you want to learn
stuff about anything technical basically
check out d-zone they've got all kinds
of downloadable little flyers and
e-books they have all kinds of articles
they cover lots of technology stuff
it's a great source for just keeping up
with what's going on
so for them definition code review is a
systematic examination of software
source code intended to find bugs and
estimate the code quality
um slightly reworded it's a process
where source code's peer-reviewed
your
goal really is to address bugs
standards really maintain standards and
overall quality
now this
also as i'll bring up a little bit
through this presentation is
a short-sighted uh i see this is a
little bit short-sighted as a view of
what a code review is
because while code reviews are
by the
name itself focused on code
i think that there is a lot that comes
out of code reviews it actually has to
do with the developers and your
development shop your software
development processes
that is
probably even more valuable than the
code review process itself
so code review points
where which is basically okay if i want
to do a code review and go back here
just looking at the most basic you know
we're
we're going to do a systematic
examination of software source code
basically we're looking for bugs trying
to make sure that we're following
standards and making sure that we're
matching a certain
quality
so there's different places that make
sense or that
i guess it's an option to do a code
review you can do it on a commit so
as soon as somebody commits code you can
have something that says hey it needs to
be reviewed we need to go through a
code review process
you can do it before deployment so you
can say before we deploy to
and deployment may not be we're not
talking necessarily production
deployment so this could be
for example we do let's say we do weekly
deploys to a
qa
staging server you know something along
those lines then maybe that's part of it
is it your before you do that deployment
part of the process is we're going to do
a code review
and this may either you know stop the
deployment or
maybe something that we put on our
backlog for uh to address before the
next deployment
it may be part of a release so your
release process particularly if you're
thinking of sprints
um
that can be a really good way to do it
is that as you get towards the end of
the sprint where you're you're into that
this is what we're going to put in this
sprint this is going to be released
you're doing your sprint review maybe
that part of that is you have a code
review as well that you go through it
say hey we're going to look at
everything that we've done
for this release
it's slightly
same but slightly different in
um
its placing as you can do it as part of
a retrospective so it could be something
that you've you've already deployed
you've released it to some extent but
now you're going back and looking at
what you did and you're actually taking
a closer look at the code itself
and then you may do it um
with all of these regardless of the the
time points
it can be done
individual individually you may have
certain individuals do a code review you
may have a team that gathers and has
some sort of a team meeting or something
along those lines whether it's virtual
or
in person
um
these
there are plenty of ways that you can
look at it and you do get slightly
different um costs and benefits
on whether you you have in like
individuals just sort of check code and
they
just by themselves
do a code review versus having that
that communication that meeting
kinds of an approach where you have
multiples and multiple people involved
and they're together doing the code
review and you can do it
much like any other meeting where there
may be
like a pre-meeting kind of thing or
essentially you can send out the code
you know effectively setting an agenda
you can send the code out let everybody
review it beforehand and maybe even send
some comments in so that your meeting is
focused on the feedback and you're not
not necessarily going through the work
of a code review during that meeting but
instead you're going through the
uh the communication of
in the discussion of that code because
code reviews are not always going to be
black and white there are
it's like a lot of things where there
are some gray areas in there where you
may say uh it may even be open-ended
questions is this the best way to do
this does this
follow our standards the way we want it
to
so timing and
your approach
can be of a big factor in whether a code
review
how useful it is um and whether it's
even going to be something that you can
maintain and turn into a habit as
an organization or even as an individual
developer
so sort of laid the groundwork that
there's this thing out there
and i really want to talk you know get a
little bit more now into the benefits of
why would you do this because even
thinking about it already you know that
all right we're spending some time we're
looking at code it's all been written
maybe it's already been deployed
and we've got
resources that we're now spending their
time over here over here on this code
review thing when they could be on this
new development thing or fixing bugs
so why would you even care to do a code
review particularly if you think it's
like hey
that source has been released so
there may not be any use in us doing
that well
there are some benefits
one uh and i'll start sort of in the the
middle on this one actually reducing
bugs is sort of the obvious one
there are
bugs that and i think we all know there
are bugs that you can release
that may not be
it may not appear
except in certain cases they could be
like outlier bugs and things like that
they may also be things that only
trigger at certain times like there's
race conditions that you'll run into
where
everything runs fine until you happen to
have task a and task b
run at close enough the same time window
that they lock each other or
block each other or cause each other to
break
and there's also some state kinds of
things that we can run into where
you're the only way you're going to see
that bug is if you're in a certain state
and sometimes
if you haven't run into this you'll
realize that if you look at the code
that thing will jump out at you as you
look at the code you'll say hey
there's a gap here or here's a here's a
check that we're not making
uh particularly i can code it may be
something where like for example you
have a try catch
and
the catch part of it when you catch the
exception it's not doing anything so all
it's doing effectively is just
hiding the exception you just say oh i'm
going to try this and if you don't have
it do anything when it catches an
exception then you can essentially
swallow the exception
sometimes that's
that's needed or that's part of your
design
but a lot of times that's not and
technically probably should not be as if
there's an exception something somewhere
should be noted so that you can
handle that exception properly there
should be some sort of handling and some
sort of clean
addressing of that situation
so reducing bugs even if the code's
already gone out it could go through qa
but you will still have
could there'll be cases and instances
where
a code review will actually surface bugs
that were not found otherwise
along with that that becomes
and this is a it's a bigger picture than
just bugs but improving code quality
because now because
there are things that you can do you can
code stuff that is not going to generate
a bug but is going to be
potentially not scalable
easily we all know you know really nasty
spaghetti code or stuff that's not
documented or the the naming standards
are ridiculously bad
where the maintenance is a nightmare
um you can have stuff where
the the logic flow
is so convoluted that not only is it
hard to maintain but it also ends up
being not scalable there's a certain
point where you realize that if you call
that enough times or if you try to push
enough data through it it breaks it just
it chokes it brings the system to its
knees
so it's improving code quality and not
just
through bugs but all of the other things
that we want good code to do which makes
it you know it's readable it's
maintainable it's scalable it's stable
those are things that you're going to
find you can get those things out of a
code review those kinds of things can be
surfaced and then addressed
i talked about
there being more to a code review than
the code itself
and so one of those is cross-training of
the team
when you have
other developers looking at your code
regardless of how the team is organized
that means that those other developers
get an insight into your code into what
you were working on
and you might be working side by side by
with somebody and working on roughly the
same
uh functions or methods or pieces of
code
but if you don't do it then
it's something that could be a blind
spot to you and when you see when you're
doing code reviews you're bringing the
team together to say all right let's all
take a look at this and see
what we're doing so you get a you can
see not only what they're doing also but
actually sort of how they think
and while yes some people can be
personally attached to their code and
feel
uh we'll say slighted if somebody points
out a you know a bug or an improvement
or something like that
i think
well i'm not
if you do it right
then you're gonna
you're gonna pull the team together
instead of break them apart and if
somebody wants to be you know point at
them like hey you had six bugs i only
had three or something like that
then you know
to be flippant you smack them upside the
head and say no that's not how this
works it's not what this is that's not
what we're trying to do
um
but know to be more but more seriously
about it
is you can build a team culture because
then you get
done right is it's hey we're all working
together
so it's not that
you wrote code that had a bug in it or
something like that it said hey here's
the direction we want to go
and here's another set of eyes to help
you you know remind you that hey here's
something that we do
or
as a team to discuss code quality to a
level of hey
you've got a solution
and we're looking at that as a team and
maybe it's maybe we can as a team come
up with a better solution
or we can review some of the other
options that are out there
and it educates all of us on that
process on that problem-solving process
and how we got to that solution
because code review sometimes is not
just pointing out hey this needs to
change
sometimes it's a conversation that hey
you did this
i want to understand your thought
process or
why did you need to do it that way i
don't i thought it would be simpler and
you have this more complicated thing and
this sort of goes also back to the cross
training where you may say
yeah i did it this way and it may seem
sort of odd but it's because i found
that we have a b and c requirements that
require us essentially to do the code
this way
and it may even go to the the most
famous and nasty of things that you'll
find occasionally where you'll have a
comment even in a code that says
this line doesn't really do anything but
i have to have it or else the code
breaks and i can't figure out why and i
think we've all run up against those at
some point
and code reviews can can surface those
sayings sometimes it'll be somebody else
can actually say oh this is why you have
to do that
or it at least notifies everybody that
oh yeah this is yeah it's like this is a
critical piece of code even though it
doesn't look like it so please don't
touch it
you know it's
it goes back to a
old simpsons episode
where the neighborhood gets together to
build a house
and
there's a poster on one of the
children's room bedrooms and kid doesn't
like it is about to take it down i'm
like oh no no don't take that poster
down it's a load-bearing poster
which
you know an architectural joke would be
is pretty amusing in itself
but we have that in code i think we've
all had those moments where we realized
that this doesn't make sense that i need
to do this
but i need to because if i take this out
everything breaks but if i leave it in
it works
now
probably there is something that you
know there's probably something more to
it but sometimes that's all we can find
at the point and we get to move on
and so the last point too is that
i think the more you
discuss your code
in a team environment where everybody's
pulling towards let's be better as a
team
and we talk about building better
developers this is building a better
development team a better development
environment a better development culture
that
building that up spending that time
helps you
remove your personal attachment to your
code
there's still that pride and work ethic
i think that goes into it where you say
hey i want to
i'm going to strive to go into a code
review and do things in a way
that
checks all the boxes off and
is something that people say hey this is
you know this this follows our standards
but
in doing so i think if you do in the
right environment it pushes you to do
that without you feeling like it's a
personal attack if you didn't
and it makes it that much easier for you
to throw your code out there and say hey
take a look at this
you know do you have
i think this works do you have some
suggestions on how it can be better
because that's going to be key to
getting better is not doing the same
thing that you want to do but getting
other people to take a look at it and
point out where you can make
improvements you know if you if you
write code perfect the first time you
will never get better either technically
there'd be no need if you write 100
perfect code there is no better
but nobody does that
so there's always going to be a better
and the the sooner that we remove
we'll say almost the stigma in our own
mind of us not
being at a hundred percent
the sooner we're going to be able to
improve
you
Transcript Segments
0.44

[Music]

26.72

we will get started here and this time

29.199

we're going to go we're going to talk

30.64

about code reviews we have

33.04

mentioned code reviews

35.2

a couple of times and

37.44

also static analysis tools and

40.16

so those are going to come into play as

41.76

part of this presentation

43.6

but it's

45.039

we've talked about code reviews as and

46.719

you know hey they're good things they're

48.079

nice to have

49.44

this is a little bit more about

51.76

how to do them and thinking about making

54.399

them a part of your life basically a

57.68

part of your processes because there

60.8

definitely is a value to it

65.28

and so we're going to talk we'll start

66.64

with just sort of what is a code review

68.159

what

69.28

what entails

70.799

actual code reviews where you think

72.479

about them put a little bit of a

74.08

definition around it

76.159

we're going to talk about the benefits

77.439

of code reviews there's also costs you

79.92

know you can think pros and cons but

81.439

there's definitely

83.759

an investment essentially that you're

85.28

making into your

87.2

your code your organization

89.36

when you're do and it's really is it's

90.96

your organization more than even your

92.32

code when you do code reviews

95.439

we're going to talk about some

97.28

some points you know some places where

99.119

it makes sense to do a code review

101.52

and sort of how to

103.28

factor that into your processes

105.119

particularly if you have uh very well

107.52

defined you know like ci cd things like

109.6

that

110.479

that have sometimes even automated

113.04

process is built into your whole

115.52

flow from writing code to deploying out

117.6

to production

119.28

and then we're going to talk a little

120.24

bit

121.04

about building habits

123.92

making it something that

126.56

um

129.2

it's something that you're you're

130.959

not only comfortable with but it just

132.56

becomes

134.239

you're it's very natural to your your

136.08

process whether it is an organization or

139.92

it is um a personal

142.72

kind of code review

144.48

whatever that would be it's not so much

145.68

a culture there but a code review

147.52

attitude we'll say

151.12

so first

152.16

what's a code review

154.72

i mean go with the definition i started

157.04

you know checking out a little bit on

158.239

this one so from d-zone developer zone

160.4

uh

161.2

quick shameless plug for them uh if if

163.599

you want to learn

166.16

stuff about anything technical basically

169.2

check out d-zone they've got all kinds

170.72

of downloadable little flyers and

173.28

e-books they have all kinds of articles

175.519

they cover lots of technology stuff

178.159

it's a great source for just keeping up

180.879

with what's going on

182.48

so for them definition code review is a

184.879

systematic examination of software

187.28

source code intended to find bugs and

189.2

estimate the code quality

191.28

um slightly reworded it's a process

193.44

where source code's peer-reviewed

195.68

your

196.56

goal really is to address bugs

198.8

standards really maintain standards and

201.599

overall quality

203.84

now this

205.28

also as i'll bring up a little bit

207.12

through this presentation is

210

a short-sighted uh i see this is a

212.799

little bit short-sighted as a view of

214.64

what a code review is

216.239

because while code reviews are

218.48

by the

219.68

name itself focused on code

222.72

i think that there is a lot that comes

224.319

out of code reviews it actually has to

225.76

do with the developers and your

228.159

development shop your software

229.519

development processes

231.28

that is

232.319

probably even more valuable than the

233.76

code review process itself

238.64

so code review points

241.68

where which is basically okay if i want

243.439

to do a code review and go back here

245.12

just looking at the most basic you know

246.72

we're

247.519

we're going to do a systematic

248.72

examination of software source code

250.879

basically we're looking for bugs trying

252.64

to make sure that we're following

253.599

standards and making sure that we're

254.879

matching a certain

256.32

quality

258.079

so there's different places that make

259.68

sense or that

260.959

i guess it's an option to do a code

262.639

review you can do it on a commit so

265.6

as soon as somebody commits code you can

267.68

have something that says hey it needs to

269.36

be reviewed we need to go through a

271.28

code review process

273.199

you can do it before deployment so you

275.68

can say before we deploy to

278.32

and deployment may not be we're not

280.16

talking necessarily production

281.28

deployment so this could be

283.84

for example we do let's say we do weekly

286.24

deploys to a

287.919

qa

289.6

staging server you know something along

291.28

those lines then maybe that's part of it

293.6

is it your before you do that deployment

296.479

part of the process is we're going to do

297.919

a code review

300

and this may either you know stop the

302

deployment or

303.36

maybe something that we put on our

304.639

backlog for uh to address before the

306.88

next deployment

308.479

it may be part of a release so your

310.24

release process particularly if you're

312.56

thinking of sprints

314.88

um

316.24

that can be a really good way to do it

317.68

is that as you get towards the end of

318.88

the sprint where you're you're into that

321.6

this is what we're going to put in this

322.8

sprint this is going to be released

324.32

you're doing your sprint review maybe

326.4

that part of that is you have a code

328.16

review as well that you go through it

330.16

say hey we're going to look at

331.199

everything that we've done

332.72

for this release

334.72

it's slightly

336.16

same but slightly different in

338.479

um

339.6

its placing as you can do it as part of

341.12

a retrospective so it could be something

343.44

that you've you've already deployed

345.52

you've released it to some extent but

348.4

now you're going back and looking at

350

what you did and you're actually taking

352.16

a closer look at the code itself

355.759

and then you may do it um

358.56

with all of these regardless of the the

360.479

time points

362.56

it can be done

364.479

individual individually you may have

366.16

certain individuals do a code review you

368.16

may have a team that gathers and has

371.36

some sort of a team meeting or something

373.12

along those lines whether it's virtual

374.88

or

375.919

in person

377.6

um

379.6

these

381.44

there are plenty of ways that you can

383.28

look at it and you do get slightly

385.28

different um costs and benefits

388.4

on whether you you have in like

390.319

individuals just sort of check code and

392.08

they

393.039

just by themselves

394.4

do a code review versus having that

398.24

that communication that meeting

400.479

kinds of an approach where you have

402.4

multiples and multiple people involved

404.88

and they're together doing the code

406.88

review and you can do it

409.36

much like any other meeting where there

411.68

may be

412.56

like a pre-meeting kind of thing or

413.759

essentially you can send out the code

417.28

you know effectively setting an agenda

419.199

you can send the code out let everybody

420.96

review it beforehand and maybe even send

423.599

some comments in so that your meeting is

426

focused on the feedback and you're not

429.12

not necessarily going through the work

430.96

of a code review during that meeting but

432.8

instead you're going through the

435.36

uh the communication of

437.84

in the discussion of that code because

440.88

code reviews are not always going to be

442.479

black and white there are

445.199

it's like a lot of things where there

447.039

are some gray areas in there where you

448.479

may say uh it may even be open-ended

451.52

questions is this the best way to do

453.12

this does this

455.68

follow our standards the way we want it

457.36

to

458.8

so timing and

460.8

your approach

462.479

can be of a big factor in whether a code

465.039

review

466.08

how useful it is um and whether it's

468.96

even going to be something that you can

470.879

maintain and turn into a habit as

473.28

an organization or even as an individual

475.44

developer

479.12

so sort of laid the groundwork that

481.44

there's this thing out there

483.919

and i really want to talk you know get a

485.44

little bit more now into the benefits of

487.84

why would you do this because even

489.759

thinking about it already you know that

491.28

all right we're spending some time we're

492.479

looking at code it's all been written

494

maybe it's already been deployed

496.56

and we've got

498.4

resources that we're now spending their

500.16

time over here over here on this code

502.16

review thing when they could be on this

504.479

new development thing or fixing bugs

507.44

so why would you even care to do a code

509.44

review particularly if you think it's

510.96

like hey

512

that source has been released so

514.56

there may not be any use in us doing

516.159

that well

517.12

there are some benefits

519.36

one uh and i'll start sort of in the the

522.08

middle on this one actually reducing

523.76

bugs is sort of the obvious one

526.16

there are

527.6

bugs that and i think we all know there

529.839

are bugs that you can release

531.839

that may not be

534.56

it may not appear

536.08

except in certain cases they could be

537.839

like outlier bugs and things like that

540.16

they may also be things that only

542.959

trigger at certain times like there's

544.56

race conditions that you'll run into

546.24

where

547.2

everything runs fine until you happen to

549.36

have task a and task b

551.6

run at close enough the same time window

554.16

that they lock each other or

556.56

block each other or cause each other to

558.56

break

559.92

and there's also some state kinds of

561.6

things that we can run into where

563.76

you're the only way you're going to see

565.2

that bug is if you're in a certain state

567.68

and sometimes

569.12

if you haven't run into this you'll

570.8

realize that if you look at the code

573.92

that thing will jump out at you as you

576.56

look at the code you'll say hey

578.32

there's a gap here or here's a here's a

580.88

check that we're not making

582.56

uh particularly i can code it may be

584.16

something where like for example you

585.44

have a try catch

586.959

and

588.08

the catch part of it when you catch the

590.399

exception it's not doing anything so all

593.12

it's doing effectively is just

595.12

hiding the exception you just say oh i'm

597.2

going to try this and if you don't have

599.12

it do anything when it catches an

600.56

exception then you can essentially

601.839

swallow the exception

603.44

sometimes that's

604.8

that's needed or that's part of your

606.72

design

608.079

but a lot of times that's not and

610.24

technically probably should not be as if

611.92

there's an exception something somewhere

614

should be noted so that you can

616.959

handle that exception properly there

618.72

should be some sort of handling and some

620.24

sort of clean

621.519

addressing of that situation

624.16

so reducing bugs even if the code's

626.72

already gone out it could go through qa

628.8

but you will still have

630.8

could there'll be cases and instances

633.12

where

633.92

a code review will actually surface bugs

635.92

that were not found otherwise

638.8

along with that that becomes

640.959

and this is a it's a bigger picture than

642.56

just bugs but improving code quality

645.44

because now because

646.959

there are things that you can do you can

648.48

code stuff that is not going to generate

650.32

a bug but is going to be

652.56

potentially not scalable

655.12

easily we all know you know really nasty

657.6

spaghetti code or stuff that's not

659.279

documented or the the naming standards

661.36

are ridiculously bad

662.959

where the maintenance is a nightmare

665.44

um you can have stuff where

668

the the logic flow

670.48

is so convoluted that not only is it

672.32

hard to maintain but it also ends up

674

being not scalable there's a certain

675.76

point where you realize that if you call

677.279

that enough times or if you try to push

678.8

enough data through it it breaks it just

680.64

it chokes it brings the system to its

682.399

knees

683.76

so it's improving code quality and not

685.519

just

686.32

through bugs but all of the other things

688.959

that we want good code to do which makes

690.8

it you know it's readable it's

691.839

maintainable it's scalable it's stable

695.76

those are things that you're going to

697.04

find you can get those things out of a

698.64

code review those kinds of things can be

700.64

surfaced and then addressed

704.079

i talked about

706

there being more to a code review than

707.92

the code itself

710

and so one of those is cross-training of

711.839

the team

712.88

when you have

714.32

other developers looking at your code

718.48

regardless of how the team is organized

722.24

that means that those other developers

724.16

get an insight into your code into what

726.48

you were working on

728.48

and you might be working side by side by

730.32

with somebody and working on roughly the

732.32

same

733.279

uh functions or methods or pieces of

736.48

code

738

but if you don't do it then

740.72

it's something that could be a blind

742.16

spot to you and when you see when you're

744.56

doing code reviews you're bringing the

746.16

team together to say all right let's all

748.079

take a look at this and see

750.56

what we're doing so you get a you can

752.48

see not only what they're doing also but

754.639

actually sort of how they think

757.279

and while yes some people can be

759.519

personally attached to their code and

761.12

feel

762.399

uh we'll say slighted if somebody points

764.72

out a you know a bug or an improvement

766.48

or something like that

768.56

i think

770.079

well i'm not

771.12

if you do it right

773.2

then you're gonna

775.279

you're gonna pull the team together

776.72

instead of break them apart and if

778.079

somebody wants to be you know point at

780

them like hey you had six bugs i only

782.079

had three or something like that

783.76

then you know

786.079

to be flippant you smack them upside the

787.6

head and say no that's not how this

788.959

works it's not what this is that's not

790.88

what we're trying to do

792.639

um

793.68

but know to be more but more seriously

795.279

about it

796.399

is you can build a team culture because

798.32

then you get

800.48

done right is it's hey we're all working

802.959

together

804

so it's not that

805.92

you wrote code that had a bug in it or

807.92

something like that it said hey here's

809.519

the direction we want to go

811.839

and here's another set of eyes to help

814.24

you you know remind you that hey here's

816.24

something that we do

817.68

or

818.639

as a team to discuss code quality to a

821.279

level of hey

822.8

you've got a solution

824.48

and we're looking at that as a team and

826.48

maybe it's maybe we can as a team come

828.48

up with a better solution

830.48

or we can review some of the other

833.12

options that are out there

835.279

and it educates all of us on that

837.6

process on that problem-solving process

840

and how we got to that solution

842.48

because code review sometimes is not

844.32

just pointing out hey this needs to

846.8

change

848

sometimes it's a conversation that hey

850.079

you did this

852.16

i want to understand your thought

853.279

process or

855.199

why did you need to do it that way i

856.88

don't i thought it would be simpler and

858.88

you have this more complicated thing and

860.959

this sort of goes also back to the cross

862.72

training where you may say

864.56

yeah i did it this way and it may seem

866.8

sort of odd but it's because i found

869.04

that we have a b and c requirements that

871.519

require us essentially to do the code

873.92

this way

875.68

and it may even go to the the most

877.92

famous and nasty of things that you'll

879.68

find occasionally where you'll have a

880.88

comment even in a code that says

882.959

this line doesn't really do anything but

885.519

i have to have it or else the code

887.199

breaks and i can't figure out why and i

889.36

think we've all run up against those at

890.959

some point

892.16

and code reviews can can surface those

894.48

sayings sometimes it'll be somebody else

896.399

can actually say oh this is why you have

898.32

to do that

899.68

or it at least notifies everybody that

901.839

oh yeah this is yeah it's like this is a

903.92

critical piece of code even though it

905.44

doesn't look like it so please don't

906.88

touch it

907.839

you know it's

909.279

it goes back to a

911.36

old simpsons episode

913.44

where the neighborhood gets together to

915.04

build a house

916.399

and

917.12

there's a poster on one of the

918.88

children's room bedrooms and kid doesn't

922.079

like it is about to take it down i'm

923.519

like oh no no don't take that poster

925.04

down it's a load-bearing poster

927.12

which

927.92

you know an architectural joke would be

930.32

is pretty amusing in itself

932.48

but we have that in code i think we've

934.24

all had those moments where we realized

935.92

that this doesn't make sense that i need

938.16

to do this

939.519

but i need to because if i take this out

942.639

everything breaks but if i leave it in

944.48

it works

945.6

now

946.399

probably there is something that you

947.759

know there's probably something more to

948.959

it but sometimes that's all we can find

950.88

at the point and we get to move on

954.16

and so the last point too is that

956.72

i think the more you

959.36

discuss your code

962.079

in a team environment where everybody's

964.079

pulling towards let's be better as a

966.399

team

967.44

and we talk about building better

968.72

developers this is building a better

970.16

development team a better development

974.24

environment a better development culture

978.399

that

979.44

building that up spending that time

981.44

helps you

982.48

remove your personal attachment to your

984.56

code

985.44

there's still that pride and work ethic

987.68

i think that goes into it where you say

989.12

hey i want to

991.04

i'm going to strive to go into a code

993.199

review and do things in a way

995.759

that

996.56

checks all the boxes off and

998.959

is something that people say hey this is

1000.8

you know this this follows our standards

1004.56

but

1006.16

in doing so i think if you do in the

1007.68

right environment it pushes you to do

1009.199

that without you feeling like it's a

1010.88

personal attack if you didn't

1013.04

and it makes it that much easier for you

1014.959

to throw your code out there and say hey

1017.68

take a look at this

1019.279

you know do you have

1020.959

i think this works do you have some

1022.48

suggestions on how it can be better

1024.959

because that's going to be key to

1026.48

getting better is not doing the same

1028.24

thing that you want to do but getting

1030.799

other people to take a look at it and

1032.799

point out where you can make

1034.079

improvements you know if you if you

1036.079

write code perfect the first time you

1037.6

will never get better either technically

1039.919

there'd be no need if you write 100

1041.839

perfect code there is no better

1044.319

but nobody does that

1046.48

so there's always going to be a better

1048.079

and the the sooner that we remove

1051.44

we'll say almost the stigma in our own

1053.52

mind of us not

1056

being at a hundred percent

1057.679

the sooner we're going to be able to

1059.039

improve

1076.48

you