helmi ~ソフトウェアプロジェクトに安らぎを~

ソフトウェア品質に"安心"をもたらす helmi

helmiの語源は船頭が舵をとるという英語のhelmから派生しています。
フィンランド語で真珠という意味もあり、響きは"ヘルプミー"とも..
「過酷なソフトウェア開発の荒波から helmiが穏やかな海に先導して欲しい」
という願いを込めてつけられた名前です。

helmiがあなたにもたらす5つの"安心"

helmiはプロジェクトマネージャに「安心」をもたらす革新的なソフトウェア製品です。 システム開発プロジェクトの大規模化と複雑化が進みプロジェクトマネージャの役割は益々重要になってきいます。予算の締め付けによるリソース不足とタイトなスケジュールに追われるのは当然のこと、スキル不足のエンジニアやキーエンジニアの離職などプロジェクトマネージャが抱える問題は多岐にわたっています。helmiは不安な日々を過ごすプロジェクトマネージャを強力にサポートするために考案されたAIによるプロジェクト改善プラットフォームです。
  1. 高品質~コミット前の静的解析をルール化していますか?~
  2. 静的解析ツールは飛躍的に進化しており、多くのプロジェクトでは開発フローに取り込まれて活用されています。helmiでは既存の静的解析ツールを一括で動作させて、その結果をCode Quality Index(CQI)として開発者に詳細を含めて報告します。helmiがサーバとして動作するため開発者側で面倒な設定は一切必要ありません。helmiにコマンド一つ投げることで手元のコードを解析してくれます。
  3. 成長~プロジェクト推進の進化を感じていますか?~
  4. 大型プロジェクトでは数年にわたり開発をし続けることになります。プロジェクト管理ツールやバグトラックシステム内には様々な情報が蓄積されていますが、その貴重なデータは分析されて開発に活かされているでしょうか?helmiにお任せください。AIをベースとしたリポジトリマイニングによりhelmiはデータが溜まれば溜まるほど賢く成長し、より精度の高い不具合予測を実現します。
  5. 効率化~日々膨れ上がるテストやコードレビューに困っていませんか?~
  6. 大量に増え続けるテスト項目の実施において、不具合をなるべく早い段階で発見することは非常に重要なことです。 テストやレビューの工程に十分なリソースが確保できずに属人的な手法でテストが行われていませんか? helmiが予測するDefect Risk Index(DRI)は不具合混入が発生した過去の様々な事象を加味して予測された数値です。 この数値に基づいてテストやレビューを実施することで早期の不具合洗い出しが期待できます。
  7. 改善~プロジェクトの問題や課題を定量的に把握していますか?~
  8. プロジェクトが期待したとおりに進まないときにどのような行動をとりますか?開発者を増員したり体制を見直したりと問題発見に頭を悩ませて様々な措置をとると思います。helmiはこのような時にも頼もしいアドバイザとなるでしょう。 helmiが作成する不具合予測モデルは不具合がどのような因子、例えば開発者、関数名、曜日、特定のコードメトリックなどと相関が高いのかを導き出してくれます。プロジェクト改善の指針を促す裏付けあるデータをhelmiが提供します。
  9. 知識共有~ノウハウは特定の人に依存していませんか?~
  10. 大規模な長期プロジェクトでは開発者の入れ替えは想定しておくべきです。過去にどのような不具合が起こったのか、触ると危険なファイルやコードはどんなところかといったノウハウの多くはこれまで個々の開発者に蓄積されていました。helmiを導入することでタイムマシーンのようにある時点でプロジェクト内でどのようなことが起こったのかということを確認することができます。

helmiによる不具合予測の仕組み

helmiは開発リポジトリをミラーリングして定期的にAIモデルを生成しています。 図1はモデル生成フローと予測フローを示しています。

モデル生成フロー

  1. 不具合修正コミット: コミットのコメント情報から不具合修正コミットかどうかを判断します。
  2. 紐付け: 不具合修正箇所がいつコミットされたものか不具合混入コミットを自動的に紐付けます。
  3. 不具合混入コミット: 紐付けられたコミットが不具合を混入した学習対象のコミットとなります。
  4. 特徴量取得: 具体的な学習データとなる、学習対象コミットに関連する特徴量を取得します。
  5. AIモデル生成: 上記の1から4を繰り返して取得した学習データでAIモデルを生成します。

予測フロー

  1. スコアリング: 新規コミット時に上記AIモデルでスコアリング要求を送信します。
  2. 不具合混入確率の予測: 不具合混入の確率が算出されます

図1: モデル生成フローと予測フロー

helmi導入効果

項目導入前導入後
ソースコード品質 導入の複雑さや開発者の選り好みもあり有用ツールが活用されにくい。その為、開発者毎にコード品質はばらつく 簡単に複数の静的解析ツールからコード品質を指標化、CQIを一定水準に保つことで、コード品質がある程度担保され「軽度なバグ」が減少
バグ改修リードタイム ベテランがレビューすれば高確度で早期発見と早期改修に動けるが、殆どがテスト工程で発見されるまで改修されない DRIが高いコードに対しては重点的にコードレビューやテストを実施することで開発工程での早期発見や早期改修が可能。また優先度付けテストを実行することでテスト工程でも前倒しでの早期発見が可能
品質状況可視化 ベテランによるレビュー結果による品質管理や、テスト工程で発見される不具合状況から品質状況を可視化。属人的な判断になりがち 数値化された品質指標をユーザー毎・ディレクトリ毎に時系列で自動でレポート生成。開発工程から楽にモニタリング可能なため、早期の品質改善対応が可能に
品質改善対策 ベテランの経験則から対応策を検討。メンバへのヒアリングや状況の確認など属人的な判断になりがち 不具合発生の起因具合がAIにより定量化される。属人的な判断ではなく具体的かつ直接的な対応が可能。例えば不要な会議による納期圧迫での品質低下や、指標の基準値向上による品質改善など。
開発者意識 テスト工程で不具合検出されるまで不安 コミット毎にCQI, DRIといった品質指標が理由と共に示されるので、安心して開発に集中することが可能
退職リスク どのような品質問題があったか、どのように修正されたか、コードの相互影響度など、キーエンジニアが熟知した知識経験は引き継ぐ事が困難 DRI情報や不具合発生要因などはhelmiでモデル化され時系列データとしてプロジェクトに残る。その為キーエンジニア退職時でも知識経験の引き継ぎは限定的となり退職時リスクを下げることが可能。
テスト品質 ベテランの経験則で影響範囲を判断していることが多くムダや漏れが起きやすい状態になる 改修による影響範囲が具体的に可視化されるため、ムダなテスト実施、テスト漏れを防ぐことが可能。その為、テストコストの制御が可能となる

ギャラリー

よくある質問

導入について

  1. 販売方法と価格を教えてください
  2. 導入対象となるプロジェクトはどのような開発ですか?
  3. 導入に必要な機材や準備は何でしょうか?
  4. 無償試用はできませんか?
  5. サポートはどうなっていますか?

運用について

  1. 運用はどれくらい大変でしょうか?
  2. これまでの開発フローを変える必要はありますか?
  3. 学習モデルはどくらいの頻度で更新するべきですか?

予測精度について

  1. 十分な精度がでるためにはどれくらいの期間やコミット数が必要ですか?
  2. 作成したモデルがどれくらい賢くなっているか確認できますか?
  3. 特徴量としてどのようなものを利用しているか教えてもらえますか?

CQI/DRIについて

  1. CQIとDRIという2つの指標があるのはなぜでしょうか?
  2. CQIで利用しているツールは何でしょうか?
  3. DRIの数値をコードレビューやテストにどのように活用するのですか?

その他

  1. 特徴量を独自に追加したいのですがカスタマイズは可能ですか?
  2. 不具合に関連する情報は自社の管理サーバで管理しているのですが取り込めますか?
  3. あるプロジェクトで作ったモデルを他のプロジェクトで使えますか?