Upgrade to Pro — share decks privately, control downloads, hide ads and more …

文化のリファクタリング

 文化のリファクタリング

2017/07/28 @ Developers Summit 2017 Summer
A-5セッション「組織と文化のリファクタリング」後編資料

Livesense Inc.

July 28, 2017
Tweet

More Decks by Livesense Inc.

Other Decks in Technology

Transcript

  1. Copyright © Livesense Inc. • リブセンスで毎月やっている社内勉強会 • 10進数で「100」 => 16進数で「0x64」

    • エンジニア有志(ときには他の職種の方も)が参加 • “テーマ縛り”のLT大会 • 近くで買ってきたクラフトビールを飲みながら、おもしろおかしく やっている 0x64物語rebootとは? 5
  2. 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
  3. Copyright © Livesense Inc. • 有志が10名弱集まる • もくもくと読書会 • 「独力だけでは読み進めにくい

    本を読める」と好評 元々はコンピューターサイエンスの有名本の読書会をやっていた 9
  4. Copyright © Livesense Inc. 実は一度「反省」のフェーズを挟んでいるのです 0x64物語 0x64物語 reboot 反省 リファクタリング

    「0x64物語」の反省が、 いかにして「0x64物語reboot」につながったのか… それが今日お話したいことです 13
  5. Copyright © Livesense Inc. • いつも同じ人が発表しがち • コンピュータサイエンス本読書会の流れを汲んでいるし 「ガチ勢じゃないと参加しにくい」と思われがち •

    自分たちもなんだかんだ言って、「こんなテーマでLTやる俺たち、最 高だよな」みたいな嫌な悪ノリがあったかもしれない なぜ飽きてしまうの? 18
  6. 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
  7. 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
  8. 桂「テーマがきちんとハマったときの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
  9. Copyright © Livesense Inc. • テーマ縛りのLT大会 • ビール飲みながら技術のことでワイワイ • ひとつのテーマを、複数の人が、多方面から掘り下げることによって見え

    てくる”立体感” • これまで触れたことのなかった領域に取り組むきっかけになる => 偶然の出会い(セレンディピティというらしい)の提供 というわけで、「改めてどんなところがいい勉強会だったか」 27
  10. Copyright © Livesense Inc. Wikipedia(en)で 「Comparison of electoral systems」を 見たりするなどの検討(迷走?)の末、

    Instant-runoff Votingという投票制度にたどり着く 33 https://en.wikipedia.org/wiki/Comparison_of_electoral_systems
  11. Instant-runoff Votingとは? Copyright © Livesense Inc. 01 instant runoff voting

    (IRV、インスタント・ランオフ・ヴォーティング) は、 有権者が優先順位にしたがって候補をランクづけする選挙方法のア メリカ英語での用語。 (略) 投票者の過半数の最優先を得る候補がいなければ、最優先のランキ ングが最も少ない数の候補は落選し、その候補の票は各票の次のラ ンキングによって残りの候補に移譲される。 このプロセスは単一の候 補が過半数を獲得し、落選する候補がいなくなるまで繰り返される。 wikipedia 「instant-runoff voting」より https://ja.wikipedia.org/wiki/Instant-runoff_voting
  12. 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
  13. 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
  14. 新規参入者の促進 - イメージの刷新 Copyright © Livesense Inc. Before After コンピューターサイエンスガチ勢のみによ

    る勉強会 初心者の人の「こういうこと学んできまし た」って発表もOKですよ! 準備にめっちゃ時間かけてる なんだったら飛び入りでLTしてください〜 技術のことだけをどっぷり話さなくてはい けない エモい話とか、業務のつらみとか、そうい う話もWelcomeです ※ただし、これまで参加してくれていた人たちの楽しみを奪わないようにというバラン スで。 41
  15. いつも発表してくれるコアメンバー以外も意識することが大事 Copyright © Livesense Inc. Etienne Wenger; Richard McDermott; William

    M. Snyder. 「コミュニティ・オブ・プラクティス」 コミュニティの参加の質を高め、 レベル間の適切な往き来を促すため の鍵は、どのレベルの参加者も フルメンバー(正会員)のような 気持ちになれるように、コミュニティの 活動を設計することだ。 42
  16. Copyright © Livesense Inc. • 創業者である桂からの個人的な援助に依存していた部分が 大きかった ◦ とはいえ桂も予定があって来られなかったりする •

    都度、集金するのも面倒 • 会社から一部援助してもらうことはできそうだけど、全額は難 しそう これまでの飲食代等、費用の運用について 45
  17. Copyright © Livesense Inc. • それぞれの制度も今は盛り上がっている気がするが、また飽 きていくことは大いにありうると思っている • そのときに、リファクタリングするのか、方向転換するのか、改 めて考え直せるようにしておくことが重要

    • 技術に関係ない投票制度や、マンガなど、思わぬところにリ ファクタリングのヒントってあるなと思った 「リファクタしたぜ!」とか言っているものの…始まったばかり 51
  18. まとめ Copyright © Livesense Inc. • 新陳代謝が図られず、心理的安全性ばかりが保たれたコミュニティ や、それを取り巻く文化は衰退しがち • とはいえ、衰退していった文化の中にも「エッセンス」は良かったも

    のってたくさんあるはず • そういった文化をリファクタリングすることで、また価値を取り戻すこ ともある • リファクタリングのヒントは身の回りの思わぬところに転がっている かも...? 53
  19. 参考にした書籍 Copyright © Livesense Inc. • 坂井豊貴(2015)『多数決を疑う 社会的選択理論とは何か』岩波新書 • Etienne

    Wenger, Richard McDermott, William M. Snyder(2002) 『コミュニティ・オブ・プラクティス』翔泳社 • 冨樫義博(2016)『HUNTER×HUNTER No.33』集英社 54