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 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 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 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 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 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 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 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 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 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: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 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: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 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 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 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 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: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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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: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 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 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 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 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 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 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 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: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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 discussion and that's
41:10
discussion and that's
41:10
discussion and that's it uh thanks a lot