1. はじめに
これまでソフトウェア開発における設計書の作成といえばMicrosoft Office製品(ExcelやWord)がメジャーでした。生成AI活用が叫ばれる昨今、ソフトウェア設計における新たな選択肢として軽量マークアップ言語が注目を浴びています。
本記事では、Office製品で設計書を執筆することの課題を改めて整理し、軽量マークアップ言語の利用イメージをご紹介したいと思います。
2. 軽量マークアップ言語とは?
「マークアップ言語」とは、テキストに構造や意味を付加するために作られた言語です。「タグ」と呼ばれる要素を用いて記述し、強調やリンク、画像埋め込みなどを実現しています。ウェブで使用されるHTML(HyperText Markup Language)やXML(eXtensible Markup Language)が代表的な例です。
マークアップ言語(HTML)の例
見出し
<h1>見出し1</h1>
リンク
<a href="https://example.com">リンクテキスト</a>
「軽量マークアップ言語」は目的はマークアップ言語と同じですが、記述するための要素が簡略化されているのが特徴です。 「マークアップシンボル」と呼ばれる記号を用いて記述できます。
軽量マークアップ言語(Markdown)の例
見出し
# 見出し1
リンク
[リンクテキスト](https://example.com)
3. 軽量マークアップ言語の有名どころ3選
Markdown
シンプルな記法でドキュメントを記述できる軽量マークアップ言語です。ブログ記事やREADMEファイルなどで広く使用されているようです。
AsciiDoc
技術文書や書籍の執筆に適したマークアップ言語です。Markdownよりも表現力が高いと言われています。
reStructuredText (reST)
Pythonのドキュメント作成に広く使用されているマークアップ言語です。他のドキュメント生成ツールと組み合わせて使用されることが多いようです。
4. Officeの現状と課題
Office製品のメリット
- 学生の授業で触れることが多く、習得コストがほぼかからない。
- Windows PCがデフォルトで採用される現場では、ほぼ標準環境で利用可能。
- 表計算、グラフ、図形描画などを容易に作ることができ、仕様書をはじめとした複雑なドキュメント作成に適している。
Office製品のデメリット
- フォーマット乱れが発生し易く、その調整に時間が取られる。
- バイナリ形式のため、バージョン管理・差分確認が難しい。
(チーム開発で利用するには非効率な場面がある) - 生成AIとの親和性は低め。
- 開発PCとして広く利用されるLinuxでは利用できない。
5. 軽量マークアップ言語という選択肢
軽量マークアップ言語のメリット
- テキストベースなので、Gitなどのバージョン管理システムと相性が良い。バージョン管理は修正頻度の高い設計書の作成ではほぼ必須の運用となります。
- シンプルなテキスト形式のため、生成AIが解析しやすい。
- 最低限の書式(見出し、箇条書き、表)がサッと書ける。
- HTML、PDF、DOCXなど多様な形式に簡単に変換可能。
軽量マークアップ言語のデメリット
- 必要最低限の機能に絞られており、複雑なドキュメント作成には不向きな場合がある。
- 初めて使用する人は学習が必要。
6. 比較表
ソフトウェア開発にフォーカスし、2つを比較してみます。
| Office製品 | 軽量マークアップ言語 | |
|---|---|---|
| グラフや画像を含む、複雑なドキュメント | 容易に作れる | 単独では不可能 |
| グラフや画像の視認性 | 容易 | 単独では不可能 |
| バージョン管理 | 難しい | 容易 |
| 生成AIとの親和性 | 低い | 非常に高い |
| フォーマットの乱れ | 高頻度で発生する | ほぼない |
| 大規模データ | データ量に応じて重くなり、酷いと開けない | 軽量テキストで実現されているため、同等のドキュメントをOffice製品で作ったときよりも軽量 |
| マルチプラットフォーム対応 | Windowsが前提 | プレーンテキストのため、プラットフォームを選ばない |
| バージョン間の互換性 | メジャーアップデートのたびに互換性問題が発生する | 発生することがある |
7. 利用イメージ
- 成果物のテンプレートを軽量マークアップ言語で用意
- 設計情報を記入する
このとき、ホワイトボードで議論した手書きの図や、関数の振る舞いを記載したメモなどのを生成AIに与え、テンプレートの形式で出力するようにすることも可能です。 - 成果物をGitに登録し、Pull Requestで関係者とレビュー
差分がわかり易く、コメントのやり取りも容易なため、レビュー効率が上がります。 - アウトプットの形式に制限があるならば、必要に応じてOffice形式やPDF形式で出力
8. まとめ
設計の本質は「考えること」であり、設計書はその考えた結果をアウトプットするためのものです。そのため、見た目にこだわり「整えること」に時間を費やすのは避けたいところです。
また、開発はチームでやることも多いですが、チームメンバーが設計の「どこを変えたのかの確認」に時間を費やすのもなしにしたいです。
軽量マークアップ言語は煩わしいフォーマットの乱れも少なく、Gitでの管理が容易なため変更の確認がしやすいです。生成AIとの親和性も高く、手書きの図やメモなどのまとまった形式でないものとも組み合わせて設計することができるため、設計の本質である「考えること」に時間を割ける一つのアンサーになると考えています。
9. 補足(仕様書ならOffice製品)
Office製品は、視覚的な編集が容易で、多機能なツールを活用することで、複雑なドキュメントを効率的に作成できます。特に、ビジュアルデータの解析や多機能な表計算、グラフ作成が求められる仕様書の作成には最適です。これらの多機能性と統合性が「仕様書作成」においてOffice製品を選ぶメリットになります。
10. 今後の展望
Office製品の説明において生成AIとの親和性を「低い」と紹介しておりますが、マルチモーダルモデルの登場によりその概念も過去のものとなってきます。
最新のAI動向を注視し、自分なりの活用術を見出していくことが重要です。

