『エンジニアのためのドキュメントライティング』を読んだ

Published
2023-05-01
Tags

とても良い本だったので、書評を書いてみようと思う。

この本を読んだほうが良い人

  • ソフトウェアエンジニア
  • テクニカルライター
  • 職種関係なくみんな読んだほうが良い


読む前にこの本に期待していたこと

  • この書籍が定義するドキュメントは、読み手がソフトウェアエンジニア向けのドキュメントである
  • エンジニアが技術文書を書く際にどういう点を考慮するべきか記述されている
  • 具体的なケースを交えて説明している
  • 読んだ後に自分がどのような観点でドキュメントを書いたら良いかという道筋を得られる

結果的には、これらの期待は全て満たされていたので、買ってよかった。

この本の概要

ドキュメントの重要性を Kubernetes のメンテナーでもある著者が実体験を元に説明している

問題に直面した時の解決ワークフロー。書籍内では「開発者ループ」と呼んでいる。

  1. 問題の理解を試みる
  2. 思いつく場所をすべて探して、既存の解決策を探す
  3. 運良く見つけられたら、その解決策を試す
  4. 解決策を本番環境にリリースする


このループの中で、わかりやすいドキュメントが存在するかどうかが生産性の観点で重要。しかし、現実ではドキュメントが存在しないケースがよくある。

「書き手のループ」について

フローは、開発者ループと同じで表裏一体。

ケーススタディを用いてドキュメントについて説明している

書籍では、 Corg.ly という架空のペット向けサービスを行う会社のソフトウェアエンジニアが、開発者向けドキュメントがない状態からドキュメントを作成・運用するまでの流れを具体的なユースケースとして説明している。

良いドキュメントを書くにはユーザーを理解する必要がある

ユーザーを理解する方法

  • ユーザーのゴールを特定する
  • ユーザーを理解する
  • ユーザーのニーズを理解し、ドキュメントがそれをどう解決するか理解する
  • わかったことをペルソナ、ストーリー、ユーザージャーニーマップにまとめる
  • フリクションログを使って仮説検証する


ドキュメントの具体的な作成方法

  • 最初にアウトライン(概要)を定めて、その後は段落、リスト、コールアウトなどを活用する
  • 読み手は、ドキュメントの全内容を読むことはないので流し読みしやすい文章にしておく
  • 複数のゴールを1つのドキュメントにまとめず分割する
  • 作成したドキュメントのフィードバックをもらう
  • そのままコピペして動くサンプルコードを入れる
  • テキスト以外のビジュアルコンテンツを活用する


ドキュメントの公開と運用

  • プロダクトリリースと同様にドキュメントも、開発・レビュー・リリースのプロセスを推奨
  • フィードバックを得るための施策を行う


ドキュメントの品質測定

  • 測定の主要な分類として、機能品質と構造品質の2つに大きく分かれる
  • テクニカルドキュメントは、小学校高学年程度の読解レベルで書かれている必要があり、そのための指標がある
  • 新規ユーザーがAPIドキュメントを読んで、APIを呼び出すまでにかかった時間として、TTHW(Time to Hello World) という測定方法がある
  • 構造品質は、Clear(明確な)、Concise(簡潔な)、Consistent(一貫した)という3つのCが重要
  • 読み手に道しるべを示す


読んだ自分の意見と評価

「知識の呪い」に陥っていないか常に意識したい

「知識の呪い」とは、自分が持っている知識・理解を他人も同じように持っていると勘違いしている状態を示す。

例えば自分が、あるシステムに詳しい場合に他のメンバーも自分と同じぐらい詳しいと思い込んで、ドキュメントは不要と思っている状態は、呪われていると言える。

フリクションログというテクニックはすぐ使ってみたい

フリクションログというのは、ユーザーが達成したいゴールをプロダクトが提供する機能を使う場合に障壁、良かった点などをログとして残しておくことだと、書籍には説明されている。

コールアウトの重要性

文章の流れにそぐわないが、その時点で知るべき情報を入れたいときに使うのが良いらしい。

↓ こういうやつ

💡
これはコールアウトです

そもそも、普段はあまりコールアウトを意識して文章を書いてはいなかったので、これは新鮮だった。

ビジュアルコンテンツ、特にスイムレーンはわかりやすい

複数の登場人物(アクター)がいる場合にそれぞれが何をするのかを各アクターのレーン毎にフローチャートに図解したものがスイムレーンらしい。水平レーンと垂直レーンを併用して、どのアクターがどんな手順でそれぞれ何をするのかが一覧できるのでこれは役たちそう。

ドキュメントの品質測定は、地味に目に鱗だった

例えば、ドキュメントのPV数が多いからと言ってそれが良いイベントとは限らない。スタートガイドなどのアクセスが多いということはユーザーが増えていることの証左だが、トラブルシューティングやエラーのページのPV数が多い場合は、ユーザーが何かしら問題に直面していることを示す。

ドキュメントにおいてもモニタリングすることは重要だし、社内ドキュメントでもよく参照されるものは分析したほうが良さそう。

付録が豊富

テクニカルライティングを学べる無料のコースやテンプレートなどが紹介されていたのはありがたい。

例えば、Googleのテクニカルライティングのコースやテンプレートなどが紹介されていた。

  • Techinical Writing Courses from Google
  • Good Docs
  • README チェックリスト


まとめ

ソフトウェアエンジニアやライターに限らず、だいたいの人は、文章を書いて読んで仕事する必要があるので、万人に薦めたい書籍でした。

個人的に刺さったのは、「テクニカルドキュメントは、小学校高学年程度の読解レベルで書かれている必要がある」 という文章で、常にそれを意識しつつ「知識の呪い」に呪われていないかを自問自答しながら、文章を書こうと思えた良い書籍でした 🙌