社内の本を整理してオフィス図書館を作った話

:::note
この記事はAteam Tech Blogの2023年7月7日の記事を再編集したものです
:::

こんにちは。オフィス図書館の仕組みを導入したので、ご紹介させていただきます！

![オフィス図書館の作業風景。手作業でテキパキと本棚を作っています](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/134221/65b7fa07-3a65-468d-aa4a-4162ca52fd64.jpeg)

# 社内の本棚、管理されていない問題

社内の本棚、管理されていない問題
みなさんの社内の本棚はどんなふうになっているでしょうか？
弊社には本棚が10個ほどありますが、半年前はどこに何の本があるか分からず、管理されていない状態でした。 そこで、社内の有志が集まり図書委員会を発足しました。

# 本を管理することで得たいこと

![本を知る、借りる、読む、シェアするサイクルを作る循環図が、最終的に「学び続ける」環境の支援をして、サービス成長につなげる図](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/134221/c5c4f6bb-4d67-4399-b7c8-f0b7208d5b75.png)

そもそも、私たちは、本を管理して何を成し遂げたいのでしょうか？
エイチームが大切にする価値観（"Ateam People"）の中に「学び続ける」というものがあります。 私たちは「本を知る、借りる、読む、感想をシェアする循環サイクル」を作ることで「学び続ける」環境の支援をして、サービス成長につなげたいと思いました。

# オフィス図書館とは？
そこで、図書委員会では社内に図書館のような貸出の仕組みを作ったら解決するのでは？と考えました。それがオフィス図書館です。
オフィス図書館では、下記のことに注意しながら運用をしています。

本は会社で購入したもののみを管理し、私物の本は持ち帰ってもらう
本の貸出は社員のみとする（著作権・貸与権を侵害しない範囲での利用）

# オフィス図書館を支える技術

図書委員会は、社員が本の貸出と返却、感想をシェアできる仕組みを実現するために、システムを用意する必要があると判断しました。 また、図書委員が定期的に入れ替わっても保守しやすい状態を保つために、Google Sheets と Google Apps Script(GAS) という、エンジニア以外でも比較的触れる技術を選定しました。

![貸出システムをGoogle Sheets・Google Apps Script(GAS)・Slackで構成している図](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/134221/00b8d13f-223e-4a22-ade0-7329bb399905.png)

開発は [@kaitat](https://github.com/kaitat) さんにお願いしきりで感謝の極みです！

# 本を知る、借りる、読む、シェアするサイクル
では、実際に作った仕組みが「本を知る、借りる、読む、感想をシェアするの循環サイクル」をサポートできているか、工夫したポイントも交えて説明していきます！

## 1. 「知る」ために
- 新着図書の通知機能
  - 新着図書が届いても、知らなければ借りられません。Google Sheets の「通知」チェックボックスをOnにすることで、Slackに新着通知が届くようにしました。

![貸出管理のGoogle Sheetsには本の情報と、借りる・返す・感想・通知の機能をもったチェックボックスがあります](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/134221/d249ee4a-951e-4559-b101-ae0e4ae26e69.png)

マスコットキャラクターのぶっくんが新着図書をお知らせしてくれます :relaxed: 

![Slackでぶっくんが新着図書を元気にお知らせしている様子](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/134221/363fbe3e-1fb2-4caa-b8aa-6803b899eaeb.png)

- 社内の本を分類分け
  - 本はエンジニア向けのものだけではない上、拠点ごとに置いてある本も異なります。そこで、カスタムフィルターを拠点と分類ごとに作成し、それぞれのリンクをSlackの関連ページにピン止めし、Google Sheets への導線を設置しました。

![Slackのピン留めアイテムにGoogle Sheetsへの導線を設置](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/134221/f6275009-ae4f-4256-9066-62fc62bc3d38.png)

例えば、Slackの「名古屋_デザイン」リンクをクリックすると、カスタムフィルターのかかった Google Sheets が開きます。

![拠点と分類ごとに Google Sheets のカスタムフィルターを作成](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/134221/30cb2151-a48d-49a3-989d-59eeb33a3ccf.png)

## 2. 「借りる」ために

- 貸出はチェックするだけ
  - Google Sheets のチェックをトリガーに貸出のGASが動きます。貸出処理は、別シートに行挿入して貸出日とともに記録しているので、返却忘れを特定できたり、後から貸出状況の分析をすることができます。

![借りたいときは、借りるにチェックを入れるだけ](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/134221/1504bfd2-1dbe-462d-a293-1d6ff474f9c5.png)


## 3. 「読む」ために
今期は、読むことをサポートする活動はできていませんが、社内で行われている輪読会などとコラボしてもよさそうです！

## 4. 「シェアする」ために

- 書いた感想はSlackに通知
  - Google Sheets から返却したとき、一緒に感想も記述することができます。書いた感想をSlack通知することで、チームにノウハウを共有したり、興味を持った人が借りてくれることを期待しています。

![書いた感想はSlackに通知](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/134221/f67187d0-be5a-4f45-ba6d-1a1f350e78fc.png)


# オフィス図書館を作った結果...!!

![ちょうどいい塩梅のロゴ](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/134221/85855c5c-77ec-4c24-a630-a0af8c645b3e.png)

導入前は放置されていた本棚ですが、オフィス図書館を作ったことで、月に十数名に利用してもらえるようになりました！まだまだ改善できるところもありますが、それは次の図書委員メンバーの楽しみにとっておきます。

今回ご紹介した以外にも、マスコットキャラクター総選挙を実施したり、Svelteで本のバーコードスキャナーを作った話などをしたかったですが、それはまた別の記事にしたいと思います。