Code reviews are vital for ensuring good code quality and fostering teamwork. They serve as one of our last lines of defense against bugs and subpar code reaching production.
Yet, they often turn into annoying tasks riddled with frustration, hostility, unclear feedback and lack of standard practices. How can we improve this crucial process?
From a decade's worth of experience and consulting across varied companies, I've extracted essential lessons about code reviews. In this session we will cover:
- The Art of Effective Code Reviews: Learn ``how not to come across as a passive-aggressive jerk``, the value of self-reviews, and effective communication strategies.
- Streamlining the Review Process: Embrace clear repository ownership and refined review guidelines for more efficient and constructive reviews.
- Elevating Reviews with Automated Tools: The most fun part! Explore tools that reinforce code consistency and quality, from automated style fixes to architecture checks. Let's cut through the noise of bikeshedding and focus on the essence of the changes.
This session will leave you with practical tactics for improving pull requests, performing better code reviews, and a suite of tools to simplify the review process and boost code quality.
👉 Code Quality Conference 2024
https://codequalityconf.com/
📺 CSharp TV - Dev Streaming Destination http://csharp.tv
🌎 C# Corner - Community of Software and Data Developers https://www.c-sharpcorner.com/
Show More Show Less View Video Transcript
0:03
so yes good morning afternoon and
0:05
so yes good morning afternoon and
0:05
so yes good morning afternoon and evening since I think we're a nice
0:07
evening since I think we're a nice
0:07
evening since I think we're a nice International live stream which is
0:08
International live stream which is
0:08
International live stream which is really cool to see and thanks for
0:10
really cool to see and thanks for
0:10
really cool to see and thanks for organizing this um I'm going to be
0:13
organizing this um I'm going to be
0:13
organizing this um I'm going to be talking about code reviews uh I also saw
0:15
talking about code reviews uh I also saw
0:15
talking about code reviews uh I also saw there's another talk in a schedule which
0:18
there's another talk in a schedule which
0:18
there's another talk in a schedule which is about not using Code reviews so let's
0:20
is about not using Code reviews so let's
0:20
is about not using Code reviews so let's first start with the the good side of
0:21
first start with the the good side of
0:21
first start with the the good side of the story and I'm very curious to hear
0:23
the story and I'm very curious to hear
0:23
the story and I'm very curious to hear later on what what the the other
0:24
later on what what the the other
0:24
later on what what the the other presenter
0:25
presenter
0:25
presenter Asel um as I was already told my name is
0:28
Asel um as I was already told my name is
0:29
Asel um as I was already told my name is p beov I am from the Netherlands living
0:31
p beov I am from the Netherlands living
0:31
p beov I am from the Netherlands living in Switzerland and I've been working for
0:33
in Switzerland and I've been working for
0:33
in Switzerland and I've been working for the for quite some time already in the
0:36
the for quite some time already in the
0:36
the for quite some time already in the field now of which I spent quite some
0:38
field now of which I spent quite some
0:38
field now of which I spent quite some time as a consultant as well for various
0:41
time as a consultant as well for various
0:41
time as a consultant as well for various companies mostly in the Netherlands but
0:42
companies mostly in the Netherlands but
0:42
companies mostly in the Netherlands but also companies like Google and picnic um
0:46
also companies like Google and picnic um
0:46
also companies like Google and picnic um where I saw a lot of different
0:47
where I saw a lot of different
0:47
where I saw a lot of different environments and from that I actually
0:49
environments and from that I actually
0:50
environments and from that I actually learned quite a lot of things and when I
0:52
learned quite a lot of things and when I
0:53
learned quite a lot of things and when I moved and started working for hexagon I
0:54
moved and started working for hexagon I
0:54
moved and started working for hexagon I finally found a place where I can sort
0:56
finally found a place where I can sort
0:56
finally found a place where I can sort of apply all these rules and help the
0:58
of apply all these rules and help the
0:58
of apply all these rules and help the team mature f
1:01
team mature f
1:01
team mature f mature um which is also the reason why
1:03
mature um which is also the reason why
1:03
mature um which is also the reason why I'm why I created this talk to sort of
1:05
I'm why I created this talk to sort of
1:05
I'm why I created this talk to sort of educate you about all the lessons that I
1:07
educate you about all the lessons that I
1:07
educate you about all the lessons that I learned um and also because I really
1:09
learned um and also because I really
1:09
learned um and also because I really like code quality so my day-to-day job I
1:12
like code quality so my day-to-day job I
1:12
like code quality so my day-to-day job I work as a software engineer at hxr um
1:15
work as a software engineer at hxr um
1:15
work as a software engineer at hxr um which is our it's a cloud-based platform
1:18
which is our it's a cloud-based platform
1:18
which is our it's a cloud-based platform that allows users to create and explore
1:20
that allows users to create and explore
1:20
that allows users to create and explore large 3D models from their browser and
1:22
large 3D models from their browser and
1:22
large 3D models from their browser and there's also quite some other
1:24
there's also quite some other
1:24
there's also quite some other cool things we do like um sorry I just
1:29
cool things we do like um sorry I just
1:29
cool things we do like um sorry I just got distracted there was some sign um we
1:31
got distracted there was some sign um we
1:31
got distracted there was some sign um we have drones that can do 3D scans and all
1:33
have drones that can do 3D scans and all
1:33
have drones that can do 3D scans and all kinds of cool stuff so it's quite a nice
1:35
kinds of cool stuff so it's quite a nice
1:35
kinds of cool stuff so it's quite a nice place to work and they were nice to give
1:36
place to work and they were nice to give
1:36
place to work and they were nice to give me some time to present for you this
1:39
me some time to present for you this
1:39
me some time to present for you this topic so without further Ado I'd like to
1:41
topic so without further Ado I'd like to
1:41
topic so without further Ado I'd like to start with a nice but also not so nice
1:45
start with a nice but also not so nice
1:45
start with a nice but also not so nice number so 360 billion was the estimated
1:48
number so 360 billion was the estimated
1:49
number so 360 billion was the estimated cost of bugs in 2013 according to
1:52
cost of bugs in 2013 according to
1:52
cost of bugs in 2013 according to research done by Cambridge students and
1:55
research done by Cambridge students and
1:55
research done by Cambridge students and this included the time of finding and
1:56
this included the time of finding and
1:57
this included the time of finding and fixing bugs now given that this was in
1:58
fixing bugs now given that this was in
1:58
fixing bugs now given that this was in 2013 with all the inflation and all the
2:02
2013 with all the inflation and all the
2:02
2013 with all the inflation and all the things that are going on you could say
2:04
things that are going on you could say
2:04
things that are going on you could say that by now 11 years later this probably
2:06
that by now 11 years later this probably
2:06
that by now 11 years later this probably has doubled just like
2:07
has doubled just like
2:07
has doubled just like houses um so what can we do about this
2:10
houses um so what can we do about this
2:10
houses um so what can we do about this number how can we reduce it because this
2:12
number how can we reduce it because this
2:12
number how can we reduce it because this is a big a big bite of out of the IT
2:16
is a big a big bite of out of the IT
2:16
is a big a big bite of out of the IT industry and one of is uh a fairly
2:19
industry and one of is uh a fairly
2:19
industry and one of is uh a fairly classical diagram that is shown is that
2:23
classical diagram that is shown is that
2:23
classical diagram that is shown is that the cost of fixing a book increases over
2:26
the cost of fixing a book increases over
2:26
the cost of fixing a book increases over time or uh depends on the stage
2:30
time or uh depends on the stage
2:30
time or uh depends on the stage of where it is found so whenever you
2:32
of where it is found so whenever you
2:32
of where it is found so whenever you found something later in production that
2:33
found something later in production that
2:33
found something later in production that means that you need to figure out what's
2:35
means that you need to figure out what's
2:35
means that you need to figure out what's going on probably there's some damage
2:37
going on probably there's some damage
2:37
going on probably there's some damage that you need to recover and you need to
2:38
that you need to recover and you need to
2:38
that you need to recover and you need to figure out how to fix it so there's a
2:39
figure out how to fix it so there's a
2:40
figure out how to fix it so there's a lot more time spent than if you do this
2:42
lot more time spent than if you do this
2:42
lot more time spent than if you do this earlier on and one of the things that
2:44
earlier on and one of the things that
2:44
earlier on and one of the things that can help here to find a about earlier is
2:47
can help here to find a about earlier is
2:47
can help here to find a about earlier is through something called code
2:48
through something called code
2:49
through something called code reviews um these typically take place
2:52
reviews um these typically take place
2:52
reviews um these typically take place around the coding in Destiny phase of
2:53
around the coding in Destiny phase of
2:53
around the coding in Destiny phase of course there's a lot of reviewers also
2:55
course there's a lot of reviewers also
2:55
course there's a lot of reviewers also ear in the project but I'll be focusing
2:57
ear in the project but I'll be focusing
2:57
ear in the project but I'll be focusing on code reviews
3:00
on code reviews
3:00
on code reviews and what is a Cod Rie
3:04
and what is a Cod Rie
3:04
and what is a Cod Rie so I think it consists of three
3:06
so I think it consists of three
3:06
so I think it consists of three important parts the first one we already
3:08
important parts the first one we already
3:08
important parts the first one we already mentioned which is about finding and
3:10
mentioned which is about finding and
3:10
mentioned which is about finding and fixing books so catching books early
3:13
fixing books so catching books early
3:13
fixing books so catching books early saving money frustration and also
3:15
saving money frustration and also
3:15
saving money frustration and also reputation but the other ones are maybe
3:18
reputation but the other ones are maybe
3:18
reputation but the other ones are maybe even more important which is about
3:20
even more important which is about
3:20
even more important which is about learning and coaching uh helping your
3:23
learning and coaching uh helping your
3:23
learning and coaching uh helping your teammates grow um learning from each
3:26
teammates grow um learning from each
3:26
teammates grow um learning from each other and also it's a nice place to
3:28
other and also it's a nice place to
3:28
other and also it's a nice place to Mentor new employees or the Juniors uh
3:31
Mentor new employees or the Juniors uh
3:31
Mentor new employees or the Juniors uh to give them some guidance and code
3:34
to give them some guidance and code
3:34
to give them some guidance and code quality you can you can use this to sort
3:37
quality you can you can use this to sort
3:37
quality you can you can use this to sort of enforce and improve code quality over
3:38
of enforce and improve code quality over
3:38
of enforce and improve code quality over time which I think because hey this is
3:41
time which I think because hey this is
3:41
time which I think because hey this is code quality
3:42
code quality
3:42
code quality conference I really like code quality um
3:45
conference I really like code quality um
3:45
conference I really like code quality um let's give it its own
3:47
let's give it its own
3:47
let's give it its own definition um what I like about this is
3:50
definition um what I like about this is
3:50
definition um what I like about this is effectively it covers many different
3:51
effectively it covers many different
3:51
effectively it covers many different things from the maintainability to how
3:53
things from the maintainability to how
3:53
things from the maintainability to how readable it is efficient but also what I
3:56
readable it is efficient but also what I
3:56
readable it is efficient but also what I I really a big fan of is coding
3:59
I really a big fan of is coding
3:59
I really a big fan of is coding convention
4:00
convention
4:00
convention consistency and just following best
4:02
consistency and just following best
4:02
consistency and just following best practices and this all is something that
4:05
practices and this all is something that
4:05
practices and this all is something that code reviews can help you with improving
4:07
code reviews can help you with improving
4:07
code reviews can help you with improving this now this sounds all pretty good
4:10
this now this sounds all pretty good
4:10
this now this sounds all pretty good right I'd say and yet
4:14
right I'd say and yet
4:14
right I'd say and yet still you sometimes come across this um
4:18
still you sometimes come across this um
4:18
still you sometimes come across this um and I would like to add here
4:20
and I would like to add here
4:20
and I would like to add here that yes there are some nuances not
4:24
that yes there are some nuances not
4:24
that yes there are some nuances not everybody and not every team needs code
4:26
everybody and not every team needs code
4:26
everybody and not every team needs code reviews I probably will like to hear
4:28
reviews I probably will like to hear
4:28
reviews I probably will like to hear that later on some other reasons but but
4:30
that later on some other reasons but but
4:30
that later on some other reasons but but suppose you heavily invest in pair
4:31
suppose you heavily invest in pair
4:32
suppose you heavily invest in pair programming or mob programming that
4:33
programming or mob programming that
4:33
programming or mob programming that means that you're already do the review
4:35
means that you're already do the review
4:35
means that you're already do the review on the go which could argue as maybe
4:37
on the go which could argue as maybe
4:37
on the go which could argue as maybe more efficient or you're in a small high
4:39
more efficient or you're in a small high
4:39
more efficient or you're in a small high performing team of course there's
4:42
performing team of course there's
4:42
performing team of course there's different things to consider
4:44
different things to consider
4:44
different things to consider here now with that nuances the question
4:48
here now with that nuances the question
4:48
here now with that nuances the question is is how can we efficiently incorporate
4:51
is is how can we efficiently incorporate
4:51
is is how can we efficiently incorporate code reviews into our daily development
4:53
code reviews into our daily development
4:53
code reviews into our daily development practices and that is through something
4:57
practices and that is through something
4:57
practices and that is through something called Pro requests and normally if I'm
4:59
called Pro requests and normally if I'm
4:59
called Pro requests and normally if I'm at the conference I would do a show of
5:01
at the conference I would do a show of
5:01
at the conference I would do a show of hands where I would ask whether we
5:02
hands where I would ask whether we
5:02
hands where I would ask whether we should call it a pool request or a merge
5:06
should call it a pool request or a merge
5:06
should call it a pool request or a merge request um this is a bit harder online
5:08
request um this is a bit harder online
5:08
request um this is a bit harder online but the reason why I asked this is um
5:11
but the reason why I asked this is um
5:12
but the reason why I asked this is um specifically gitlab really pushes on the
5:14
specifically gitlab really pushes on the
5:14
specifically gitlab really pushes on the term merge
5:15
term merge
5:15
term merge request um I work with gitlab and my
5:19
request um I work with gitlab and my
5:19
request um I work with gitlab and my co-workers punish me if I use the well
5:22
co-workers punish me if I use the well
5:22
co-workers punish me if I use the well they make it clear to me that I
5:24
they make it clear to me that I
5:24
they make it clear to me that I shouldn't use the term po request
5:25
shouldn't use the term po request
5:25
shouldn't use the term po request because we use gitlab um in the end
5:27
because we use gitlab um in the end
5:28
because we use gitlab um in the end throughout this whole presentation
5:29
throughout this whole presentation
5:29
throughout this whole presentation whether I use P request or merge request
5:31
whether I use P request or merge request
5:31
whether I use P request or merge request I mean the same thing it's about to the
5:34
I mean the same thing it's about to the
5:34
I mean the same thing it's about to the request to merge a
5:36
request to merge a
5:36
request to merge a branch uh into say the main
5:41
branch and this P have become sort of an
5:44
branch and this P have become sort of an
5:44
branch and this P have become sort of an integral part of our software
5:46
integral part of our software
5:46
integral part of our software development process we we use this to
5:49
development process we we use this to
5:49
development process we we use this to sort of gatekeep quality and this is
5:53
sort of gatekeep quality and this is
5:53
sort of gatekeep quality and this is facilitated by most Version Control
5:55
facilitated by most Version Control
5:55
facilitated by most Version Control Systems I already mentioned gitlab but
5:57
Systems I already mentioned gitlab but
5:57
Systems I already mentioned gitlab but there's of course a lot more and these
5:59
there's of course a lot more and these
5:59
there's of course a lot more and these tools are really nice they help us to
6:01
tools are really nice they help us to
6:01
tools are really nice they help us to create and review PO requests and they
6:04
create and review PO requests and they
6:04
create and review PO requests and they also contain quite some useful
6:05
also contain quite some useful
6:05
also contain quite some useful Integrations and features to improve
6:08
Integrations and features to improve
6:09
Integrations and features to improve reviews um which
6:11
reviews um which
6:11
reviews um which is I would say
6:14
is I would say
6:14
is I would say great uh I need to double check yes so
6:17
great uh I need to double check yes so
6:17
great uh I need to double check yes so the one of the challenging things about
6:18
the one of the challenging things about
6:18
the one of the challenging things about doing an online presentation is that you
6:20
doing an online presentation is that you
6:20
doing an online presentation is that you don't know whether you are still
6:21
don't know whether you are still
6:21
don't know whether you are still connected I am so that's good um the so
6:26
connected I am so that's good um the so
6:26
connected I am so that's good um the so these tools help us to create PO
6:27
these tools help us to create PO
6:27
these tools help us to create PO requests however even though these tools
6:29
requests however even though these tools
6:29
requests however even though these tools really help us we often see the less
6:32
really help us we often see the less
6:32
really help us we often see the less pretty side of
6:34
pretty side of
6:34
pretty side of requests um just to give you some IDE
6:36
requests um just to give you some IDE
6:36
requests um just to give you some IDE like one of the things we see are the
6:38
like one of the things we see are the
6:38
like one of the things we see are the the the poqu that change half of the
6:40
the the poqu that change half of the
6:40
the the poqu that change half of the project in this case 55 files with the
6:42
project in this case 55 files with the
6:42
project in this case 55 files with the least amount of descriptive values in
6:44
least amount of descriptive values in
6:44
least amount of descriptive values in there like this this is awful the review
6:48
there like this this is awful the review
6:48
there like this this is awful the review but there's also the awful comments that
6:50
but there's also the awful comments that
6:50
but there's also the awful comments that leave people leave uh it's not always a
6:53
leave people leave uh it's not always a
6:53
leave people leave uh it's not always a happy
6:54
happy
6:55
happy place then there is the fact that nobody
6:57
place then there is the fact that nobody
6:57
place then there is the fact that nobody really likes to review so you always get
6:59
really likes to review so you always get
6:59
really likes to review so you always get these
7:00
these
7:00
these channels on slack or teams hey can
7:02
channels on slack or teams hey can
7:02
channels on slack or teams hey can somebody review this can somebody review
7:03
somebody review this can somebody review
7:03
somebody review this can somebody review this and and last but not least it's
7:06
this and and last but not least it's
7:06
this and and last but not least it's always the the curse of the small po
7:09
always the the curse of the small po
7:09
always the the curse of the small po request where you see that uh the small
7:12
request where you see that uh the small
7:12
request where you see that uh the small request with 10 lines gets picked up
7:14
request with 10 lines gets picked up
7:14
request with 10 lines gets picked up immediately everybody is now Keen to
7:16
immediately everybody is now Keen to
7:16
immediately everybody is now Keen to review and everybody has some opinion
7:17
review and everybody has some opinion
7:18
review and everybody has some opinion about the 10 lines you
7:20
about the 10 lines you
7:20
about the 10 lines you changed um so how how can we address
7:23
changed um so how how can we address
7:23
changed um so how how can we address these issues and and one part of the
7:25
these issues and and one part of the
7:25
these issues and and one part of the solution lies in creating good and
7:28
solution lies in creating good and
7:28
solution lies in creating good and review friendly requests
7:31
review friendly requests
7:31
review friendly requests so for this I'm going to assume that all
7:33
so for this I'm going to assume that all
7:33
so for this I'm going to assume that all the changes we made are well implemented
7:35
the changes we made are well implemented
7:35
the changes we made are well implemented they are concise focused and tested
7:38
they are concise focused and tested
7:38
they are concise focused and tested we're not doing free features at the
7:40
we're not doing free features at the
7:40
we're not doing free features at the same time and another book fix we should
7:42
same time and another book fix we should
7:42
same time and another book fix we should create separate Bo request for that um
7:45
create separate Bo request for that um
7:45
create separate Bo request for that um now one thing that I want to keep you in
7:46
now one thing that I want to keep you in
7:46
now one thing that I want to keep you in mind is that when people start reviewing
7:49
mind is that when people start reviewing
7:49
mind is that when people start reviewing they sh you should just assume that they
7:51
they sh you should just assume that they
7:51
they sh you should just assume that they come in blank even though maybe the
7:52
come in blank even though maybe the
7:52
come in blank even though maybe the whole team knows what's going on the
7:54
whole team knows what's going on the
7:54
whole team knows what's going on the whole team doesn't know what was going
7:56
whole team doesn't know what was going
7:56
whole team doesn't know what was going on a year later when you look back at
7:57
on a year later when you look back at
7:57
on a year later when you look back at the spol request because you tried to
7:58
the spol request because you tried to
7:58
the spol request because you tried to figure out what was something done in a
8:00
figure out what was something done in a
8:00
figure out what was something done in a certain
8:01
certain
8:01
certain way
8:04
way
8:04
way um so what what makes a good po request
8:09
um so what what makes a good po request
8:09
um so what what makes a good po request and then I think we should always start
8:10
and then I think we should always start
8:10
and then I think we should always start with a good title
8:13
with a good title
8:13
with a good title now a good title should be
8:16
now a good title should be
8:16
now a good title should be self-explanatory like a good commit
8:18
self-explanatory like a good commit
8:18
self-explanatory like a good commit message and in this case
8:20
message and in this case
8:21
message and in this case fixbook not good enough even though
8:23
fixbook not good enough even though
8:23
fixbook not good enough even though maybe the whole team knows because
8:25
maybe the whole team knows because
8:25
maybe the whole team knows because there's only one book and everybody
8:26
there's only one book and everybody
8:26
there's only one book and everybody knows what's going on there you might
8:28
knows what's going on there you might
8:28
knows what's going on there you might know it now you don't know it later and
8:30
know it now you don't know it later and
8:30
know it now you don't know it later and also maybe somebody else from the team
8:32
also maybe somebody else from the team
8:32
also maybe somebody else from the team doesn't know so try to add some context
8:35
doesn't know so try to add some context
8:35
doesn't know so try to add some context try to be more specific and actually as
8:38
try to be more specific and actually as
8:38
try to be more specific and actually as I already mentioned it a good title is
8:40
I already mentioned it a good title is
8:40
I already mentioned it a good title is like a good commit message is you can
8:42
like a good commit message is you can
8:42
like a good commit message is you can actually use the same conventions here
8:45
actually use the same conventions here
8:45
actually use the same conventions here because what we often see is that both
8:47
because what we often see is that both
8:47
because what we often see is that both commit messages so either the PO request
8:49
commit messages so either the PO request
8:49
commit messages so either the PO request title becomes the commit message or the
8:51
title becomes the commit message or the
8:51
title becomes the commit message or the the
8:52
the
8:52
the subject and either the commit message or
8:54
subject and either the commit message or
8:54
subject and either the commit message or the PO request title usually also end up
8:56
the PO request title usually also end up
8:56
the PO request title usually also end up in the release notes and with
8:59
in the release notes and with
8:59
in the release notes and with conventional commits we sort of say we
9:01
conventional commits we sort of say we
9:01
conventional commits we sort of say we want to follow this convention which
9:03
want to follow this convention which
9:03
want to follow this convention which makes it much easier to parse but also
9:05
makes it much easier to parse but also
9:05
makes it much easier to parse but also to read commit messages for example you
9:08
to read commit messages for example you
9:08
to read commit messages for example you have the feat and the fix prefix which
9:10
have the feat and the fix prefix which
9:10
have the feat and the fix prefix which allow you to sort of identify whether
9:11
allow you to sort of identify whether
9:11
allow you to sort of identify whether it's a major or minor
9:13
it's a major or minor
9:13
it's a major or minor change this can be really helpful and
9:15
change this can be really helpful and
9:15
change this can be really helpful and also don't forget to always include a
9:18
also don't forget to always include a
9:18
also don't forget to always include a reference to your issue tracker for
9:20
reference to your issue tracker for
9:20
reference to your issue tracker for example in
9:21
example in
9:21
example in jira um most VCS tools actually
9:23
jira um most VCS tools actually
9:23
jira um most VCS tools actually automatically converted to a clickable
9:25
automatically converted to a clickable
9:25
automatically converted to a clickable link so that you immediately get more of
9:26
link so that you immediately get more of
9:26
link so that you immediately get more of the functional context then the next
9:29
the functional context then the next
9:29
the functional context then the next step
9:30
step
9:30
step it's description which is also very
9:32
it's description which is also very
9:32
it's description which is also very important um and I'll just go over the
9:35
important um and I'll just go over the
9:35
important um and I'll just go over the different steps quickly so I think the
9:37
different steps quickly so I think the
9:37
different steps quickly so I think the first one we should always add is some
9:39
first one we should always add is some
9:39
first one we should always add is some context and this would be an extension
9:41
context and this would be an extension
9:41
context and this would be an extension of the title maybe anything the
9:43
of the title maybe anything the
9:43
of the title maybe anything the reviewers should still know about
9:45
reviewers should still know about
9:45
reviewers should still know about feature before you start uh before you
9:47
feature before you start uh before you
9:47
feature before you start uh before you start
9:48
start
9:49
start reviewing and then a what a brief
9:51
reviewing and then a what a brief
9:51
reviewing and then a what a brief overview of the things that changed so
9:54
overview of the things that changed so
9:54
overview of the things that changed so to to sort of tell the reviewer what to
9:57
to to sort of tell the reviewer what to
9:57
to to sort of tell the reviewer what to expect you made some changes to the DB
9:59
expect you made some changes to the DB
9:59
expect you made some changes to the DB added a field to the response and
10:03
added a field to the response and
10:03
added a field to the response and refactored the login logic just to give
10:06
refactored the login logic just to give
10:07
refactored the login logic just to give you a brief over viiew then one that's
10:09
you a brief over viiew then one that's
10:09
you a brief over viiew then one that's often forgotten is the why and then with
10:12
often forgotten is the why and then with
10:12
often forgotten is the why and then with this I mean why did you make certain
10:15
this I mean why did you make certain
10:15
this I mean why did you make certain decisions um why did you make certain
10:18
decisions um why did you make certain
10:18
decisions um why did you make certain choices because at the time when you are
10:21
choices because at the time when you are
10:21
choices because at the time when you are implementing your Bo request you go
10:24
implementing your Bo request you go
10:24
implementing your Bo request you go through the mental process hey I can go
10:25
through the mental process hey I can go
10:26
through the mental process hey I can go either left or I can go right I can
10:28
either left or I can go right I can
10:28
either left or I can go right I can either
10:30
either
10:30
either use this framework or that framework or
10:32
use this framework or that framework or
10:32
use this framework or that framework or this query or that
10:34
this query or that
10:34
this query or that query um and
10:37
query um and
10:37
query um and unfortunately um this knowledge is
10:39
unfortunately um this knowledge is
10:39
unfortunately um this knowledge is usually lost once you commit the PO
10:42
usually lost once you commit the PO
10:42
usually lost once you commit the PO request or sort of once you create the
10:44
request or sort of once you create the
10:44
request or sort of once you create the PO request and some time goes by you
10:46
PO request and some time goes by you
10:46
PO request and some time goes by you don't know what was considered anymore
10:47
don't know what was considered anymore
10:47
don't know what was considered anymore this is something that the reviewer
10:48
this is something that the reviewer
10:48
this is something that the reviewer typically likes to know so what I always
10:51
typically likes to know so what I always
10:51
typically likes to know so what I always recommend is to whenever you make some
10:53
recommend is to whenever you make some
10:53
recommend is to whenever you make some choices or some specific decisions write
10:56
choices or some specific decisions write
10:56
choices or some specific decisions write them down so that the reviewer doesn't
10:57
them down so that the reviewer doesn't
10:57
them down so that the reviewer doesn't have to ask about it and you can also
11:01
have to ask about it and you can also
11:01
have to ask about it and you can also know in half a year from now still why
11:03
know in half a year from now still why
11:03
know in half a year from now still why certain decisions were made and last
11:06
certain decisions were made and last
11:06
certain decisions were made and last which I also really like the examples um
11:09
which I also really like the examples um
11:09
which I also really like the examples um this makes uh add of visibility to the
11:13
this makes uh add of visibility to the
11:13
this makes uh add of visibility to the changes that you made like what did you
11:14
changes that you made like what did you
11:14
changes that you made like what did you actually change and sure not always
11:18
actually change and sure not always
11:18
actually change and sure not always makes sense if it's a small bug fix but
11:20
makes sense if it's a small bug fix but
11:20
makes sense if it's a small bug fix but suppose you work in a front end and it's
11:22
suppose you work in a front end and it's
11:22
suppose you work in a front end and it's nice to add some screenshots here of the
11:24
nice to add some screenshots here of the
11:24
nice to add some screenshots here of the things you build so that people
11:26
things you build so that people
11:26
things you build so that people immediately from the code it's sometimes
11:28
immediately from the code it's sometimes
11:28
immediately from the code it's sometimes hard to guess how things will look um
11:31
hard to guess how things will look um
11:31
hard to guess how things will look um but also this doesn't just stay with
11:33
but also this doesn't just stay with
11:33
but also this doesn't just stay with front end for the back end say you add a
11:35
front end for the back end say you add a
11:35
front end for the back end say you add a new API call or you make some changes to
11:38
new API call or you make some changes to
11:38
new API call or you make some changes to the API add an example request and
11:40
the API add an example request and
11:40
the API add an example request and response if you make some changes to the
11:41
response if you make some changes to the
11:41
response if you make some changes to the database add some example queries and
11:44
database add some example queries and
11:44
database add some example queries and results um given the response example
11:47
results um given the response example
11:47
results um given the response example suppose you edit a new date time field
11:50
suppose you edit a new date time field
11:50
suppose you edit a new date time field people cannot immediately see which
11:52
people cannot immediately see which
11:52
people cannot immediately see which format is used if you add an example
11:54
format is used if you add an example
11:54
format is used if you add an example response you can see which date time
11:56
response you can see which date time
11:56
response you can see which date time format was used which might be relevant
11:57
format was used which might be relevant
11:57
format was used which might be relevant if you have another service it will
11:59
if you have another service it will
12:00
if you have another service it will depend on this and expects a certain day
12:02
depend on this and expects a certain day
12:03
depend on this and expects a certain day time format so that you can immediately
12:04
time format so that you can immediately
12:04
time format so that you can immediately spot that rather than this BEC coming
12:06
spot that rather than this BEC coming
12:06
spot that rather than this BEC coming back later
12:08
back later
12:08
back later on and then the biggest challenge is to
12:10
on and then the biggest challenge is to
12:10
on and then the biggest challenge is to keep it all concise and readable because
12:13
keep it all concise and readable because
12:13
keep it all concise and readable because um nobody likes to read a wall of text I
12:16
um nobody likes to read a wall of text I
12:16
um nobody likes to read a wall of text I think I'm not even able to read a big
12:18
think I'm not even able to read a big
12:18
think I'm not even able to read a big wall of text without distracting myself
12:20
wall of text without distracting myself
12:20
wall of text without distracting myself at least 20 times um so add some
12:23
at least 20 times um so add some
12:23
at least 20 times um so add some sections some bullet points some maybe
12:25
sections some bullet points some maybe
12:25
sections some bullet points some maybe some emojis to keep it readable and this
12:27
some emojis to keep it readable and this
12:27
some emojis to keep it readable and this is also something where chat GPT can be
12:29
is also something where chat GPT can be
12:29
is also something where chat GPT can be really
12:30
really
12:30
really helpful also by the way this is not of
12:33
helpful also by the way this is not of
12:34
helpful also by the way this is not of course for every po request not every
12:36
course for every po request not every
12:36
course for every po request not every Pro request justifies such a large
12:38
Pro request justifies such a large
12:38
Pro request justifies such a large description maybe just a small book fix
12:40
description maybe just a small book fix
12:40
description maybe just a small book fix of course you have to enter less this
12:42
of course you have to enter less this
12:42
of course you have to enter less this also goes with some sanity in what makes
12:45
also goes with some sanity in what makes
12:45
also goes with some sanity in what makes sense now to help you with writing a
12:47
sense now to help you with writing a
12:47
sense now to help you with writing a good
12:48
good
12:48
good description use templates these
12:51
description use templates these
12:51
description use templates these templates make sure that the text is
12:54
templates make sure that the text is
12:54
templates make sure that the text is consistent across all your microservices
12:56
consistent across all your microservices
12:56
consistent across all your microservices or repositories or teams everybody's
12:59
or repositories or teams everybody's
12:59
or repositories or teams everybody's using the same format so you know what
13:01
using the same format so you know what
13:01
using the same format so you know what to expect where in a request and what
13:04
to expect where in a request and what
13:04
to expect where in a request and what the best feature about this I would
13:06
the best feature about this I would
13:06
the best feature about this I would configure this on a team base is the use
13:08
configure this on a team base is the use
13:08
configure this on a team base is the use of checklists because there's always
13:10
of checklists because there's always
13:10
of checklists because there's always things we forget um and these are sort
13:13
things we forget um and these are sort
13:13
things we forget um and these are sort of the last reminder before something
13:14
of the last reminder before something
13:14
of the last reminder before something makes it to develop or before the pro
13:16
makes it to develop or before the pro
13:16
makes it to develop or before the pro request is
13:17
request is
13:17
request is open um what things should we still do
13:21
open um what things should we still do
13:21
open um what things should we still do um and an example of this is the
13:23
um and an example of this is the
13:23
um and an example of this is the architecture diagrams suppose you have
13:25
architecture diagrams suppose you have
13:25
architecture diagrams suppose you have some Confluence page or some wikii page
13:27
some Confluence page or some wikii page
13:27
some Confluence page or some wikii page in which you update the diagrams this
13:30
in which you update the diagrams this
13:30
in which you update the diagrams this only needs to happen say one every 10 po
13:32
only needs to happen say one every 10 po
13:32
only needs to happen say one every 10 po request where you actually add a new
13:34
request where you actually add a new
13:34
request where you actually add a new endpoint or a new dependency which means
13:36
endpoint or a new dependency which means
13:36
endpoint or a new dependency which means that the rest of the time you don't and
13:39
that the rest of the time you don't and
13:39
that the rest of the time you don't and that means you also sort of get it out
13:40
that means you also sort of get it out
13:40
that means you also sort of get it out of your Rhythm and you forget that you
13:41
of your Rhythm and you forget that you
13:42
of your Rhythm and you forget that you actually have to do this um maybe
13:44
actually have to do this um maybe
13:44
actually have to do this um maybe updating documentation or release notes
13:46
updating documentation or release notes
13:46
updating documentation or release notes and the other part that I really like
13:48
and the other part that I really like
13:48
and the other part that I really like about this is that it's also sort of the
13:51
about this is that it's also sort of the
13:51
about this is that it's also sort of the voice in the back of your head when it
13:52
voice in the back of your head when it
13:52
voice in the back of your head when it comes to say did you add tests like the
13:55
comes to say did you add tests like the
13:55
comes to say did you add tests like the first one changes are covered by tests
13:57
first one changes are covered by tests
13:57
first one changes are covered by tests so if you didn't do it
13:59
so if you didn't do it
13:59
so if you didn't do it and you know you should do it then this
14:01
and you know you should do it then this
14:01
and you know you should do it then this is the point where you sort of have the
14:02
is the point where you sort of have the
14:02
is the point where you sort of have the choice okay do I check it but then I'd
14:05
choice okay do I check it but then I'd
14:05
choice okay do I check it but then I'd be lying if I didn't so I should really
14:09
be lying if I didn't so I should really
14:09
be lying if I didn't so I should really write test it's sort of the second check
14:10
write test it's sort of the second check
14:10
write test it's sort of the second check which I really like is it sometimes
14:12
which I really like is it sometimes
14:12
which I really like is it sometimes sometimes you're lazy people are lazy
14:14
sometimes you're lazy people are lazy
14:14
sometimes you're lazy people are lazy and then this is sort of the nice thing
14:15
and then this is sort of the nice thing
14:15
and then this is sort of the nice thing to remind him to not be
14:18
to remind him to not be
14:18
to remind him to not be lazy now having created a nice and
14:22
lazy now having created a nice and
14:22
lazy now having created a nice and elaborate request we need to do one more
14:25
elaborate request we need to do one more
14:25
elaborate request we need to do one more thing and that is what we also have to
14:27
thing and that is what we also have to
14:27
thing and that is what we also have to forget is to review our own code don't
14:29
forget is to review our own code don't
14:29
forget is to review our own code don't just throw it over the fence oh it works
14:32
just throw it over the fence oh it works
14:32
just throw it over the fence oh it works uh it's done no have a look at it and
14:34
uh it's done no have a look at it and
14:34
uh it's done no have a look at it and especially if you look at it from a VCS
14:36
especially if you look at it from a VCS
14:36
especially if you look at it from a VCS tool like gitlab or any other is that
14:40
tool like gitlab or any other is that
14:40
tool like gitlab or any other is that you see your diff in a different
14:42
you see your diff in a different
14:42
you see your diff in a different perspective you can now immediately
14:44
perspective you can now immediately
14:44
perspective you can now immediately easily see oh hey I made a change to
14:46
easily see oh hey I made a change to
14:46
easily see oh hey I made a change to this file but actually I don't even need
14:48
this file but actually I don't even need
14:48
this file but actually I don't even need to be there let's undo that line break
14:50
to be there let's undo that line break
14:50
to be there let's undo that line break because it only adds noise to the pr
14:52
because it only adds noise to the pr
14:52
because it only adds noise to the pr request or you see oh wait this this
14:55
request or you see oh wait this this
14:55
request or you see oh wait this this name maybe I should improve the name or
14:58
name maybe I should improve the name or
14:58
name maybe I should improve the name or maybe there you you chose two different
15:00
maybe there you you chose two different
15:00
maybe there you you chose two different approaches and then there are some
15:02
approaches and then there are some
15:02
approaches and then there are some leftovers from the previous approach but
15:04
leftovers from the previous approach but
15:04
leftovers from the previous approach but it's also useful to use commands to add
15:07
it's also useful to use commands to add
15:07
it's also useful to use commands to add some context in this example here on the
15:09
some context in this example here on the
15:09
some context in this example here on the right I added or I actually removed the
15:12
right I added or I actually removed the
15:12
right I added or I actually removed the file and because I wanted to make sure
15:14
file and because I wanted to make sure
15:14
file and because I wanted to make sure that it was not used and also out of
15:16
that it was not used and also out of
15:16
that it was not used and also out of curiosity I was looking when since when
15:18
curiosity I was looking when since when
15:18
curiosity I was looking when since when this actually should have been removed
15:20
this actually should have been removed
15:20
this actually should have been removed and because I did that reearch I
15:23
and because I did that reearch I
15:23
and because I did that reearch I immediately just wrote it down and now
15:26
immediately just wrote it down and now
15:26
immediately just wrote it down and now the next person doesn't have to figure
15:27
the next person doesn't have to figure
15:27
the next person doesn't have to figure this out for themselves so it's
15:28
this out for themselves so it's
15:28
this out for themselves so it's immediately clear it's again about hey
15:30
immediately clear it's again about hey
15:30
immediately clear it's again about hey you took the time and effort just take
15:32
you took the time and effort just take
15:32
you took the time and effort just take the tiny little bit of time I mean how
15:33
the tiny little bit of time I mean how
15:33
the tiny little bit of time I mean how much time does it take to write this
15:35
much time does it take to write this
15:35
much time does it take to write this couple of 30 seconds maybe and you save
15:38
couple of 30 seconds maybe and you save
15:38
couple of 30 seconds maybe and you save some time of the people that are
15:40
some time of the people that are
15:40
some time of the people that are reviewing it it makes them for them much
15:41
reviewing it it makes them for them much
15:41
reviewing it it makes them for them much more easier to see that you did your due
15:43
more easier to see that you did your due
15:43
more easier to see that you did your due diligence and Trust on that and we can
15:45
diligence and Trust on that and we can
15:45
diligence and Trust on that and we can also use it to highlight important parts
15:47
also use it to highlight important parts
15:47
also use it to highlight important parts so suppose you did a bug fix in a file
15:49
so suppose you did a bug fix in a file
15:49
so suppose you did a bug fix in a file but you also had to rename some fields
15:51
but you also had to rename some fields
15:51
but you also had to rename some fields or maybe you had to format it for and
15:53
or maybe you had to format it for and
15:53
or maybe you had to format it for and the formatting was off and now you have
15:55
the formatting was off and now you have
15:55
the formatting was off and now you have 20 lines changed even though there's
15:57
20 lines changed even though there's
15:57
20 lines changed even though there's only one relevant part then it might be
15:59
only one relevant part then it might be
15:59
only one relevant part then it might be helpful to add a comment on that one
16:01
helpful to add a comment on that one
16:01
helpful to add a comment on that one line saying hey this is the core
16:03
line saying hey this is the core
16:03
line saying hey this is the core fix uh the rest is just formatting and
16:07
fix uh the rest is just formatting and
16:07
fix uh the rest is just formatting and style and the last one that I also like
16:09
style and the last one that I also like
16:10
style and the last one that I also like is you can use this to ask specific
16:11
is you can use this to ask specific
16:11
is you can use this to ask specific questions to both about your own code
16:14
questions to both about your own code
16:14
questions to both about your own code hey you're uncertain about this certain
16:15
hey you're uncertain about this certain
16:15
hey you're uncertain about this certain part but also if you're integrating with
16:16
part but also if you're integrating with
16:16
part but also if you're integrating with another team like hey can the API team
16:19
another team like hey can the API team
16:19
another team like hey can the API team have another look at this because I'm
16:21
have another look at this because I'm
16:21
have another look at this because I'm not sure uh whether it's done correctly
16:23
not sure uh whether it's done correctly
16:23
not sure uh whether it's done correctly then immediately they have the context
16:25
then immediately they have the context
16:25
then immediately they have the context like it's in that class rather that they
16:28
like it's in that class rather that they
16:28
like it's in that class rather that they get the full request and have to figure
16:29
get the full request and have to figure
16:29
get the full request and have to figure out where their relevant changes
16:32
out where their relevant changes
16:32
out where their relevant changes are now we we did do the proper pool
16:35
are now we we did do the proper pool
16:35
are now we we did do the proper pool request we did review it we already
16:37
request we did review it we already
16:37
request we did review it we already fixed some things again at least for me
16:39
fixed some things again at least for me
16:39
fixed some things again at least for me I always find things when I review it
16:41
I always find things when I review it
16:41
I always find things when I review it myself where I was like hey it saves me
16:42
myself where I was like hey it saves me
16:42
myself where I was like hey it saves me already three more
16:44
already three more
16:44
already three more comments now we need to get people to
16:46
comments now we need to get people to
16:46
comments now we need to get people to review it and in an Ideal World you
16:50
review it and in an Ideal World you
16:50
review it and in an Ideal World you wouldn't have to ask for reviews either
16:52
wouldn't have to ask for reviews either
16:52
wouldn't have to ask for reviews either teams proactively check for PO requests
16:54
teams proactively check for PO requests
16:54
teams proactively check for PO requests or you can run Rob and assign people in
16:56
or you can run Rob and assign people in
16:56
or you can run Rob and assign people in your version control system uh and
16:58
your version control system uh and
16:58
your version control system uh and people actually use that however in
17:01
people actually use that however in
17:01
people actually use that however in practice we see that people are not very
17:04
practice we see that people are not very
17:04
practice we see that people are not very keen on reviewing it takes some time
17:06
keen on reviewing it takes some time
17:06
keen on reviewing it takes some time away from their current task which means
17:08
away from their current task which means
17:08
away from their current task which means they have to switch context maybe they
17:10
they have to switch context maybe they
17:10
they have to switch context maybe they think they can find anything so they're
17:12
think they can find anything so they're
17:12
think they can find anything so they're like H why should I spend time on this
17:14
like H why should I spend time on this
17:15
like H why should I spend time on this um so people are not really tempted to
17:17
um so people are not really tempted to
17:18
um so people are not really tempted to respond to these messages and this is
17:21
respond to these messages and this is
17:21
respond to these messages and this is because what I used to call the the
17:23
because what I used to call the the
17:23
because what I used to call the the diffusion of
17:25
diffusion of
17:25
diffusion of responsibility or shared responsibility
17:28
responsibility or shared responsibility
17:28
responsibility or shared responsibility is no resp possibility when it comes to
17:30
is no resp possibility when it comes to
17:30
is no resp possibility when it comes to things people don't like
17:34
things people don't like
17:34
things people don't like um if you have 20 people and 20 people
17:36
um if you have 20 people and 20 people
17:36
um if you have 20 people and 20 people don't want to do it then usually if he
17:38
don't want to do it then usually if he
17:38
don't want to do it then usually if he just ask it in a void Nobody Does it
17:40
just ask it in a void Nobody Does it
17:40
just ask it in a void Nobody Does it especially in something as Anonymous as
17:42
especially in something as Anonymous as
17:42
especially in something as Anonymous as a team chat now the best way to address
17:45
a team chat now the best way to address
17:45
a team chat now the best way to address this is by targeting specific people
17:48
this is by targeting specific people
17:48
this is by targeting specific people don't just say hey can anybody hey
17:50
don't just say hey can anybody hey
17:51
don't just say hey can anybody hey teammate a or team member B can you
17:53
teammate a or team member B can you
17:53
teammate a or team member B can you please have a look at it if you tag the
17:55
please have a look at it if you tag the
17:55
please have a look at it if you tag the wrong one they are most likely willing
17:57
wrong one they are most likely willing
17:57
wrong one they are most likely willing to tell you who's the right person so
17:59
to tell you who's the right person so
17:59
to tell you who's the right person so you at least have some response and you
18:00
you at least have some response and you
18:00
you at least have some response and you know where to
18:02
know where to
18:02
know where to go also what helps is to add some
18:04
go also what helps is to add some
18:04
go also what helps is to add some context um what is this PR request about
18:08
context um what is this PR request about
18:08
context um what is this PR request about because if if I'm maybe coincident
18:11
because if if I'm maybe coincident
18:11
because if if I'm maybe coincident working on the same surface on the same
18:12
working on the same surface on the same
18:12
working on the same surface on the same issue or a similar area therefore for me
18:16
issue or a similar area therefore for me
18:16
issue or a similar area therefore for me it's much easier to pick it up so it's
18:17
it's much easier to pick it up so it's
18:17
it's much easier to pick it up so it's already much clearer where what this is
18:20
already much clearer where what this is
18:20
already much clearer where what this is about and the deadline add some sense of
18:23
about and the deadline add some sense of
18:23
about and the deadline add some sense of urgency just so that people
18:25
urgency just so that people
18:25
urgency just so that people know whether it needs to happen right
18:27
know whether it needs to happen right
18:27
know whether it needs to happen right away or whether they can do it tomorrow
18:29
away or whether they can do it tomorrow
18:29
away or whether they can do it tomorrow morning and me something like that put
18:32
morning and me something like that put
18:32
morning and me something like that put then it would look something like this
18:34
then it would look something like this
18:34
then it would look something like this so in this case we Tex some specific
18:36
so in this case we Tex some specific
18:36
so in this case we Tex some specific people maybe we add some team in the
18:39
people maybe we add some team in the
18:39
people maybe we add some team in the loop so that they can see whether's
18:40
loop so that they can see whether's
18:41
loop so that they can see whether's actually being picked up
18:43
actually being picked up
18:44
actually being picked up um and we had some context and the
18:46
um and we had some context and the
18:46
um and we had some context and the challenge is that we get a reply on this
18:48
challenge is that we get a reply on this
18:48
challenge is that we get a reply on this is much higher than on the first one
18:50
is much higher than on the first one
18:50
is much higher than on the first one because probably we need to send out a
18:52
because probably we need to send out a
18:52
because probably we need to send out a reminder two or three
18:54
reminder two or three
18:54
reminder two or three times and this actually is not just
18:57
times and this actually is not just
18:57
times and this actually is not just about asking for reev this is asking
18:59
about asking for reev this is asking
18:59
about asking for reev this is asking about for anything if you are in teams
19:01
about for anything if you are in teams
19:01
about for anything if you are in teams or in slack and you need some
19:02
or in slack and you need some
19:02
or in slack and you need some information from another team or some
19:04
information from another team or some
19:04
information from another team or some help it can be good to tag specific
19:07
help it can be good to tag specific
19:07
help it can be good to tag specific people add context add some urgency and
19:10
people add context add some urgency and
19:10
people add context add some urgency and then people are more likely to help you
19:13
then people are more likely to help you
19:13
then people are more likely to help you but this is of course this won't always
19:15
but this is of course this won't always
19:15
but this is of course this won't always work and people are still going to
19:17
work and people are still going to
19:17
work and people are still going to forget and it's good to keep that in
19:20
forget and it's good to keep that in
19:20
forget and it's good to keep that in mind we all forget things if I get a
19:23
mind we all forget things if I get a
19:23
mind we all forget things if I get a message while I'm also looking at this
19:25
message while I'm also looking at this
19:25
message while I'm also looking at this presentation that maybe I've seen the
19:27
presentation that maybe I've seen the
19:27
presentation that maybe I've seen the message but
19:29
message but
19:29
message but it's now Mark is red and I'm distracted
19:31
it's now Mark is red and I'm distracted
19:31
it's now Mark is red and I'm distracted and now I forgot about it um it's okay
19:33
and now I forgot about it um it's okay
19:34
and now I forgot about it um it's okay to remind people and be patient with
19:36
to remind people and be patient with
19:36
to remind people and be patient with that but of course at some point it's
19:38
that but of course at some point it's
19:38
that but of course at some point it's also okay
19:40
also okay
19:40
also okay to try to fix
19:43
to try to fix
19:43
to try to fix this now we finally got some people to
19:47
this now we finally got some people to
19:47
this now we finally got some people to look at a pro request how how do we deal
19:49
look at a pro request how how do we deal
19:49
look at a pro request how how do we deal with the feedback that we get because
19:52
with the feedback that we get because
19:52
with the feedback that we get because not all feedback goes as expected um and
19:56
not all feedback goes as expected um and
19:56
not all feedback goes as expected um and it's good to keep in mind that this is
19:59
it's good to keep in mind that this is
19:59
it's good to keep in mind that this is not necessarily done with bad intentions
20:02
not necessarily done with bad intentions
20:03
not necessarily done with bad intentions and there are people that simply lack
20:04
and there are people that simply lack
20:04
and there are people that simply lack the social skills are not very aware of
20:06
the social skills are not very aware of
20:06
the social skills are not very aware of their social
20:08
their social
20:08
their social environment or and what you also often
20:10
environment or and what you also often
20:10
environment or and what you also often see is that there might be cultural
20:11
see is that there might be cultural
20:11
see is that there might be cultural differences at play so take me for
20:14
differences at play so take me for
20:14
differences at play so take me for example I'm from the Netherlands the
20:15
example I'm from the Netherlands the
20:15
example I'm from the Netherlands the Netherlands are known to be quite direct
20:17
Netherlands are known to be quite direct
20:18
Netherlands are known to be quite direct so when we think of something we'll tell
20:20
so when we think of something we'll tell
20:20
so when we think of something we'll tell you that when we don't like something
20:22
you that when we don't like something
20:22
you that when we don't like something you'll know that's why we are so good at
20:24
you'll know that's why we are so good at
20:24
you'll know that's why we are so good at complaining and which also means um that
20:27
complaining and which also means um that
20:27
complaining and which also means um that when I work in an interational team it's
20:29
when I work in an interational team it's
20:29
when I work in an interational team it's good for me to maybe add some fluff to
20:31
good for me to maybe add some fluff to
20:32
good for me to maybe add some fluff to the messages I'm sending to make it look
20:33
the messages I'm sending to make it look
20:33
the messages I'm sending to make it look less harsh but it's also good for the
20:36
less harsh but it's also good for the
20:36
less harsh but it's also good for the rest of the team to know that hey this
20:38
rest of the team to know that hey this
20:38
rest of the team to know that hey this is this is my normal way of
20:40
is this is my normal way of
20:40
is this is my normal way of communication it's not because I don't
20:41
communication it's not because I don't
20:41
communication it's not because I don't like you it's just because I
20:43
like you it's just because I
20:43
like you it's just because I don't know
20:46
don't know
20:46
don't know anybody in the end it's mostly important
20:48
anybody in the end it's mostly important
20:48
anybody in the end it's mostly important to not take these things personal if you
20:50
to not take these things personal if you
20:50
to not take these things personal if you want to be a real professional then you
20:53
want to be a real professional then you
20:53
want to be a real professional then you have to be above all the office drama um
20:56
have to be above all the office drama um
20:56
have to be above all the office drama um you have to be patient and just be the
20:57
you have to be patient and just be the
20:57
you have to be patient and just be the bigger person and maybe help the other
20:59
bigger person and maybe help the other
20:59
bigger person and maybe help the other people by giving them feedback in a
21:02
people by giving them feedback in a
21:02
people by giving them feedback in a correct way to tell them hey um the way
21:04
correct way to tell them hey um the way
21:04
correct way to tell them hey um the way you communicate sounds a bit harsh maybe
21:06
you communicate sounds a bit harsh maybe
21:06
you communicate sounds a bit harsh maybe you can improve because that's in the
21:07
you can improve because that's in the
21:07
you can improve because that's in the end what a professional is being about
21:08
end what a professional is being about
21:08
end what a professional is being about and about being senior it's about
21:10
and about being senior it's about
21:10
and about being senior it's about helping the team forward rather than
21:12
helping the team forward rather than
21:12
helping the team forward rather than ending in Petty
21:15
ending in Petty
21:15
ending in Petty fights what you also see is the fake
21:17
fights what you also see is the fake
21:17
fights what you also see is the fake feedback um and what you not going do
21:20
feedback um and what you not going do
21:20
feedback um and what you not going do when you get feedback like this is going
21:22
when you get feedback like this is going
21:22
when you get feedback like this is going to sort of sort of trial and error
21:24
to sort of sort of trial and error
21:24
to sort of sort of trial and error approach trying to figure out what this
21:25
approach trying to figure out what this
21:25
approach trying to figure out what this person meant with this and how it should
21:27
person meant with this and how it should
21:27
person meant with this and how it should be improved
21:29
be improved
21:29
be improved it would save yourself a lot of time to
21:31
it would save yourself a lot of time to
21:31
it would save yourself a lot of time to just ask for clarification or
21:33
just ask for clarification or
21:33
just ask for clarification or suggestions that's okay um especially if
21:36
suggestions that's okay um especially if
21:36
suggestions that's okay um especially if somebody just doesn't like it so vague
21:38
somebody just doesn't like it so vague
21:38
somebody just doesn't like it so vague then you can don't don't waste your time
21:41
then you can don't don't waste your time
21:41
then you can don't don't waste your time trying to figure out what is meant here
21:42
trying to figure out what is meant here
21:43
trying to figure out what is meant here just ask for clarification
21:45
just ask for clarification
21:45
just ask for clarification instead and the same also goes for the
21:48
instead and the same also goes for the
21:48
instead and the same also goes for the speaking of Saving Time the endless
21:49
speaking of Saving Time the endless
21:49
speaking of Saving Time the endless discussions um please pick your battles
21:53
discussions um please pick your battles
21:53
discussions um please pick your battles not every space has to be a tab or the
21:55
not every space has to be a tab or the
21:55
not every space has to be a tab or the other way around or it's at least not
21:57
other way around or it's at least not
21:57
other way around or it's at least not that important but there might be
22:00
that important but there might be
22:00
that important but there might be things that are very important where you
22:02
things that are very important where you
22:02
things that are very important where you think okay if we this makes it all the
22:04
think okay if we this makes it all the
22:04
think okay if we this makes it all the way through production we have a serious
22:06
way through production we have a serious
22:06
way through production we have a serious issue then and you're already in the
22:09
issue then and you're already in the
22:09
issue then and you're already in the sixth or seventh or eighth reply in your
22:11
sixth or seventh or eighth reply in your
22:12
sixth or seventh or eighth reply in your threads maybe that's a good moment to
22:14
threads maybe that's a good moment to
22:14
threads maybe that's a good moment to not continue the threat um it's nice to
22:17
not continue the threat um it's nice to
22:17
not continue the threat um it's nice to have these async communication tools and
22:19
have these async communication tools and
22:19
have these async communication tools and means but it gets really distracting and
22:22
means but it gets really distracting and
22:22
means but it gets really distracting and it takes a lot of time for such a
22:23
it takes a lot of time for such a
22:23
it takes a lot of time for such a discussion to take place it's much
22:25
discussion to take place it's much
22:25
discussion to take place it's much better to then at that point just take
22:27
better to then at that point just take
22:27
better to then at that point just take it offline or online online going
22:29
it offline or online online going
22:29
it offline or online online going through a sync gr discussion where you
22:31
through a sync gr discussion where you
22:31
through a sync gr discussion where you talk to each
22:32
talk to each
22:32
talk to each other and then come to a conclusion and
22:35
other and then come to a conclusion and
22:35
other and then come to a conclusion and then what's really important and often
22:37
then what's really important and often
22:37
then what's really important and often forgotten is that people don't report
22:39
forgotten is that people don't report
22:39
forgotten is that people don't report back the results of the discussion What
22:41
back the results of the discussion What
22:42
back the results of the discussion What was decided and why and these are two
22:43
was decided and why and these are two
22:43
was decided and why and these are two very valuable things again half a year
22:47
very valuable things again half a year
22:47
very valuable things again half a year from now I have a similar problem I look
22:49
from now I have a similar problem I look
22:49
from now I have a similar problem I look on slack for this problem and I now find
22:51
on slack for this problem and I now find
22:51
on slack for this problem and I now find that people had a discussion but I don't
22:52
that people had a discussion but I don't
22:52
that people had a discussion but I don't know what the answer was and they
22:54
know what the answer was and they
22:54
know what the answer was and they probably also forgot and the same goes
22:56
probably also forgot and the same goes
22:56
probably also forgot and the same goes for prequests or any open source
22:58
for prequests or any open source
22:58
for prequests or any open source discussion you sometimes see um always
23:02
discussion you sometimes see um always
23:02
discussion you sometimes see um always report back and it's just a one liner
23:04
report back and it's just a one liner
23:04
report back and it's just a one liner again it's 30 seconds and it's so
23:06
again it's 30 seconds and it's so
23:06
again it's 30 seconds and it's so helpful future you will be very grateful
23:08
helpful future you will be very grateful
23:08
helpful future you will be very grateful for that well speaking of being
23:12
for that well speaking of being
23:12
for that well speaking of being grateful um not all the feedback will be
23:16
grateful um not all the feedback will be
23:16
grateful um not all the feedback will be bad there will also be lots of useful
23:17
bad there will also be lots of useful
23:17
bad there will also be lots of useful feedback you will learn new things or
23:19
feedback you will learn new things or
23:19
feedback you will learn new things or you will write better code and introduce
23:22
you will write better code and introduce
23:22
you will write better code and introduce less fooks and it's important to also be
23:24
less fooks and it's important to also be
23:24
less fooks and it's important to also be grateful about this because people took
23:26
grateful about this because people took
23:26
grateful about this because people took the time and effort to go over your
23:27
the time and effort to go over your
23:27
the time and effort to go over your changes
23:28
changes
23:29
changes even though they might not like it um
23:33
even though they might not like it um
23:33
even though they might not like it um rather than always saying fixed done o
23:37
rather than always saying fixed done o
23:37
rather than always saying fixed done o um maybe show some appreciation of the
23:39
um maybe show some appreciation of the
23:39
um maybe show some appreciation of the things that you actually learned about
23:41
things that you actually learned about
23:41
things that you actually learned about the new API call or something like that
23:43
the new API call or something like that
23:43
the new API call or something like that because a friendly message goes a long
23:45
because a friendly message goes a long
23:45
because a friendly message goes a long way goes a long way which also improves
23:48
way goes a long way which also improves
23:48
way goes a long way which also improves the culture of the company people are
23:51
the culture of the company people are
23:51
the culture of the company people are more friendly especially if you do a lot
23:53
more friendly especially if you do a lot
23:53
more friendly especially if you do a lot of remote work then there's not a lot
23:55
of remote work then there's not a lot
23:55
of remote work then there's not a lot it's easy to get annoyed and you don't
23:56
it's easy to get annoyed and you don't
23:56
it's easy to get annoyed and you don't really speak to each other um people
23:59
really speak to each other um people
23:59
really speak to each other um people tend to get frustrated also show some
24:01
tend to get frustrated also show some
24:01
tend to get frustrated also show some things it also May adds confidence
24:03
things it also May adds confidence
24:03
things it also May adds confidence suppose the junior is um reviewing for
24:05
suppose the junior is um reviewing for
24:05
suppose the junior is um reviewing for the first time finally found something
24:07
the first time finally found something
24:07
the first time finally found something then it can be really empowering to sort
24:09
then it can be really empowering to sort
24:09
then it can be really empowering to sort of tell them oh hey that's a great
24:10
of tell them oh hey that's a great
24:10
of tell them oh hey that's a great question oh hey that's a really good
24:12
question oh hey that's a really good
24:12
question oh hey that's a really good suggestion I actually learned something
24:14
suggestion I actually learned something
24:14
suggestion I actually learned something new because that empowers them and it
24:16
new because that empowers them and it
24:16
new because that empowers them and it will also help them progress in their
24:17
will also help them progress in their
24:17
will also help them progress in their careers and in the end also will help
24:19
careers and in the end also will help
24:19
careers and in the end also will help you
24:21
you
24:21
you again now enough about the review site
24:24
again now enough about the review site
24:24
again now enough about the review site we're going to switch to the reviewers
24:26
we're going to switch to the reviewers
24:27
we're going to switch to the reviewers sheet so seat so we're now going to give
24:30
sheet so seat so we're now going to give
24:30
sheet so seat so we're now going to give reviews and there's two important things
24:32
reviews and there's two important things
24:32
reviews and there's two important things that I want to start with the first one
24:35
that I want to start with the first one
24:35
that I want to start with the first one is don't wait too long a review in a
24:37
is don't wait too long a review in a
24:37
is don't wait too long a review in a timely matter because the longer it
24:39
timely matter because the longer it
24:39
timely matter because the longer it takes the more time is lost of merge
24:41
takes the more time is lost of merge
24:41
takes the more time is lost of merge conflicts of switching context what I
24:43
conflicts of switching context what I
24:43
conflicts of switching context what I actually liked I saw a presentation on
24:45
actually liked I saw a presentation on
24:46
actually liked I saw a presentation on this topic as well where they said
24:48
this topic as well where they said
24:48
this topic as well where they said ideally whatever work you do is on a
24:50
ideally whatever work you do is on a
24:50
ideally whatever work you do is on a backlog which is prioritized by some
24:53
backlog which is prioritized by some
24:53
backlog which is prioritized by some product owner which means that the first
24:55
product owner which means that the first
24:55
product owner which means that the first task is being picked up has the highest
24:58
task is being picked up has the highest
24:58
task is being picked up has the highest priority
24:59
priority
24:59
priority which also means that whenever you're
25:00
which also means that whenever you're
25:00
which also means that whenever you're going to pick up a new task and there's
25:02
going to pick up a new task and there's
25:02
going to pick up a new task and there's still work needs to be reviewed that
25:04
still work needs to be reviewed that
25:04
still work needs to be reviewed that work has a higher priority than your
25:07
work has a higher priority than your
25:07
work has a higher priority than your work which means you should review that
25:08
work which means you should review that
25:08
work which means you should review that first before you start picking up new
25:12
first before you start picking up new
25:12
first before you start picking up new work and I kind of think this makes
25:14
work and I kind of think this makes
25:14
work and I kind of think this makes sense another thing that you can do is
25:17
sense another thing that you can do is
25:17
sense another thing that you can do is um when you start today you are fresh
25:20
um when you start today you are fresh
25:20
um when you start today you are fresh you don't have to switch contexts you
25:21
you don't have to switch contexts you
25:21
you don't have to switch contexts you can just start spend the first hour of
25:23
can just start spend the first hour of
25:23
can just start spend the first hour of your day reviewing PO requests just to
25:26
your day reviewing PO requests just to
25:26
your day reviewing PO requests just to get that rid of and then you can have
25:27
get that rid of and then you can have
25:27
get that rid of and then you can have some Focus time and maybe at the end of
25:29
some Focus time and maybe at the end of
25:29
some Focus time and maybe at the end of the day do some more requests so that
25:30
the day do some more requests so that
25:30
the day do some more requests so that you don't have to switch context but
25:31
you don't have to switch context but
25:31
you don't have to switch context but also keep up with
25:34
also keep up with
25:34
also keep up with it uh and the other thing that's really
25:36
it uh and the other thing that's really
25:36
it uh and the other thing that's really important is taking responsibility you
25:39
important is taking responsibility you
25:39
important is taking responsibility you often see the 500 line change and people
25:42
often see the 500 line change and people
25:42
often see the 500 line change and people comment within five minutes doing a 500
25:45
comment within five minutes doing a 500
25:45
comment within five minutes doing a 500 Line review um saying looks good to me
25:47
Line review um saying looks good to me
25:47
Line review um saying looks good to me and then click the approve button and
25:50
and then click the approve button and
25:50
and then click the approve button and you know already that that that there
25:52
you know already that that that there
25:52
you know already that that that there was no no proper review done there um
25:56
was no no proper review done there um
25:56
was no no proper review done there um whenever you click the approv button
25:58
whenever you click the approv button
25:58
whenever you click the approv button that means that you
25:59
that means that you
25:59
that means that you become the co-owner of the change and
26:02
become the co-owner of the change and
26:02
become the co-owner of the change and which also means you are accountable so
26:05
which also means you are accountable so
26:05
which also means you are accountable so whenever say something goes wrong it
26:09
whenever say something goes wrong it
26:09
whenever say something goes wrong it turns out there's a serious book in
26:10
turns out there's a serious book in
26:10
turns out there's a serious book in there and the person who wrote is in
26:12
there and the person who wrote is in
26:12
there and the person who wrote is in Holiday you should be the next one in
26:13
Holiday you should be the next one in
26:13
Holiday you should be the next one in line to be able to answer the questions
26:16
line to be able to answer the questions
26:16
line to be able to answer the questions which means it's in your best interest
26:18
which means it's in your best interest
26:18
which means it's in your best interest interest to do a proper review rather
26:21
interest to do a proper review rather
26:21
interest to do a proper review rather than yeah I don't feel like it but hey
26:23
than yeah I don't feel like it but hey
26:23
than yeah I don't feel like it but hey at least it looks like I did something
26:26
at least it looks like I did something
26:26
at least it looks like I did something and when we start reviewing it's
26:27
and when we start reviewing it's
26:27
and when we start reviewing it's important to start with getting some
26:29
important to start with getting some
26:29
important to start with getting some context we just spent quite some time
26:31
context we just spent quite some time
26:31
context we just spent quite some time creating a nice po request description
26:32
creating a nice po request description
26:32
creating a nice po request description so it would be a waste if we don't read
26:34
so it would be a waste if we don't read
26:34
so it would be a waste if we don't read it because often that's already where
26:36
it because often that's already where
26:36
it because often that's already where quite some answers to our questions are
26:38
quite some answers to our questions are
26:38
quite some answers to our questions are especially if described well um and I've
26:42
especially if described well um and I've
26:42
especially if described well um and I've been in the seat of uh this picture as
26:44
been in the seat of uh this picture as
26:44
been in the seat of uh this picture as well and where I dive straight into the
26:46
well and where I dive straight into the
26:46
well and where I dive straight into the code and I'm like what is going on what
26:48
code and I'm like what is going on what
26:48
code and I'm like what is going on what is going on and then at some point
26:49
is going on and then at some point
26:50
is going on and then at some point before I start typing questions I first
26:51
before I start typing questions I first
26:51
before I start typing questions I first want to go back to the description and
26:53
want to go back to the description and
26:53
want to go back to the description and then there's my answer already um so
26:55
then there's my answer already um so
26:55
then there's my answer already um so save yourself some time and read the
26:57
save yourself some time and read the
26:57
save yourself some time and read the description first makes it much easier
26:59
description first makes it much easier
26:59
description first makes it much easier to
26:59
to
26:59
to review but there also this this goes two
27:02
review but there also this this goes two
27:02
review but there also this this goes two ways because that means if there is no
27:05
ways because that means if there is no
27:05
ways because that means if there is no description at
27:06
description at
27:06
description at all it's also okay to just push back on
27:09
all it's also okay to just push back on
27:09
all it's also okay to just push back on review uh the Cod review and po request
27:12
review uh the Cod review and po request
27:12
review uh the Cod review and po request sorry and say hey please add some
27:14
sorry and say hey please add some
27:15
sorry and say hey please add some description because I can start guessing
27:16
description because I can start guessing
27:16
description because I can start guessing and reverse engineering from your change
27:18
and reverse engineering from your change
27:18
and reverse engineering from your change what you're actually doing but this is
27:20
what you're actually doing but this is
27:20
what you're actually doing but this is not very efficient uh and again in the
27:23
not very efficient uh and again in the
27:23
not very efficient uh and again in the future this will also not be very
27:25
future this will also not be very
27:25
future this will also not be very helpful um so don't waste somebody's
27:28
helpful um so don't waste somebody's
27:28
helpful um so don't waste somebody's time there goes two ways again the same
27:31
time there goes two ways again the same
27:31
time there goes two ways again the same also have a look at the existing
27:32
also have a look at the existing
27:32
also have a look at the existing commands don't go into the world uh
27:35
commands don't go into the world uh
27:35
commands don't go into the world uh because you don't want to ask the same
27:37
because you don't want to ask the same
27:37
because you don't want to ask the same questions that somebody else already did
27:39
questions that somebody else already did
27:39
questions that somebody else already did it's kind of inefficient maybe it has
27:42
it's kind of inefficient maybe it has
27:42
it's kind of inefficient maybe it has already been
27:43
already been
27:43
already been discussed then we start looking at the
27:46
discussed then we start looking at the
27:46
discussed then we start looking at the code and even though it's always very
27:48
code and even though it's always very
27:48
code and even though it's always very tempting to go straight into the code in
27:50
tempting to go straight into the code in
27:50
tempting to go straight into the code in the code style issues because that's
27:51
the code style issues because that's
27:51
the code style issues because that's what we know mo best um start from the
27:54
what we know mo best um start from the
27:54
what we know mo best um start from the top and the main reason from that is
27:56
top and the main reason from that is
27:56
top and the main reason from that is that any Fe back you have on the top
27:59
that any Fe back you have on the top
27:59
that any Fe back you have on the top that needs to be changed will trickle
28:02
that needs to be changed will trickle
28:02
that needs to be changed will trickle down if the design is wrong then
28:05
down if the design is wrong then
28:05
down if the design is wrong then probably all the codes or the tests need
28:07
probably all the codes or the tests need
28:07
probably all the codes or the tests need to be written
28:08
to be written
28:09
to be written anyway so no use in looking at the tests
28:11
anyway so no use in looking at the tests
28:11
anyway so no use in looking at the tests or looking at code style if might be
28:14
or looking at code style if might be
28:14
or looking at code style if might be Rewritten so we start with the high
28:16
Rewritten so we start with the high
28:16
Rewritten so we start with the high level overview um whether the
28:18
level overview um whether the
28:18
level overview um whether the functionality sorry the high level
28:20
functionality sorry the high level
28:20
functionality sorry the high level overview yeah if the functionality is in
28:22
overview yeah if the functionality is in
28:22
overview yeah if the functionality is in the right place and then we go a step
28:24
the right place and then we go a step
28:24
the right place and then we go a step further we see is the functional
28:26
further we see is the functional
28:26
further we see is the functional implemented correctly are certain
28:28
implemented correctly are certain
28:28
implemented correctly are certain scenarios missed and then we start
28:31
scenarios missed and then we start
28:31
scenarios missed and then we start looking at the code whether the
28:32
looking at the code whether the
28:32
looking at the code whether the complexity is okay well we just learned
28:34
complexity is okay well we just learned
28:34
complexity is okay well we just learned abouty about the cyclomatic complexity
28:36
abouty about the cyclomatic complexity
28:36
abouty about the cyclomatic complexity but is of course more is it readable can
28:39
but is of course more is it readable can
28:39
but is of course more is it readable can it be implemented in maybe a more
28:41
it be implemented in maybe a more
28:41
it be implemented in maybe a more efficient
28:42
efficient
28:42
efficient way and then and this is why I added in
28:45
way and then and this is why I added in
28:45
way and then and this is why I added in Bol the
28:47
Bol the
28:47
Bol the tests tests often get the least amount
28:50
tests tests often get the least amount
28:50
tests tests often get the least amount of Love Not only and attention during
28:52
of Love Not only and attention during
28:52
of Love Not only and attention during implementation but also during reviewing
28:55
implementation but also during reviewing
28:55
implementation but also during reviewing which means that this is
28:57
which means that this is
28:57
which means that this is a double the issue because tests are
28:59
a double the issue because tests are
28:59
a double the issue because tests are really important tests give us
29:01
really important tests give us
29:01
really important tests give us confidence in the sense that I'm talking
29:03
confidence in the sense that I'm talking
29:03
confidence in the sense that I'm talking for example about unit tests whether we
29:04
for example about unit tests whether we
29:04
for example about unit tests whether we don't break something by accident and
29:07
don't break something by accident and
29:07
don't break something by accident and what you see is that even I do sometimes
29:09
what you see is that even I do sometimes
29:09
what you see is that even I do sometimes when I'm reviewing and I finally review
29:11
when I'm reviewing and I finally review
29:11
when I'm reviewing and I finally review through the 60 files of production code
29:14
through the 60 files of production code
29:14
through the 60 files of production code to change I still have to look at 20
29:16
to change I still have to look at 20
29:16
to change I still have to look at 20 more tests that are also changed which
29:18
more tests that are also changed which
29:18
more tests that are also changed which are usually written slightly less
29:21
are usually written slightly less
29:21
are usually written slightly less efficient but it's so important to look
29:23
efficient but it's so important to look
29:23
efficient but it's so important to look at whether the assertions are done right
29:25
at whether the assertions are done right
29:25
at whether the assertions are done right and whether the code is actually
29:26
and whether the code is actually
29:26
and whether the code is actually correctly covered if it's not in the end
29:29
correctly covered if it's not in the end
29:29
correctly covered if it's not in the end a bad test suit will also affect you
29:32
a bad test suit will also affect you
29:32
a bad test suit will also affect you because you might be introducing books
29:33
because you might be introducing books
29:33
because you might be introducing books because somebody else didn't do their
29:35
because somebody else didn't do their
29:35
because somebody else didn't do their work
29:37
correctly so what can help here is to go
29:40
correctly so what can help here is to go
29:40
correctly so what can help here is to go for the tool assisted RS uh so actually
29:43
for the tool assisted RS uh so actually
29:43
for the tool assisted RS uh so actually what can help here is the tools some
29:46
what can help here is the tools some
29:46
what can help here is the tools some tools like the VCS tools in the left
29:48
tools like the VCS tools in the left
29:48
tools like the VCS tools in the left what you see here is is gitlab allows
29:50
what you see here is is gitlab allows
29:50
what you see here is is gitlab allows you to show code coverage in the diffs
29:52
you to show code coverage in the diffs
29:52
you to show code coverage in the diffs if you use if you supply it with Cura
29:54
if you use if you supply it with Cura
29:55
if you use if you supply it with Cura code coverage and I think there are some
29:56
code coverage and I think there are some
29:56
code coverage and I think there are some other VCS tools that allow you as well
29:59
other VCS tools that allow you as well
29:59
other VCS tools that allow you as well so you immediately see if something is
30:00
so you immediately see if something is
30:00
so you immediately see if something is covered or not sonar can also integrate
30:03
covered or not sonar can also integrate
30:03
covered or not sonar can also integrate often with your tools and already give
30:05
often with your tools and already give
30:05
often with your tools and already give you some hints but in the end the best
30:08
you some hints but in the end the best
30:08
you some hints but in the end the best tool to use is your own editor and I I
30:11
tool to use is your own editor and I I
30:11
tool to use is your own editor and I I know I have to give a small disclaimer
30:12
know I have to give a small disclaimer
30:13
know I have to give a small disclaimer here because this is Java code on a net
30:15
here because this is Java code on a net
30:15
here because this is Java code on a net conference I'm very sorry but actually I
30:17
conference I'm very sorry but actually I
30:17
conference I'm very sorry but actually I amly a Java
30:19
amly a Java
30:19
amly a Java developer um I did do my I did do some
30:22
developer um I did do my I did do some
30:22
developer um I did do my I did do some things with net but the example still
30:25
things with net but the example still
30:26
things with net but the example still holds um what you see here I made some
30:28
holds um what you see here I made some
30:28
holds um what you see here I made some small changes I introduced an
30:31
small changes I introduced an
30:31
small changes I introduced an extra if statement was like an early
30:34
extra if statement was like an early
30:34
extra if statement was like an early exit and I replaced some constant and
30:37
exit and I replaced some constant and
30:37
exit and I replaced some constant and now in the in the gitlab this kind of
30:40
now in the in the gitlab this kind of
30:41
now in the in the gitlab this kind of looks okay but if I now look in my
30:42
looks okay but if I now look in my
30:42
looks okay but if I now look in my editor your editor usually gives you a
30:45
editor your editor usually gives you a
30:45
editor your editor usually gives you a much broader context because you can now
30:46
much broader context because you can now
30:46
much broader context because you can now see the entire file and now I can see
30:48
see the entire file and now I can see
30:48
see the entire file and now I can see that hey this constant is not unused or
30:52
that hey this constant is not unused or
30:52
that hey this constant is not unused or hey my editor actually has a suggestion
30:53
hey my editor actually has a suggestion
30:54
hey my editor actually has a suggestion to improve this or if I've run a test
30:56
to improve this or if I've run a test
30:56
to improve this or if I've run a test which you can also do with writer
30:58
which you can also do with writer
30:59
which you can also do with writer um and I think also a visal studio you
31:02
um and I think also a visal studio you
31:02
um and I think also a visal studio you can run the test measure the code
31:03
can run the test measure the code
31:03
can run the test measure the code coverage and have it in line there so
31:05
coverage and have it in line there so
31:05
coverage and have it in line there so now I can see this red means that hey
31:07
now I can see this red means that hey
31:07
now I can see this red means that hey this return statement is not tested and
31:11
this return statement is not tested and
31:11
this return statement is not tested and one of the things that I see the least
31:12
one of the things that I see the least
31:12
one of the things that I see the least is that people actually look at the code
31:14
is that people actually look at the code
31:14
is that people actually look at the code coverage when reviewing and it's so
31:15
coverage when reviewing and it's so
31:15
coverage when reviewing and it's so important because this means that
31:17
important because this means that
31:17
important because this means that somebody should just write an extra test
31:18
somebody should just write an extra test
31:18
somebody should just write an extra test here um to improve
31:21
here um to improve
31:21
here um to improve coverage and the last is also that you
31:24
coverage and the last is also that you
31:24
coverage and the last is also that you have some extra context in the latest
31:27
have some extra context in the latest
31:27
have some extra context in the latest versions of at least I think also rer
31:29
versions of at least I think also rer
31:29
versions of at least I think also rer where you can see which fils or lines
31:30
where you can see which fils or lines
31:30
where you can see which fils or lines were changed within if you open a
31:32
were changed within if you open a
31:32
were changed within if you open a certain brange now there's also some AI
31:35
certain brange now there's also some AI
31:35
certain brange now there's also some AI power tools because with the rise of AI
31:37
power tools because with the rise of AI
31:37
power tools because with the rise of AI we also have a rise of AI review tools I
31:40
we also have a rise of AI review tools I
31:40
we also have a rise of AI review tools I haven't taken a look at them yet also
31:42
haven't taken a look at them yet also
31:42
haven't taken a look at them yet also because it's often a bit complicated to
31:43
because it's often a bit complicated to
31:43
because it's often a bit complicated to just go around in your company with a
31:46
just go around in your company with a
31:46
just go around in your company with a new AI tool that may or may not use your
31:48
new AI tool that may or may not use your
31:48
new AI tool that may or may not use your data um but I would definitely recommend
31:51
data um but I would definitely recommend
31:51
data um but I would definitely recommend to have a look at them and see how they
31:52
to have a look at them and see how they
31:52
to have a look at them and see how they can help you um because also they can
31:55
can help you um because also they can
31:55
can help you um because also they can help you save time on reviews
31:59
help you save time on reviews
31:59
help you save time on reviews now we also need to write some good
32:01
now we also need to write some good
32:01
now we also need to write some good commands and whenever we give feedback
32:04
commands and whenever we give feedback
32:04
commands and whenever we give feedback what I often see is um and what I don't
32:07
what I often see is um and what I don't
32:08
what I often see is um and what I don't like to see is the word you and bold
32:10
like to see is the word you and bold
32:10
like to see is the word you and bold statement so if you look at this example
32:12
statement so if you look at this example
32:12
statement so if you look at this example here this is quite a bold
32:15
here this is quite a bold
32:15
here this is quite a bold statement um and it doesn't sound very
32:17
statement um and it doesn't sound very
32:17
statement um and it doesn't sound very friendly it actually sounds quite harsh
32:21
friendly it actually sounds quite harsh
32:21
friendly it actually sounds quite harsh um however that's also the problem if
32:24
um however that's also the problem if
32:24
um however that's also the problem if you use youu it can be interpreted as a
32:25
you use youu it can be interpreted as a
32:25
you use youu it can be interpreted as a direct attack which makes people
32:27
direct attack which makes people
32:27
direct attack which makes people defensive and less likely to
32:29
defensive and less likely to
32:29
defensive and less likely to cooperate cooperate um whereas we is
32:32
cooperate cooperate um whereas we is
32:32
cooperate cooperate um whereas we is about Collective ownership it's about
32:34
about Collective ownership it's about
32:34
about Collective ownership it's about collaboration so you're already hey we
32:37
collaboration so you're already hey we
32:37
collaboration so you're already hey we made a weird Choice even though of
32:39
made a weird Choice even though of
32:39
made a weird Choice even though of course implicit it's the person who made
32:41
course implicit it's the person who made
32:41
course implicit it's the person who made the changes you didn't make the changes
32:43
the changes you didn't make the changes
32:43
the changes you didn't make the changes but it's about the
32:45
but it's about the
32:45
but it's about the collective and the same goes for bold
32:47
collective and the same goes for bold
32:47
collective and the same goes for bold statements if I make a bold statement
32:49
statements if I make a bold statement
32:49
statements if I make a bold statement there's also a a chance that I'm wrong
32:53
there's also a a chance that I'm wrong
32:53
there's also a a chance that I'm wrong because nobody's perfect everybody makes
32:55
because nobody's perfect everybody makes
32:55
because nobody's perfect everybody makes mistakes and it's I personally don't
32:58
mistakes and it's I personally don't
32:58
mistakes and it's I personally don't like to be wrong and I also don't like
33:01
like to be wrong and I also don't like
33:01
like to be wrong and I also don't like it when other people are making balse
33:02
it when other people are making balse
33:02
it when other people are making balse statements and are wrong it makes them
33:04
statements and are wrong it makes them
33:04
statements and are wrong it makes them look like a fool use questions instead
33:08
look like a fool use questions instead
33:08
look like a fool use questions instead the nice thing about asking a question
33:09
the nice thing about asking a question
33:09
the nice thing about asking a question that you also allow the other person to
33:11
that you also allow the other person to
33:11
that you also allow the other person to explain why they made a certain decision
33:13
explain why they made a certain decision
33:13
explain why they made a certain decision and or come to the same conclusion that
33:15
and or come to the same conclusion that
33:15
and or come to the same conclusion that you might want to if them themselves
33:17
you might want to if them themselves
33:17
you might want to if them themselves instead you chose the wrong framework
33:20
instead you chose the wrong framework
33:20
instead you chose the wrong framework why did we choose why I understood X is
33:22
why did we choose why I understood X is
33:22
why did we choose why I understood X is more actively maintained this is so much
33:25
more actively maintained this is so much
33:25
more actively maintained this is so much more friendly and so much more likely to
33:26
more friendly and so much more likely to
33:27
more friendly and so much more likely to get a positive response rather than a
33:29
get a positive response rather than a
33:29
get a positive response rather than a defensive response
33:33
defensive response
33:33
defensive response and this uh again also
33:37
and this uh again also
33:37
and this uh again also improves yeah the reason that people
33:39
improves yeah the reason that people
33:39
improves yeah the reason that people will listen to your the the likeliness
33:42
will listen to your the the likeliness
33:42
will listen to your the the likeliness that people will listen to your
33:44
that people will listen to your
33:44
that people will listen to your suggestions another thing is to stay
33:47
suggestions another thing is to stay
33:47
suggestions another thing is to stay away from vague comments can you improve
33:49
away from vague comments can you improve
33:49
away from vague comments can you improve this I don't like this I don't like it
33:52
this I don't like this I don't like it
33:52
this I don't like this I don't like it uh can we do this
33:55
different it's very it only adds
33:59
different it's very it only adds
33:59
different it's very it only adds fakeness and it can be interpreted in
34:01
fakeness and it can be interpreted in
34:01
fakeness and it can be interpreted in multiple ways try to stay away from
34:03
multiple ways try to stay away from
34:03
multiple ways try to stay away from these words like this or it um and it's
34:05
these words like this or it um and it's
34:05
these words like this or it um and it's a small effort to just write down what
34:06
a small effort to just write down what
34:06
a small effort to just write down what you meant and it reduces the chances of
34:09
you meant and it reduces the chances of
34:09
you meant and it reduces the chances of miscommunication which again reduces
34:11
miscommunication which again reduces
34:11
miscommunication which again reduces time wasted of figuring out what is
34:13
time wasted of figuring out what is
34:13
time wasted of figuring out what is meant as well and the best way to do
34:15
meant as well and the best way to do
34:15
meant as well and the best way to do this what I usually do and this also
34:17
this what I usually do and this also
34:17
this what I usually do and this also goes further than just Bo requests
34:18
goes further than just Bo requests
34:18
goes further than just Bo requests always reread whatever email slack
34:21
always reread whatever email slack
34:21
always reread whatever email slack message teams message or command you
34:23
message teams message or command you
34:24
message teams message or command you written whether it's not mul whether
34:26
written whether it's not mul whether
34:26
written whether it's not mul whether they are not multiple interpretations
34:28
they are not multiple interpretations
34:28
they are not multiple interpretations possible um because miscommunication is
34:32
possible um because miscommunication is
34:33
possible um because miscommunication is really uh a a source of possible bugs
34:36
really uh a a source of possible bugs
34:36
really uh a a source of possible bugs and then issues always try and and also
34:39
and then issues always try and and also
34:40
and then issues always try and and also when you say you don't like something
34:41
when you say you don't like something
34:41
when you say you don't like something try to provide an alternative solution
34:42
try to provide an alternative solution
34:42
try to provide an alternative solution as well don't be like I don't like it
34:44
as well don't be like I don't like it
34:44
as well don't be like I don't like it try to think along with the person
34:46
try to think along with the person
34:46
try to think along with the person rather than just telling them it's wrong
34:47
rather than just telling them it's wrong
34:47
rather than just telling them it's wrong that also again much more
34:50
that also again much more
34:51
that also again much more Cooperative another good feature uh the
34:53
Cooperative another good feature uh the
34:53
Cooperative another good feature uh the use of suggestions most VCS tools have
34:55
use of suggestions most VCS tools have
34:55
use of suggestions most VCS tools have this for gitlab is the second button
34:58
this for gitlab is the second button
34:58
this for gitlab is the second button where you can immediately already
34:59
where you can immediately already
34:59
where you can immediately already propose a change and that person can
35:01
propose a change and that person can
35:01
propose a change and that person can then use a button to immediately apply
35:04
then use a button to immediately apply
35:04
then use a button to immediately apply that
35:04
that
35:04
that change and this has two advantages the
35:07
change and this has two advantages the
35:07
change and this has two advantages the first one is that the person who is has
35:11
first one is that the person who is has
35:11
first one is that the person who is has to make the changes doesn't have to go
35:12
to make the changes doesn't have to go
35:12
to make the changes doesn't have to go in the code figure out where it is make
35:14
in the code figure out where it is make
35:14
in the code figure out where it is make the
35:15
the
35:15
the change and the reviewer doesn't have to
35:17
change and the reviewer doesn't have to
35:17
change and the reviewer doesn't have to go look at the pr request again and see
35:20
go look at the pr request again and see
35:20
go look at the pr request again and see whether the change was done correctly so
35:22
whether the change was done correctly so
35:22
whether the change was done correctly so you save time on two sides which is very
35:24
you save time on two sides which is very
35:24
you save time on two sides which is very useful there's one caveat though that
35:26
useful there's one caveat though that
35:26
useful there's one caveat though that you don't want to to you should at least
35:29
you don't want to to you should at least
35:29
you don't want to to you should at least make sure that if somebody renames
35:31
make sure that if somebody renames
35:31
make sure that if somebody renames suggests to rename a variable there will
35:33
suggests to rename a variable there will
35:33
suggests to rename a variable there will always also be usages and this is of
35:35
always also be usages and this is of
35:36
always also be usages and this is of course not a smart refactoring which
35:38
course not a smart refactoring which
35:38
course not a smart refactoring which means that you might want to point out
35:39
means that you might want to point out
35:39
means that you might want to point out oh don't forget to rename its
35:44
usages now I was at the conference
35:47
usages now I was at the conference
35:47
usages now I was at the conference recently and there was uh somebody named
35:50
recently and there was uh somebody named
35:50
recently and there was uh somebody named fek who also mentioned something called
35:52
fek who also mentioned something called
35:52
fek who also mentioned something called conventional commands which there's
35:53
conventional commands which there's
35:53
conventional commands which there's commits but there's also commands and it
35:56
commits but there's also commands and it
35:56
commits but there's also commands and it helps to structure
35:58
helps to structure
35:58
helps to structure Prest commands and what I specifically
36:00
Prest commands and what I specifically
36:00
Prest commands and what I specifically like about this is indicating whether a
36:03
like about this is indicating whether a
36:03
like about this is indicating whether a a command you made is
36:05
a command you made is
36:05
a command you made is is important or whether it's just a very
36:08
is important or whether it's just a very
36:08
is important or whether it's just a very minor style issue which I mean it's okay
36:11
minor style issue which I mean it's okay
36:11
minor style issue which I mean it's okay if it's not
36:12
if it's not
36:12
if it's not implemented because this helps the
36:14
implemented because this helps the
36:14
implemented because this helps the reviewer again okay I don't have to need
36:16
reviewer again okay I don't have to need
36:16
reviewer again okay I don't have to need to have a discussion about this okay
36:18
to have a discussion about this okay
36:18
to have a discussion about this okay it's a nitpic
36:19
it's a nitpic
36:19
it's a nitpic or whatever versus or this is blocking I
36:22
or whatever versus or this is blocking I
36:22
or whatever versus or this is blocking I really need to fix
36:24
really need to fix
36:24
really need to fix this uh and the nice thing about this
36:27
this uh and the nice thing about this
36:27
this uh and the nice thing about this again consistency which is always great
36:29
again consistency which is always great
36:29
again consistency which is always great um besides
36:31
um besides
36:31
um besides that PR requests are not happy are not
36:35
that PR requests are not happy are not
36:35
that PR requests are not happy are not always very happy you're always telling
36:36
always very happy you're always telling
36:36
always very happy you're always telling about things that went wrong it's
36:38
about things that went wrong it's
36:38
about things that went wrong it's important to also tell what went right
36:41
important to also tell what went right
36:41
important to also tell what went right try to find something
36:43
try to find something
36:43
try to find something positive um and that can be anything
36:46
positive um and that can be anything
36:46
positive um and that can be anything maybe you're happy about the feature
36:47
maybe you're happy about the feature
36:47
maybe you're happy about the feature they implemented maybe the pr request is
36:49
they implemented maybe the pr request is
36:49
they implemented maybe the pr request is nice and concise maybe you learned a new
36:52
nice and concise maybe you learned a new
36:52
nice and concise maybe you learned a new about a new API call or maybe
36:54
about a new API call or maybe
36:54
about a new API call or maybe you learned a new way to write things
36:57
you learned a new way to write things
36:57
you learned a new way to write things maybe you're just happy that somebody
36:58
maybe you're just happy that somebody
36:58
maybe you're just happy that somebody did something that you really didn't
37:00
did something that you really didn't
37:00
did something that you really didn't want to do and then anything more than
37:03
want to do and then anything more than
37:03
want to do and then anything more than just that looks good to me is really
37:04
just that looks good to me is really
37:04
just that looks good to me is really helpful here tell show some appreciation
37:06
helpful here tell show some appreciation
37:06
helpful here tell show some appreciation because in the end um first s a layer
37:09
because in the end um first s a layer
37:09
because in the end um first s a layer friendliness which also means people are
37:10
friendliness which also means people are
37:10
friendliness which also means people are more likely to listen to all the other
37:14
more likely to listen to all the other
37:14
more likely to listen to all the other things you suggested and what's also
37:16
things you suggested and what's also
37:17
things you suggested and what's also really important it really boosts their
37:18
really important it really boosts their
37:18
really important it really boosts their confidence people's confidence
37:20
confidence people's confidence
37:20
confidence people's confidence especially in your time where you see a
37:21
especially in your time where you see a
37:21
especially in your time where you see a lot of imposter syndrome and people
37:23
lot of imposter syndrome and people
37:23
lot of imposter syndrome and people being
37:25
being
37:25
being uncertain it really helps them to get
37:28
uncertain it really helps them to get
37:28
uncertain it really helps them to get again more confidence which helps you on
37:30
again more confidence which helps you on
37:30
again more confidence which helps you on the long way as
37:32
the long way as
37:32
the long way as well so having covered PO requests
37:34
well so having covered PO requests
37:34
well so having covered PO requests there's one more thing that I want to
37:36
there's one more thing that I want to
37:36
there's one more thing that I want to cover which is bik
37:38
cover which is bik
37:38
cover which is bik shedding and um I'll be quick because I
37:42
shedding and um I'll be quick because I
37:42
shedding and um I'll be quick because I see I'm running a bit close in time bike
37:45
see I'm running a bit close in time bike
37:45
see I'm running a bit close in time bike shelling also known as the law of
37:46
shelling also known as the law of
37:46
shelling also known as the law of triviality is about um the fact that
37:49
triviality is about um the fact that
37:49
triviality is about um the fact that people give a disproportionate amount of
37:50
people give a disproportionate amount of
37:50
people give a disproportionate amount of time on trivial issues um the story
37:54
time on trivial issues um the story
37:54
time on trivial issues um the story comes from a bike shed or a a company
37:58
comes from a bike shed or a a company
37:58
comes from a bike shed or a a company board meeting where they spend more time
38:00
board meeting where they spend more time
38:00
board meeting where they spend more time discussing the bike shed of the company
38:01
discussing the bike shed of the company
38:01
discussing the bike shed of the company rather than the power plant project that
38:03
rather than the power plant project that
38:03
rather than the power plant project that they should be discussing because it's
38:05
they should be discussing because it's
38:05
they should be discussing because it's easier to discuss something that you
38:06
easier to discuss something that you
38:06
easier to discuss something that you know will affect you which are things
38:08
know will affect you which are things
38:08
know will affect you which are things like hey is equals an empty string or is
38:11
like hey is equals an empty string or is
38:11
like hey is equals an empty string or is empty which are exactly the same they do
38:14
empty which are exactly the same they do
38:14
empty which are exactly the same they do the same and it just in the end it
38:16
the same and it just in the end it
38:16
the same and it just in the end it doesn't really matter which you choose
38:18
doesn't really matter which you choose
38:18
doesn't really matter which you choose as long as you're consistent and all
38:20
as long as you're consistent and all
38:20
as long as you're consistent and all these commands at a lot of noise so one
38:23
these commands at a lot of noise so one
38:23
these commands at a lot of noise so one of the things to reduce this noise is to
38:26
of the things to reduce this noise is to
38:26
of the things to reduce this noise is to automate parts of this
38:28
automate parts of this
38:28
automate parts of this for example through uh enforcing
38:30
for example through uh enforcing
38:30
for example through uh enforcing formatting and I learned that actually
38:33
formatting and I learned that actually
38:33
formatting and I learned that actually so that I must admit um in net or in C
38:38
so that I must admit um in net or in C
38:38
so that I must admit um in net or in C the editor and the rosling compiler and
38:40
the editor and the rosling compiler and
38:40
the editor and the rosling compiler and everything around it already have so
38:41
everything around it already have so
38:41
everything around it already have so much in there that help you write proper
38:44
much in there that help you write proper
38:44
much in there that help you write proper code and write consistent code um that
38:47
code and write consistent code um that
38:47
code and write consistent code um that was really impressive so I had a lot
38:48
was really impressive so I had a lot
38:48
was really impressive so I had a lot less tools to add here
38:51
less tools to add here
38:51
less tools to add here um try to stay as close to Industry
38:53
um try to stay as close to Industry
38:53
um try to stay as close to Industry standards and en force it I I learned
38:56
standards and en force it I I learned
38:56
standards and en force it I I learned that you can do this addor config and
38:58
that you can do this addor config and
38:58
that you can do this addor config and something like net format add this to
39:01
something like net format add this to
39:01
something like net format add this to the build as well and make sure that it
39:03
the build as well and make sure that it
39:03
the build as well and make sure that it fills when it's not formatted just so
39:05
fills when it's not formatted just so
39:05
fills when it's not formatted just so that everybody the code is always
39:07
that everybody the code is always
39:07
that everybody the code is always formatted then you also don't need to
39:09
formatted then you also don't need to
39:09
formatted then you also don't need to spend time on this during reviews which
39:12
spend time on this during reviews which
39:12
spend time on this during reviews which again say time in the long run the other
39:14
again say time in the long run the other
39:14
again say time in the long run the other one that I briefly wanted to mention is
39:16
one that I briefly wanted to mention is
39:16
one that I briefly wanted to mention is Arch unit this is both for Java and net
39:19
Arch unit this is both for Java and net
39:19
Arch unit this is both for Java and net available and it allows you to test your
39:21
available and it allows you to test your
39:21
available and it allows you to test your architecture so in net it looks a bit
39:24
architecture so in net it looks a bit
39:24
architecture so in net it looks a bit like this where you can Define
39:27
like this where you can Define
39:27
like this where you can Define uh packages so say there's the namespace
39:29
uh packages so say there's the namespace
39:30
uh packages so say there's the namespace surface and there's the namespace
39:31
surface and there's the namespace
39:31
surface and there's the namespace controller and typically you always say
39:34
controller and typically you always say
39:34
controller and typically you always say uh you cannot talk from the service to
39:37
uh you cannot talk from the service to
39:37
uh you cannot talk from the service to web it's always from web to service it's
39:39
web it's always from web to service it's
39:39
web it's always from web to service it's an architecture and you can enforce this
39:41
an architecture and you can enforce this
39:41
an architecture and you can enforce this in the unit that's by saying hey any
39:44
in the unit that's by saying hey any
39:44
in the unit that's by saying hey any types that are defined in the service
39:45
types that are defined in the service
39:45
types that are defined in the service layer should not depend on any types
39:47
layer should not depend on any types
39:47
layer should not depend on any types that are defined in the web layer and
39:50
that are defined in the web layer and
39:50
that are defined in the web layer and this way you can sort of create more
39:51
this way you can sort of create more
39:51
this way you can sort of create more consistently which saves time in Rees
39:53
consistently which saves time in Rees
39:54
consistently which saves time in Rees again because you don't have to pay
39:54
again because you don't have to pay
39:55
again because you don't have to pay attention to this same for naming of
39:58
attention to this same for naming of
39:58
attention to this same for naming of again the nice thing net is quite widely
40:01
again the nice thing net is quite widely
40:01
again the nice thing net is quite widely the convention to start with an i
40:02
the convention to start with an i
40:02
the convention to start with an i whereas in Java you have four more ways
40:04
whereas in Java you have four more ways
40:04
whereas in Java you have four more ways to Define interface and every company
40:06
to Define interface and every company
40:06
to Define interface and every company use a different
40:07
use a different
40:07
use a different one um only have if you only have one
40:11
one um only have if you only have one
40:11
one um only have if you only have one then there's no room for discussion so
40:13
then there's no room for discussion so
40:13
then there's no room for discussion so whenever you start introducing these
40:14
whenever you start introducing these
40:14
whenever you start introducing these tools it still is good to evolve the
40:18
tools it still is good to evolve the
40:18
tools it still is good to evolve the team add some example poqu to discuss
40:22
team add some example poqu to discuss
40:22
team add some example poqu to discuss the rule sets and things you like or not
40:24
the rule sets and things you like or not
40:24
the rule sets and things you like or not um so that everybody's on
40:26
um so that everybody's on
40:26
um so that everybody's on board and then to sort of conclude um I
40:31
board and then to sort of conclude um I
40:31
board and then to sort of conclude um I think it's important to write
40:32
think it's important to write
40:32
think it's important to write descriptive PO requests and also to
40:34
descriptive PO requests and also to
40:34
descriptive PO requests and also to review them yourself to catch already
40:36
review them yourself to catch already
40:36
review them yourself to catch already the first mistakes um be specific in
40:39
the first mistakes um be specific in
40:39
the first mistakes um be specific in your communication and but also be
40:42
your communication and but also be
40:42
your communication and but also be friendly try to find the positive things
40:44
friendly try to find the positive things
40:44
friendly try to find the positive things show your
40:45
show your
40:45
show your gratitude uh show your appreciation to
40:48
gratitude uh show your appreciation to
40:48
gratitude uh show your appreciation to the people around
40:49
the people around
40:49
the people around you then use the features of your editor
40:52
you then use the features of your editor
40:52
you then use the features of your editor and your VCS to to help you review don't
40:54
and your VCS to to help you review don't
40:54
and your VCS to to help you review don't forget to check the code confer check if
40:56
forget to check the code confer check if
40:56
forget to check the code confer check if the tests are also properly
40:58
the tests are also properly
40:58
the tests are also properly reviewed and then at the end uh stop
41:01
reviewed and then at the end uh stop
41:01
reviewed and then at the end uh stop bike shedding stop having pedy
41:03
bike shedding stop having pedy
41:03
bike shedding stop having pedy discussions about tiny things automated
41:05
discussions about tiny things automated
41:05
discussions about tiny things automated away if you can automated then you
41:07
away if you can automated then you
41:07
away if you can automated then you cannot have the
41:08
cannot have the
41:08
cannot have the discussion and that's
41:10
discussion and that's
41:10
discussion and that's it uh thanks a lot


