こんにちは、mzpです。最近は、毎日だれかが体調不良で休んでいて、恐怖に震えています。
最近、esaのカテゴリを整理しており、とうとう「その他」というカテゴリを廃止できました。 今日はその話を紹介します。
背景
Misocaでは情報共有ツールとしてesa.ioを利用しています。
ただ、当初からQiita:teamを使っており、2015年の中盤にesaに移行しました。 このとき、Qiita:teamにあったすべての記事は自前のスクリプトで移行しました。
その際、esaのカテゴリに相当するものがQiita:teamにはなかったため、とりあえず「その他」カテゴリ以下にすべての記事を分類しました。そのため以下の画像のように、その他カテゴリ以下には1000本以上の記事が分類されていました。
問題点
この状態のまま1年半ほど過してきたが、以下のような問題が生じてきました。
- 目的の記事に辿りつくのに常に検索が必要。そのため、あると分かっている記事しか見れない。
- 他にどのような記事があるか分かりづらいため、同じような記事がどんどんできていく。
- 記事を新規作成したいときに、どこに作るのがよいか分かりづらい。
要するに、各自がメモを置いていく場所になってしまい、チーム全体で情報を共有する場になれていない、という問題点がありました。
esa自警団
これらの問題に対応するためにesa自警団を組織しました。まずは見通しをよくするために「第1階層のカテゴリ整理」と「その他を適切なカテゴリに分類する」を目的としました。

この自警団の組織と直前に、技術顧問であるkakutaniがesaに書いた文書がエモくてよかったので引用しておきます。
Wikiの格言(要出典)に「Wikiのもっとも良い書き手とは、それを読みたい読者である」みたいなのがあって。「自分が読みたい文書にしていく」活動がWikiなのでした。
Misocaのesaでいうと「自分が」よりももう少し広くて「Misocaのメンバーにとって」読みたい文書が集まっている場所にしていけるといいなと思ってます。
そのためには、「Misoca社っていうのはこうなってる」という文書について、メンタルモデルを不断に合わせていく活動が大事なのだ。
8年も前の文章だから恥ずかしくて自分ではもう読み返せないけど:第4回特別コラム 「なぜそんなにも(アジャイル開発者にとって)Wikiは重要なのか」:アジャイル開発者の習慣-acts_as_agile|gihyo.jp … 技術評論社っていう話を昔書きました。
まあ、Wikiのページがちぐはぐなチームや組織は、実際のところもちぐはぐなのです。
第1階層のカテゴリ整理
esaに「カテゴリ第1階層を整理するスレ」という記事を作り、そこで第1階層のカテゴリをどのようにするかを決めていきました。 
esaにはカテゴリ移動機能があるので、どのようなカテゴリにするかを決めてしまえば、あとは楽です。

その他の整理
「その他」カテゴリの整理は、2段階に分けて行ないました。
- Qiita:teamのときに付与していたタグを元に、カテゴリを移動する
- 残った記事は1つずつ移動先を決める
この作業をWebインタフェースから行なうのは大変なので、esa-ruby gem を用いて記事を移動するスクリプトを書きました。
何度かAPIのリクエスト上限に達したり、大量の記事を更新するためトップページにあるRecently updatedが使い物にならなくなったりと大変でしたが、なんとか終わらせることができました。
今後にむけて
今後は、以下のような作業をしていきたいと考えています。
- esaではカテゴリごとにREADMEを置けるので、それを活用し、入口となる記事を増やしていく。(参考: ReleaseNotes/2015/02/23/カテゴリごとのREADME - docs.esa.io)
- 古くなった内容を更新する・消す
- 似た内容が書かれている記事を一つにまとめる
Misocaでは情報共有ツールを大事にするソフトウェアエンジニアを募集しています。