メルカリグループでは、プログラミング言語であるGoを開発に用いるだけでなく、知見などを社内外問わず積極的に情報発信しているメンバーがいます。なかでもGoの普及に深く取り組んでいるのが、メルペイのエキスパートチームに所属するBackendエンジニアの上田拓也(@tenntenn)です。
そんな@tenntennが主体となって進めていた、技術評論社の専門誌『Software Design』での連載「作品で魅せるGoプログラミング」が、2021年1月号で、約2年にわたる連載がひと区切りを迎えます。
そもそもなぜ連載はスタートしたのか。連載中はどういったやりとりがあったのか。企画・編集をしてきた技術評論社の吉岡高弘さんにもご登場いただき、2年間の連載を振り返りました。
この記事に登場する人
-
吉岡高弘(Yoshioka Takahiro、@tyoshi99)技術評論社所属。おもな業務は月刊誌『Software Design』の編集。たまにIT専門書も制作している。子ども時代からの読書習慣で培った読解力と、前職のSE時代に身につけたIT基礎知識が、まわりまわって今の業務にとても役立っている。プログラミング、データベース、セキュリティ、機械学習など、ITなら食わず嫌いせずに何でも企画・制作している。 -
上田拓也(Takuya Ueda、@tenntenn)大学時代にGoに出会い、それ以来のめり込む。メルペイのエキスパートチームに所属。Backendエンジニアとして日々Goを書いている。Google Developer Expert(Go)。社内外で自ら勉強会を開催し、Goの普及に取り組んでいる。Go Conference主催者。golang.tokyo、Goビギナーズ、GCPUG Tokyo運営。マスコットのGopherの絵を描くのも好き。人類をGopherにしたいと考えている。
一通のTwitter DMからスタートした、専門誌での連載
ーさっそく、連載がスタートしたキッカケを教えてください。
吉岡:2018年に、私がTwitterで@tenntennさんへ送ったDMですね。
当時は『Software Design』でGoの連載として、Goエンジニアのリレーコラムを想定していました。@tenntennさんは勉強会やカンファレンスなども開催していたので、ご自身の知見だけでなく、いろいろなGoエンジニアもご存知のはず。窓口になってもらえたらすごく心強いと思い、声をかけました。
吉岡高弘さん
@tenntenn:DMをいただいて、「やります」と即答した気がします。雑誌で連載を持てるチャンスなんてそうそうないですしね。ただ、私1人で回すとなるとかなり大変だと思ったので、他のメルカリ・メルペイメンバーも巻き込みつつやることを決めたのでした。
吉岡:驚くことに、最初のミーティングで@tenntennさんは、ご自身以外のエンジニア3名から連載参加への承諾を得ていました。最終的には、@tenntennさんが挙げていた執筆候補者の方々もしっかり書いてくださって…「最初に@tenntennさんへ声をかけて良かった」となりました。
ー最終的には、2年間で20人以上が執筆していますよね。@tenntennさんはどうやって書いてくれるメンバーを集めたんですか?
@tenntenn:ありがたいことに、社内に「やりたい」と言ってくれるメンバーが多かったんです。メルカリにはすでに技術誌でバリバリと書いてきたメンバーもいますが、私はあえて「執筆経験はまだなくても書けるだけの知識やスキルがありそうなメンバー」に声をかけていました。それこそ、新卒やインターンもいましたが、みんな積極的にチャレンジしてくれたと思います。
ただ、みんな書きすぎていましたよね(笑)。
上田拓也(@tenntenn)
吉岡:原稿の分量は多かったですね。今回の連載にかぎらず、エンジニアの方々に執筆をお願いすると、たいてい多くなりますね。技術的なことはくわしく説明しようと思えば、どこまでも細かく説明できますから。ただ、この連載では闇雲に長いわけではなく、みなさんすごく丁寧なんです。
私が企画した当初は「Goでつくったものすべてを説明する」ではなく、「ピンポイントで説明し、わかる人にはコードを見て理解を深めてもらう」ぐらいの上級者向けを想定していました。
ところが、書いていただいた原稿はプロダクトの全体像や開発経緯などを事細かに解説してくれていて、文章を削るのもすごく悩ましかった。結果として、当初は6ページを想定していたものを1〜2ページほどオーバーしたまま載せたり、2号連続・前後編で載せたりすることもありました。
ちなみに、原稿はすべて@tenntennさんがレビューしていたんですか?
@tenntenn:私だけではなく、くわしいメンバーにもレビューをしてもらっていました。社内の協力を得られたのも、2年続いた要因だと思います。
連載を支えた誌面づくり、編集者として感じたおもしろさ
ー改めてなのですが、原稿が『Software Design』の誌面になり、書店に並ぶまでにはどんな流れがあるんですか?
吉岡:『Software Design』は基本的に毎月18日が発売日。そのため、原稿は1ヶ月半ぐらい前に受け取ります。12月18日発売号だと、11月5日ぐらいですかね。1ヶ月半ほどある期間のうちの2週間は、印刷所や流通のための時間。なので、約1ヶ月で編集作業を進めることになります。編集作業では、内容を確認し、わからないところがあれば著者に聞き、レイアウトを固めていく。1〜2週間でだいたい誌面のかたちになるので、PDFにして著者と編集部で校正する。そんなフローです。発売号と制作している号は1〜2ヶ月ほどズレているので、ときどき「今はどの号をつくっているんだ?」となるときもありますね(笑)。
ー連載タイトルが「作品で魅せるGoプログラミング」に決まったのは、どのタイミングだったのですか?
吉岡:いつだったかな…?最初のミーティングのタイミングでは違うタイトルだったと思います。決まったのは、最初の原稿のやり取りをしているときでしたっけ?
@tenntenn:たぶんそうですね。最初から「読者が『試しに自分も動かしてみたい』と思わせるような記事にしたい」と話していましたね。
吉岡:タイトル案の候補に挙がっていたのは「楽しさ重視、Go言語でつくろう」「やってみたくなるGo言語流ツール&ハック集」など。絞り込めていないのは、私自身もまだ迷いがあったからかもしれません(笑)。
ー2年も連載が続いたのは吉岡さんのお力があってこそだと思うのですが、編集者として意識していたことはありますか?著者として参加したメンバーからは 「原稿を提出したあとに吉岡さんからいただいた感想がすごく嬉しかった」と聞いています。
吉岡:編集者は最初の読者でもあるので、原稿をもらったら何かしらの感想はフィードバックしたいと思っています。
私も知らない技術について読むことの方が多いのですが、難しさのなかに新しい発見があっておもしろさも感じますよ。なかには複雑な解説もありますが、スルメを噛むようにじっくり読み解くと旨味を感じられるようになっていました(笑)。
2年間、連載がマンネリ化しなかった理由
ー連載への反響はどうでしたか?
吉岡:「決して万人受けするテーマではないけど、コアな層には響く」は実感しました。
毎月読者アンケートをとっているのですが、全部で約20ある連載のうち「作品で魅せるGoプログラミング」は10位前後のことが多かったんです。丁寧に説明したものとはいえ、万人受けする内容ではなかったとは思っていましたが、Twitterを見ていると「Goの連載がおもしろい」と言ってくれている方はいて「コアな層には響く企画」と実感しました。
そのなかで最も反響があったのは、2020年1月号@micnncimさん(メルカリMicroservices Platformチーム)の「GoとKubernetesカスタムコントローラで作るCloud Spannerオートスケーラ」、2020年3月号@___Johnielさん(当時メルペイエンジニア)の「Goで簡易な空間検索を実装する」です。どちらも各号読者アンケートの「おもしろかった記事ランキング」で、約20本の連載記事のうち4位になっています。
@tenntenn:私の周りこそ、まさに吉岡さんがおっしゃるところの“コアな層”なので、概ね好評でした。私自身も同僚が書いた記事をおもしろく読んでいましたし、特に2019年7月号@ktrさん(メルペイBackendチーム)の「Goで作るインタラクティブなgRPCクライアント」はとても興味深かったです。反響も大きかったですね。
ーそして、2年ほど連載が続き、最終回を迎えます。
@tenntenn:これに関しては「もう2年経ったのか」という感覚ですね。すべて私が書いたわけではないのでそう感じているのかもしれませんが、あっという間でした。あと、2年続いたのはすごい!最初は、5〜6回を目安にしていたのですが、私も吉岡さんも「続けられそうなら続けたい」と話していました。社内でも「書きたいメンバーがいるから、まだ続けてほしいです」と何度か相談もされていたんですよね。
吉岡:私も、この2年は早く感じましたね。基本的に、同じ著者さんの連載は2年も続ければマンネリ化しやすいところがあります。しかし、この連載はリレー形式だったおかげでマンネリ化はなかった。全23回ありますが、テーマの重複もほとんどなかったですね。また、リレー形式は次の著者さんを手配するところが一番大変なんですが、今回は@tenntennさんのおかげで困りませんでした。
ー連載のテーマでもあるGoの関心については、変化を感じるところはありますか?
吉岡:関心は、増してきていると感じています。「これから使いたいと思っている言語はなんですか?」という読者アンケートでも、連載開始したころから常に上位3位ぐらいにランクインしていますね。注目の言語であることは、間違いないと思います。
「Goはいろいろなシーンで使える幅広い言語である」と、しっかり伝えたい
ー最終回が掲載される2021年1月号は、拡大版になっています。これまでの連載との違いは?
吉岡:Goで実用的なものをつくるうえで必要な前提知識を説明する記事にしたいと思っていました。というのも、今までの連載は「Goの解説」よりも、「GoでつくったProductやOSを紹介してもらう」の意味合いが強かったんです。少し、内容は難しかったと思っています。読者に読むことを苦労させてしまったことは、僕としての反省点です。
Goの文法は、入門書を読めばわかります。そこで、最終回では「どうすればメルカリやメルペイのエンジニアのレベルに到達できるか」を紹介する記事になるよう意識しました。本連載は、バックナンバーや電子版で号ごとに読めます。最終回を読んだうえで過去記事をさかのぼれば、楽しさも倍増するはずです。
さらに今回は、『Software Design』で最もページ数が多い第1特集でGoを取り上げます。連載では紹介しきれなかったGoの機能を、細かく説明しています。そして、いずれは23回の記事を何かしらのかたちにまとめて表に出るようにしたい。Goって本当にいろいろなシーンで使える幅広い言語なので、それがしっかり伝えたいのです。
@tenntenn:最終回が掲載される1月号には、50ページほどメルペイのエンジニアで書いたものが載るので、ぜひ読んでほしいです。あと、「自分も書いてみたい」という方が増えると嬉しいですね。ちょっと長めのブログを書くつもりでやれば、じゅうぶんに仕上がります。読む側から書く側へシフトするのも、けっこう楽しいですよ。
ー最後に、今後『Software Design』として注目している技術があったら教えてください。
吉岡:実現するかはわかりませんが、WebAssemblyは取り上げてみたいですね。GoやRustなどもまた特集するとは思いますが、WebAssemblyのように新しい言語にもフォーカスしたい。あとは、新しい技術のベースになっているような知識の解説にも力を入れていきたい。新しいものばかりに飛びつくのではなく、地に足のついた特集を組んでいきたいと思っています。
@tenntenn:WebAssemblyなら、知り合いをご紹介できますよ(笑)。
吉岡:ありがとうございます!近々、相談させてください(笑)。