データ分析におけるTry&Errorの重要性とそのUI

By Naoki Shibayama
Cover image of the article

こんにちは、Shibayamaです。Codatumの開発の背景にある課題意識やコンセプトについて今回も紹介しようと思います。第一回はこちらです

今回は、データ探索・分析において「データを雑にいじくりまわす」ことが如何に大事か、という観点から、「手を動かしながら思考する」 過程をサポートするために、「流れるように書ける体験」を大事にしている、という話をしたいと思います。そしてそのために、Block Editorを独自開発しながらNotebook機能を作っている、という話に繋げたいと思います。

“一旦やってみる”データ分析の重要性

concept2 img01

大量のデータが目の前にあっても、それだけでは何もわかりません。テラ・ペタバイトのデータならなおさらです。データを理解するには、加工し、ある軸で切り、見方を変える必要があります。

しかし、データのどこに着目し、どのように加工すべきかは、"そうする前に"わかっているわけではありません。操作する人が、"データをいじくりまわす" 中で、もしくは元々持っているドメイン知識から出てくる仮説から、どのように加工するか考えて、そしてそれを一旦やってみる 。それを反復することで、だんだんとデータに対する理解と解釈が深まっていきます。

すばらしき文房具: メモ帳

このプロセスは、メモ帳に思考過程を書いていく作業に似ています。
ペンもメモ帳も思考の邪魔をしません。気づけばそこに何かが書き込まれています。文字が次の文字を呼び込み、図が次の図を呼び込むように繋がります。自分の考えをアウトプットすることで永続化し、さらにそこに解釈を付け足していきます。頭の中のワーキングメモリは有限ですが、それを拡張していくかのように機能します。

脳がどのように働いて、手につながってペンを動かし、思考をメモ帳に書き出せるかは分かりませんが、少なくともこれは、思考の邪魔をせず、"手に馴染んでいる" と感じます。Outputの形態として、思考を表現するのに十分な自由度があるのが "楽しい" のです。

データ分析における文房具

データ分析についてはどうでしょうか。最初に述べたように、データ分析についてはなおさら、データの一部を取り出して、ある切り口で見てみて、それは違う、とかこれは違う、とか考えながら、見て考えて、を反復しつつ、データに対する解釈を深めていきたいものです。


つまり、データ分析においてもメモ帳のような

  • 思考を表現するに十分な自由度があって

  • アウトプットした解釈や想像が永続化できて

  • 流れるように使えて思考の邪魔をしない

"手に馴染んでいる" ツールが、欲しいのです。


前回のエントリーでも言及しましたが、私はこれまでいろんな形でデータに関わってきました。

研究者の時には、決められたデータセットを取り扱うことが多かったですが、事業を始めると、データ規模が大きくなり、多様になり、問題が複雑になりました。解釈も曖昧で、その後になにかしら実行動を伴って、ようやくデータに対する仮説が証明されるようになりました。エンジニアとして、PdMとして、経営者としてデータに向き合うようになりました。いかに大きなデータから、素早く、データを古くさせることなく、継続的にシンプルな結論を導き出すか、そしてそのための試行錯誤をするか、それが大事になってきたのです。

その関係で、これまでありとあらゆるデータ加工・分析ツールやBIツールを使ってきましたが、"手に馴染む"、と感じたことはありませんでした。

手に馴染む既存のUI: コードとMarkdown

concept2 img02

これらが"手に馴染む" と感じないのは、自分がエンジニアという職種であることと関連していると感じます。BIツールの多くは 操作をGUIで表現します。GUIはキーボードから手が離れなければいけないケースが多くて、思考を分断されているように感じ、思考を表現するには 自由度が足りない =制約が多すぎると感じます。

メモ帳とのアナロジーで言うと、環境が整っている時のコード、例えばvs-codeを使ったアプリケーション開発などは素晴らしいです。ツールそのものに思考が制限されている感覚がせず、キーボードに操られてるが如く思考を垂れ流していけます。

さらにコードだけではなく、テキストも、Markdownの登場によって、思考の流れを分断しない体験が実現されていると感じます。古くからあるDocumentation Toolは、ツールバーから操作したり右クリックで操作したりするものが多かったように思いますが、Markdownではキーボードで流れるように取り扱えます。さらにMarkdownは、各種ツールの多くがサポートしていて当たり前になっているのもあり、体が覚えていて自然と書くことができます。

さらにNotionのようなBlock Editorが、Markdownの流れと合流して、/ (Slash command) のような形で、Markdownでは表現できなかったコンテンツも追加できるようになりました。

このような、"手に馴染む" ツールの誕生によって、「コード」や「テキスト」を構築する知的な生産的活動はサポートされています。

ただデータ分析においては、どうでしょうか。SQLは、コードではあっても環境が整っているわけではなく、思考作業と分析作業が分離されたまま、進化が止まっています。

データ分析 x コード x Block Editor

concept2 img03

最初に述べたように、データ分析においては、ツールを使っている時間ではなく、試行錯誤している時間が最も大事です。思いついたことをメモ帳に書くように、データを取り出し、結果を見て仮説立てし、その思考過程を残し、それを自分で見てさらにデータを加工し、取り出し、そして思考を深める。

私たちはこの体験を実現するために、独自のBlock Editorを開発し、そこにSQLの体験を混ぜ込むことにしました。既存のRich Text Editorライブラリを使うアプローチ、Jupiter NotebookのようなCell based Editorをベースにしたものやフォークするアプローチ等も考えられますが、それではSuggestion機能ひとつとってもどこかで体験の頭打ちが来ると考えています。

幸いText EditorのFrameworkには優れたものが数多くあります。私たちは ProsemirrorTiptapをベースにNotebook機能をスクラッチで開発しています。そうすることによって、データについて思考し、確認し、切り口を変え、また思考し、、といった複雑な反復作業を、息を吸うかのように自然に行えるようなユーザー体験を実現しようとしています。

この開発の裏にはさまざまなノウハウやTipsがあるので、その点についても弊社エンジニアの方から追々発信できれば、と思います。

最後に

MarkdownをベースにしたBlock Editorに、シームレスなコードBlockを組み合わせることで、僕らは上記のようなデータを使った思考プロセスを最高の時間にすることができると考えています。つまり、データ加工・分析分野においても、"手に馴染む" 最高の文房具ツールを作ることができると考えています。Codatumに詰め込んでいるやりたいことは、ここで話したものだけではありません。しかしこの "データ分析において手に馴染む" 最高のツールを作る、というのは一貫していると考えています。

僕らはこの分野でやりたいことがたくさんありますが、まだ10人に満たない少人数チームです。プロダクトを作るのもそれを拡販するのもサポートするのも未熟です。チームに興味がある人がいましたら是非連絡してください。

また、Codatumは現在活発に開発をしています。今後も開発秘話などを流していく予定なので、是非Twitterアカウントの方をFollowして続報をお待ちください。

Codatumを無料ではじめましょう

先進的なノートブックでデータとチームの
無限の可能性を引き出す