自己紹介

大木優氏(以下、大木):このトークはエンジニア代表として、というとちょっと語弊があるかもしれませんが、Notionを活用する時に、エンジニア目線で何を意識していったらいいのかみたいなところを中心にお話をします。

エンジニアなので、どうせならNotionのAPIを使って何かできないかというところで、僕が本業側でやってみたことを合わせて共有します。

初めましてという方も多いと思うので、自己紹介としては大木優と言います。ふだんオンラインでは“スーさん”という名前で活動をしていて、今はエンジニア教育の会社で1人でエンジニアをやっています。業務委託の方とかはもちろんいますが、仲間を求めています。

何をやっているかというと、いろいろなことをやっていて、その中でプロダクトマネージャーもどきみたいなことをやっています。そこでPM Clubに所属をしていて、その兼ね合いで発表しています。

これは「エンジニアのコミュニティをやっています」という本業側の話なので、ちょっと軽く飛ばしていきます。

セッションの対象者

PdMというところで、1人エンジニアをやっていたり、そういうことをやっていると、困ることがけっこうあると思っています。

聞いてもらえるといいかなという対象者のところでいうと、少人数で開発を行っているスタートアップのエンジニアとか、Slackなどのチャットサービスを利用していて、流れてしまっていてタスクが散らばっている方とか、よく「頼んでいたやつどうなっていたっけ?」とビジネス側とか他の人から聞かれる方に今回見てもらえるといいのかなと思っています。

1人エンジニアの状況で困りがちなこと

その対象者である自分によくあることというと、依頼されていたことが社内やNotion内で散らばってしまっている状況がよくあると思っていて。誰に何を依頼したのかが社内の誰もわかっていない。把握しきれていないところがあると思います。その他には、NotionとGitHubを併用して二重管理になっていて、開発の進捗管理がやりづらい。

そういうことはよくあると思いますが、今回は前者を中心にお話しします。後者については、海外で開発をやっている方の事例をちょっとだけ口頭で触れるかたちに留めようと思います。タスク管理に時間を割かれると、開発という幸せな時間が減っていってしまうので、そこをなんとかしたいということです。QOLに関わる大問題ですね。

よく起こるケースというか、みなさんも立場としてあるあるなんじゃないかというところで言うと、Slackで「こういうことをお願いしたいんだけど、どう?」と聞かれることがあるんじゃないかなと思います。そうなると、これがそのままタスクとして管理できなくなるようなことが起こって、先ほどのような「何やっているんだっけ?」と聞かれるような感じです。

考えられる対処としてはすぐにGitHubのIssueに入れるとか、Notionのタスクとかに入れるとか、Slackでリマインドを入れてからあとで考えるということがあると思います。

じゃあ僕はどうだったかというと、入れたことを忘れるか、入れたことを忘れるか、タスクの場所が散らばって管理しきれないか、リマインドがきたあとに忘れるか。まったく管理できない話になってしまって、アカンということです。

タスク管理の問題をどう解決するか?

どう解決をしたらいいんだろうかみたいなところです。これはエンジニア目線で語ってしまっているのでビジネス側の方はちょっと違うことがあると思いますが、GitHubは開発側しか入っていないので、ビジネス側から見て「え、これって進んでいるの? 進んでいないの? どうなっているの?」ということが多いです。

そうなると困るので、開発タスクは基本的にNotionで管理することだけを決めてしまう。もう1個が先ほどの散らばる問題です。散らばる問題を解決するためには、To Doリストのようなタスクを基本的には1つのデータベースで管理すると決めてしまう。

先ほどの最後のところです。SlackやChatworkなど、何でもいいですが、チャットサービスを入れている中での依頼は一番忘れがちで、To Doリストのアプリなどと連携して全社で取り組んでいるところもあまりないんじゃないかなと思っています。

僕も事例としてはいろいろ聞くものの、セットでやっているところをあまり聞かないので、Slackからの依頼という抜け漏れをなくせばいいじゃないかと思ったのが今回の解決の仕方で考えたことです。

都合のいい動線として、特定のデータベースにまとめるViewの機能がありますよね。その機能はNotionのデフォルトの機能にありますが、フィルタなど、そういうものを使っていくと。SlackからNotionに対して、サクッとTo Doを追加できるようなことができればいいんじゃないかと思っています。3が重要だといったところです。そのようなサービスがあまりないというか、見ていない印象です。

Notionのデータベースを活用した具体的なタスク管理方法

じゃあ実際にどうするのかというと、タスク管理を(すると)決めた1つのデータベース、Notionのデータベースのようなものを用意してあげる。それに個人ごとに見やすいマイページみたいな、ダッシュボードみたいなものを作ってあげて、Viewとフィルタで個人ごとのタスクをフィルタして見るとか。そういうことをやっていくのがいいんじゃないかと思っています。

(スライドを示して)実際の例で、弊社で今取り組み始めた例と、左側がタスク管理用の一覧です。タスク名やそれに対して親のIssueとしてプロジェクトみたいなものを用意して、プロジェクトにTo Doを全部ぶら下げてしまう。あとは担当者をpersonとかで設定してあげて、締め切り日を決めているという感じです。

右側が個人のダッシュボードです。左下にあるものが月の目標やタスクリストです。ここにあると思いますが、それでいつまでに何をやるべきなのかを締め切りが近い順にソートしてあげる。「あなたはいつまでに何をやらないといけない」とか、「直近は何なのか」ということをすぐに見れる動線にしています。

あとは日報はチーム事情ですが、「他の人のやった知見を他の人も興味を持ってチームビルディングをしようね」といった動線で日報を書いてもらっています。これはバイトメンバーもそうですし社員もそうですが、それを書いてもらっている状態です。動線としてはこのようなかたちでやってあげています。

これを使った上で話を戻すと、あとはSlackからNotionに対して(タスクを)そのままサクッと追加できるようにする。ここが解決できればいいんじゃないかと思いました。せっかくNotionのAPIが公開されたところを考えると、SlackのInteractive Componentsというのがあります。それを使ってメッセージをそのままタスクに追加することができればよさそうです。

Notion APIについてはデータベースを活用してページを追加するといった感じで、仕様としてはカッチリやってしまって、実際に運用できればいいのではないかと思っていました。(スライドを示して)Notion APIなどのキャッチアップのZennのScrapとかを作っているので、後ほど実際にやってみてもらえればいいんじゃないかと思います。

SlackのInteractive Componentsは右上の設定のところです。もしかしたらSlackのアプリを作ったことがある方には馴染みのある感じじゃないかと思いますが、APIなどを設定してあげて、Notionにタスクを追加するようなことをやります。ショートカットを設定してあげたりするといいかたちにできる感じです。

(デモ動画開始)

右側がNotionのデータベースです。左側は僕が手動で作ったサービスのようなものになります。右上にあるNotionタスクを押したら右側にタスクが追加されるようなことになるんじゃないかと思います。

(コメントを見て)Outlookについてはごめんなさい。僕が(Outlook)の仕様について詳しくないのでちょっとわかりません。もしOutlookに何か拡張APIみたいなものが提供されているなら、たぶん提供されてはいると思います。提供されているのだとすれば実現が可能なんじゃないかと思います。

今繰り返しGIFみたいなかたちで表示されていますが、このようなかたちで会社のものに対してデータベースでポンと入れてあげるようなことができれば、基本的には問題ないかなと思います。

NotionのAPIを使った時に、詰まりどころみたいなところで一番メインのところ。一番忘れがちなのが、APIをいじっていて、キーもあるからすぐにデータベースが見つかるだろうと思ったら、操作したい対象のデータベースを、編集者としてインテグレーション、招待しないとそもそも操作できない。操作対象にすらならないところがハマりポイント1。

ハマりポイント2としては、オブジェクトの概念がけっこうわかりづらいかたちで書いてあります。たぶんJavaScript、Node.jsでやる人以外はShellなどが送っている内容やそのJavaScriptが送っている内容をちゃんと見たほうがよさそうです。Parentについては1回送ってみるとわかるかたちなので、Shellの送信内容をドキュメントで見てもらえばいいかなと思います。

(画面を示して)APIのところでいうとこの送信内容です。

Shellなどを選べますが、基本的にはShellのデータの送信内容を見てもらえると、けっこう「あ、Parentはこういう感じで書くんだ」みたいなコードなどがすごく見やすくなるんじゃないかなと思っています。

ZennのScrapをスライドにも仕込んでおくので、後ほど公開した時に見てもらえるといいかなと思います。

Notion APIの活用はタスク管理が捗るのでおすすめ

まとめとして、Notion APIを活用するのは社内タスクとかの管理などが捗るのでおすすめです。今回見せたものは社内システムとして開発していたので、サービスとしての公開予定はありませんが、要望があればがんばりますという感じです。(冒頭でお話したとおり)進捗管理については、GitHub ActionsでバーンダウンチャートをNotion APIを使って作成することが実は可能です。

なので、定期的にプロジェクトマネジメント的に順調なのかと聞かれた時は、こちらを試してもらえるといいんじゃないかなと思います。なので、もし気になる方はTwitterなり何なりでDMをいただければ。またはこのスライドを投稿したツイートに対して返信いただければ共有報告します。

ということで、ご清聴ありがとうございました。