見出し画像

ナレッジマネジメントの取り組み ~業務ドメイン知識の脱属人化に向けて~

こんにちは、バックエンドエンジニアの土屋です。

最近散歩をしているとどこからともなく金木犀の香りがしてきて秋を感じるようになりました。

長かった緊急事態宣言が明けたいま、食欲の秋、読書の秋、スポーツの秋、行楽の秋と楽しみなことが山積みですね!

紅葉を見ながら温泉でゆっくりしたいものです♨️


さて、本記事では、業務ドメイン知識を向上させるための弊社の取り組みについてご紹介します。

業務ドメイン知識とは

ここでいう業務ドメイン知識とは、各サービスの機能(予約、検索、決済など)に関する知識を指します。

具体的には、仕様に関する知識、該当コードに関する知識、該当機能に関するインフラの知識といったものが挙げられます。

これらは設計開発者が一番の有識者となり、機能が増えるほど属人化が進みやすい部分でもあります。

課題

属人化のデメリットとしては、その有識者が退職してしまうとナレッジが失われてしまい保守や機能追加に必要以上に時間がかかってしまったり、最悪の場合誰も保守できなくなってしまうリスクがあることです。

また別の問題として、サービスの成長に伴いシステム構成や機能が複雑化してきているため新規参入者のオンボーディングの難易度が次第に高くなっていくという問題もあります。

実現したいこと

・エンジニアのドメイン知識を向上させることで開発、保守のスピードと品質を向上させる

・属人化を防ぎ、各ドメインの有識者を増やす

・体系的に把握できるようにすることで、オンボーディングを高速化
 これにより、中途採用以外にも業務委託や新卒採用という新たな人材戦略の可能性を広げる

実施内容

※ 展開フェーズはこれからとなるため現状の方針を記載しています。

ドキュメント整備

1. サービス機能一覧

どこにどのような機能があるのかを一覧化した資料を作成しました。

各リポジトリごとにエンドポイント単位で機能をリストアップしています。

項目としては、「大分類」「中分類」「機能名」「機能概要」「物理名」「CRUD」といったものがあります。

これにより、機能からコードを逆引きしたり、一覧から知らない機能を検知してコードを読んで詳細を理解するということができるようになっています。

2. テーブル一覧

各テーブルの概要を一覧化した資料です。

各データベースごとにテーブル単位で記載しています。

項目としては、「テーブル名」「テーブル概要」「概要詳細」があります。

ER図のようなテーブル間の関連というよりもこのテーブルはどういったテーブルなのかということにフォーカスした資料となっています。

初見のテーブルを扱う場合にコードからテーブルの目的を推測する必要がありましたが、この資料を先に読むことで概要を頭に入れた状態でコードを読むことができるため開発効率が向上します。

3. 用語集

サービスに関する用語であったり、社内独自の用語といったものをまとめた資料となります。

項目としては、「名称」「コード上の名称」「主に使用されるリポジトリ」「概要」があります。

これらの独自用語は新規参入者のキャッチアップを阻む大きな壁となるため一覧化しておくことで体系的に知ることができるようにしています。

スキルマップ

スキルマップ

弊社では各エンジニアのスキルを把握するためにスキルマップを使用していますが、この中でドメインごとに各エンジニアのスキルをマッピングしています。

例えば、「予約サービスの決済ドメイン」という項目に対してAさんはスキル「◎」といった具合で、各ドメインごとにどのくらいのレベルの人がどれだけいるのかを見える化しました。


今後の展開

このフェーズでは実際に各エンジニアのドメイン知識向上に向けて取り組んでいきます。

ターゲットとするドメインを洗い出す

全エンジニアの全てのドメイン知識を向上させるというのが理想ではありますが、ファーストステップとしては優先度の高いドメインに集中してスキルアップ策を講じていきます。

上記のスキルマップによりドメインごとにどれくらいのスキルの人がいるのかということを可視化することができました。

その結果をもとに、有識者が少ないドメインや、特に重要なドメインを洗い出します。

対象ドメインに関する知識向上施策を打つ

今後はそのドメインに特化した詳細資料を作成したり、有識者による勉強会を開催するなどによりスキルアップを目指していこうと考えています。

まとめ

特にスタートアップではスピード感が重視される傾向にあるため、仕様書や設計書等のドキュメントが整備されず、知識が共有されにくい状態となっていることが多いのではないかと思います。

とはいえ、サービス規模が大きくなるにつれて属人化のリスクを無視することができなくなってきます。

また、知識の共有化により一時的には教育の工数がかかりますが、知識が浸透してくるにしたがって全体としての開発スピードは向上し初期投資を上回るリターンが得られるのではないかと思っています。

急がば回れの精神で引き続き取り組んでいきたいと思います。

最後に

スペースマーケットではエンジニアを募集しております!
一緒にサービスを成長させたい、モダンな技術で開発したい方など、ご応募お待ちしております!


この記事が気に入ったらサポートをしてみませんか?