成功事例から学ぶ!隠れた Java 開発支援ツール JRebel の性能

Java 開発支援ツール JRebel 導入事例 

Rogue Wave 社の Java 開発支援製品 JRebel をご活用いただいているお客様であるNetworkedAssets 社の導入事例について紹介します。

テレコム事業者向けソフトウェア開発を手掛ける NetworkedAssets 社

2006 年にベルリンで設立され、大規模な IP ネットワーク (1 兆を超えるユーザー) を扱うテレコム事業者を主な顧客とし、プロセスとデータの統合を主要業務としている NetworkedAssets 社。ドイツ、オーストリア、スウェーデン、ポーランドからなる 26 人の従業員で構成され、そのうちの 22 人が開発者になります (2013 年時点)。さらに Atlassian のエキスパート パートナーとしても活躍しています。

このソフトウェア ハウスは、Unix、Linux で Java、JVM のアプリケーションを開発しています。ネットワークの管理や監視、ネットワーク リソースのプロビジョニング、アクセスポイントへのリソースの配布、ネットワーク管理タスクの自動化、オンデマンド IPTV ソリューションなど、提供するサービスは多岐にわたります。

NetworkedAssets 社の従来からの課題

– 継続的なビルド、テスト工程 –
開発チームから、すべての作業を効率化し生産性の向上をしたい、というかねてからの要望が寄せられていました。開発者は分散されたアジャイル チームとして、事前に2 週間の充分な設計 (インタラクション設計) とともに、スクラムを用いて開発を行います。開発チームは、Hudson を使用して、一からアプリケーションをビルドし、コミット毎にユニット テストを実行します。そのため、開発チームにとって継続的なインテグレーション (CI) はとても重要となります。また、コードの管理には Sonar や Findbugs のような静的解析ツールを使用しています。

– 再デプロイ時間 –
NetworkedAssets 社は、アプリケーションの再デプロイに掛かる時間 (1 時間に 4 分間から 5 分間の再デプロイを 2、3 回行う) が積み重なり、開発サイクルの中で大幅な待ち時間を生み出してしまっているという課題を抱えていました。

JRebel の導入経緯

― Java 開発環境の幅広いサポート、再デプロイは不要ー
そこで、NetworkedAssets 社は、Rogue Wave 社が提供する JRebel 製品に目を付けました。NetworkedAssets 社が開発するアプリケーションは、Spring、Hibernate、Apache Camel、Guava などたくさんのフレームワークを含みます。JRebel はこれらすべてのフレームワークをサポートします。また、開発者がコードやフレームワーク リソースを変更した際に、再デプロイを必要とせずに即座にそれらの変更を確認し検証することができます。これらの JRebel の優れた機能を決め手にして JRebel の導入に踏み切りました。

アプリケーションは、Eclipse で開発、Maven 上でビルドされ (この段階で JRebel はビルドに直接統合されます)、Google web ツールキット フレームワークも使用します。このアプリは、4 つのモジュールから構成されています。それぞれのモジュールには開発ユニットと多数のライブラリが含まれます。これらをすべて合計すると、約 100,000 行のコードになり、バンドルされたライブラリを含む約 100MB のアプリケーションとなります。このアプリは、Apache Tomcat 上で開発され実行されます。

評価指標と測定

NetworkedAssets 社は、いくつかの表を用いて、開発者が JRebel を使用した場合としなかった場合を比較し、JRebel が開発の生産性をどのくらい向上することができるのかを検証しました。8 回のスプリントを JRebel なしで実行した後に、JRebel を使用してスプリントを 6 回実行しました。すると、驚きの結果に!

[スプリントごとのチームのベロシティ]


※ベロシティ: 決められた期間の中で、あるチームが届けることができる要求の量のこと。

計算方法

シニア開発者の Marian Jureczko は、効率性の有無を調べるために以下の仮説 (H0) を立てます。

H0 = JRebel を使用している期間にチームのベロシティは JRebel を使用していない期間より高くなることはない。

この仮説が間違っていると説明できれば、

H1 = JRebel を使用している期間にチームのベロシティは JRebel を使用していない期間より高くなる。

ということになります。

テストを実施する前に、有機水準 α (重要度) を決めます。通常、1 % から 10 % (α=.01 から α=.1) を用います。仮説が間違っている場合でも、α の値が小さいほど、 仮説 HOが正しい確率が高まります。しかし一方で、α の値が大きければ、仮説が正しい場合でも仮説 HO が棄却される確率が高まります。本ケースでは、社会的要因をもつ実験データと少ないサンプル数であることを考慮し、α=.1 (相対的に大きい値) と設定します。

こちらのサイトを使用し片側 t 検定を計算し、p 値 (有意確立) が p=0.05932 となりました。P 値は、α 値より小さいため、H0 が棄却され、H1 が正しいと判断されます。つまり、JRebel が大幅にチームのベロシティを高めるという結論になります。

JRebel 導入の効果

最終的に、JRebel はチームのベロシティを 40 % 向上する結果となりました。

JRebel 製品の詳細は、今すぐここからチェックしていただけます。

JRebel のフル機能を 14 日間ご試用いただけます。お申込みはこちらから

シェアする

  • このエントリーをはてなブックマークに追加

フォローする