ソフトウェア開発においてデータの重要性は言うまでもありませんが、「統計的に分析せよ」と言われると腰の引ける人も多いはずです。ですが、ツールの充実した今、そう難しいものではありません。まずは統計分析の「御利益」を知って、食わず嫌いを克服しましょう。
ソフトウェアを開発する上でさまざまなデータを目にすると思います。データを統計的に解析、分析できるエンジニアはあまり多くありません。「このデータを統計的に分析せよ」と言われると、急に腰が引ける「統計アレルギー」に感染している技術者がたくさんいます。筆者も、かつては筋金入りの統計アレルギー患者でした。
本シリーズでは、基礎的なデータ解析手法をご紹介します。「数式が苦手なのでソフトウェア開発者になったのに、何やら複雑な数式が大量に出てくる統計的な分析は勘弁してもらいたい」と考え、統計的分析を遠巻きに眺めている「食わず嫌い」のエンジニアに対し、統計的な分析は意外に簡単な上、非常に効果が高いことがお分かりいただければと思います。
普段、ソフトウェア開発をする上で様々なデータを目にします。例えば、工数、テスト項目数、プログラムのステップ数、レビュー時間など、挙げればきりがありません。このデータを統計的に分析し関係性を見つけられれば、プロジェクト管理もスムーズに進むはずです。
ですが、300ページの書籍に1行でも微分方程式があると瞬間的、反射的に本を閉じてしまうほど、数式嫌いのエンジニアにとって、データ解析は、可能なら避けて通りたい超難関です。統計関連の書籍では、1ページに2ダース以上の小難しい数式が並んでいて、3秒でやる気が消えます。
一昔前、統計分析は、分析の意味を理解し、解析法を習得し、数式に当てはめた上に手計算で分析しており、数学の中でも最も複雑怪奇な分野でした。現在は、Excelなど統計計算ツールが充実しており、だれでも簡単に統計分析が可能となりました。これを使わないのはもったいないのです。
シリーズ最初の今回は、統計処理を学ぶ「御利益」について説明します。本シリーズでは、数式が苦手なソフトウェア・エンジニア向きですので、難解な数式は一切使わずに、統計手法を使用すると「何がうれしいのか」に着目し、分かりやすく説明します。
統計処理を学ぶ御利益とは何でしょうか。筆者は次のように考えます。
(1)データを比較できる。
(2)データの関係性が把握できる。
(3)関係性からデータを推定できる。
それぞれを少し詳しく解説します。
人間には、物を比較する能力(というより性質?)が備わっています。「良い方を選ぶ」ことは生きていく上で極めて重要であり、一種の「本能」と言えます。同じような食べ物がいくつかあった場合、無意識に、大きい方、新鮮な方、栄養がありそうな食品を選びます。
「データを比較できる」とは、この「無意識の比較」を「数学的に比較」することです。複数のデータをエンジニアリング的に比較し、考察できます。
データを比較することは、プロジェクト管理で非常に有用です。例えば、ある日、上司から、「CMMI(Capability Maturity Model Integration)レベル3に準拠した開発プロセスを採用した場合、どの程度の効果が見込めるかチェックしたい。ある部署でトライアル的に導入するので、導入前と後の改善効果を分析してほしい」と言われたとします。
その時、少しでも統計的な知識があれば、複雑な計算はツールにやらせて、「統計的に分析したところ……」と専門用語を散りばめながら、胸を張ってデータの解析結果を上司に報告できるでしょう。大きな効果ありとなれば、上司は新プロセスを積極的に推し進めるはずです(CMMIでは、プロセスの整備や対外的な宣伝の意味もあり、データに表れない部分もあるでしょうが)。
Copyright © ITmedia, Inc. All Rights Reserved.