ソフトウェア開発現場でのドキュメンテーションについての雑文。
知識を共有する
チームでソフトウェア開発の現場では、個々人の持っている知識をチームの知識として広めるために、ScrapboxやNotionのようなドキュメント共有ツールを使うことがある。職場でもScrapboxを使っている。
知識の共有というと、個人の頭の中にある知識を取り出して、文書に落とし込み、他の人がその知識を受け取るというイメージがある。
副作用
しかし何かについての文書を書くとき、すでに知っている知識を書くだけではない。文書を書くためには、事実を確認し、重複する概念を整理し、関連性を整理し、フォーマットを整えるといった作業が含まれている。この作業の中で書いている人の頭の中で情報が整理され、知識が洗練される。ドキュメンテーションの副作用であり、ドキュメントを書いた人に対する報酬だ。
こういう副作用があるから、ドキュメントはだれでもどんどん書いていくのが本人にとってもチームにとっても得だと思っている。
複数人で同時に書く
とはいっても、詳しくない内容に関するドキュメントを書くハードルは高い。誤った情報書いて拡散してしまうのは気まずい。
少し前に、チームのエンジニアで集まって「モブドキュメンテーション」を行った。参加者で画面を共有して、ペアプログラミングを行うようにドキュメンテーションを行った。画面を写している作業者が一人いて、残りのメンバーはその画面を眺めている。わからないことがあったらその場で聞いたり、足りない情報をその場で補完することで、一人でドキュメントを書くときよりもサクサク進み、よいドキュメントを書くことができた。
ドキュメントを書くという目的は効率的に達成できたし、その場で知らないことを教えてもらうという良い「副作用」もあった。
今回はサーバーサイドのエンジニアだけで行ったが、他の職種の開発メンバーを交えて行ってもいいかもしれない。今後も機会があればモブドキュメンテーションをしていきたい。