チームにGrowiを導入してから1年が経った
はじめに
今の会社に新卒で入社してもう6年が経ちました。
業務では主に、フロントエンド をReact
やReactNative
とTypescript
で開発しています。
※部署やチームによって扱っている言語は様々で、異動やスポットで加入した際はVue
やら.NET
やらSalesforce
やらで開発をしたりもしました。
入社した頃は、正直なところExcel
至上主義な雰囲気で 「仕様書20201125v1.xlsx」 なんてファイルがゴロゴロしていたりもしました。
ドキュメントやコードの管理方法なんかもバラバラで、酷いところだとファイルサーバに直置き。あとはSVN
やVSS
が多く、一部でPukiWiki
、ちょっとトレンドに敏感な人がいるチームは早々にGitlab
を入れてWiki
で管理。といった感じでした。
そんな状態から段々と「しっかりドキュメントを管理しましょう」といった空気になり、扱いやすいツールは何かとあれこれ試行錯誤した結果、Growi
を導入することにしました。
今回は、自分が所属するチームにGrowi
を導入し約1年が経ったので導入方法と、その結果どういった変化が生まれたかを記事にしたいと思います。
そもそもGrowiとは?
- 参考:Growi公式
Crowi
というオープソースのWiki
ツールがあります。
サーバを用意すれば無料で利用できる優れものです。
このCrowi
を拡張したのがGrowi
です。
S3
にデータを保持するのが推奨とのことですが、クラウドにデータを置きたくなかったのでDB
としてはmongoDB
を扱うことにしました。
資料は任意の階層に格納されるため開発/言語/Javascript/フレームワーク/React
や保守/○○システム/2020年/対応ログ
のように好きなように構造を決めることができます。
セットアップ方法
以下の作業は済んでいる前提で話を進めます。
-
Docker
のインストール
下記の手順は/opt/docker
に環境構築を行う場合の例になります。
作業ディレクトリを作成+Gitからクローン
mkdir -p /opt/docker
cd /opt/docker
git clone https://github.com/weseek/growi-docker-compose.git
cd growi-docker-compose
設定の変更
docker-compose.yml
ファイルを編集します。
version: '3'
services:
app:
build:
context: .
dockerfile: ./Dockerfile
ports:
- 0.0.0.0:3000:3000
links:
- mongo:mongo
- elasticsearch:elasticsearch
depends_on:
- mongo
- elasticsearch
environment:
- MONGO_URI=mongodb://mongo:27017/growi
- ELASTICSEARCH_URI=http://elasticsearch:9200/growi
- PASSWORD_SEED=zennzenn # SEED用の文字列(任意の文字を設定)
- FILE_UPLOAD : 'mongodb' # ファイル添付の保存先をmongodbにする
起動
正常に設定が完了していれば下記コマンドで動作します。
docker-compose up -d
以下のような画面が立ち上がれば成功です。
マスクしてあるところに チーム名(管理者でログイン後に設定可能) が入ります。
使ってみて感じたこと
以下、実際に使ってみて感じたことです。
Markdownは神
Growi
を導入する前から使っていたSVN
やPukiwiki
も、あれはあれで良いものだと思いますが、やはりMarkdown
で記載できると色々と捗るなと思いました。
キャリアパスによってはMarkdown
を全く使ったことがない人もいたので、そのあたりのフォローが大変でしたが後述の「プレゼン機能」なんかにも救われて、どうにか定着させることができました。
デザインですが、Bootstrap
とPlantUML
に対応しているため、ちょっとした図形や簡単なスタイルなら画像挿入をしなくても対応できます。
また、Marp
のようにMarkdown
から何かしらのファイルを生成するツールとの親和性も良く、業態に合わせて柔軟に扱うことができます。
ちょっとしたメモとしても使いやすい
もともとメモや議事録はMarkdown
で書いていたので、Growi
のユーザページ配下にYYYYMMDD/XX打ち合わせメモ
といった形で記録するようになりました。
プレビュー機能も付いているので、その場で確認したいことは画面共有しながら対応できて便利でした。
階層を後から変更することもできるので「個人的なメモとしてざっくり書いておいて」後から「清書して正式な資料として別階層に移動」といったこともできます。
プレゼンテーション機能が便利
本家Crowi
に備わっているかわかりませんが、プレゼンテーション機能というものがあります。
現在表示しているページを項目ごとにスライド形式で表示してくれる機能ですが、これが非常に使いやすかったです。
というのも、チーム内で技術的な勉強会を開くにあたって予め作成しておいた資料をそのまま使い回すことができたからです。
勉強会後は資料ページにメンバーからのフィードバックをコメントとして書いてもらうこともできたため、開催側としても非常にありがたかったです。
バックアップは自動化した
保存先にS3
を使っている場合できるか分かりませんが、バックアップを自動化しています。
内容としては、毎日mongoDB
のdump
を取って所定の場所に一定期間格納するという簡単なものです。
閲覧制限がちょっと難あり
Growi
では記事の閲覧制限をかけることができます。
「リンクを知っている人」や「自分のみ」の他に「グループのみに公開」というものがあります。
これは例えば「正社員のユーザだけのグループ」といった感じで自由にグループを作れるのですが、この制限をかけるグループを複数指定できません。
なので「正社員」と「アルバイト」という2つのグループに対してのみ閲覧できるようにしたい場合は、両方のメンバーを内包したグループを1つ作る必要があります。
※今現在使っているバージョン(v3.6.7)の話のため、最新版では解消されているかもしれません。
どんな変化があったか
導入してからだいたい1年ぐらい経過した時点での変化です。
大きくは以下2点だと思います。
ドキュメントに書き起こす頻度が上がった
やはり簡単に書けるという効果が大きいようで、導入前はちょっとした作業メモなら個人の端末にxxx作業.txt
とった感じで残されるだけだった情報がGrowi
上がってくるようになりました。
ちょっとしたメモでも、新入社員や異動してきて間もない人にとってはありがたい情報のようで「Growi
で検索したら情報が出てきた」といった声も聞こえるようになりました。
情報が一か所に集まった
元々使っていたツールに不満があるケースが多かったようで、そこまで啓蒙活動をせずともGrowi
を使うということが定着しました。
その結果、分散されていた資料が集まってきたため、アクセスがしやすくなりました。
※基本的に社内ツール的な位置づけのため、外部の方とやり取りするような資料は対象外となっていることが多いです。
今後やっていきたいこと
続いて今後の展望です。
資料の重複への対応
初期の運用時にあまり細かくルールを決めていなかったため、同じような内容の資料が別階層に書かれることがしばしばあります。
例えばAチーム/開発環境セットアップ/Nodeインストール
とBチーム/技術資料/Javascript/Node/セットアップ
のような感じです。
現在は「技術系資料は共通/技術資料/
の下にまとめる」といった運用にしていますが、それでも重複が見られます。
※特にNode
周りが顕著で、人によっては「React
の開発環境を作るにはNode
は不可欠だから、一緒にインストール手順を書こう」といった感じで気を利かせてReact/初期セットアップ
に書いてくれたりしますが、そこは既に作られているNode/インストール
へのリンクを貼るだけに留めてほしいところです・・・
検索した時に同じような情報が引っかかってきたり、書かれている内容が古かったりするのでこのあたりの対応をどうすべきかが検討事項です。
溜まってきた資料の整理
1年で1000ページ強の資料が作成されました。
今後はアクセスのしやすさを求めようと思います。
具体的にはGrowi
のタグ機能を使って検索の利便性を向上させたり、年末の時間を使って資料の階層を整理しようかなと思います。
まとめ
今回はGrowi
を導入して、チーム内の資料管理に活用した内容を記事にしました。
Growi
はナレッジベースとしてはなかなか優秀で、大きな問題もなく運用できていますし、
さらに使い勝手が良さそうなツールに切り替える際もMarkdown
でエクスポートできるので、移行がスムーズになるのではないかと思っていたりもします。
上記の閲覧制限の話等、ちょっと取っつきにくいところもあるので、もし導入を検討されている方がいましたら参考になるかなと思います。
Discussion