見出し画像

工数見積もりが難しいデータパイプライン構築

データパイプラインとは、既存のデータをデータ分析など特定の目的に適した形式などに変更する仕組みのことです。
データ分析の需要が高まっている現在、データパイプラインの必要性が高まってきています。
しかし、実際にデータパイプライン構築のプロジェクトをすると多くの場合、スケジュール通りにはいきません。
そこには、データパイプラインであつかうデータに内在する不確実性の影響が大きいです。
今回は、データパイプラインに含まれる不確実性とその不確実性にどのように対応していくかをについて解説します。

データパイプラインとETL

まず、データパイプラインの不確実性に入る前に、データパイプラインとETLの関係について説明します。
ETLとは、Extract Transform Loadの略です。データソースからデータを抽出し、そのデータを変形した後、保存することを意味します。データソースの例としては、ビジネスシステムやAPIや各種ツールに保存されているデータなどがあります。データの保存先としてはデータベースやデータウェアハウスなど様々です。
データパイプラインは、ETLはもちろんのこと、単にデータをコピーして別のシステムに移行するなどの処理を含みます。そのため、データパイプラインの方が広義で、ETLはデータパイプラインの一部と言われています。

早すぎるデータパイプライン構築の工数見積もり

データパイプラインを構築するとき、過去の類似プロジェクトなどを元に何ヶ月で完成するかの工数見積もりをすると思います。
しかし、データパイプラインの作成は後述する不確実性の高さゆえ、工数の見積もりがかなり難しいです。
まず、データパイプラインを作成するときは、「データを処理するプログラムの作成」の前に「データの調査」をしなければなりません
そして、データの調査をして初めて見つかる問題が工数を大きく変動させます。
つまり、「想定していたデータと違った」ということが当たり前のように起きてしまうということです。
「データを定義したドキュメントがない」、「データの定義を知っている人が限られている」、そして「データの定義を知っている人が退職して誰も分からない」など、最悪の場合、「システムソースコードを読むしかデータの定義がわからない」ということすらありえます。
データの調査をやっていたはずが、データの定義書を一から作成していたなんてことを経験したことのある人も少なくないと思います。
このように、データパイプライン構築のためのデータ調査には「工数を爆発させる不確実性」が含まれています。この不確実性により、データ調査の前に作っていた見積もりが多くの場合無駄になります。
つまり、データ調査する前の工数を見積もるのは早すぎるということです。

データパイプライン構築のプロジェクトマネージャーが把握しておくべきこと

データ調査をする前の工数見積もりが無駄になるとは言えども、プロジェクトを始めるために、工数見積もりが必要となる場合が多いと思います。
もしデータパイプライン構築のプロジェクトマネージャであるならば、以下のことを理解して工数の変動に備えておくと良いと思います。

1. データパイプラインを作るためにはデータ調査は必ず必要となる 。
2. データ調査は、データパイプライン構築より工数がかかることがある。
3. 元々移行する予定だったデータを使わないという意思決定が必要な場合がある。
4. 調査段階ですべての不正なデータを発見することは難しい。実データで動かして止まる可能性は低くはない。
5. 事前に工数を見積もる場合は、データ調査後に必ず見積もり直すステップを入れる必要がある。
6. 開発者と密な連携を取り、不測の事態を早めに検知する必要がある。
7. 不確実な状態の見積もりを絶対に義務としない。義務化してしまうと、遅延を報告しづらくなり、スケジュールギリギリで遅延が発覚することがある。
8. 稼働し始めてからのメンテナンス工数は低くはない。運用を必ず視野に入れる必要がある。
9. 作業の分担ができる箇所と分担できない箇所を洗い出して必要がある。
10. チーム外にも不確実性について共有しておく必要がある。

まとめ

データの不確実性を考慮しないデータパイプライン構築のプロジェクトは本当に炎上しやすいです。
とくにクライアントのデータをあつかう場合は、工数の大幅な変動の可能性関して事前に理解していただく必要があります。
データパイプラインを構築できれば、データ活用を飛躍的に進められる可能性があります。
しかし、その構築の見積もりは簡単ではないことを前もって知っておくことが重要だと思います。

この記事が気に入ったらサポートをしてみませんか?