蓄積したノウハウをどう管理するか

アルバイト先や職場、コミュニティなどで新人扱いのとき、教わったことはふつうメモを取りますよね。 それは何度も同じことを聞かなくて済ませるための手段ですが、慣れるとそういうことを怠ってしまいがちです。

無印良品は、仕組みが9割」だそうです。ちょっと前にテレビの特集で観ましたが『仕事の成果や判断が属人的にならないよう、定型的な作業はすべてマニュアルにする』とかそんな内容だったと記憶しています。この理論でいくと、新人にメモを取らせること自体が無駄ですね。極端ですが。

手帳・ノート・付箋でやりくりしていても、自分が移動した時にそれを携帯していることが前提になってしまいます。 また、仕事で利用する手帳やノートは持ち運ぶこと自体がすでにセキュリティリスクだと思っています*1

それから、今の時代は検索くらいできないとです。 手帳に書きなぐったそれは、3ヶ月後の自分がすぐに見つけられるでしょうか。僕にはできません。

これらを踏まえつつ、数年にわたって IT をうまく活用して解決を試みた経過を報告します。

方式検討

各種Webサービスを検討してみましたが、以下のような理由で不採用としました。 また、特定のノウハウ管理に特化したサービスを探すことはやめました。企業であればアリかもしれませんが。

  • ブログ
    • よく「備忘録」的タイトルでやっている人がいる
    • 断片的になりがち、体系的でない
    • 日付がわかりやすいところはよい
    • 得られた知見を公開することでネット社会に貢献できる気がする
  • ソーシャルブックマーク
    • 記事が消えるリスクは意外と高い
    • はてブだと 100 文字制限がある
    • ソースコードを引用して残したい
  • Evernote
    • 検索性など、わりと目的に合っている気がする
    • でも自分はスクラップブックとして使っているのでナシ
    • 自分の Evernote が他人のデバイスからアクセスされるのは気持ち悪い(教えるときとか)
  • Dropbox
    • 検索しにくそう
    • ページ(テキスト+画像+スタイリング)の概念を持ち込みにくい
    • いろんな用途を混ぜたくない
    • ExcelPowerPoint で自分用に手順を残している人には良いかも
    • こちらも公開できるけど自動生成 URL な感じがなぁ
  • iCloud「メモ」
    • 公開できないけど機能性と手軽さは意外とあなどれない
    • 実は箇条書きなどの記法がある
    • ノウハウではない、本当のメモとして使っている

最初はブログに何度か挑戦したのですが、どうしても続きませんでした。テーマが気に食わないとかそんな理由で。。 結局、インターネット経由で閲覧・編集をしようとするのであれば Wiki システムを利用するのが合っていると判断し、導入しました。 幸いこれがうまく回って、ここ 3 〜 4 年間運用が続いています。

自分用 Wiki の構築と運用、その悩み

Wiki の良いところは、簡単な記述で「見出し」「箇条書き」「リンク」「引用」「コード」「テーブル」が表現できるところです。 ノウハウのメモは、実際運用してみると箇条書きがほとんどでした。

はじめは Wikipedia でも利用されている Wiki エンジン「MediaWiki」を導入し運用していました。 後述のような不満が募り、今は GitHubWiki 部分にも利用されている「Gollum」に移行しています。

MediaWiki

自分用の MediaWiki インストールメモはこちら

  • 僕の作った MediaWiki ページ :: nocorica wiki
    • メインページのみ。各ページは Gollum に移行済み
  • PHP / MySQL が前提。レンタルサーバを借りた
  • URL がダサい
    • /index.php?title=メインページの形式がデフォルト。
      Short URL と呼ばれるものに設定変更できるようだが、当時の自分には無理で諦めた。
  • なんか遅い、なにが原因かは不明
  • MediaWiki 記法がイマイチ
    • 特にリンクの記法[url title]が気に入らなかった
    • Markdown を覚えた & GitHub界隈では主流なので、統一したい
    • Markdown で書けるプラグインがあるようだが、導入できなかった
  • バックアップに対する不安

Gollum

自分用の Gollum インストールメモはこちら

  • 僕の作った Gollum ページ :: syon/wiki
    • 誰でも編集できるけど僕がデプロイすると洗い替えられます
  • よく挙げられている特徴
    • Markdown, MediaWiki, Textileなど大抵の記法で書ける。
    • 基本的にgitリポジトリ一つで完結しており、MySQLなどのDBが不要で、簡単にprivate wikiを立ち上げられる。
    • セットアップが非常に楽。
    • gitで動いているので、バージョン管理や差分、コミットを遡ってrevertする、なんてこともWebのUIから簡単に操作できる。
    • 全文検索も実装されている。
    • ruby+sinatraで実装されているので、分かる人は拡張を簡単に書ける気がする。
    • シンタックスハイライトが効く
    • ファイルアップロード機能も一応ある(あんま重要視してない)
    • 管理がGit任せなので、操作に慣れていると楽
    • ほとんどそれだけしか機能が無いこと(ユーザ登録機能すら無いです)
  • 使ってみて気づいたイマイチな点
    • プライベート用途が想定されている
      • 右上のボタンは誰でも操作できる
    • dl dt dd相当の記法がない
      • これは Markdown の仕様っぽいから仕方ない
      • そのままタグで書けば反映される
    • ページ数が増えると
    • 公開にあたって
      • なんとか Heroku 上で見られるようにはできた ⇛ すべて 無料 でシステムが動いている
      • ページタイトル、URL がファイル名に依存。サイト名もつけて判別できるようにしたい
      • Google Web Master Tools の静的ファイルを置くためにソースに手を加える必要がある
      • サイトマップどうしよう。。
    • トップページだけはいい感じにレイアウトしたい
      • Nginx + Unicorn で分離?難しそう。。
  • Know-how as Code

Gollum の導入は Git の勉強にもなってとても素晴らしい経験になりました。 近頃は上記のイマイチな点を解消しようと頑張っているのですが、なかなか解決に至りません。 最近お気に入りの Middleman を組み合わせて……と考えたのですが、それはもはや Gollum である必要さえなく、ただのウェブサイトでした。 なんとかして不満を解消したい。みんなどうやってノウハウを管理しているんだろう。

*1:これに関しては、漏洩してはならないことをそもそも物理媒体・電子媒体に記述さえしないように気をつけるべきです。もしくは、自分にしかわからない略称や暗号でカバーします。