Excelを技術文書作成に用いるメリット・デメリット

2021年10月16日

ここでは、なぜExcelがアジャイル時代の文書作成に適しているのか示すため、メリットとデメリットを整理する。

メリット

技術文書を構成するすべての要素を作成・編集可能

IT技術文書の構成要素には以下のものがある。

  •  表(1データ1行)  例:テスト仕様表
  •  表(1データを複数行で表現)  例:API仕様
  •  リスト 例:箇条書き
  •  階層リスト(ツリー)  例:条件分岐
  •  図形  例:UML図
  •  画像
  •  以上の要素の目的を説明する文章  例:見出し、導入文

これらの作成・編集をすべてできるツールはExcel以外、ほぼ存在しない。
用途ごとに最適なツールを使用するという考えもあるが以下の点で問題がある。

  • 導入コスト(そのようなツールはどこでもあるものではなく、かつ高価である場合が多い)
  • ツールの使い分けのため、作成・編集作業が煩雑
  • 教育コスト

一方、Excelは、IT技術文書に必要な構成要素をすべて作成・編集可能である[1]正確には画像はインポートのみ

上記構成要素を1つの文書にまとめることが可能

技術文書とは、上記構成要素を組み合わせて、設計意図や仕様などを的確に伝達するという目的のために作成する。そのためには個々の構成要素だけでなく、そのコンテキスト、つまりレイアウトやその目的や関係がわかることが重要である。

UML作成ツールなどは、図面を効率的に作成可能であるが、作成されるものはあくまでも構成要素に過ぎず、情報のレイアウトの工程が別途必要となる。その工程は単に工数を要するだけでなく、情報の2重管理を生む。

一方、Excelは、個々の構成要素を作成できるだけでなく、上記構成要素を1つの文書に容易にまとめることが可能である。

上記構成要素をあるべき構造で表現構造

上記構成要素は本来、紙や画面サイズとは独立に、その構成要素にふさわしい構造で表現されるべきである。しかしながら、WordやPowerPointは、設計思想として、情報を紙や一画面に収めるために最適化されている。両者はしばしば一致せず、それがゆえにWordやPowerPointでは構成要素を加工し、紙や画面に収める作業が発生する。

その作業は工数を要するだけでなく、情報の2重管理や再利用性の低下などを招く。

一方、Excelは、紙や画面に縛られることなく、構成要素を本来あるべき構造で表現できる。

どんな環境でも存在(互換ソフトも含め)

現場によっては使用可能なソフトが制限されていることがよくある。自身の環境にはあるが共同作業者の環境には存在しないということもある。仮に完全な文書作成ツールが存在していたとしても、それでは絵に描いた餅である。

一方、Excelは、バージョンが最新でないにせよどのような現場であろうが使用可能である(inux原理主義の現場は除く)。

計算式が使用可能

アジャイル開発におけるドキュメントに求められる要素の一つの姿は、常に内容が最新でかつ整合性が取れていることだ。そのためには、文書に何らかの計算機能が必要であり、かつ手軽に使える必要がある。

Excelは、集計に代表されるように、文書内で簡易に算術演算、文字列演算、データ参照ができると、その文書内の整合状態を自動的に保つことができる。

ブラウジングやナビゲーションを助ける様々な機能

Excelには、文書の効率的なブラウジングやナビゲーションを可能にする以下のような機能を備える。これらを活用することで紙を超えた操作性を実現できる。

  • フィルター
  • グループ化
  • 表の分割と固定
  • ハイパーリンク

デメリット

意図通りに印刷できない

これは本シリーズの最初に触れたように、Excel否定論者の指摘する数少ないもっともなExcelの欠点である。

目次や連番の自動生成機能がない

これも従来の紙やPDFを前提としたもので、Excelの豊富なナビゲーション支援機能を活用すれば、目次や連番以上の使いやすさを実現可能である。
⇒本シリーズでは、参照や編集を助けるナビゲーション支援機能の活用方法を紹介していく

使い手のレベルが低いと編集や再利用しづらい文書ができる

例えば以下のようなものが挙げられる。

  • 1文字1セル
  • 複雑な数式やセル結合
  • 隠し〇〇
  • 検索できない文字列(テキストボックス)

これはどのようなツール、例えばWordでも言える話であり、他のツールと同様、ルール・ガイドラインが必要である。
⇒本ブログでは、編集や再利用しやすい文書を作るためのルール・ガイドラインを紹介していく

履歴やバージョン管理ができない

世の中には下記のような履歴やバージョン管理が可能な文書作成方法があり、Excel単体ではそれらに劣るのは間違いない。

  • Wordの編集履歴
  • gitなどのVCSとテキストファイルの組み合わせ

しかし、開発現場で一般的に使われているWinMergeのプラグインを用いれば、Excelであってもテキストレベルでの差分は取ることが可能である。ExcelファイルをVCSで管理して、バージョン間の差分はWinMergeのプラグインを使えば、ほとんどのユースケースはカバーされると考えられる。

ソースコードでもそうだが、複雑なマージが必要になるというのは、そもそものプロセスの設計が悪いのではないだろうか?

共同作業がしづらい

これは確かに困ることがある。設定で、セル単位での排他は可能になるが、その場合に使えなくなる機能が多い。

ソースコードでもそうだが、複数人が同じファイルを操作するのは事故回避の面から原則、避けるべきであり、適切なファイル分割で回避する問題である。

References
1 正確には画像はインポートのみ

Posted by urojima