ねえぶ

猫好きエンジニアのブログ

Excel/PowerPointを不適切に使わないでほしい

ブログを引っ越ししましたので,5秒後に移動します

システム開発の成果物や社内ドキュメントなどの作成において,不適切にExcel/PowerPointが使われているケースが多くあります.

Excel文化」なんて言葉があるようですが,私の職務環境においては「Excel文化」のみならず「PowerPoint文化」もあるらしく,計画書やガイドライン,レポートの類がPowerPointで書かれていることがよくあります. (もちろん設計書類はほとんどExcelで書かれています・・・.) はっきりいって,この類の書類をExcel/PowerPointで書くのは犯罪レベルだと感じるので,本当にもうやめてほしいと思っています.

この懸念について,何が問題で,改善案に何が考えられるのかを,きちんと述べられるようにしておきたかったので,この記事でまとめておきます.

問題点

大きな問題は保守性と閲覧性の低さです.

初版作成者は気づきにくいかもしれませんが,編集する際に影響範囲の特定や修正を手作業で行う必要性があるため, 修正の手間がかかる上,修正漏れや修正ミスが発生しやすくなります. また,保守性の低さに伴い,読みづらさや読み手の解釈間違いが発生しやすくなります.

さらに,Excelのシート切り替えやPowerPointのスライド切り替えは閲覧性を損ないます.

つまり,不適切にExcel/PowerPointを利用することは,品質や生産性を低下させると考えます.

具体的には次のような問題があります.

文書構造の壊れやすさ

Excel/PowerPointでは,文書の構造化(章立ての表現)と通し番号付けがサポートされていません. にも関わらず,無理やり手動で通し番号付けを行って文書構造を表現しようとしているケースがあります.

このように無理に文書構造を表現すると,章節の追加や削除により番号がずれ,ずれを手動で修正していく必要性が発生します.

参照関係の壊れやすさ

文書構造の壊れと同時に,見出しを参照先としている箇所も壊れやすいです. また,ページ番号を参照先としている場合も,ページの追加や削除によって容易に壊れてしまいます. (例えば目次や「1-3 ○○の説明 を参照」「詳細はP.32を参照」などど手動で参照先を記述している場合.)

リストや行を追加したときのスライドの調整の手間

PowerPointは投影単位(スライド)間で文が自動ページングされることはないため, リストが増えた場合や,(文や表の)行が追加された場合に,手動でスライドを追加して,アイテムや行を次のスライドに移し替える必要があります.

テキストオブジェクトの設定によって,スライドに収まるようにフォントサイズを自動調整することもできますが, スタイルが統一されない上,閲覧性を低下させるため,そのような設定はしないほうがよいと思います.

スタイルの壊れやすさ

PowerPointにはスライドのスタイル定義はありますが,文に対するスタイル定義はありません. Excelにはスタイル定義自体がありません.

スタイル定義が無いために,個別にフォントを変えたり,(Excelの場合)セル幅でインデントや余白を表現したりするケースが多いと思いますが, 修正時に同一のスタイルを持つべき箇所に対して,フォントやセル設定を手動で修正していく必要性が発生します.

差分確認の難しさ

プレーンテキストファイルではないので,2つのファイルや過去との差分を確認することが難しいです. テキスト部分だけを抽出して比較する方法もありますが,一工夫必要な上,テキスト以外の変更が検出できません. (スタイルの変更や画像の追加など.)

改善案

VCSとの親和性やスタイルとコンテンツの分離という観点で,軽量マークアップ言語を使うのがベストだと考えています. しかし,非エンジニアには(場合によってはエンジニアであっても)障壁や苦手意識が高いと思うので,2つのステップで考えてみました.

ステップ1: Wordを使う

ステップ1では,まず構造化文書を意識して,適切な文書作成を意識付けるためにWordを使います. (多くのケースにおいて,ビジネス文書やシステム開発書類はExcel/PowerPointよりWordで書く方がよいと考えます.) WYSIWYGのメリットは残しつつ,スタイルとコンテンツの分離を意識した文書作成の癖をつける効果があると考えています.

この際,表計算を使いたい場合は,OLEオブジェクトの埋め込みを行います.

ステップ2: 軽量マークアップを使う

ステップ2では,MarkdownreSTなどの軽量マークアップ言語を使います. どの言語を使うかは,文書の規模やチームのポリシに依ります.(Markdownは貧弱で方言が多いが導入障壁は低い.reSTは複雑大規模な文書が作成しやすいが導入障壁が高い.)

軽量マークアップ言語を使うことで,Office製品を使った時の様々な問題が解決されます. また,VCSとの親和性が高く,文書と(ソフトウェアコードなどの)他の成果物とバージョン管理を統一できます.(SCMが実現しやすい.) これにより生産性と品質の向上が期待できます.

ただし,次のような欠点もあるため,チームの成熟度や文化によっては,ツールや仕組みを工夫する必要があります.

  • WYSIWYGでない(プレビューツールなどの利用が必要)
  • Markdownでは,章節の自動付番はできない(Sphinxなどの利用が必要)
  • 編集やビルドの環境整備が必要

Excel/PowerPointは何に使うか

Excel/PowerPointが文書(成果物)作成に絶対NGなのではなく,適切であれば利用すべきであると考えます.

例えば表計算を主に行う場合は当然Excelを使うべきでしょうし, 少量の文字,画像,アニメーションを使ってプレゼンテーションを目的としたスライドを作成する場合にはPowerPointを使うべきでしょう.

ただし,「説明のためにプロジェクタ(大型モニタ)に投影する可能性があるからPowerPointを使う」や「表を書く(方眼紙上に体裁を揃える)ためにExcelを使う」, といった判断は間違いだと考えます.