Cellebrite社 | ソフトウェア開発

Cellebrite社は犯罪捜査や小売店向けに、モバイル端末のデータ抽出サービスを提供する業界のリードカンパニーです。Microsoft Team Foundation Serverを使用し、バージョン管理、ワークアイテムのトラッキング、ビルドの自動化、レポート作成、プロジェクト マネジメントなどを行っています。同社のソースコードは数百のVisual Studioプロジェクトから構成され、およそ80%がネイティブC++、20% がC#ベースです。
 

チャレンジ

<プロセスの変更>
開発を、ゲートチェックイン方式に移行しました。ソースコードのチェックインは、インクリメンタルビルドが正常に実行されるまで行うことができません。ゲートチェックインでは、最新バージョンが常にコンパイルをパスすることが不可欠です。このプロセスを開発者は毎日何度も行いますが、時間がかかる場合はチェックインを先延ばしにしたり、チェックインが終わる前に別のタスクに移る傾向がありました。何もせずにチェックインを待つことは、生産性の面では大きなマイナスです。同社ではインクリメンタルビルドに5〜6分ほどかかっていましたが、これを1分に短縮ことを目標にしました。

<パッケージング>
Cellebrite社のクライアントは、各々が個別にブランドやライセンスを必要としているため、膨大な数の製品を個別にパッケージングして届けなければなりません。コンパイルできたタスクでも、パッケージングの段階で失敗することがあります。Cellebrite社では、パッケージング処理に2時間かかっていました。このため、開発者はチェックインがパッケージングできるかどうか確認するのを避けていました。そこで、10分未満でテスト可能なインストールパッケージを開発者に提供することを目標にしました。

 

ソリューション

Cellebrite社では、長く複雑な次の2つのビルド処理を並列に実行するために、IncrediBuildを利用しています。

コンパイル: ソースコードから実行可能なアーティファクトを生成
パッケージング: クライアント毎にブランディング、ライセンシングされたコンパイルアーティファクトからインストール可能な製品を生成

Cellebrite社は、IncrediBuildをMicrosoft TFSで使用することで、開発プロセスを合理化しました。以前は全てのクライアントに向けて1つの製品をリリースするのに長い時間がかかっていましたが、現在では1時間以内に完全なリリースを行えるようになりました。さらに、コードをチェックインしてから、テスト可能なインストールパッケージを受け取るまでの時間が10分程度に短縮されたので、開発者やQAエンジニアが自分のビルド処理を確認する方法が劇的に変わりました。

 

結果

IncrediBuildによる並列処理がなければ、開発プロセスのスピードアップとその改善は不可能でした。IncrediBuildはビルドとパッケージングの時間を劇的に短縮しました。

  • リリースサイクルの最適化: 完了まで数時間かかっていた、カスタマイズパッケージの製品リリースサイクルが、1時間未満に短縮しました。これによりマーケットに素早く製品を投入でき、主要製品のリリースのために時間を費やせるようになりました。
  • プロセスの大きな改善: コードの規模が小さければチェックインもテストも簡単です。パッケージにバグを発見したら、すぐに破棄して新しいコードで埋めるだけのプロセスに改善しました。
  • ビルドやパッケージング時間の短縮: TFSプロセスの合理化により、CIプラットフォームのスケーリングを可能にし、アジャイル開発を実現しました。
   IncrediBuild 以前  
(すべての処理)
   IncrediBuild 以降 
(すべての処理)
   IncrediBuild 以降 
(インクリメンタル処理)
コンパイル    16 – 17 分    6 分    60 – 80 秒
パッケージング    2 時間    50 分    —

 

「IncrediBuildの導入で、Microsoft® TFSの開発プロセスすべてが劇的に短縮し、開発が効率化され、スケーラブルになりました。IncrediBuildによる並列処理がなければ、開発プロセスのスピードアップとその改善は実現しなかったでしょう。」
Cellebrite シニアALMアーキテクト、Yuval Mazor氏