昨今のプログラム開発で注目されている手法が、「データドリブン開発」です。データドリブン開発によって効率的な品質改善が可能となり、アジャイル開発における成果アップが期待できます。
他社との競争に後れを取らないためにも、早めの導入をおすすめします。そこで本記事では、データドリブン開発の基礎知識やメリット、進め方についてお伝えします。
データドリブン開発とは
「データドリブン開発」とは、「データドリブン」の手法を用いてシステムやアプリケーションを開発することです。分かりやすく解説するために、まずはデータドリブンから順番に解説します。
データドリブンとは
データドリブンを直訳すると「データ駆動」で、データによって動かされることを意味します。つまり、ビジネスにおけるデータドリブンとは、「データに基づいた意思決定」のことです。
主観や直感に頼った意思決定は判断ミスが発生しやすく、ビジネスに大きなダメージを与えることもあります。そういったトラブルを防ぐためにも精度の高い意思決定が必要となります。
また、データドリブンの注目度が高い理由には、膨大なデータを収集・可視化・分析できるプラットフォームが多く存在し、企業がデータを活用しやすくなったことが挙げられます。
データドリブンについては別の記事でも詳しく紹介していますので合わせてご覧ください。
計算機科学におけるデータドリブン設計
計算機科学(コンピュータ・サイエンス)の分野では、比較的古くからデータドリブンの概念が存在します。計算機科学におけるデータドリブンとは、ある計算によって得られたデータを用いて、連鎖的に別の計算を行っていく計算モデルです。
この計算モデルを用いた代表例として、「AWK」というプログラミング言語や、「sed」というツールが存在します。また、オブジェクト指向プログラミングにおける「クラス」も、データドリブンをベースに設計された概念です。
方法論としてのデータドリブン開発
昨今では方法論としてデータドリブン、つまり、データに基づいた意思決定が一般的となりました。以前はマーケティング分野が中心でしたが、プログラム開発でも方法論としてデータドリブンを採用するケースが増えています。プログラム開発にデータドリブンの手法を用いるのが、「データドリブン開発」です。
データドリブン開発では成果物を分析して、得られたデータを用いて次の開発を行っていきます。分かりやすくいうと、今期開発のアウトプットを次期開発のインプットにする開発手法のことです。プログラム開発に限らず機械の開発設計などでも、データドリブン開発の手法を採用するケースが増えています。
データドリブン開発のメリット
データドリブン開発を採用すると、成果物の良し悪しやユーザの行動をデータによって客観的に把握しやすくなります。その結果、成果物の改善点を発見しやすくなり、ユーザ目線での品質改善が容易となるのが大きなメリットです。
また成果物の出来が悪くても、次の開発に活かせる財産となります。そういった意味では、失敗を恐れずアイデアを気軽に試しやすいメリットもあるといえるでしょう。
データドリブン開発をどう進めるか
データドリブン開発の進め方は、大まかに下記の3プロセスです。それぞれ順番に解説します。
- 実装する候補を選ぶ
- 目標を数値化する
- 実装してデータで検証する
アジャイルが前提
最初に知っておくべきことは、データドリブン開発は「アジャイル開発」が前提となる点です。アジャイル開発とは、短いサイクルで小規模な開発を繰り返していく開発手法を指します。
データドリブン開発は、前期開発の成果物をインプットとして新しい開発を進めていく手法です。言い換えれば、開発から開発への移行が発生した時に、初めて意味を持ちます。よって、ひとつの開発サイクルが長期化しやすい「ウォーターフォール開発」などでは、有効なデータドリブン開発は行えません。
実装する候補を選ぶ
まずは、どのような機能を実装(開発)するのか決めましょう。ブレーンストーミングにより、関係者間で実装候補となるアイデアを出し合います。ユーザからの意見や前期開発のデータがあれば、それを活かすのも良いでしょう。些細なものでも構わないので、できる限り多くのアイデアを出すことが大切です。
アイデアを出したら、それらに優先順位を付け、開発で実装する機能を選びます。優先順位を付ける際には、開発工数やインパクトなどを基に判断します。
目標を数値化する
実装する機能が決まったら、目標を数値化しましょう。「その機能で実現したいことは何か」を考えつつ、具体的な数値目標を定める必要があります。ただし、後のプロセスで効果を測定することになるので、測定可能な目標でなければなりません。
たとえば、レシピサイトに「SNSでシェアする機能」を実装する場合を考えましょう。この機能には、不特定多数のフォロワーに拡散してもらうことで、レシピサイトの知名度を高める狙いがあります。よって、「1カ月の新規登録ユーザ数を10%増やす」といった目標を設定します。このように、目標をできる限り具体化することが大切です。
実装してデータで検証する
開発で対応する機能やその目標が決まったら、実装を行います。そして実装した機能を稼働させ、一定期間が経ったらデータを収集・分析して、効果を検証しましょう。前述の例であれば、「1カ月の新規登録ユーザ数が10%増えたか」をデータから検証します。
目標を達成できていない場合は、なぜ達成できなかったのかを検討しましょう。目標を達成できたとしても、改善点がなかったか確認することが大切です。問題点や改善点がクリアになったら、それらを次期開発にフィードバックします。以降は実装する候補を選ぶプロセスに戻り、同じように開発を繰り返していきます。
データドリブン以外のドリブン開発モデル
データドリブン開発以外の主なドリブン開発モデルは、下記の2つです。それぞれ、順番に解説します。
- イベントドリブン
- ドメインドリブン
出来事ベースの「イベントドリブン」
「イベントドリブン」とは、「出来事の発生を受けて動くこと」です。たとえば計算機科学では、画面のタップにより動くアルゴリズムが挙げられます。マネジメントでいえば、何か問題が発生してから原因特定などの対応を行っていくのはイベントドリブンといえます。
ただし、問題の対応にかかる労力を事前に予測できないため、膨大な工数を費やしてしまうことも少なくありません。その点、データドリブンでは短い開発サイクルで効率的に問題を検出できるため、こうしたリスクを未然に防ぎやすいメリットがあります。
分野の知識ベースの「ドメインドリブン」
ドメインは、「分野・領域」を意味します。つまり「ドメインドリブン」とは、「特定分野の知識をベースに動く」ことです。
ドメインドリブンは、基本的にプログラム開発で用いられる概念です。ユーザのニーズを満たせる分野を考え、その分野に必要な知識を洗い出して設計に落とし込みます。ユーザの問題解決につながりやすいものの、開発の規模が大きくなりやすいデメリットもあります。
まとめ
今回はデータドリブン開発の基礎知識やメリット、進め方についてお伝えしました。
データドリブン開発とは、開発の際に得た改善点を次期開発に活用していく手法です。開発サイクルの短いアジャイル開発が前提となりますが、効率的な品質改善を図りやすいメリットがあります。
データドリブン開発では、当然ながらデータの活用が欠かせません。データ活用には、Oracle Cloudの導入がおすすめです。プログラム開発におけるデータの収集から分析までを効率的に実現できます。
- カテゴリ:
- データ活用
- キーワード:
- データドリブン