ソフトウェア会社における知識の継承とドキュメント管理について

はじめに

今時のIT企業でソフトウェアをビジネスの主としている会社は、従業員の入れ替えが発生しても、その時の意思決定がなぜ行われたのかも含め、情報を把握できるようにしたい。

事業を営むと、例えばテーブルが追加されたり項目が変更されたり、クラウドサービスやfirebaseなどのMBaaSツールが廃止になったりアップグレードになり、修正しないと動かなくなったりする。

なので、外部環境の変化を受け修正する必要があるので

  • なぜそういう設計をしたのか(まともなエンジニアなら理由を書く。xxを達成するため & 考慮するためそういう設計をした、とか言う)
  • なぜそのサービスを利用したのか(利用事例が多い or 費用の面で採用せざるを得なかった、とか色々ある)

等のドキュメントが必要。

githubのプルリクに書く件について

僕の会社ではgithubのプルリクにそれを書いている。 メリットとして

  • マークダウンなので書きやすい
  • ソースコードからすぐ該当箇所のプルリクに飛べるので、その時の背景を知れる

などのメリットがある。

メンバーがコードレビューをする時、その背景も含めて理解しやすい。

欠点

非エンジニアは閲覧し辛い。 もし非エンジニアもそれを見れたら、運用側の人や営業側、経理の人なども見れて助かるかもしれない。

また、プルリクに書くと、プルリク検索から探せたりもするが、タイトル検索では引っかかると思うが、しれっと変更されたものや、細かい所の検索制は低い気がする

esaで全てを記述する場合

esaで全てを記述する方法についてなのだが、その場合非エンジニアも見やすい。

しかし、ソフトウェアの変更を加えるエンジニアがレビューするものと別で管理することになるデメリットはある。 コードベースでの使用はgithubに残して、運用ベースやユースケース、仕様ベースではesaに残した方が良いように思える。

slackやgoogleツールを採用する場合

slackはリアルタイムの会話で使うもので、ラフなものや手がかりを残すもの、という意味では優れている。

しかし詳細を残すのには向いてない。

goggleツールは、スプシなど必須のものと一緒に使えるのはメリットではあるが、手軽さやエンジニア向けのツールではない。

非エンジニアには良いツールだと思うが(硬いフォーマットとか)