ドキュメントを書かないことは「負債を生む」ということ

# 本記事の要約
- ドキュメントを書かない事は、企業やチームの「**負債**」になる
- ドキュメントを書かない事は、自身の学びや振り返りの「**機会損失**」になる
- そういう文化が根付く前に、負の連鎖を断ち切ろう！

# はじめに
世の中のプロジェクトには、ドキュメントが足りていない、と感じています。

でも残念な事に、ドキュメントをどうしても書きたい人は「ほとんどいない」と思います。
その一方で「ドキュメントを書いた方が良い」という事は、
何となく分かっている人も多いと思います。

やりたくない事をやらなければならないのは、嫌ですよね。
そんな気持ちは分かりますが、これを機に一度改めてみませんか。
何故なら、ドキュメントを書かない事はチームに「**負債**」を生むからです。

勤め人ならば少なからず一度でも、体験した事があると思います。
<font color=red>「**どうして必要な過去の資料が無いんだ**」</font>って。
あるはずの歴史の一端がソースコードからしか分からないのは、致命的です。

そういう状態がチームの文化として根付いてしまって**負の連鎖**にならないように、
自分も含めて一緒に直して行きたい。変えて行きたい。
そう思っています。

:::note
読んでいる皆さんの現場でも、過去のドキュメントが残っていないのなら、
一緒に負の連鎖を断ち切りませんか？
:::

# 何故ドキュメントが書かれないか
まず、どうしてあなたのチームにはドキュメントが残らないのか？
ドキュメントが残らない理由については、自分にとっても耳が痛い話でもありますが、
そこに何かしらの理由があるという事を知らない事には、先に進めない。
まずはそれを紐解いて行きたいと思います。

## ドキュメントを書くのは面倒臭い
人類の大敵である**面倒臭い**。多分これが発端だと思います。

何故なら、ドキュメントを書くべき人は、**必要な事項を知っているから**です。
文章にして体系的に起こす事はすぐに出来ないものの、
その人にとっては既に一定の理解が済んでいて、
大抵の場合は頭の引き出しから出せる状態なのです。
特にプロジェクトが終わった直後であれば、聞いたらすぐ答えられる状態でしょう。

「今更、文章に起こす必要って無くないですか？」
「それよりも次の業務に移った方が効率的ではないですか？」

そういう声が聞こえて来そうです。

:::note warn
だって文章書くの面倒臭いですよね。良く分かります。
:::

## どうせドキュメントなんて読まない
ドキュメントが無くて困る事態は、基本的に詳しい方には降り掛かりません。
何故なら前の項に書いた様に「自分は分かっている」からです。
ですので、**分かっている自分がいる限り**は問題無いのです。

何か問題があったり、知りたかったりした場合、この方に聞けば良いので、
詳しい方にとってはドキュメントは必要ありません。
確かに必要ないかもしれませんね。<font color=red>**今だけは**</font>。

:::note warn
詳しい方に聞いてすぐ分かるなら、それで良いですよね。良く分かります。
:::

## チームの誰もが書いていない
チーム内にドキュメントを書く文化自体、無い場合があります。
他の誰もが書いていないのに、自分だけが書く必要はあるのでしょうか？

特にプロジェクトの見積工数に、
ドキュメントを書く時間というのを適切に計上されていない場合があります。
特定のプロジェクトが終わったら、すぐ次へ。終わったらまたすぐ次へ。
詰め込まれたスケジュールの中で、この時間を捻出するのは難しいでしょう。
**優先度があるから、仕方が無い**ですよね。
だから誰も書かなくなりました。成果を出さなければ生きていけません。

:::note warn
ドキュメントを書く時間も、文化も無い。
なら仕方無いですよね。良く分かります。
:::

## 現在のチームに明らかなので書かない
比較的チームの中で若いエンジニアに起きる事ですが、
自分が得た知識が**既にチームメンバ全員で周知の事実である**事があります。

その場合、今いるメンバにとって価値の高いドキュメントにはならないかもしれません。
チーム内で<font color=red>**表面上**</font>あまり価値が無い物を生み出す事に、意味があるのでしょうか。
また、そのドキュメントを書いた場合、
より高い知識を持ったメンバからさらに指摘される可能性があります。
そういう面倒が余計に起こるのは面倒です。遠慮するのは仕方の無い事です。

::: note warn
チーム内の先輩には遠慮してしまいますよね。仕方ない。
さらに、指摘されるのは良い気持ちもしません。分かります。
:::

## というのは全て言い訳です
ここまで記載した項が**全て言い訳**で、やらない理由にならない事が分かりますか？

私だって、これらの事項にはとても共感出来ます。
面倒だ。次の業務に取り掛からなければならない。時間が無い。
こんな事、残業してまでやる価値があるのか？

けれども、これらはやらない理由にはならない。
次の項から、ドキュメントを書かない事が**負債**になる理由についてまとめていきます。

::: note
やらない理由については、ほとんどの場合、共感出来ます。
分かる。分かるけど、今こそ重い腰を上げて、環境を改善しませんか？
:::

# ドキュメントを書かない事は「負債」である
まず、企業やチームとしての、ドキュメントの重要性について。

はじめの項に記載した事が全てです。
<font color=red>「**どうして必要な過去の資料が無いんだ**」</font>

こういう事態が発生する事、それが企業やチームとしての大きな負債です。

:::note warn
ナレッジが失われていても、サービスを動かし続ける必要があるので、
何かあった時はサービスを維持したまま、調査から始める必要があります。
そこからは**ブラックボックスの調査**という果てしない旅です。
:::

## 数値・金額的な負債
既に動いているシステムの全貌を知っているエンジニアがドキュメントを書く時間と、
後からまったく知らないエンジニアが、そのソースコードやインフラ環境を見て、
いちから調べ直した時に掛かる時間、どちらが速いでしょうか。

前者、つまり**分かる人が書く方が圧倒的に速い**という事は、想像に難くないと思います。

:::note
当然ですが、単純な作業時間で見れば
何も情報が無い状態で、分かっていない人が調査する時間より、
情報を持っている人がドキュメントを作成する時間の方が短いのは明らかです。
:::

私は前職の時分に、メンバの急な退職を要因として、
特定部署の業務の根幹を担うシステムの担当を
引き継ぎ無しで受け持つ事になりましたが、
一切のドキュメントが無く、ソースコードのみがある状態で、頭を抱えた経験があります。

実装理由が不明なカスタマイズも実装されており、理解は困難を極めました。
結局対象のシステムに対する問い合わせの適正な受答えが出来る状態になるまで、
だいたい１年半程度掛かった、と記憶しています。
それでも、適切な背景や知識が無い為に、ミスも沢山起こしました。
ナレッジが失われるという事は、大なり小なり、こういう事が起きるのです。

もし退職された方がシステムに対してのドキュメントを書いていたとしたら、
どの程度の金額に相当したか、想像が付くでしょうか？
**その金額は、個人の面倒の代償としては、大き過ぎる額では無いでしょうか？**

:::note alert
分かる人が居なくなった後に、何も残っていないとしたら、
その金額的・技術的負債を抱えるのは企業です。
それは、**企業に損害を与えているのと同義**です。
:::

## 背景として
背景として大きな要因と考えられるものに、終身雇用の崩壊があります。

今の時代を生きる私達にとって、
10年後、20年後、自分の企業がまだ価値を失わず存続している未来は保証できますか？
そこに自分が元気に働いている姿は想像出来ますか？
隣に居る同僚は明日も明後日も、同じように出勤する事を保証出来ますか？

いずれの答えも「No」なはずです。
勤め人であれば、同僚も、自分でさえも、
「**明日にはもう居ない**」というリスクを想定する必要があります。
この原因に「転職」という言葉の他に、勿論「健康」もあります。

居なくなった方に全ての知識が依存していた場合、
**その瞬間に企業やチームのナレッジが消失する**という事態が起きます。
属人性が高い状態というのは、その人が抜けた時のダメージが大きいのです。

::: note warn
属人性が高ければ高いほど、崩壊への危険度が非常に高いと言えます。
:::

しかしながら、終身雇用が一定守られた時代は、確かにありました。
今の時代ほど「転職」という言葉が盛んだった時代は無いでしょう。

ドキュメントが書かれない理由には、こういう側面もあると思います。
「**私も辞めないし、あの人も辞めない**」信仰の様な物です。
今の時代はこの思想が変わっていく、過渡期と言っても過言ではありません。

時代が変われば、ルールも変わります。
特にエンジニアは、所属が流動的になりました。
入って来る人もいれば、抜ける人もいるでしょう。
その分残されるドキュメントは、昔より価値が高くなったと言えます。
システムにビジネス的なルールが多く含まれるのなら、尚の事です。

:::note 
自分も含めて、明日もチーム全員が存在するとは限りません。
それを想定して常にドキュメントを作成したり、知識を共有する事で、
属人性を減らす事に繋がり、大きなリスクを回避出来ます。
:::

# ドキュメントを書かない事は「機会損失」である
続いて、個人がドキュメントを書く事に関する重要性について。

Qiita等で記事を書いている人であれば、
アウトプットをする事のメリットは大きい、と感じていると思います。
適切なアウトプットをする為に、調べ直す時間もあったりするでしょう。
同じ事が、ドキュメントの作成にも当てはまります。

::: note
ドキュメントを書く機会があるということは、
それをアウトプットするチャンスがある、と捉える事も出来ます。
:::

## 頭の中を整理出来るチャンス
ドキュメントを起こす為には、自分が行った様々な内容を整理する必要があります。
その中には当然の様に「経緯」や「目的」の様な物もあると思います。
ドキュメントを書く事は、それらを見直す機会のひとつになります。

自分が行っていた内容が、本当に当初の経緯や目的に沿っているのか？
他に良い方法があったのではないか？
他の方法があったとして、そちらを選ばなかった理由は何か？

もしかしたら、目的と手段がいつの間にか入れ替わっていて、
本来の方向性から離れている事に気付くかもしれません。
また、他の手段があった場合、その手段を取ったらどの様な効果が得られたのか、
そういう事を模索する機会にも繋がります。
整理を進める中で、新たなイノベーションを生むかもしれません。

こういった事は、ただ目的に向かって一直線に開発を進めている間は、
往々にして気付き辛い事であったりします。
一度立ち止まって、今着手している内容が本当に適切なのかどうか、
見極めるチャンスでもあるのです。

:::note 
ドキュメントを書いて整理された内容を記載する事は、
自分の頭の中を整理し、それが適切かどうか見直すチャンスでもある。
:::

# ドキュメントが残らない事は「負の連鎖」である
最後に、メンバを統率するマネージャに対して伝えたい。

一度「**負債**」が出来てしまった時に、取り戻す事は中々難しいです。
過去のリソースに対して振り返り、文章にして改めて書き起こすのは、
余程時間に余裕がある時で無ければ出来ないのです。
その負債が積み重なって、最後には「**負の連鎖**」となります。

なので、どうかお願いです。
メンバに対して、ドキュメントを書く時間を適切に与えてあげて下さい。
メンバが書きたがらないなら、書く様に指示をして、書き上げさせて下さい。
書き方が分からないと言うなら、自ら率先して指導して下さい。

その数時間か数日で、後の負債は大幅に軽減されるはずです。
一つの仕事が終われば、また次の仕事が待っているのは当然だと思いますが、
ドキュメントが残らない事は先に述べた通り、
所属する企業に「**損害**」を与えているのと同義です。

確かにそのドキュメントは、今必要な物ではないのかもしれません。
でも知識というのは、すぐに風化してしまいます。
書くタイミングとして最適なのは、プロジェクトが動いている最中か、
リリースなどが終わった直後が望ましいです。
そこにはまだ、生きた知識が残っているからです。

そうしたドキュメントが書かれないのは、メンバの成長の「**機会損失**」でもあります。
メンバの成長が悪い事ではないと思うのであれば、
どうかそのプロジェクトの途中や、もしくは振り返りとして、最後の整理として、
ドキュメントを残す時間を設けて下さい。

# おわりに
ドキュメントが残っていない現場は、いつも崩壊の危機を抱えています。
あの人がいなくなったら…という不安を常に抱えながら、
先延ばしを続けた先で「その時」が訪れた時、
最終的に被害を負うのは残ったチームメンバか、所属する企業です。
そして「その時」は必ずいつか来るのです。

自分も遠からず、今の企業から離れる事があると思っていますが、
その時に、今一緒に働いているメンバや企業に対して、
「負の遺産」を残したくないと思っています。

だからこそプロジェクトを終えた後、地道にドキュメントを作成しています。

「立つ鳥後を濁さず」と言いますが、
自分が居なくなった後に、今のメンバ達から後ろ指を指される様な事はしたくないな。

:::note
あなたは、どう思いますか？
:::