GitHubを使って技術同人誌作成の進捗を管理する

こんにちは。りまりま団のもふもふです。この記事は技術同人誌 Advent Calendar 2019の25日目の記事です。

コミックマーケットに参加のみなさまは修羅場が終わっている(かもしれない)と思います。 年明けにはいろいろ技術同人誌関連の即売会もあるでしょうということで、2019年から始めた技術同人誌などの原稿を間に合わせるための進捗管理術についてまとめておこうと思います。

ちなみに、私は技術同人誌の原稿をGitHubのプライベートリポジトリで管理しています。

目次を立てたらIssueを作る

本を作るときは「目次をはじめに書きましょう」とよく言われますね。目次を立てたときにGitHubのIssueを作成するようにしました。 作成する単位はなんでも良いのですが、次の項目ごとに必要な作業を洗い出してIssueを作成すると良い感じです。

  • 本文の記述
  • サンプルコードの作成
  • 表紙
  • 推敲

f:id:MofuMofu:20191224194417p:plain
技術書典8用の作業をIssueとして列挙している様子

入稿までに必要な作業を列挙し、Issueという見える状態にしておくのが重要です。作業量がどのくらいあるか、が目に見えていないと人間全くやる気にならないということが2019年にわかったことです。 作業が終わったときにIssueをクローズすると、進んでいる感じがして気分も良いのです。人間はご褒美が無いとやる気にならないというのも2019年に学んだことです。

作業する際はIssueに紐づくブランチを作成する

普段の開発業務と同様、Issueごとにブランチを作成して作業します。 例えば目次を作るというIssueがあれば、目次を原稿ファイルに書き込むためのブランチを作成します。

f:id:MofuMofu:20191224194509p:plain
目次を作るという作業をするためだけのIssue

作業が終わったあとは、開発業務と同様にPull Requestを作成します。Pull Requestに作業内容や気になっている点を記述しておくと後から推敲時に見返して確認できるので便利です。こうなると仕事感が出てきますね。

1人で技術同人誌を作成する場合はレビューがありませんので、すぐMergeするなりします。ここは気楽で良いところです。

close #Issue番号とPull Requestコメントに記述しておくとMergeしたときに対応するIssueをクローズできて便利です。

f:id:MofuMofu:20191224194537p:plain
目次を作るという作業だけをしたPull Request

こうすると、Issueと作業内容を紐づけることができます。GitHubのContribution数も増えるので気分が良いのです。 章をごっそり抜きたい!というときにRevertもできるため、できれば作業単位は細かくしておくのがおすすめです。仕事とあまり変わりがありませんね。

このように進めていれば、Issueが全てクローズしたときに原稿は完成した状態になっているはずです。推敲を重ねるにしろ、「もう終わっている」ことが目に見えていれば精神衛生にもよろしいのです。


2018年までは進捗管理をあまりしていなかったのですが、2019年は明確に作業を見える化してみました。おかげさまでいまだに印刷所の締め切りに間に合わなかったことはありません。 労働も原稿もやることを一覧にして目に見えるようにするのが重要だなあ…と思いました。やることが多すぎたら削る、とかの判断もしやすいですしね。趣味なので無理なく続けたいものです。

来年も無理なくほどほどに技術同人誌を書くことを楽しみたいと思います。