2026/07/06 物語を伝えることはPull Requestのレビューを依頼するようなことではないか

たーんえー
·
公開:2026/7/6

ふと思いついた、という程度の文章である。

「Pull Requestとは何か」を知らない人向けに一応説明すると、「ソフトウェアに変更を入れる際に、他者に確認・承認してもらうための仕組み」だ。実体としては「変更を入れる目的や説明」と「実際に変更するソースコードの差分」がある。レビュワー(レビューする人)は目的を頭に入れつつ、差分を見て問題がなさそうかを確認する。

レビュワー側としては、1つのPull Requestの差分がとても大きかったり、複数のことを1つのPull Requestで実現しようとしていたりすると、レビューの負荷が上がって困る。適度な粒度に分け、「1つのPull Requestにはなるべく1つの目的だけを持たせよう」といったことがよく言われている。

前置きが長くなったが、これが物語を伝えることとどう近いのか。基本的に物語では、何かしら説明を入れながらストーリーを展開していく。この際、ワッと一斉にたくさんの説明をする(大きな差分を投げつける)と、受け手が混乱するのは明らかだろう。かといって、全く説明をしないのでは話を進められない。大事なのは、1つのエピソード(Pull Request)の目的を提示し、そのために必要な情報(差分)を適切に提供することだと思われる。そう考えると、Pull Requestのレビュー依頼のセオリーと近いと考えられないだろうか。

例として、「異世界系」「なろう系」などと呼ばれる、広く知られたファンタジー的な世界観と定番の展開を持つ作品のことを考えよう。これらの作品は、世界観や展開を予想しやすいことで、読者の負荷が少ないことがメリットとされる。つまり、この「広く知られたファンタジー的な世界観と定番の展開」というのは、言ってしまえば著名なライブラリ、「なろうライブラリ」なのだ。

ソフトウェアにおけるライブラリとは、ある程度汎用的な処理を提供するものだ。ソースコード上で呼び出すだけで(自分では実装せずとも)その処理が行うことができる。例えばなろうライブラリにおける「トラックに引かれて転生する関数」を呼び出す時、ソースコード上にはそれを呼び出したことだけが書かれている。このトラックに引かれたことの詳細はここでの問題ではないとされるので、レビュワーもそういうものねと受け止めるだけでいい(認知負荷が低い)。するとレビュワーは、ライブラリに頼らない独自実装、つまり「定番の世界観や展開の中に少し入ったオリジナルな部分」に注目すればいいというわけだ。

これは他の人気ジャンル、例えば時代劇や刑事ドラマでも同じだろう。それぞれ「時代劇ライブラリ」「刑事ドラマライブラリ」といったものがあり、定番の展開を関数として提供していると考えられそうだ。

逆に、そういった既存の世界観に乗らず、オリジナリティのある世界観を構築していくこと、更にそれをしっかりと伝えるのは骨が折れることだろう。ソフトウェアの世界ではそういった実装は「フルスクラッチ」とも呼ばれる。ライブラリにはメリット/デメリット両面あるものの、既存のライブラリで実現できない処理なら自分で実装するしかなく、そうなると最終的な差分は大きくならざるを得ない。その中で1つのエピソードの差分を適切にするためには、そもそもエピソード提供の順番から逆算して考える必要がありそうだ。上手くやっている作品は、それだけ作者に技量があるのだと思われる。

最初は独自の世界観でも、人気が出るとシリーズ化したり外伝が出て、いくつもの作品に受け継がれることがあることがある。これは、「その世界観自体がライブラリになる」ということだろう。例えば「ガンダム(宇宙世紀)」がライブラリになり、それを参照する多くの作品が生み出されているような現象だ。

こうやって考えてみると、物語を伝えるのもコードレビュー依頼も、人の認知負荷(差分)を減らして何かを伝えるという行為なのは共通しているとわかる。もう少し考えると、他の事例にも当てはめられるかもしれない。オチはない。