『ベタープログラマ』の読書会をしました

ベタープログラマの読書会

こんにちは!パンダ大好きエンジニア、宮原です! 今回は、ぐるなび社内で開催した「ベタープログラマ読書会」の様子について、開催の流れや感想等を交えながらご紹介します。

読書会開催のきっかけ

社内で何かしらの勉強会を開催したいと思っていたところ、2017年12月にオライリーから『ベタープログラマ ―優れたプログラマになるための38の考え方とテクニック』という本が発売されました。

f:id:g-editor:20180711110540j:plain

さっそく手にとってみると、「グループによる勉強会でも使えるように作られています」といった旨の記載がありました。

本書は、優れたコードを作りだし、人々と効率的に働く生産性の高いプログラマになるための考え方とテクニックを38のテーマで紹介します。はじめに、コード1行1行の書き方、デバッグやエラー処理、コードの改善方法など開発現場でのコーディングを取り上げます。次にコードを単純に保つこと、コード変更やテスト、リリースなどソフトウェアを開発する際の考え方や心構えを扱います。個人的な活動として、継続的な学習方法と停滞を避けるための課題の見つけ方など、自らを成長させる方法も紹介。さらに組織の中で他の人とコミュニケーションを取りながら、効果的に働くための習慣を解説します。

出典:O'Reilly Japan - ベタープログラマ

軽く内容を確認したところ「すべてのプログラマのスキル向上に役立つことを目指しています。」と書かれていたこともあり、幅広い層で得られるものがありそうと感じ、この本を題材にした読書会を開くことにしました。

開催概要

メンバーを募集する際、読書会の目的と進め方を提示しました。なおメンバーは多様性を高めるため、普段お互いに業務で接することがなさそうな部署から、メールを中心に興味がありそうな人に声を掛ける形で集めました。

その結果さまざまなコンテンツから合計7名のメンバーが集まりました。 新卒3年目の若手から、エンジニア歴8年目の中堅までと、経験値も幅をもたせることができました。

読書会の目的

この本を読む目的はより良いソフトウェア開発者になるための心得を習得すること。

読書会形式を採用した理由は

  • 本を読み進めるモチベーションを獲得するため
  • 他の開発者との議論を通じて、本を自分以外の視点からも理解し、より多くの気づきを得るため

としました。

参加者の負担を減らすように進める

開催までに、どのように読書会を進めていくかを決めます。

  • 本は各自で購入し、2~3章を1週間で読んでくる(1章は10ページ前後)
  • 資料づくりは不要。本を読んでくることだけで良い
  • 週1回昼休みに集まって、各章末の「質問」についてご飯を食べながら話し合う
  • 都合が悪そうな時は調整する(とはいえ主催者以外の一人だけ都合が悪い、という程度なら開催してしまう)
  • 読んでいて疑問点等あれば、それについても話し合う

参加にあたっての事前準備は「その週の対象範囲を読んでくるだけ」としました。担当範囲をあらかじめ資料にまとめる、だと参加者の負荷が大きく、週1の昼休みにみんなで読んでいく、だとスピードが出ないかなと思ったからです。

ディスカッションを重視

基本的には毎回2~3章(20~30ページ)ずつ進めていましたが、ディスカッションが白熱し回によっては消化しきれないことも。普段の業務では関わらないメンバーと同じ課題で共感したり、「他の部署ではどうしているのか?」といったアイディアを出し合ったりして盛り上がりました。

読書会の会期を特に決めていなかったこともあり、消化しきれなかった時は次回までに読んでくる範囲を短くする(1章だけにする)などして調整。結果、2/7~6/14の全17回で読了しました。

訳者を招いての座談会、懇親会

読書会主催者である宮原は、ベタープログラマの翻訳者である柴田芳樹さん(@yoshiki_shibata)と一緒にお仕事していたという繋がりもあり、読書会終了後に柴田さんをお招きして、座談会&懇親会を開催しました。

ベタープログラマ座談会後の懇親会 - Spherical Image - RICOH THETA

座談会では、主にベタープログラマを読んでいて疑問に思ったところや、「○○を考えてみて下さい」と言った質問について自分たちが考えた事以外にもっと良い考えはないだろうか、と言った点を話し合いました。

懇親会では、「ベターなプログラマになるため、あるいはベターなプログラマになってもらうにはどうしたら良いか?」と言ったことを中心に、柴田さんの今までのキャリアや考え方を交えて、ざっくばらんに色々な議論をしました。

柴田さんのブログでも我々の読書会を取り上げていただきました。

柴田さんは色々な会社で開発者、マネージャー、教育者として働かれたご経験があり、また技術書の翻訳だけでなくご自身でも執筆されています。そんな多様な経験をお持ちの柴田さんと、色々な視点からお話することができ、参加メンバー全員とても良い経験ができました。

参加者の感想

『ベタープログラマ』を読了し、無事に読書会は終了。メンバーから嬉しい声をもらったのでその一部を紹介します。

Y.Mさん(エンジニア歴2年)

エンジニアブログリンク

異動して半年くらいで、ちょうど様々なことを考え始めていた時期に始まったので、毎回本当に深く考えられました。半年後に読み返してみると、全く違うことを考えていると思うので、ぜひ読んでみたいと思います。
他部署のチーム状況などを知る機会ができたこと、また環境を変えていこう、良くしていこうと考えている方々と、社内で知り合えたことも大きな成果でした。
まだなかなかスキル・経験的に難しいとは思うのですが、できるだけ早く今回のような場を自分で作ってみたいと思います。

T.Yさん(エンジニア歴5年)

最近のプロジェクトで新しく策定したルールや仕組みで快適だった部分が本書でも取り上げられていて、旗振り役を果たしてくれた自チームのPLの存在を誇りに思いました。まだまだ改善点の多いチームではあるものの、少しずつ改善できている部分もあるのかなと思いました。
また、普段業務的には全く別の業務/サービスを担当しているメンバーとの勉強会だったので、それぞれのチームでの工夫/苦労がわかる貴重な機会になりました。
抽象的な内容や自分一人では解決できない内容もありましたが、読書会の中の話し合いで、業務の中での場面などに置き換えて考えられたので、内容が濃い読書会でした。

K.Sさん(エンジニア歴8年)

読書会のディスカッションを通して、業務上での色々な開発手法や共通の課題認識を持っていること、そしてその課題をどのように解決をしたか知ることが出来てとても参考になりました。 また、同じ社内でもそれぞれのチームによって様々な効率的に仕事をするための改善方法を実践していて、自身の所属するチームにも取り入れて行きたいと思いました。 個人的にもチーム的にも成長に繋がる勉強会でした。

M.Yさん(エンジニア歴3年)

普段はなかなか知る機会のない、他のチームの方がどのように開発を行っているかなどを知ることができ、非常に勉強になりました。
一人で読書する際は、問題点や気をつけたい点を記憶に留めるところで終わってしまいがちでしたが、読書会では、体験談などを交えた話し合いを通じてもっと前向きに、実際にどのように改善していくか、どのように振る舞いたいかといった、具体的なところに深く注目することができたと感じています。
なによりも「こうして行きたい」「こんなことをしてみたい」という熱い意見に刺激を受けました。

明るい雰囲気の中で話し合いをすることができ、毎週とても面白かったです。 色々な方と意見を交わすこと、お聞きし発見すること楽しさを実感いたしました。

K.Mさん(エンジニア歴2年)

エンジニアブログリンク

今回の取り組みに参加できたことで、下記のような経験ができました。

読書がより楽しくなった

読書の目的の多くは知識の吸収、実践だと思います。今回は、読んで自分の持っている考えを共有して共感を得たり、違った視点からの意見に影響を受けたり、普段の読書より一歩踏み込んだ読書活動ができました。本を読むこと自体が以前より楽しくなった気がします。

人との関わりが増えた

業務をしているだけだと、顔を合わせるメンバーは固定されがちです。 しかし、読書会の取り組みのおかげで、他部署の人、取り組みを知ることができました。 自動テスト、開発手法など、存在を知っているのと知らないのでは大違いです。新たな知見が得られて良かったです。

読書会ではかなりボリュームのある本を読破でき、それだけでも達成感がありました! ただ、一通り読んだだけは理解しきれなかったことも多くありました。 本書の結びにあるように、今後のエンジニアライフにつなげていくには読み直すことが大切だと思います。期間をおいて改めて読み、当時の自分の考えと比較してみます! 新たな気付きがあるといいな~。

A.Kさん(エンジニア歴6年)

実は輪読会というもの自体への参加が初めてでした。 さらに言うと、オライリー本を最後まで読破できたのも初めてかも知れません。 普段、掻い摘んで読むことが多い技術書ですが、熟読し熟考できたのは、輪読会という場があったからだと思います。新卒新入社員も入社してきたので、こういった場をどんどん提供していってあげたいです(もちろん、主催者側の立場として)。

本の内容も工夫されている印象を受けました。 分量・構成ともにストレス無く読めるようになっており、章末に課題(自分のマインドを振り返るような内容)があったのは、面白かったです。 また、章末の課題について議論することで、自分の開発者としての立居振る舞いをレビューしている感じがしました。 今回は、議論することで個人・チームの課題を再考することができました。次回は、課題を解決できるような施策を実際に打ち出していきたいと思います。

普段関わることのないエンジニアと議論することで、自分の中で新たな価値観・考え方を身に着けることができました。

宮原(主催者、エンジニア歴8年)

普段それほど仕事で関わらない人、読書会に興味を持ってくれそうな人を集めてみました。結果的に、色々な経歴を持つ人、色々な状況にいる人達と情報交換することができ、有意義な読書会を開催できたと思っています。

良いプログラマになるためには、といった本は色々と出ていると思いますし、私も色々読んできました。 今回、今までに読んできた本の振り返りになり、自分のポリシーについてやっぱりこれで良かったんだなって思えたり、新しい時代に即したトピックを読めて、改めて気が引き締まる思いをしたりしました。

全17回、みんなで無事に完走できて、良かったです。

f:id:g-editor:20180711111524j:plain

全体の感想と今後について

開始した当初は、お互いにあまり良く知らない人同士を集めての読書会だったため、本当にうまくいくだろうか、無事に読み終えることができるだろうか、と心配していました。

ベタープログラマはディスカッションしやすいような内容になっています。本を無事読み終えられただけでなく、色々な背景を持つ人が集まったおかげで、より深いディスカッションができました。業務都合で参加できない時は、各質問に対して「自分の考えはこうです」とドキュメントを準備してくる熱意を持ったメンバーもいました。

さらに参加メンバー同士の交流も生まれ、普段の業務での交流にもつながりました。当初の目的に対して、大成功だったと言えそうです。普段から「エンジニア同士の交流(特に部署を超えた交流)を促す良い方法はないかな」と考えていたので、読書会が良いきっかけになって嬉しいです。

うまくいったポイントはこの辺りかなと考えています。

  • 一つのテーマを提示(今回はベターなプログラマになる)
  • きっかけ(本書の章末の質問)
  • ハブになる人がいる(宮原が司会進行を担当しました)
  • 同じメンバーで繰り返し行う(全17回)

なんとなく人柄が合いそうな人を集めた、というのも効いているかもしれません。

今後も何かしらの勉強会をやっていきたいな、と思います。今回は考え方や振る舞い方に重きが置かれていたので、次はもっと技術寄りのトピックも良いなとぼんやり思っています。

また、私自身、以前柴田さん主催の読書会に色々と参加させていただき、読書会運営のノウハウやコツを学びました。今回の読書会参加メンバーも、いつか自分たちが主催する側に回ってくれたら嬉しいな、と期待しています。

読書会に参加した皆さん、そして素晴らしい本を翻訳し、座談会と懇親会に来てくださった柴田さん、本当にどうもありがとうございました!


お知らせ
ぐるなびでは一緒に働く仲間を募集しています。


‘宮原良介’

2010年に大学院を卒業し、新卒で某大手精密機器メーカに就職。2015年の秋、食への熱い思いを持って、ぐるなびへ転職。ぐるなびでは単に開発を行うだけではなく、様々な業務改善を推進するとともに、アジャイル(スクラム)の普及にも尽力している。
パンダ好きのフルスタック気味エンジニア。