モダンな情報共有ツール esa.ioを2カ月超使ったのでβ前に紹介するよ
Tokyo Otaku Mode(以下TOM)でエンジニアをやっているpchwです。 今回は情報共有ツールのお話をさせていただきます。 TOMの開発チームは、創業当初は数人で構成されていたのですが、最近ではフルタイムでないメンバーも含めてかなり人数が増えました。 少人数であればある程度自然に情報共有できるものの、人数が多くなってくると持っている情報量に差が出てきて、なかなかスムーズに共有を図ることができなくなります。 そこで頼りになるのが、情報共有ツールというわけです。現在、TOMの開発チーム内では情報共有のためにesa.ioというサービスを使っています。
- なぜesa.ioを使うようになったのか?
- esa.ioとはどういうものなのか?
- esa.ioは他の情報共有プラットフォームと比べてなにが違うのか?
これらの点を踏まえつつ、esa.ioを紹介していきます。ぜひ参考になさってください。
なぜesa.ioを使うようになったのか?
esa.io を導入する前は、GitHub Wikiがメイン、Confluenceが少々、というスタイルをとっていましたが、とりわけ Confluenceのほうは、思うように利用が促進されませんでした。考えられる理由は、おそらく以下の4つです。
- 積極的に導入するも、その後のメンテナンスを行う人がいなかった
- 記事が煩雑に配置され、Confluence内で迷子になった
- Markdownが使えなくてテンションが下がった
- WYSIWYGのエディターは総じてエンジニアのテンションを下げる
GitHub Wiki はある程度の期間使用したのですが、こちらも……。
- GitHub Wikiに装備されている検索機能がタイトル検索しかできない
- 本文を検索するには
git clone
してgrep
するしかなく面倒くさい - Issuesと違い画像のアップロードができない
等々のデメリットがあり、とくに記事の量が増えてくることによって目立ってくる検索回りの機能の弱さは、相当厳しいものがありました。
そこで注目したのが、@ken_c_loさんのWebエンジニアのためのWebサービスデザイン実践講座のスライドのおまけに書かれているesa.ioです。これこそが、いま自分たちが抱えている問題を解決するために欲しかったものでは? そう感じ、使わせていただくことになりました。
esa.ioとはどういうものなのか?
esa.ioは、ひと言で言うと「小さなチームのためのドキュメント共有システム」だそうです。
似たようなカテゴリの有名どころとして、WikiやQiita:Team、Confluence などがあげられます。 また、まだ先行登録受付の状態ですが、DocBaseも似たカテゴリのサービスと言えるでしょう。
主だった機能や特徴としてあげられる点は次の通りです。
- Google Accountによる認証
- 階層を持ったカテゴリによる記事の分類
- タグによる記事の分類
- WIPという下書き状態で記事を上げることを是としたコンセプト
- 誰かが書いた記事を他人が追記改変可能
- 記事のRevision管理
- テンプレートからの記事作成
- 記事をコピーして別の記事の作成
- idobata/hipchat/slack/email/ikachan へ通知できる豊富なWebhook
- モダンでストレスの少ないUI
- ふつうに使える検索
- 記事のWatch/Starによる更新通知
なかには、我々のチームが使い始めたころにはなかった機能もありますが、使っているうちに追加されたり、フィードバックを送ることによって付けていただいたりして、現在の仕様になっていきました。TOMの開発チーム内における主な用途は、技術Tipsの共有、日報、Customer SupportのKnowledge Base、議事録、勉強会メモの共有などです。
実際の利用風景
カテゴリ分け
esa.io のメイン機能として打ち出しているもののひとつに、カテゴリがあります。
このように、それぞれの記事は付けたカテゴリ別に整理され、また、Node.js/Sinon.js
のように、カテゴリには階層構造を持たせることもできます。 これにより、効率的に記事を整理することが可能になります。
編集画面はこのようになっており、タイトルを/で区切ることによってカテゴリを付けられます。このキャプチャの場合、「Blog」がカテゴリで、そのなかに「esa.ioの記事」というタイトルの記事が作られている、という状況を示しているわけです。
この「タイトルでカテゴリを付けられる」という仕組みは、さまざまなシチュエーションで都合良く機能してくれます。 例えば、「記事はもう不要になったが内容自体は残しておきたい」というときには、「Archived/Blog/esa.io」というように、先頭にArchived/
を入れるだけで、Archivedカテゴリに現状のカテゴリ構造をそのまま移動することができるのです。
WIP機能
ほかにも、esa.io の特徴的な機能にWIPというものがあります。 WIPはWork In Progressの略で、「進行中」「下書き」「生煮え」的な意味合いです。
WIPで投稿されたものはこのように表示されます。下書きであることがひと目でわかり、すぐに編集できるようになっている点が便利です。 この機能のおかげで「内容はFixしていないけど、とりあえず上げておこう」とか「タイトルだけでも上げておこう」という意識がおおいに促進されます。
また、記事に対して誰でも編集に加われるため、自分で書ける部分はWIPで上げておき、別の誰かに追記してもらって記事を完成させる、という段取りを組むことも可能です。
豊富なWebhook
記事を投稿したあとは、Slackやメールで通知したいという状況が多々発生しますが、 esa.ioはいろいろなWebhookを設定できるので、余計な手間が発生することはありません。
TOMの開発チームでは、Slackのesa.io更新通知部屋に更新時に通知が来るようにし、 また、日報をメールで通知するような設定にしています。
このメール通知はほかのWebhookよりも条件を細かく設定することができ、 なおかつカテゴリが特定条件にマッチするときだけ通知するというフィルタ機能も付いています。 ^/日報
というふうに設定しておけば、日報だけがメールで飛ばせるといった具合です。
通知機能
esa.ioは内部に通知機能を持っており、
- Watch/Starした記事が更新された
- 書いた記事にコメントがついた
- @id で記事やコメントからMentionされた
などの動きがあると、右上の扉が開いてトリが現れ、通知があったことを知らせてくれます。
また、esa notifierというChrome拡張もあり、esa.ioを開いていないときに通知を受け取ることもできます。
esa.ioは他の情報共有プラットフォームと比べてなにが違うのか?
これ以外にもさまざまな機能が存在しますが、使い勝手に関して大体のイメージがわいたと思いますので、次は他サービスとの比較について触れていきます。
これまでConfluence、GitHub Wiki、Qiita:Team(試用)などを使ってきましたが、それらのサービスと比較したうえでesa.ioの利点としてあげられるのは、
- Markdownを使えて、隣にライブプレビューが表示されている
- 記事を書いている途中に画像のアップロードができる
- WIP状態で公開するとまだ途中の記事だということがすぐにわかる
- 編集リクエストを出さなくてもそのまま編集できる
- 記事タイトルを
/
で区切るだけでいいシンプルな階層カテゴリ機能を搭載している - UIが洗練されている
というところです。
あとは、機能というよりはUIによるものなのか、使っていて書くのが苦にならない点が大きいです。 とくにConfluence使用時は、「使いたくないけど使っている感」があったので、それに比べると記事を書くことに対するモチベーションがまったく違います(個人的にはQiita:Teamもあまり書きたくなる感じではなかったです……)。
情報共有ツールの目的は情報を共有することなので、気軽に記事を書けて、気軽に整理できるという点は非常に重要なファクターになります。 esa.ioは記事がまとまっていない状態でもWIPとして起こしておけますし、さらにカテゴリの整理に関しても、foo/bar/article
をhoge/fuga/article
というようにタイトルを変えるだけで階層をごっそり移動できるので、その点でも相性が良いと感じました。
現在のesa.ioはα版なので、不便な点もまだまだありますが、フィードバックを送ることで比較的すぐに機能追加されたり改善が施されたりするので、あまり気にはなりません。
正直なところ、α版という扱いがなされているものの、esa.ioを使い始めた2カ月前にすでに「なんて完成度の高いα版なんだ!」と思いました。いま記事を書いているこの瞬間も、改めてα版とは言えないクオリティだなと感じています。
まとめ
esa.ioは期待の新星情報共有サービスです。今秋にα版からβ版に移行するらしいので、早めに使いたい方はこちらでサインインしてチーム申請をしておくといいでしょう。オープンした瞬間にサッと使い始められると思いますので!
最後に恒例の告知です。 Tokyo Otaku Modeではα版のサービスでも積極的に飛びついて試していける気概を持った、好奇心旺盛なエンジニアを募集しています。