
Why Code Review at smartnut.ru?
Hello, Habr! I am one of the developers of SmartNut, a web service for small companies that support and outsource it. We are proud of what we do and no less than the way we do it. I want to share with you a story from real life on the topic code review.
All people inside are perfectionists. If you do not see this in a person, then this does not mean at all that this is not in a person. Perhaps he has a perfect order at home, although he doesn’t write the code very well. The other, on the contrary, can keep order in the code or in the machine, but somewhere to connivance with himself.
However, the easiest way to find a perfectionist in relation to others. It is very simple to demand an ideal job, of course, if you yourself know how to do it well.
The programmer Vasya wrote lines of code, checked them. Perhaps he wrote some tests, or maybe he didn’t. Then, with a calm mind, committed to a common repository. After some time, other programmers, studying the new revision code and seeing what Vasya wrote,opened their veins and made hara-kiri came to Vasya and opened their veins and made hara-kiri telling themselves what was wrong and how it could be done better. Vasya humbly agreed, everyone received satisfaction, but the code remained as it is, because has already been communicated and possibly tested. And it was fixed errors.
Many of us are familiar with eXtreme Programming practices. One of them is pair programming. From experience it is very difficult to fully use this practice - it is difficult to abandon “personal space”, it is difficult to “sell” this practice to superiors (“programmers will work twice as slowly ?!”), etc.
But you can start eating the elephant in parts. The first part is code review!
The programmer Vasya completed the task. For the task to be considered completed, it is necessary that it passes through the code review column on our scrum board.

Thus, we:
And so that there are no questions “who should conduct the Code Review?”, Each iteration we have a person on duty to carry out this procedure.
We do not use any additional tools for Code Review, but always sit down and look at the changes.
Using some tools in this case will only slow down the process. If you are in the same room, then there is no need to engage in email ping-pong - it is much simpler and more understandable to explain everything with words, but better to show it. In addition, personal communication is much more useful for the development of each employee and for the team as a whole.
So we do smartnut.ru and wish you the same.
Be flexible, friends, and see you soon!
All people inside are perfectionists. If you do not see this in a person, then this does not mean at all that this is not in a person. Perhaps he has a perfect order at home, although he doesn’t write the code very well. The other, on the contrary, can keep order in the code or in the machine, but somewhere to connivance with himself.
However, the easiest way to find a perfectionist in relation to others. It is very simple to demand an ideal job, of course, if you yourself know how to do it well.
How our process looked before
The programmer Vasya wrote lines of code, checked them. Perhaps he wrote some tests, or maybe he didn’t. Then, with a calm mind, committed to a common repository. After some time, other programmers, studying the new revision code and seeing what Vasya wrote,
How did
Many of us are familiar with eXtreme Programming practices. One of them is pair programming. From experience it is very difficult to fully use this practice - it is difficult to abandon “personal space”, it is difficult to “sell” this practice to superiors (“programmers will work twice as slowly ?!”), etc.
But you can start eating the elephant in parts. The first part is code review!
The programmer Vasya completed the task. For the task to be considered completed, it is necessary that it passes through the code review column on our scrum board.

Thus, we:
- we get code analysis by another programmer before the commit;
- Improving code design
- transfer knowledge at an early stage;
- we get rid of a number of obvious errors that are invisible to Vasya’s washed eyes.
And so that there are no questions “who should conduct the Code Review?”, Each iteration we have a person on duty to carry out this procedure.
We do not use any additional tools for Code Review, but always sit down and look at the changes.
Using some tools in this case will only slow down the process. If you are in the same room, then there is no need to engage in email ping-pong - it is much simpler and more understandable to explain everything with words, but better to show it. In addition, personal communication is much more useful for the development of each employee and for the team as a whole.
So we do smartnut.ru and wish you the same.
Be flexible, friends, and see you soon!