Code Reviews are an awesome 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!
🧵🔽
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 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!
And if you like this content, leave a like and retweet. And if you want more of this, feel free to follow me!
• • •
Missing some Tweet in this thread? You can try to
force a refresh
I started to take Twitter seriously last year. Within one year I learned a lot about what advantages having an online presence can actually have.
Here are 4 of the more important things that happen when you build your online presence.
🧵👇🏻
1️⃣ You Make Friends
When you interact with other people online, you start to slowly build a connection. You get to know each other and at some point, you perhaps even have a call or a video meeting. This is where strangers can become friends.
Those are the people who interact with you frequently and with whom you have the best discussions. They are there to help when you need them, always.
Those internet friends can also be the ones opening up opportunities to you.
From time to time you read the term Web 3.0. For many of us, however, this term is still mysterious.
Time to shed some light on it and explain what it actually is all about!
🧵👇🏻
0️⃣ The Web Today
The web as we know it today is actually already Web 2.0. It is an extension of the original Web (1.0). In the beginning, the web was meant for websites to provide the information and users to consume it.
Web 2.0 changed this and brought the user into the game.
Users started to create the content themselves while websites became the platform to distribute this new type of content instead of only consuming information.
Especially social media made Web 2.0 a reality and kick-started an evolution that still goes on today.
Consensus algorithms are actually a necessity for blockchains to function properly and are at the heart of any implementation.
And did you know that there are actually quite a few of them? Let's take a look at some interesating ones!
🧵👇🏻
0️⃣ What Is A Consensus Algorithm?
Blockchains are decentralized. There is never a central entity that can decide what is true and what is not. Instead, in a blockchain network, a variety of nodes interact with each other.
As a blockchain usually stores data in a chain of blocks (hence the name), the network must decide what the actual truth is together, This is where consensus algorithms come in. Everyone can append a block. If two participants do it at the same time, the chain is forked.