In my previous blog, I introduced the CI/CD (Continuous Integration/Continuous Delivery) tool GitLab from the point of view of efficiency/quality improvement. In this blog, I would like to explore the history of this introduction. The turning point is the increasing adoption of working-at-home due to the coronavirus pandemic in 2020. At Renesas, our mission is to support and facilitate the increased ratio of working from home in order to protect our developers’ health.
However, the implementation of working from home presented a tremendous challenge at first for us, and through experience, we were able to identify two major challenges as below.
How to implement working from home
- Technical aspect (which tools to use, how to configure the network, etc.)
- Management aspect (how to maintain strict export control, etc.)
To address 1), here are our consideration and measure.
Consideration:
- Must build a remote environment that can support debugging and evaluation on MCU boards.
- Must identify an appropriate tool to achieve this.
GitLab was recommended to us by our software development teams in America, who are close to the origin of software development.
Measure:
- Introduce GitLab to Japan and other regions
I gave an example in the previous blog about the actual system configuration.
For 2), our consideration and measures are as below.
Consideration:
- All design data are aggregated into GitLab.
The design data contains the technologies subject to export control, such as “cryptographic technology”, “wireless technology”, “audio compression technology”, and so on.
- Renesas develops software products in cooperation with designers in Japan and overseas, internally, and externally.
Conventionally, we had carried out export control of each target technology to each target user. However, when aggregating/releasing data in GitLab, more comprehensive management was needed for efficient operation.
Measures:
- Clearly categorize data in GitLab between technologies subject/non-subject to export control.
- Set the attribute (domestic/overseas/internal/external) to every developer’s account.
- By combining A) and B), the access is controlled appropriately according to export control.
If we addressed only 1), efficiency/quality would be improved only within internal development teams. However, by addressing 2) as well, we can configure various points of connections outside of our development teams, and as a result, the ratio of remote developers is increasing regardless of whether they belong to internal teams or not. In my department, the ratio of working from home has reached greater than 70% since 2020, and it has steadily increased in the last year. Moreover, members in oversea branches and partner companies have also gained the ability to work from home. While I write this blog, our developers in Singapore and Vietnam are developing software for the RX MCU by using the remote environment placed in the Musashi office.
This success could not have been achieved by development teams alone. To overcome various logistical challenges, we had to collaborate with the IT team, the legal team, and so on. Through hard work on process adoption, we have not only improved the efficiency/quality of development but also reduced the risk of COVID-19 infection to developers by working from home.
When we faced the COVID-19 pandemic, the first thought in my mind was to protect our developers on development teams. After achieving a certain level of success, I casually reviewed the status and realized the side benefit is that work-life balance has been improved because of time saved on commuting. On the other hand, the lack of communication seems to have increased within the development team.
New challenges are to be tackled with new measures. We will keep on in this direction, and increase adoption of the modern development style by introducing the latest development technologies to complement our products.