1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

入社半年で"頼られるエンジニア"になる最短ルート|それはドキュメントを書くことだった

1
Posted at

はじめに

「ドキュメント、書いてますか?」

この質問に自信を持って「はい」と答えられるエンジニアは、
意外と少ないのではないでしょうか。

私自身、データエンジニアとしてチーム開発に携わる中で、
ドキュメントの重要性を痛感してきました。コードは書くけどドキュメントは後回し。
気づけば「あの処理って何してるんだっけ?」という質問が飛び交い、
同じ説明を何度も繰り返す日々——。

この記事は、下記のテーマで書いています

「ドキュメントを書く」という地味な行為が、なぜチームを変え、そして書いた本人を最も成長させるのか。その理由を、できるだけ具体的にお伝えします。

なぜドキュメントは書かれないのか

「コードが最新のドキュメントだ」という幻想

エンジニアの間でよく聞くフレーズがあります。

「コードを読めばわかる」
「コードが最新のドキュメントだ」

たしかに、コードは嘘をつきません。動いているコードこそが「今の仕様」であることは事実です。しかし、コードが教えてくれるのは What(何をしているか) だけです。

  • Why(なぜこの設計にしたのか)
  • Context(どんな制約や事情があったのか)
  • History(過去にどんな選択肢を検討して却下したのか)

これらはコードからは読み取れません。新人がソースコードを前にして途方に暮れるのは、能力の問題ではなく、この Why と Context が欠落しているから です。

書かないことで発生する"見えないコスト"

ドキュメントを書かないことは、短期的には時間の節約に見えます。しかし実際には、以下のような「見えないコスト」がじわじわとチームを蝕みます。

コストの種類 具体的な症状
属人化 特定の人しか触れないコードが増える
オンボーディング遅延 新人が戦力化するまでに数ヶ月かかる
同じ質問の繰り返し 先輩の作業が毎日中断される
意思決定の手戻り 過去の経緯を知らず、同じ失敗を繰り返す

「ドキュメントを書く30分」を惜しんだ結果、「説明する30分 × 聞きに来る人数 × 発生回数」という膨大な時間を失っているのです。

生成AI時代でも「人間が書くべきドキュメント」がある

AIが得意な領域

2024〜2026年にかけて、生成AIのコード支援能力は飛躍的に向上しました。たとえば以下のようなドキュメント生成は、AIの力を借りることで大幅に効率化できます。

  • API仕様書の雛形生成
  • コードコメントの自動補完
  • README テンプレートの作成
  • 既存コードからのdocstring生成

GitHub Copilot や Claude などを使えば、関数の説明文やパラメータの解説は、かなりの精度で自動生成できます。こうした「定型的なドキュメント」はAIに任せてしまいましょう。

AIでは書けない領域

一方で、AIにはどうしても書けないドキュメントがあります。

  • 社内固有のドメイン知識:「このテーブルの flag_a は、○○クライアントの要望で2023年に追加された」
  • 意思決定の背景:「Snowflakeではなく BigQuery を選定したのは、既存のGCPインフラとの親和性とコスト試算の結果」
  • 業界特有の慣習:「小売業のPOSデータでは、返品は翌日マイナス計上されるため、日次集計と月次集計で差異が出る」
  • 暗黙の運用ルール:「このバッチは月初3営業日以内に実行しないと、経理の締め処理に間に合わない」

これらは、そのチーム・その業界にいる 人間の頭の中にしか存在しない情報 です。AIに「社内のデータパイプラインの設計思想を書いて」と指示しても、的外れな一般論しか返ってきません。
image.png

つまり、AIの活用が進むほど、人間にしか書けないドキュメントの価値は相対的に上がるのです。

ドキュメントがチームにもたらす3つの効果

1. 新人がソースコードを「読める」ようになる

新人にとって最も辛いのは、「何千行もあるコードのどこから読めばいいかわからない」状態です。

たとえば、以下のようなシンプルなドキュメントがあるだけで、状況は劇的に変わります。

docs/pipeline_overview.md
# データパイプライン概要

## 処理の流れ
1. S3バケットにCSVが日次で配置される(毎朝6:00)
2. Bronzeレイヤーで生データをそのまま取り込む(COPY INTO)
3. Silverレイヤーでクレンジング・型変換を実施
4. Goldレイヤーで集計テーブルを生成 → ダッシュボードに連携

## 注意点
- 毎月1日はデータフォーマットが変わることがある(クライアント都合)
- Silver→Gold変換のバッチが失敗した場合、Slackの #data-alert に通知が飛ぶ

これだけで、新人は「全体像」と「最初に見るべきコード」を把握できます。コードリーディングのスタート地点が明確になるのです。

2. 質問の質が上がる(先輩の時間を奪わない)

ドキュメントがない環境では、新人の質問はどうしてもこうなりがちです。

「このコード、何やってるんですか?」

これは先輩にとって最もコストが高い質問です。ゼロから説明しなければならず、15分〜30分が簡単に消えます。

一方、ドキュメントがある環境では質問の粒度が変わります。

「パイプライン概要ドキュメントを読んで、Silver→Gold変換の部分は理解できました。ただ、transform_gold.py の120行目で flag_a でフィルタしている理由がわかりません。これはどういう業務要件ですか?」

この質問なら、先輩は1〜2分で的確に答えられます。ドキュメントは 「質問の前提知識」 を底上げし、コミュニケーションの効率を飛躍的に高めるのです。

3. 書いた本人の理解が深まる(ラバーダッキング効果)

実は、ドキュメントの最大の受益者は 読む人ではなく書いた本人 です。

「ラバーダッキング」1という言葉をご存知でしょうか。ゴム製のアヒルに向かって問題を説明するだけで、解決策が浮かぶという現象です。ドキュメントを書く行為は、まさにこれと同じ効果があります。

  • 「この処理を説明しようとしたけど、自分でもなぜこう書いたかわからない」→ 設計の曖昧さに気づける
  • 「前提条件を書き出したら、考慮漏れが見つかった」→ バグの予防になる
  • 「人に伝わる言葉で整理したら、もっとシンプルな実装を思いついた」→ リファクタリングのきっかけになる

ドキュメントを書くことは、自分の頭の中を棚卸しする行為です。入社半年の新人であっても、自分が担当した機能のドキュメントを書けば、その領域では誰よりも詳しくなれます。それが「頼られるエンジニア」への最短ルートです。

「完璧じゃなくていい」から始めるドキュメント習慣

書く場所・タイミングのTips

タイミング 書く内容 効果
PR(Pull Request)作成時 変更の背景と影響範囲 レビューの質が向上
障害対応後 原因・対処・再発防止策 同じ障害の対応時間を短縮
スプリント終了時 今スプリントで学んだこと ナレッジの蓄積
新しいツール導入時 セットアップ手順とハマりポイント 次の人のセットアップ時間を大幅短縮

おすすめは PRのDescription に書く習慣をつけることです。コードレビューのついでにドキュメントレビューもでき、「書く場所に迷う」問題を解消できます。

レビュー文化とセットで回す

ドキュメントを書いても、レビューされなければ品質は上がりません。コードレビューと同じように、ドキュメントにもレビューの仕組みを取り入れましょう。

  • PRにドキュメント更新を含めることをチームルールにする
  • 「ドキュメントの更新がないPRはマージしない」くらいの意識を持つ
  • 新人が書いたドキュメントを先輩がレビューし、フィードバックする

この循環が回り始めると、チーム全体の知識レベルが底上げされ、属人化が徐々に解消されていきます。

まとめ

この記事のポイントを振り返ります。

  • ドキュメントが書かれない理由は「面倒」だけでなく、「コードが最新のドキュメント」という誤解もある
  • AIが進化しても、社内のドメイン知識・意思決定の背景・業界慣習は人間にしか書けない
  • ドキュメントは新人のコードリーディングを助け質問の質を上げ書いた本人の理解を深める
  • 完璧でなくていい。まず1つ、自分が担当した機能のドキュメントを書いてみよう

最初の1本を書くのが一番ハードルが高いです。でも、書いてみると気づくはずです。「これ、一番助かったのは自分だった」と。

入社半年で"頼られるエンジニア"になるために。今日、1つドキュメントを書いてみませんか?

  1. ラバーダッキング(Rubber Duck Debugging):問題をゴムのアヒルに声に出して説明することで、自力で解決策に気づけるというデバッグ手法。実際には人に説明する、文章に書き出すなど、思考を言語化する行為全般に同じ効果がある。

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?