ブログ

ryuzeeによるブログ記事。不定期更新

アジャイルコーチはObsidianをどのように使っているか

みなさんこんにちは。@ryuzeeです。

2022年6月2日に行われたイベント「#Obsidian 使っているんでちょっと話します」で、最強のノートアプリであるObsidianについてちょっとだけ話をしてきたので、資料を公開しておきます。


以下は話の内容です。スライドと同じ内容なので忙しい方はスライドだけどうぞ(ここから先にアジャイルの話はありません)。

仕事の内容

ぼくはアジャイル関連のコーチングやトレーニングの提供、顧問業を仕事にしています。 開発の仕事やコンサルティングファームの仕事とは違って、複数のお客様に対して同時並行(おおよそ週1回くらい)でサービスを提供するような形です。 内容は多岐に渡っていて、個別チームのコーチングを継続的に行うこともあれば、アジャイル関連のよろず相談を受けることもあれば、1on1を行うこともあります。 これに加えて、認定スクラムマスター研修や、その他の研修の提供もあります。 現時点では、仕事のほとんどはリモートです。

仕事の特性

このような仕事をしているわけですが、この仕事の特性として、とにかくたくさんの質問を受けます。 一般的な質問もあればハイコンテキストな質問もありますし、ジャンルも、アジャイル、スクラム、DevOps、アーキテクチャー、プロダクトマネジメント、組織、コーチングなど多岐に渡ります。

そして、似たような質問を色々な方から受けることもままあります。たとえば、

といったものです。

口頭で回答することもあれば、Slackなどテキストで回答することもありますが、いずれの場合でも回答に時間はかけられないことが多いです。 仕事の特性上マルチタスクなので、回答を後回しにすると忘れてしまう(記憶しておく負荷が高い)ということもあります。 似たようなものにメールがあります。こちらもどんどん処理してアーカイブしていくことで、負荷を減らしています。

仕事を無駄なく進めるには?

さて、このような状況で仕事を無駄なく進めるにはどうするかというと、情報の検索と取り出し速度を上げるのが良いと考えています。 URLや本の名前を覚えておくような、脳内にポインタを保存する方式は、量が増えると耐えられません。 また、同じことを何度もやるのはムダです。たとえば、

  • アジャイルマニフェストで検索して、該当ページのテキストをコピーする
  • スクラムガイドのPDFを開いて、テキストをコピーし混入している空白を取り除く
  • よく聞かれる質問の答えを毎回1からテキストで書き起こす

のようなことは生産的ではない気がします。

ということで、よく使う情報は、検索性と再利用性の高い形で1箇所にまとめておいた方がよいということになります。 そこで使うのがObsidianのようなアプリケーションになります。 過去にはEvernote、vim、BoostNote、Joplinなどなど色々試しましたが、Obsidianに行き着きました。

The Power of Plain Text(プレインテキストの威力)

名著『達人プログラマー』ではプレインテキストの威力についてページを割いて説明しています。 以下はそのうちの一節です。

達人プログラマーが取り扱う素材は木でも鉄でもありません一一知識です。我々は要求を集めて知識とし、設計、実装、テスト、ドキュメントの中でその知識を表現するのです。そして、知識を永続的に格納するためのフォーマットで最も適しているのがプレインテキストなのです。プレインテキストを使えば手作業、自動的な作業を間わず、事実上すべてのツールを使って思いどおりに知識を操作することができるようになるのです。

『新装版 達人プログラマー 職人から名匠への道』(Andrew Hunt 著、David Thomas 著、村上 雅章 訳、オーム社、p.83 3.14より引用)

テキストファイルを使うことで、検索、加工、再利用を含めて非常に柔軟に処理できるようになりますし、そもそもファイル自体が軽量なので処理の速度も十分です (これもあってEvernoteは使わなくなったのですが、エクスポートした結果が処理しにくくて難儀しました)。

どんな情報をObsidianに格納しているか

Obsidianに格納する情報は、ここまで説明してきた仕事の内容や特性に合致するものです。例えば、

  • 公式のガイドや定義、ホワイトペーパーなど
  • よく聞かれる質問
  • 用語の定義
  • 書籍の書影と目次、気になった箇所の引用
  • 自分がWebサイトやメディア、雑誌など向けに書いた記事
  • Webページのクリップ(海外のページの場合はDeepLなどを使って翻訳することも多い)
  • 自分の思考実験のメモ

のようなものです。 公式のガイドや定義などはPDFで提供されることが多いですが、検索性を重視して、テキスト化してObsidianに格納しています。 たとえば、アジャイルマニフェスト、スクラムガイド(過去分含む)、カンバンガイド、Nexusガイドなどなどです。

ナレッジベースとして使っているので、デイリーログやプライベートなものは入れていません。

情報のメンテナンスの方法

仕事でチケット管理システムを利用されている方は多いと思いますが、チケット管理システムをうまく運用するコツは「ゴミ箱」にならないように常時手入れをすることです。 ゴミが溜まり始めると、だんだん欲しい情報がすぐに手に入らなくなったり、新しく登録する情報も雑になったりしていき、最後は目をつぶってまとめて捨てる、といったことになりがちです。

ノートについてもまったく同じことが言えます。 ナレッジベースがゴミ箱化すると役に立たなくなります。 これを避けるためにも、だいたい毎日いじっています。

ここで使えるのがランダムノートの仕組みです。 ランダムノートで表示したものを起点にして、ノートを移動しながら、必要に応じてタイトルを付け直したり、ノートの分割や統合をしたり、コンテンツを加筆修正したり、リンクを追加したりします。 もちろん、だいたい毎日なにかしら調べ物などをするので、それを踏まえて新しいノートを作っていきます。

とにかくゴミ箱にしないように運用することが重要です。

利用しているツール

ノートを新しく作るときの方法はいくつかあるので紹介します。

  • PDFを取り込む場合は、(1) Adobe AcrobatでWord形式に変換したあとに、pandocでマークダウンを生成する (2) いきなり pdftotext でテキストを抽出する、のいずれかの方法を使っています。後者はフォーマットが再現されないので、短いものが向いています
  • Webページを取り込む場合は、Chromeの拡張である「MarkDownload」を使っています。これはブラウザで閲覧しているページまたは選択範囲をマークダウン形式でコピーできるものです
  • 物理本や紙の場合は、iOS用のスキャナアプリ「Scannable」でスキャンして画像化し、「Microsoft Lens」でテキストを抽出しています。またGoogle Docsでも画像をテキストに変換できます(1日10枚までの制限があります)

このあたりは色々なやり方があるので、自分にあうやり方を探すとよいでしょう。

利用しているプラグイン

Obsidianは非常に拡張性に富んだアプリケーションで、プラグイン機構を持っています。コミュニティプラグインも多数公開されているので、色々試してみると良いでしょう。 ぼくは現在以下のプラグインを主に使っています。

Advanced Tables

テーブルの編集が圧倒的に楽になるプラグインです。マークダウンを手打ちしてテーブルを書くのは少々面倒くさいですが、これを使うと楽になります。 自動でテーブルをフォーマットしてくれたり、ソートしたりといったことも可能です。 なお、等幅フォントを使わないと、自動フォーマットで見栄えが崩れてしまって見やすくならないので、その対処としてカスタムcssを書いて、等幅フォントを指定しています。

Editor Syntax Highlight

コードブロックをハイライトしてくれます。さまざまな言語に対応しています。

Find unlinked files and unresolved links

どこからもリンクしていないノートを抽出してくれるプラグインです。ノートが完全に独立してしまうとランダムノート経由以外でたどることがなくなってしまいます。 しかし、多くの情報は何かしら他の情報と関連があるはずです。 このプラグインをときどき実行して、ノート間のリンクを追加したり、タグを追加したりしています。

Local images

インターネットを参照している画像をローカルにダウンロードしてくれるプラグイン。 古い世代の人間なので、インターネット上の画像に直接リンクするのは嫌なのと、ページがなくなった場合に備えるために使っています。

Markdown prettifier

マークダウンを綺麗にしてくれるプラグイン。MarkDownload経由で作ったノートに適用することが多い気がします。 最近あまり使わなくなってきたので、消すかもしれません。

Metatable

タグに限らずFrontMatterで指定したメタ情報をテーブル形式で表示してくれるプラグイン。 ぼくは、コンテンツの作成日や、入手元などをメタデータに入れていますが、プレビューモードのときにそれをすべて表示してくれます。

Unique attachments

Obsidianでは画像をコピーペーストで埋め込むことができます。このときのファイル名は「Pasted Image 日付時刻.png」という形式になりますが、見栄えが悪くて気になります。 また同じファイルをコピーペーストした場合でもファイルが複数生成されてしまいます。 このプラグインを使うことで、ファイルのハッシュ値を元にしたファイル名となり、重複ファイルが作られなくなります。

その他

ここまで出なかった話をいくつかしておしまいにしましょう。

Obsidianのデータ(vault)はDropboxに置いています。これによってバックアップ自体が不要になるのと、複数端末で同時に利用できるのでメリットがあります。 残念ながらiOSではこの方式が利用できないのですが、リモートワーク中ということもあり、スマートフォンでObsidianを使いたいというニーズがないので、これでよさそうです。

Obsidianはカスタムcssを使って見栄えをカスタマイズすることができます。 これからカスタマイズをしたいと思っている方は、https://github.com/Dmytro-Shulha/obsidian-css-snippetsをチェックするとよいでしょう。 多数のcssスニペットが公開されています。

ぼくは、以下の項目をカスタマイズしています。

  • 見出しの色
  • テーブル編集時のフォントを等幅に(Advanced Tablesが使いやすくなる)
  • コードブロックでの対応言語に、info/danger/success/commentなどを追加して、色を変更
  • 他のノートを埋め込むときの高さ指定を廃止して、スクロールしないように変更

それでは。