Code Reviews are a great way to use the experience and knowledge of a team to create good software. Not all review processes are enjoyable, though.

Here are 6 tips to make your review process better and more enjoyable for everyone!

🧵🔽 Two developers sitting at a...
1️⃣ Make Expectations Clear

A good review process should both be standardized and individual. The terms of the process should be written down and transparent for everyone on the team. Each team member should know what is expected of them and all team members should agree ...
... on the terms. Changing the terms should always be a democratic process within the team. If the team disagrees on changes or terms, it should discuss the issues until there is consent.

On the other hand, the process should be flexible enough to allow for individuality.
Reviewees should be able to ask for more in a specific review when they see the need for it. Sometimes, very important features or complex problems need more characteristics reviewed than usual.
2️⃣ Don't Demand Changes, Make Suggestions And Explain

To make a review an inclusive process, making suggestions is better than simply demanding changes. If reviewers simply demand changes without explaining why, they lift themselves a level above the reviewee and give ...
... them a feeling of having to justify themselves. This can go so far that reviewees stop using their own thoughts and style of problem-solving and instead use a way that guarantees them the most positive review experience. In the long run, it hurts the team and the product.
So, instead of stating "You must change this", it's better to go with "If we did it this way [suggestion here], we could solve issue x and y I can imagine arising when we further go down the current route."
3️⃣ Be Open For Discussions

A healthy discussion can do wonders. Individual issues found in reviews should be discussable. Every participant should have the chance to state their opinion and give reasons for why they think their solution is a good idea.
Those discussions should go for as long as necessary until all participants can agree on a solution. No individual team member should have the power to simply end a discussion. A discussion is finished when it is finally solved and a solution can be implemented.
4️⃣ Eliminate Personal Code Authorship

All source code should belong to the whole team. No individual code ownership should exist. Personal code ownership can lead to developers taking criticism personally, especially in reviews.
The whole team is responsible to create a good and maintainable product. Bad code is the mistake of the whole team, never of only one individual.

Developers create code on behalf of the team and reviewers ensure that the team's code meets certain criteria.
Switching to this mental model of "our code", and not "my code", can enable developers to focus more on the overall goal and less on the personal aspects of being hurt when whatever they produce does not pass a review flawlessly.
5️⃣ Reserve Enough Time

A review should never be rushed. If it takes an hour of focused work to do a review, then be it. Even if a review takes two or more hours, it's necessary.

A rushed review can lead to many issues being overlooked which in return hurts ...
... the team later, either by leading to errors in a staging environment or even worse in production.

This is also something management usually needs to understand. A review is a part of quality assurance. Cutting time for it hurts the overall quality and maintainability.
6️⃣ Automate The Boring Stuff

Checking for code style or common security issues should be automated. Style issues can be overlooked in reviews too easily and spotting even the most obvious security flaws is sometimes difficult.
Automated pipelines can run whenever a review is created. Checkmarks in the review then show reviewers whether basic checks succeeded or failed. They can then concentrate on everything that can't easily be automated and have overall less to do.
7️⃣ Quick Recap

Now that we are through, let's do a quick recap of the six tips that will help you to make your review process better and more enjoyable.
- Make Expectations Clear
- Don't Demand Changes, Make Suggestions And Explain
- Be Open For Discussions
- Eliminate Personal Code Authorship
- Reserve Enough Time
- Automate The Boring Stuff
And now, try to implement some of those tips and you will see how much better your review experience will become!

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Oliver Jumpertz

Oliver Jumpertz Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @oliverjumpertz

18 Feb
Proof-Of-Work is the name of a cryptographic algorithm that is used for some blockchains when new blocks are to be appended to the chain.

Let's take a higher-level look at how this one works, shall we?

🧵🔽
1️⃣ The Basics

This algorithm creates a system in which one party (the prover) has to prove to one or multiple other parties (the verifiers) that they put in a certain amount of work for some purpose.
The work the prover has to put in is moderately hard to very hard, while the verifiers can pretty easily check whether the proof is correct. This creates an asymmetric system.

The original idea was to create protection against DDoS attacks and spam.
Read 18 tweets
17 Feb
What are **some** possible applications of Blockchain technology?

Are there only cryptocurrencies? Are there more possible applications? Let's take a look at three possible applications outside of finance here to give you a general idea of what is possible.

🧵🔽
0️⃣ Foreword

A blockchain can be used to solve a lot of problems. Cryptocurrencies are only one possible way of applying the technology but there is way more to it.

We can take a look at some possible applications and what they each provide to users.
1️⃣ Social Networks

The current generation of social networks is centralized. Whether we talk about Facebook, Twitter, Instagram, TikTok, or whatever else. They all own your account, your content, your followers, and everything else.
Read 19 tweets
16 Feb
What actually is a Blockchain?

Bitcoin is breaking record after record, but there must be more to the technology than just crypto, or not? Well, we can take a look at the underlying technology first to understand what it actually provides to us.

🧵⬇️
1️⃣ Foreword

This will be a high-level overview to give you an intro to blockchain technology. With further threads, we will dive deeper and deeper, so don't be sad if something you really looked forward to isn't included as detailed as you would have wished for, yet!
2️⃣ Client-Server Architecture

Before we dive into blockchain technology, we should take a look at how most of the internet works. We need this to understand the fundamental differences between a traditional model and the change blockchain technology brings.
Read 29 tweets
13 Feb
What actually is the cloud?

Perhaps you have already thought about it or never felt the need to. However, taking a look at it might be worth some of your time.

Want to join me? Great, then let's go!

🧵🔽
1️⃣ Foundations

Have you ever bought a new computer or notebook? You pick a machine suitable for your needs, place an order and wait that it arrives. If it's a gaming PC, you'll sometimes have to build it yourself. That machine has to be placed, plugged in, needs to ...
... have it peripherals connected, etc.

It's the same process for servers. A server is nothing else than a computer that is specifically designed to run 24/7, host some form of software, be connected to a network, and so on. As it has some pretty special requirements ...
Read 19 tweets
11 Feb
AWS Lambda is an awesome offering. You provide the code, AWS handles the infrastructure and execution for you.

But where is your code actually executed? How does AWS do it?

I recently tried to find it out for myself, and this thread is the result of what I learned!

🧵⏬
1️⃣ Thinking about Lambda

We know that we can write a script that looks like below, and then upload it to AWS while they take care of everything else.

And from simply looking at the code, it doesn't look like the usual API method we'd implement in Express.
We're exporting a function, so something else must take our code, import it, and then handle everything else. 🤔

Conclusion number one:
Something must run our code.
Read 29 tweets
6 Feb
Here are _some_ of the most essential git operations you will need when working as a developer.

🧵🔽
1️⃣ Create A New Repository

This is the most basic command you'll need. When you start a repository locally, your start with git init. # Initialize a new repository git init
2️⃣ Clone A Repository

You can clone a remote repository to get a local copy of it. Your local repository is connected to the remote one so you can pull in changes and push yours to the remote. # Copies the repository from the remote location and links y
Read 15 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!

Follow Us on Twitter!