Slide 1

Slide 1 text

さびれた勉強会を復活させる “文化のリファクタリング” 2017/07/28 内山 高広(@highwide) - Livesense Inc. Developers Summit 2017 Summer(夏サミ) Copyright © Livesense Inc.

Slide 2

Slide 2 text

● 社内のLT大会がだんだんとさびれていったさまを反省し、”文化のリファクタリング” を敢行することで、再度活気を取り戻すようになるまでの一部始終をまとめました ● リブセンスにおける社内事例ではありますが「勉強会<=>コミュニティ」への考え方 や、”リファクタリング”方法の見つけ方などが、ヒントとなれば嬉しいです ● なお、2017/7/28のDevelopers Summit 2017 Summerで発表した資料を、口頭で説 明していた部分など補うかたちで、一部改訂しています。 Copyright © Livesense Inc. このスライドについて 2

Slide 3

Slide 3 text

内山 高広 @highwide ● 3年前に「よちよち.rb」という初心者向けRubyコ ミュニティがきっかけでSIerから転職 ● なんだけど最近はPHPを書く方が多い ● アルバイト事業「ジョブセンス」のかたわら、社 内勉強会「0x64物語reboot」の運営を行う Copyright © Livesense Inc. 自己紹介 3

Slide 4

Slide 4 text

Copyright © Livesense Inc. 「0x64物語reboot」 (ひゃくものがたりりぶーと) とは? 4

Slide 5

Slide 5 text

Copyright © Livesense Inc. ● リブセンスで毎月やっている社内勉強会 ● 10進数で「100」 => 16進数で「0x64」 ● エンジニア有志(ときには他の職種の方も)が参加 ● “テーマ縛り”のLT大会 ● 近くで買ってきたクラフトビールを飲みながら、おもしろおかしく やっている 0x64物語rebootとは? 5

Slide 6

Slide 6 text

Copyright © Livesense Inc. 0x64物語rebootにおけるこれまでの発表テーマ No. テーマ 開催日 1 ネットワーク 2017/3/28 2 機械学習 2017/4/25 3 テスト 2017/5/29 4 RDB 2017/6/27 5 ポストRails 2017/7/31 6

Slide 7

Slide 7 text

Copyright © Livesense Inc. たとえばこんな発表が テーマ:「テスト」 テーマ:「ネットワーク」 7

Slide 8

Slide 8 text

Copyright © Livesense Inc. この勉強会は どうやって始まったの? 8

Slide 9

Slide 9 text

Copyright © Livesense Inc. ● 有志が10名弱集まる ● もくもくと読書会 ● 「独力だけでは読み進めにくい 本を読める」と好評 元々はコンピューターサイエンスの有名本の読書会をやっていた 9

Slide 10

Slide 10 text

Copyright © Livesense Inc. 毎週の読書会に集う人が ひとり、またひとりと減っていく ところが: コンピューターサイエンス本の読書会の顛末 ● 長く続いて飽きが出てきているし、 今度はアウトプットする場にしよう! ● ただのLT大会ではなく、 テーマ縛りにしたらおもしろそう! 10

Slide 11

Slide 11 text

Copyright © Livesense Inc. 0x64物語(ひゃくものがたり) スタートへ 11

Slide 12

Slide 12 text

Copyright © Livesense Inc. あれ? 0x64物語「reboot」 じゃないんでしたっけ? 12

Slide 13

Slide 13 text

Copyright © Livesense Inc. 実は一度「反省」のフェーズを挟んでいるのです 0x64物語 0x64物語 reboot 反省 リファクタリング 「0x64物語」の反省が、 いかにして「0x64物語reboot」につながったのか… それが今日お話したいことです 13

Slide 14

Slide 14 text

Copyright © Livesense Inc. じゃあ”reboot”する前の 0x64物語は最初から 失敗だったんですか? 14

Slide 15

Slide 15 text

Copyright © Livesense Inc. ● それなりに好評を博したはず ● 毎回20人くらいが参加して10人弱くらいが発表する ● 次回のテーマを毎回投票で決定し10回(10テーマ) 開催した 0x64物語やってみてどうだった? 15

Slide 16

Slide 16 text

Copyright © Livesense Inc. あれ?好評だったのに なぜ10回で 終わってしまったの? 16

Slide 17

Slide 17 text

Copyright © Livesense Inc. 飽きてきた 17

Slide 18

Slide 18 text

Copyright © Livesense Inc. ● いつも同じ人が発表しがち ● コンピュータサイエンス本読書会の流れを汲んでいるし 「ガチ勢じゃないと参加しにくい」と思われがち ● 自分たちもなんだかんだ言って、「こんなテーマでLTやる俺たち、最 高だよな」みたいな嫌な悪ノリがあったかもしれない なぜ飽きてしまうの? 18

Slide 19

Slide 19 text

Copyright © Livesense Inc. 「 こんなテーマでLTやる俺たち、最高だよな」とは No. テーマ 1 並行/並列 2 データ構造 3 OSカーネル 4 コンパイラ/インタプリタ 5 数 6 波 7 AI 8 関数型プログラミング 9 型 10 VM _人人人人人人人人人人人人_ > テーマ「数」「波」で < > 何を発表すればいいの <  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄ 19

Slide 20

Slide 20 text

Copyright © Livesense Inc. ● 「勉強会」とは言いつつも、部署横断で有志が集うようなものは、 言ってみれば社内の「コミュニティ」 ● 気心知れた仲間しかいないコミュニティでは、過度に心理的安全性 が保たれる => そして悪ノリも許される ● だんだんとマンネリ化していき、衰退してしまう 社内勉強会(=コミュニティ)というのは衰退しがち 20

Slide 21

Slide 21 text

Copyright © Livesense Inc. これで     と思ってたら     することに 21

Slide 22

Slide 22 text

再開のきっかけは? Copyright © Livesense Inc. 弊社のエンジニア創業者である桂が取締役を退任し 現場に集中することが決まった際の社内スピーチ 22 自分が取締役を退任することで 社内のエンジニア文化を危ぶむような声も聞いたけど 0x64物語みたいな文化があったなら、きっと大丈夫 再開の機運高まる

Slide 23

Slide 23 text

Copyright © Livesense Inc. 補足: 取締役が退任しなくても文化は見直せたはず… 今思えば「取締役の退任」みたいな 大きなできごとがなくたって、 文化を見直すきっかけは きっと普通に転がっていたはず。 このスライドが 皆さんのそんな機会につながれば幸いです…。 23

Slide 24

Slide 24 text

Copyright © Livesense Inc. 改めて 「0x64物語の何が良かったのか 何がうまくいかなかったのか」 を、言語化しようと企画会議をした 再開にあたって 24

Slide 25

Slide 25 text

Copyright © Livesense Inc. 企画会議の様子 桂「テーマがきちんとハマったときの0x64物語の魅力は"立体感"。全員の発表を通して、そのときのテーマが様々な側面からスポットを当て られた結果として、そのテーマの理解に近づく瞬間が確かにあった」内山「"立体感" 、言語化はしにくいが理解できる。個人的には、"Ruby で" / "Rustで" / "Pythonで"...といった並列の話題が横の軸となり、"アカデミックな理論では" / "機械語レベルの実装では" といった抽象度が 縦の軸となり、それに加えて、個々人の習熟度が奥行きとなっていた感がある」桂「イメージは近い。ただし、もっと多元的な立体感を考えて いた。」内山「適切な"立体感"を描くテーマのためには、案出しの段階での粒度が重要に感じる。たとえば、"ECMA"ではなく"言語"にした い、という意見があったが」桂「粒度が大きいと感じる。結果として、 "自分が好きな言語を掘り下げてきました" ばかりでは並列の話題が増え て、テーマを通しての立体感が明らかにならないと思う。個人的には "シンタックス" なら適切」内山「言いたいことはなんとなくわかるが、求 めるテーマ案を言語化するのが難しいのでは」桂「帰納的に"これはOK。これはNG"というのを並べて、共通の感覚を参加者に持ってもらう という方法もあるかもしれない」内山「なるほど。たとえば、"Java => 粒度やや小さい, JVM => 粒度適切" というのはイメージあうか?」桂 「Yes。Javaの各バージョンの違い、Scala/Clojure/GroovyといったJVM言語、JVMが生成するバイトコード...と掘り下げ方が立体的になりそ うだと感じる。一方で、投票でJVMが選ばれるかというと難しそうだと感じる」Clojureに反応したMさん「個人的には、立体感とは"各人がLT 内容を他人と絶対にかぶらないようにする" という気概があって成り立つように思う」内山「確かにそうかもしれない。テーマがVMのと き、"YARVがぼっちオペレーターをどう扱うか"というテーマが桂さんとかぶりそうになって慌てて変えたことを思い出した」桂「"波" をやったと きは、テーマがファジーだった分、全体として立体感を描ききらず、離散的になる一方で、局所的には"音”を掘り下げている人が多かった印 象がある」内山「テーマが"音"だったらよかったのかもしれない」桂「大… 25

Slide 26

Slide 26 text

桂「テーマがきちんとハマったときの0x64物語の魅力は"立体感"。全員の発表を通して、そのときのテーマが様々な側面からスポットを当て られた結果として、そのテーマの理解に近づく瞬間が確かにあった」内山「"立体感" 、言語化はしにくいが理解できる。個人的には、"Ruby で" / "Rustで" / "Pythonで"...といった並列の話題が横の軸となり、"アカデミックな理論では" / "機械語レベルの実装では" といった抽象度が 縦の軸となり、それに加えて、個々人の習熟度が奥行きとなっていた感がある」桂「イメージは近い。ただし、もっと多元的な立体感を考えて いた。」内山「適切な"立体感"を描くテーマのためには、案出しの段階での粒度が重要に感じる。たとえば、"ECMA"ではなく"言語"にした い、という意見があったが」桂「粒度が大きいと感じる。結果として、 "自分が好きな言語を掘り下げてきました" ばかりでは並列の話題が増え て、テーマを通しての立体感が明らかにならないと思う。個人的には "シンタックス" なら適切」内山「言いたいことはなんとなくわかるが、求 めるテーマ案を言語化するのが難しいのでは」桂「帰納的に"これはOK。これはNG"というのを並べて、共通の感覚を参加者に持ってもらう という方法もあるかもしれない」内山「なるほど。たとえば、"Java => 粒度やや小さい, JVM => 粒度適切" というのはイメージあうか?」桂 「Yes。Javaの各バージョンの違い、Scala/Clojure/GroovyといったJVM言語、JVMが生成するバイトコード...と掘り下げ方が立体的になりそ うだと感じる。一方で、投票でJVMが選ばれるかというと難しそうだと感じる」Clojureに反応したMさん「個人的には、立体感とは"各人がLT 内容を他人と絶対にかぶらないようにする" という気概があって成り立つように思う」内山「確かにそうかもしれない。テーマがVMのと き、"YARVがぼっちオペレーターをどう扱うか"というテーマが桂さんとかぶりそうになって慌てて変えたことを思い出した」桂「"波" をやったと きは、テーマがファジーだった分、全体として立体感を描ききらず、離散的になる一方で、局所的には"音”を掘り下げている人が多かった印 象がある」内山「テーマが"音"だったらよかったのかもしれない」桂「大… Copyright © Livesense Inc. 言語化しようとすると やたらと雄弁でポエミーになる我々 企画会議の様子 26

Slide 27

Slide 27 text

Copyright © Livesense Inc. ● テーマ縛りのLT大会 ● ビール飲みながら技術のことでワイワイ ● ひとつのテーマを、複数の人が、多方面から掘り下げることによって見え てくる”立体感” ● これまで触れたことのなかった領域に取り組むきっかけになる => 偶然の出会い(セレンディピティというらしい)の提供 というわけで、「改めてどんなところがいい勉強会だったか」 27

Slide 28

Slide 28 text

Copyright © Livesense Inc. 実は、勉強会の根幹/エッセンスは 悪くなかったと気がついた 外から見たときの勉強会の根幹は変えずに 内側のやり方を変えていけばいいのでは 28

Slide 29

Slide 29 text

Copyright © Livesense Inc. 「文化のリファクタリング」 なんて言えるのでは 29

Slide 30

Slide 30 text

rebootにあたって、実際にリファクタリングしたこと Copyright © Livesense Inc. 1. テーマの選び方の改善 2. 新規参入者の促進 3. 資金面の工夫 30

Slide 31

Slide 31 text

テーマの選び方の改善 Copyright © Livesense Inc. 「やりたいテーマへの投票」とすると、 よくわからないテーマにおもしろがって投票してしまう 「勉強したいテーマへの投票」とルールの変更をした 31

Slide 32

Slide 32 text

「各人が最も興味あるテーマへの投票(多数決)」をすると、 多くの人が二番目や三番目にやりたかったテーマが黙殺されがち 投票制度も変えたい Copyright © Livesense Inc. 32 過半数取れてないけど 一番票を集めたのは 「OSカーネル」 近い領域で票割れしたけど 心の中の次点は 「AWS」で共通だった 例:

Slide 33

Slide 33 text

Copyright © Livesense Inc. Wikipedia(en)で 「Comparison of electoral systems」を 見たりするなどの検討(迷走?)の末、 Instant-runoff Votingという投票制度にたどり着く 33 https://en.wikipedia.org/wiki/Comparison_of_electoral_systems

Slide 34

Slide 34 text

Instant-runoff Votingとは? Copyright © Livesense Inc. 01 instant runoff voting (IRV、インスタント・ランオフ・ヴォーティング) は、 有権者が優先順位にしたがって候補をランクづけする選挙方法のア メリカ英語での用語。 (略) 投票者の過半数の最優先を得る候補がいなければ、最優先のランキ ングが最も少ない数の候補は落選し、その候補の票は各票の次のラ ンキングによって残りの候補に移譲される。 このプロセスは単一の候 補が過半数を獲得し、落選する候補がいなくなるまで繰り返される。 wikipedia 「instant-runoff voting」より https://ja.wikipedia.org/wiki/Instant-runoff_voting

Slide 35

Slide 35 text

Instant-runoff Votingとは? Copyright © Livesense Inc. 1位: 機械学習 2位: RDB 3位: テスト 1位: 機械学習 2位: RDB 3位: テスト 1位: RDB 2位: 機械学習 3位: テスト 1位: RDB 2位: テスト 3位: 機械学習 1位: テスト 2位: 機械学習 3位: RDB この場合、1位として投票されているのは、どれも過半数に満たず… 機械学習: 2票 / RDB: 2票 / テスト: 1票 次のラウンドでは最下位の「テスト」が候補から削られる 35

Slide 36

Slide 36 text

Instant-runoff Votingとは? Copyright © Livesense Inc. 1位: 機械学習 2位: RDB 3位: テスト 1位: 機械学習 2位: RDB 3位: テスト 1位: RDB 2位: 機械学習 3位: テスト 1位: RDB 2位: テスト 2位: 機械学習 1位: テスト 1位: 機械学習 2位: RDB 候補から削られたものを1位にしてた人は次点が1位としてみなされる この例では、2ラウンド目で機械学習が過半数を超えたので決着 (※この例だとあんまり特殊感がないのですが…) 36

Slide 37

Slide 37 text

このやり方で38テーマ/17人による投票をするとすごいことに Copyright © Livesense Inc. 37 ※Web化したいと思っている

Slide 38

Slide 38 text

勉強会当日に開票し、次のテーマ決定の行く末を見守る Copyright © Livesense Inc. 38 Round1: 脱落: コンパイラ 現在トップ: 機械学習(3票) Round2: 脱落: フロントエンド 現在トップ: 機械学習(5票)

Slide 39

Slide 39 text

Copyright © Livesense Inc. 皆の前で開票することで 投票の仕組みそのものが エンターテイメントに 39

Slide 40

Slide 40 text

rebootにあたって、実際にリファクタリングしたこと Copyright © Livesense Inc. 1. テーマの選び方の改善 2. 新規参入者の促進 3. 資金面の工夫 40

Slide 41

Slide 41 text

新規参入者の促進 - イメージの刷新 Copyright © Livesense Inc. Before After コンピューターサイエンスガチ勢のみによ る勉強会 初心者の人の「こういうこと学んできまし た」って発表もOKですよ! 準備にめっちゃ時間かけてる なんだったら飛び入りでLTしてください〜 技術のことだけをどっぷり話さなくてはい けない エモい話とか、業務のつらみとか、そうい う話もWelcomeです ※ただし、これまで参加してくれていた人たちの楽しみを奪わないようにというバラン スで。 41

Slide 42

Slide 42 text

いつも発表してくれるコアメンバー以外も意識することが大事 Copyright © Livesense Inc. Etienne Wenger; Richard McDermott; William M. Snyder. 「コミュニティ・オブ・プラクティス」 コミュニティの参加の質を高め、 レベル間の適切な往き来を促すため の鍵は、どのレベルの参加者も フルメンバー(正会員)のような 気持ちになれるように、コミュニティの 活動を設計することだ。 42

Slide 43

Slide 43 text

Copyright © Livesense Inc. ● 発表予定がなかったはずの人が、「ウズウズしてきて」前職でのRDBに 関するつらみLTをしてくれた(超盛り上がった) ● エンジニアではない、新卒の総合職が「業務の中でDBを使ってみた感 想」など発表してくれた ● 昔から参加してくれてる方は相変わらず濃ゆい発表を続けてくれている 参加者たちの現状 43

Slide 44

Slide 44 text

rebootにあたって、実際にリファクタリングしたこと Copyright © Livesense Inc. 1. テーマの選び方の改善 2. 新規参入者の促進 3. 資金面の工夫 44

Slide 45

Slide 45 text

Copyright © Livesense Inc. ● 創業者である桂からの個人的な援助に依存していた部分が 大きかった ○ とはいえ桂も予定があって来られなかったりする ● 都度、集金するのも面倒 ● 会社から一部援助してもらうことはできそうだけど、全額は難 しそう これまでの飲食代等、費用の運用について 45

Slide 46

Slide 46 text

Copyright © Livesense Inc. そんな中HUNTER×HUNTERからインスパイアを得る 冨樫義博(2016)『HUNTER×HUNTER No.33』集英社 46

Slide 47

Slide 47 text

0x64物語基金の設立 Copyright © Livesense Inc. 投げ銭形式で参加者や援 助してくれる人が基金管 理者にお金を振り込み、 LINE Payに紐付いたクレ ジットカードで諸々の精算 ができるように 47

Slide 48

Slide 48 text

Copyright © Livesense Inc. ● 個人が都度経費申請しにくいAWSでの検証料などもサポート できるようになった ● 思った以上に、いろんな人がこの勉強会を支援してくれてい ることが可視化された(投げ銭してくれた) ● 経費申請できるような場合も基金管理者が申請して、その額 を基金に入金すればいいので、支障をきたさない 基金で管理してみて 48

Slide 49

Slide 49 text

Copyright © Livesense Inc. 余談: デブサミのために実績を作ろうとする汚い発表者 ↑AWSの費用を0x64物語基金から捻出したことを チャットに書くよう強要している 49

Slide 50

Slide 50 text

Copyright © Livesense Inc. これからの 0x64物語reboot 50

Slide 51

Slide 51 text

Copyright © Livesense Inc. ● それぞれの制度も今は盛り上がっている気がするが、また飽 きていくことは大いにありうると思っている ● そのときに、リファクタリングするのか、方向転換するのか、改 めて考え直せるようにしておくことが重要 ● 技術に関係ない投票制度や、マンガなど、思わぬところにリ ファクタリングのヒントってあるなと思った 「リファクタしたぜ!」とか言っているものの…始まったばかり 51

Slide 52

Slide 52 text

Copyright © Livesense Inc. 52

Slide 53

Slide 53 text

まとめ Copyright © Livesense Inc. ● 新陳代謝が図られず、心理的安全性ばかりが保たれたコミュニティ や、それを取り巻く文化は衰退しがち ● とはいえ、衰退していった文化の中にも「エッセンス」は良かったも のってたくさんあるはず ● そういった文化をリファクタリングすることで、また価値を取り戻すこ ともある ● リファクタリングのヒントは身の回りの思わぬところに転がっている かも...? 53

Slide 54

Slide 54 text

参考にした書籍 Copyright © Livesense Inc. ● 坂井豊貴(2015)『多数決を疑う 社会的選択理論とは何か』岩波新書 ● Etienne Wenger, Richard McDermott, William M. Snyder(2002) 『コミュニティ・オブ・プラクティス』翔泳社 ● 冨樫義博(2016)『HUNTER×HUNTER No.33』集英社 54