メディア

バグは本当に金曜日に生まれるのか、分析手法「MSR」とは?5分で分かる最新キーワード解説(3/3 ページ)

» 2014年10月15日 10時00分 公開
[土肥正弘ドキュメント工房]
前のページへ 1|2|3       

プロジェクトの将来予測:アーリーワーニングシステム

 プロジェクト管理面では、品質の低下や進捗(しんちょく)の遅れが問題になることが多い。問題が生じた段階で迅速な対応を行えば手戻りが少なく、品質と納期を守れるはずだ。

 プロジェクトマネージャーへの報告や定例会などの場で問題提起されるのを待つのではなく、開発した現物や現場データを都度収集して統計解析することで品質やリスクを定量的に評価して即座に対策がとれるなら、プロジェクト全体の生産性を上げつつ品質を維持することが可能になるだろう。

 図5のような早期に異常検知できるアーリーワーニングシステムの実現も、MSRをベースにして可能になりそうだ。

「MSR」をベースにしたアーリーワーニングシステム 図5 「MSR」をベースにしたアーリーワーニングシステム。大量の開発資産から品質の可視化やプロジェクトの将来予測を行う(出典:NTTデータ)

「MSR」のこれから

 MSRの現実の開発現場での効果が目に見えるようになるのはこれからという状況だが、既存データがうまく整理できさえすれば、分析手法は既にあるものが利用できる。NTTデータでは対象データについて次のような条件を挙げた。

  • ソースコードや構成管理ツールによる履歴データやメトリクスデータが入手できること
  • 構成管理などの開発環境が標準化されデータクレンジングが最小限で済むようになっていること
  • あまり恣意(しい)性が入らないような生データであること
  • 必要なデータが大量に入手でき、それに対して分析技術を使えること
  • ソースコードメトリクスを総合的に取得するためのツール(SonarQubeなど)が利用できると有利

 業務システムでのBIの利用や他の領域でのビッグデータ分析技術についての知見は導入や運用を容易にすると思われる。

 なお専門家は、より有効な知見を見いだすためには「究極的には人の活動自体を計測する必要がある」と指摘する。機械学習などの先進的な技術なども活用しながら、ウェアラブル技術やソーシャルネットワーク技術を活用して開発者の活動データを取得し、優秀な開発者はなぜ優秀なのか、その理由を計測により解明し、開発の自動化や管理に活用するという考え方だ。

 ちなみにNTTデータでは「インテリジェントワークベンチ」という新しい開発環境の実現を目指している。これは、開発者の意思決定を支援し、マシンと対話しながら要件をソフトウェアに自動変換できる環境だ。超短期のプロトタイプ開発と確認、改善のサイクルで実用的なソフトを構築するスパイラル開発を究極的に合理化する開発環境への夢を実現する試みといえよう。

 また、新しいプロジェクトの規模や特性、要求品質、リスクなどのパラメータを入力すれば既存開発案件の実績データを基に、工数と工期が自動的に見積もれるシステムは、既に同社で稼働中だ。こうしたシステムのベースとなるのがMSRの考え方である。

 MSRとともに自然言語処理や機械学習などが進めば、いずれ「◯◯がしたい」と自然言語で記入すれば、自動的にその目的に合致するコードが出来上がるような、夢の開発ツールが実現する可能性がある。機械による自動生成論文が学会誌の審査をパスした例が数々報告されているのを見れば、その夢は意外に手の届くところにあるのかもしれない。

関連するキーワード

ソフト開発の自動化

 ソフトライフサイクルの各段階(計画、設計、開発、テスト、デバッグ、保守、運用)で人間の手間を省き標準的な手法で均質な品質を実現するためにとられる自動化の仕組み全体、またはその一部を指す。

 計画段階では現行システムの自動解析(システム更改の容易性や保守性向上に重要)、設計段階では自動化そのものではないがUMLモデリングツールなどが使われる。

 また、コーディングではBRMSや自動生成ツールが利用され、テストではテスト自動化ツール、開発工程全体を通してプロジェクト管理、ライブラリ管理、ハードウェア、ネットワーク、ミドルウェアなどのインストールの自動化によるシステム基盤構築の自動化ツールなどが利用される。

 さらに、保守や運用に関してはランブックオートメーションなどの運用管理自動化も図られるようになった。自動化ツールはまだ未成熟なものも多いが、近年は特に進化が著しい分野だ。

「MSR」との関連は?

 MSRは上述のような各種の自動化ツールや周辺ツールが利用するデータや出力するデータ、あるいはメールやSMSのようなコミュニケーションツール、さらには開発に関連する各種ドキュメントなどを一元的な「ソフトウェアリポジトリ」に蓄積し、さまざまな分析手法を駆使してマイニングする仕組みだ。マイニングの結果を自動化ツールのパラメータとして活用して開発、保守や運用のライフサイクルを合理化することにも寄与することが期待される。

BI(Business Intelligence)

 企業などの組織のデータを、収集、蓄積、分析、報告することで、経営上などの意思決定に役立てる手法や技術のこと。例えば、小売系Webシステムで、レコメンドエンジン、ページランクなどのアルゴリズムによって貯めたトランザクションデータからある種の傾向を吸い取り、マーケティングへ生かすといった使い方がされる。

「MSR」との関連は?

 直接の関連はないが、MSRはソフトウェア開発現場で蓄積された開発ログデータからソフト開発に有用な知見を導き出し、開発の生産性や品質の向上に生かすのが役割。業務システムでのBIと役割がよく似ており、MSRはソフト開発におけるBIのようなものと考えると分かりやすい。

開発資産の再利用

 既存システムの開発時、保守や運用時に利用した情報の総体が「開発資産」だ。ソースコード、バグ報告、関連ドキュメント、関連する開発チームのメールなどの履歴など、さまざまな種類のデータが含まれる。

 その中から既存システムの保守、運用、改修や新しいシステムの開発に利用可能な情報(コード、技術情報、ノウハウなど)を整理して抽出、活用しやすくすることで作業の合理化や効率化が実現する。部分的には取り組まれてきたが、大量の開発資産を対象にした再利用の技術は未発達だった。

「MSR」との関連は?

 MSRはビッグデータを前提にしているわけではないが、近年の開発資産の増大とビッグデータ分析技術の発達により、効率的で、精密かつ正確な分析ができる可能性が高くなった。増大一途のコンピュータ能力を利用して、ノウハウなどの共有や継承も可能にしながら既存資産を徹底的に活用する、新しい開発方法論を提起しているといってよいだろう。

前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.

会員登録(無料)

製品カタログや技術資料、導入事例など、IT導入の課題解決に役立つ資料を簡単に入手できます。