About Fixstars Corporation
Fixstars Corporation, a leader in software acceleration services, has worked with major domestic companies in Japan in fields such as automotive, medical care, and finance. To manage highly confidential client source code, the company's version control system uses an on-premises version of GitLab Enterprise. Fixstars also develops software in various programming languages such as C/C++ and Python in accordance with customer requirements.
Why did you choose Sider?
I decided to give Sider a try because it started to support C/C++ that I use for implementation and to support GitLab, which was part of our company's standard development environment. Since it was being offered by Sider Corporation with which we were connected, it made sense to go ahead.
I was aware of tools that incorporated CI on GitLab, but it was surprisingly difficult to implement. It took a lot longer than expected, so I never used it. In contrast, Sider was easy to install and only took a few clicks to get it up and running on some projects.
3 things that stood out about Sider are:
- it’s easy to create custom rules for coding that meet project requirements
- code corrections can be immediately taken care of since each merge request triggers code review notifications
- it supports multiple languages including C/C++ and Python
The impact of Sider
At Fixstars Corporation, we provide consistent support from algorithm development to processor implementation for our clients. Most of the projects I am in charge of are for embedded devices. The algorithms are developed in languages like Python, but for embedded processors, implementation is often done in C/C++.
In a recent project that involved the development of an image processing algorithm, we conducted code reviews about 1-2 times a week for 2-3 hours each time. This was without Sider. Sometimes the review took more than a day. Some of the review items were essential with much substance, but there was an inordinate amount that was format-related, such as indentations and comment formats. Because of this, we were not able to allocate sufficient time to complete the manual code review, and I felt the quality of the reviews deteriorated. Also, during a subsequent review, I would notice some errors I had overlooked in a previous review.
We introduced Sider when we finished developing the image processing algorithm, but also right before we were about to move to the implementation stage using C. Without changing the business flow or review flow using Git, we made sure our members made corrections suggested by Sider as much as possible before code review. With Sider in place, we were able to prevent many small and/or inadvertent mistakes before entering the review. Since this client didn’t provide specific coding guidelines, I created custom rules in Sider based on my past experience with them, and applied the rules accordingly. I also applied one of Sider’s default rules, which was to disable rules that were considered too expensive to support. For example, I disabled rules to do with coding style, such as ‘include copyright info at the beginning of a file’, or ‘include guard naming convention’.
Coding rules for Sider can be selected in the configurations file, and by choosing the appropriate level, it was possible to have it point out things that had been neglected in previous reviews.
1) 50% reduction in code review time
By having Sider perform these checks prior to reviews, the reviews that used to take 2-3 hours every week were being completed in about 1.5 hours, which is a 30-50% reduction in review time.
2) Fewer careless errors, consistent and repeated detection of simple mistakes
Sider has helped prevent performance degradation. For example, in functions such as
fabs() that are prepared for multiple variable types, there are times when double type functions are used when in fact they should have been float type functions. These are things I would address during code reviews, but I would not always catch them. With Sider, I can consistently spot them and prevent careless errors.
3) Relieving stress between team members
Personally, I'm happy that I no longer have to repeatedly point out simple errors. It was a huge mental burden, and very stressful because it put a strain on my relationship with the team. But since these are now all automated by Sider, it has made it much easier to communicate with other members.
Try Sider for free
Sign up now, no credit card required!