作家とバージョン管理

以前友人が所属する変態劇団の舞台を見に行ったとき、まだデビューもしていない小説家志望の男性が原稿用紙にペンを走らせるというシーンがあった。突然携帯が鳴り、シーンが進んでいく。どうして変態かというと、観客の前でフェラの演技をしたので。そういうの大好きだが。

演劇と文明の利器は相性が悪いことが多い。登場人物が作家を目指して今執筆中というシーンを示すのに、パソコンでワードを開いてカタカタやっていても観客には何をやっているのか伝わらない。原稿用紙とペンでないとそれは伝わらない。逆に携帯は舞台のツールとしてはうってつけのようだ。演技でもしきりに携帯を利用していた。ここらへんのツールの差というのはいろいろと興味深いものである。

それを見て、今時、原稿用紙に直書きしている作家なんているのかと思った。しかし、モノを書くというのは完全なるセンスの世界なので、おのおのが独自のスタイルでもってあたるはずだ。自分の一番馴れた、一番しっくりくる形で作業にあたらないと効率が全然違ってしまう。ひょっとすると、未だに原稿用紙でないと雰囲気が出ないからとパソコンを使わない人もいるのかもしれない。

だが残念なことに、原稿用紙を使うような作家はこれからは生き残れないだろう。もはやストーリーというものは、作家一人の力量を超えるようになってしまったのだ。プログラムと似ている部分である。プログラムも機能の複雑化のために、どんどん巨大になっていき、人一人で管理するのは不可能なサイズになってしまっている。一つのプロジェクトで一人で管理できるソースコードの量は、大体2万行が限界だろうと思う。この2万行にしても、単純なテキストエディタと記憶とに頼って作業していると、あっという間に破綻する。昨日はどこを直したんだっけ、今日はどこを直すんだっけ、先週直したあそこと矛盾してる気がするけどあそこってどこだっけ、と人間的な作業に頼っていてはとんでもない欠陥品が出来てしまう。だからプログラマはバージョン管理ツールを使ってバージョン管理をする。

バージョン管理ツールを使えば、自分のした作業が全て記録されるし、昨日の作業と今日の作業でどこが違っているのかを一発で差分が取れる。ああここを直したんだったというのがすぐにわかる。昔のバージョンに戻すのも簡単だ。間違って手元のファイルを消してしまってもすぐに復元できる。

バージョン管理ツールでの管理単位はコミットという。自分で区切りのいいところで、今ある成果物をコミットすると、あとはツールが覚えてくれているので消そうとどういじろうとまたいつでも復元できるのだ。
このコミットの際には、コミットログを残すのが慣習となっている。何を変更したのか、何故変更したのかを一緒に記録するのだ。そうするとあとからコミットログを辿っていけば、その変更が何のどんな変更だったかは一目瞭然だ。

作家が一つの本をつくるとき、大体数百ページくらいになると思うが、これを本として世に出すためには、プロの編集者や推敲者の厳しいチェックが入る。作家が最初に書いたオリジナルがそのまま採用されることなんてまずないから、何回どころか何十回と推敲され、ここが論理的に間違ってる、ここは表現をこうした方がいい、このキャラクターの言動はおかしい、といったものから、単純な誤字まで、何度も何度も手直しをすることになる。

普通最近の作家はワードを使って文章を書くが、編集者に読んでもらうときには紙にプリントアウトして送ることもある。その紙媒体に、推敲者が赤字でいろいろと間違ってる箇所を指摘してくれたりするようだ。作者は、それを自分のワードの文章に取り込まなければならない。推敲者がワード上で直接間違い箇所を直してくれれば、一応ワードにも変更履歴機能がついているので、作者的には楽かもしれない。しかし、ワードの変更履歴機能は適当すぎるので、文章をごっそり削除してしまったのに履歴に残っていないなど、事故につながるリスクも高い。紙に赤文字修正も、それなりに事故防止という観点からはよいのかもしれない。

しかし、推敲者の指摘はものすごく数が多いので、作者もそれを取り込んでいるときにミスをする可能性がある。プログラマなら、自分が修正したソースコードをコミットするときに、前回との差分をツールで一箇所一箇所チェックしていくから、間違った修正をしてしまうリスクは減らせる。しかし作家の手作業やワードのしょぼい変更履歴機能では、とうてい無理である。

つまり、作家もプログラマと同様に、バージョン管理ツールを使うべきなのだ。最近はワードの変更差分も視覚的に問題なく表示できるようになった。何よりも効果があるのはコミットログの変更理由ではないだろうか。例えば、このキャラのこういう言動が矛盾してるからこう直したんだよというのを記録しておけば、あとからどうしてここはこうなってるんだっけとなったときに、変更理由を見て納得できる。その当時にどうしてそこを直したのかを全て記録できるというのはものすごいメリットなのだ。

普通作家の成果物は、ストーリー1つのワード1ファイルだろう。たった1ファイルでもバージョン管理するべきだし、編集者との打ち合わせややり取りしたメールも一緒のフォルダに入れてバージョン管理すればよい。
一つのストーリーを一つのプロジェクトととらえて、それにまつわるものをどんどん放り込んでバージョン管理していけば、きっと快適な環境になるに違いない。

一度バージョン管理をやったものは、二度とバージョン管理のない世界には戻れない。コミットの際に前回との差分を見て、しょうもない間違いに気付いたことが何度あったろう。一度コミットしてしまっても、あとから、過去の二つのバージョンの差分をとれば、そのときの作業にミスがなかったことを確認できる。ミスをミスのまま反映してしまうということが確実に減らせるのだ。ただのワードで管理していては、ミスの修正漏れが出てくるに決まってる。

TortoiseSVNという亀と呼ばれるツールを使えば、Windowsマシン一台で簡単にバージョン管理が出来るようになる。

以前妻にどうやってワードファイルを管理しているか聞いたら、日付ごとにバックアップフォルダにバックアップ的な回答だった。亀使えばいいよとメリットを説明してやったが、今も使っていないようだ。これを機に亀を使うべきだ。

作家が利用できるバージョン管理ツールは亀以外にはない。他のツールは明らかにプログラマに最適化されすぎている。

人間がいかにミスをする生き物か、そのミスを減らすためにツールがいかに有効か、バージョン管理ツールを使うようになれば、ミスというものへの考え方が変わるはずだ。

バージョン管理ツールを使えば、他の作家よりも一歩先へ行けるはずだ。もちろん管理対象のストーリーが最重要なのはいうまでもないが。


ところで、こんな時間にブログなんて書いてておまえ仕事どうしたんだと思われるかもしれないが、今日は休みだ。取り損ねていたお盆休みをとって、しばらくはだらだらと過ごすことにした。今日は昼間から雀荘に行くつもりである。