はじめに
この記事は技術書典の存在を知ってから出展するまでの奮闘記になります。
企画〜出展までの体験やその時に迷ったことなどつらつら書いていきます!
まだやったことないけど、技術書典今後挑戦したい!という方の参考になれば嬉しいです!
きっかけ
ある日の会社でのできごと。リーダーがなにやら面白そうな技術書をもってコンビニに行っておりました。曰く「過去に技術書典にて出展した本の余りが売れたので配送しにいく」とのこと。
色々話を聞いていくと、どうやら仲間と技術書を作って販売イベントがあるらしいということが分かりました。
「仲間と本を書いて、それを人に読んでもらう体験って素晴らしい!」と思い次の日には仲間数人を誘って技術書典15への出展を決意しました。
そこから専用のslackチャンネルとNotionを立ち上げて、やる気マックスで活動を開始!
企画
(時期:2023年5月 ~ 2023年6月)
やるとなったら決めなければいけないことがたくさんあります。
- チーム名
- タイトルや執筆内容
- スケジュール感
などなど。。
運営やスケジュール周りのことは僕が土台作ったり、決めたりすることが多かったのですが、それ以外の書籍に関することやチーム名等はみんなでわいがやで決めていました。
基本的に各々意見を好きに出して、最終的には選定軸を設定してそれを元に決めていくことが多かったですね。
ここでは執筆案に焦点を絞ってどのように決めたかをご紹介します。
執筆案検討
まずは興味のあるテーマや書きたいテーマを大小問わず出していきました。
一部お見せするとこんな感じ。
その中で、メンバーの興味や執筆意欲等考慮に入れて、最終的にはGo✖️クリーンアーキテクチャの解説本を書こうとなりました!
執筆案が決まったのでいよいよ内容の方向性を決めていきます。
書籍の内容設定
書籍の内容どうするか、を決めるにあたって1つの問いを考えました。
Go言語とクリーンアーキテクチャを使ってアプリケーションを開発していく上で、自分たちが現状感じている課題や悩みは何か?
案外悩みや疑問点は共通点が多いですし、そういう意味では僕らの思っている課題等は読者の課題や悩みにも通ずるものがあるのではというのが背景です。
こちらも大小様々なことが挙げられました。たとえばこんな感じ(実は書籍の「はじめに」にも書いてます笑)。
- レイヤーの役割は理解できても、具体的な実装方法が掴みにくい
- 各レイヤーにおける明確な責務の分担が難しい
- そもそも自分たちのプロジェクトがクリーンアーキテクチャを実現できているのか。。
- サンプルコードを参考にしようとしてもGo言語に特化したものは他の言語に比べると少ない
このような課題を解決できるような書籍の内容にしようということで、大まかな構成を決めました
- クリーンアーキテクチャ自体の説明
- サンプルコードを用意して、各レイヤーの実装やポイントを解説
ペルソナの設定
そして最後にペルソナを設定しました。執筆する時にこの辺りの認識が揃っていないと、内容のレベル感も揃わないなと思ったためです。実際にペルソナを使った議論は何度も出てきたため設定して良かったなと思っております。
一部ですが、以下イメージです。
Document整備
今回はNotionで諸々情報の整理をしていました。
プロジェクト進行中に色々追加や変更はしていますが、最終的にはこのような形になりました。
サンプルアプリ開発
(時期:2023年7月 ~ 2023年10月)
土台が整ったところで執筆といきたいところですが、今回はサンプルコードを使った解説本であったため、まずはサンプルアプリケーション開発をしました。
※途中から執筆と開発は並行して行っていました。
サンプルアプリ検討
サンプルアプリは以下のような条件を設けて、メンバーの中で案を出し合いました。
- アプリケーションに一定の複雑度があるか
- ドメイン知識が難しすぎないか
- 本人の普段の業務との一致がないか
- 楽しく取り組めそうか
いくつかあった案のなかから最終的にはサウナ用品のECサイトを扱うことになりました!
(メンバー全員サウナ好きだったんですよね笑)
設計
アプリが決まったら次は仕様を決めたり設計したりするフェーズです。
ユビキタス言語やドメインモデルをまずは整理しました。その後は各ユースケースがどのようなフローで処理されるか等を設計していきました。例えば以下のようなイメージ。
※プロジェクト進行中にも少し仕様変更しているため、書籍に記載のフローとは少しずれている可能性はあります。
設計したら次は実装フェーズです!
実装
commitやプルリクのルールをある程度定めてからチーム開発をしていきました。
メンバーの普段の実装ポイントの違いからプルリクでは色々な議論ができて面白かったです!
プルリクでは指摘以外にも、「わかりやすい」「学びになった」等のコメントがあって良かったです✨
その他気になる技術を試せたのは良かったなと感じました。
例えば、ORMをsqlc, migrationをsqldefの構成にしたのは@tomoya_sakusakuさんの激推しがあったという背景があります笑
執筆
(時期:2023年8月 ~ 2023年10月)
さて、いよいよ執筆です!こちらは以下のような流れで進めていきました
- 書籍の大まかな構成設定(目次とその章の概要くらい)
- 担当決めて書き進める
- 校閲・校正
校閲は全メンバーで実施しました。全員集まってその場でsyncしながら修正していました。
効率的ではなかったかもしれませんが、納得度の高いものはできたかなと思います。
ちなみに「このような構成にした方がわかりやすいんじゃない?」的な議論が何度もあり、最後まで構成を色々いじってました笑
そのせいか印刷直前の2 ~ 3週間は、週末お昼頃集まって終電前までずっと議論するという過ごし方をしていました。今となっては良い思い出。
表紙
執筆と並行して表紙作成も進めました。
外注をしようとしたのですが、スケジュール的に怪しかったため、自分たちで作成することに。
※ 表紙は結構時間かかるので、外注する場合印刷3ヶ月以上前から動いた方が良いと思います。
@gyu_outputs さんが素晴らしい表紙を仕上げてくれました。それがこちら。
本当にめちゃくちゃ可愛いですね!
PDF化
地味にPDF化には苦労しました。
当初ReVIEW-Templateを使っていたのですが、途中からビルドエラーが出てしまい、うまくPDF化できず。。
最終的にはRe:VIEW Starterを使ってPDF化をしました。マニュアルもかなり丁寧に書かれていて非常にわかりやすかったです。
初めて挑戦する方にはstarterがおすすめです!
印刷
(時期:2023年10月)
印刷は日光企画さんにお願いしました。色々印刷会社さんがある中で日光企画さんにお願いした理由は以下の通り。
- 試し印刷が可能
- 日光企画さんに伺って、表紙や本文の紙質を確認できる
- 技術書典に直接搬入可能
わからないことだらけでかなり質問をしましたが、かなり丁寧に返答してくださって本当に感謝です。
印刷関連のQ&A
僕が日光企画さんや技術書典の運営の方に質問した内容をここにまとめておきます。
少しでも参考になれば幸いです。
- Q. 見積もりからWeb入稿までの流れは?
- A. 公式サイトに見積もりフォームがあるので、まずはそこで見積もりを行う。その後振込みを行ってからWeb入稿する。Web入稿時に振り込みの明細を添付すると良い。
- Q. 印刷した本を会場に搬入する流れは?
- A. Web入稿フォームでイベント名やサークルNoを指定する(指定する場所あります)と、イベント日にサークルの場所に搬入してくれます。
- Q. サークルNo.がまだ決まっていないが入稿してしまって問題ないか?
- 問題ない。後からメール等で連絡すれば良い。
- Q. 会社に訪問して実際の紙を触らせてもらうことは可能か?
- A. 可能。予約等は特にいらない。
出展
(時期:2023年11月12日)
いよいよ出展です!当日はこのようなブースを作りました!
@gyu_outputs さんが事前にTwitterで呼びかけてくださった影響もあり、オフライン用に準備していた80冊は13時頃には全て売れてしまいました。
購入いただいた方には本当に感謝です!
当日の備品
当日に向けて用意したものをご紹介します。
- ブックカバー(100均)
- 試し読みするように買いました。
- ポスター
- 結構目立って良かったです。
- 値札ホルダー(100均), 値札
- 布
- 「あの布」という布が非常に有名ですが、購入できなかったので楽天で買いました笑
- 布滑り止め(100均)
- 布が滑り落ちないように買いました。
- クリップ(100均), 書籍の推しポイント
- 書籍の推しポイントは写真から漏れてしまっていますが、ポスターの上に書籍の推しポイントを配置していました。@sugamaanが作ってくださりました!
さいごに
技術書典に来場者としても出品者としても経験がなかった中での初挑戦でしたが、オフラインイベントは最高に楽しく参加して本当に良かったです!
購入していただいた方、一緒に活動してくれた仲間、運営の方、その他色々助けてくださった方々本当に感謝です。
技術書典に参加しようか迷っている方、ぜひぜひ挑戦してみてください!!色々大変なこともありますが、それ以上の楽しさや充実感が得られると思います!!
そして最後に。。技術書典15は2023年11月15日現在まだまだやってます!
僕らの本もありますので、気になる方はぜひぜひ覗いてみてください〜