組み込みにおけるCIの意義

組み込みソフトウェア開発において、CI(継続的インテグレーション)はあまりになじみがないケースもあるかもしれません。ですが、僕は開発効率を上げるうえでとても重要なプラクティスだと思っています。

一般的に、CIのメリットは

小さなサイクルでインテグレーションを繰り返し行い、インテグレーションのエラーを素早く修正することによりチームは統合されたソフトウェアをより迅速に開発できる

と言われています。↓より。

少しコードを変更したらインテグレーションを行って、問題が起きないかをすぐにチェックするということですね。僕自身も見たことがありますが、いろんなチームで開発している部品をリリース直前に結合しようとしたら全く動かない、という事例がありますね。それを防げるのがCIです。

組み込みの場合は常に顧客にソフトウェアを提供するわけじゃないからCIは不要だ、という主張を聞いたことがあります(以前僕もそう思っていました)が、CIはインテグレーションの継続的な実施であるため顧客へのリリースタイミングは関係がありません。CD(継続的デリバリー)が不要、なら、そうかもしれませんね。

というわけで、組み込みにおいてもCIは有効(というか無効になる理由がない)だと考えられます。最近僕が業務で使っている組み込み用の開発ツールもCI対応を普通に入れてきたりしていて、CIと自動テストというのは組み込みの世界でも当たり前になりつつあるんだろなとおもっています。

この記事が気に入ったらサポートをしてみませんか?