#!/usr/bin/env python # coding: utf-8 # In[1]: get_ipython().run_cell_magic('HTML', '', '\n') # # Lean Baseball # # # # __技術,Python,野球と越境し続けた今までとこれから__ # # Shinichi Nakagawa([@shinyorke](https://twitter.com/shinyorke)) - DevLOVE X 2019/6/23 # ## Who am I?(お前誰よ) # # * Shinichi Nakagawa([@shinyorke](https://twitter.com/shinyorke)) # * NEXT BASE Corp. 野球エンジニア(ex. RECRUIT, Retty, etc...) # * Pythonもくもく自習室(#rettypy)オーガナイザー # * Python界隈の「野球の人」. PyCon JP 登壇(2014-2018, 5年連続)ほか色々やってる. # * #Python #Baseball #セイバーメトリクス #魚料理 #UKRock # ## Summary # # 大雑把にいうと, __「ブログ開設5周年記念講演」__です! # # * ブログ「[Lean Baseball](https://shinyorke.hatenablog.com/)」を元に過去5年(〜10年)をふりかえる # * この先5年(または10年)をどう生きるか雑に言う # * Python, Lean, そして野球⚾ # # 以上を好き勝手に語ります. # ## 10年前くらいの話2009〜2013年 # # ブログをはじめる前のはなし # # # # ※写真はPrimrose Hill(from London) # ### 2009-2013年まで(30〜34歳) # # * 20代後半に患った心の病から復帰 # * 当時勤務していたコンサル会社で新しいお客様と出会い変化が起こる # * 仕事が業務系SEからWebエンジニアへ(Java→Ruby) # * __仕事つながりでデータサイエンスに目覚める(Pythonista化)__ # * アジャイル・スクラムと本格的に出会う、覚えて運用を始める # * __30代はとにかく「仕事」に突っ走ろう!という決意__ # # ### 決意と出会い # # #### 決意 # # > 「(仕事の人生・男の人生は)30代でどれだけやり切れるかが勝負」 # # * 父の言葉の受け売り. 実際に父は30代で結果を出してた # * 「若さが無くなったらどうやって戦うんだ?」という実感、あとリーマン・ショック # * __「30代は趣味を控えて今後の人生のため全力で走る!」__と決めた # # #### 出会い # # * __「Python」__ 仕事以外のプログラミングをするキッカケを与えてくれた(理由は後ほど) # * __「統計・データサイエンス」__ データの面白さ、客観的な事実・ファクトの大切さを教えてくれた. # * __「アジャイル・リーン」__ ユーザーさんへの価値提供がすべて.「言われたことをやる」ではない世界. # ## 試行錯誤の時代 - 2014〜2017年 # # 2014年, ブログ「Lean Baseball」スタート # # # ### 「決意」と「出会い」から起こしたアクション # # * __思ったこと・自分が面白いと思ったことをやってみる__ # * やることは仕事につながるように→技術とドキュメンテーションを磨く # * __「気になっている野球データをPythonでいじってみよう」という結論にいたる__ # # そうだ、たくさん実験をしよう! # ### 「実験」を行う方法と場所 # # #### 実験は「個人プロジェクト」として # # * __毎週末限定の個人プロジェクト__ # * 週末や平日の夜に野球に関する分析・解析・エンジニアリングをやる # * 使う技術・仕事は日中の仕事に適用可能かつ実験的なモノ # * 結果は必ずイベントなりメディアで披露する # # #### 外のイベント ※本日話さないこと # # * もくもく会およびカンファレンス. [#pyhack](https://pyhack.connpass.com/), [#mokupy](https://mokupy.connpass.com/), [PyCon JP](https://pycon.jp/2019/), [XP祭り](https://xpjug.com/xp2019/)ほか. # * しばらく後(2017年)に自分でも立ち上げ→「[Pythonもくもく自習室 #rettypy](https://retty.connpass.com/)」 # # #### メディア ※本日のメインテーマ # # __自分のブログ(一択)__ # ### ブログ「Lean Baseball」 # # * 技術と野球、キャリアをまとめる場所としてスタート # * 元々ブログは別に書いていたが、そっちを閉じて心機一転した # * 当初から(そして今も)「技術」「野球」「キャリア」しか書かないと決めていた # # __そして、第一弾記事からまさかの炎上を経験する__ # ### 2014年7月20日「炎上記念日」 # # [成長したいエンジニアは良いエンジニアの本棚を真似るといいんじゃない?](https://shinyorke.hatenablog.com/entry/2014/07/20/231609) # # # # ### 初炎上の惨劇 # # # # ### 初炎上からの学び # # * 「他人の”ふんどし”で相撲を取る」真似はするな(「俺もそう思ってた」的なツイート引用) # * ポジション・トークの用法・用量💊(立ち位置でマウンティングだめ、絶対) # * 煽りワードは火傷する(こなみ) # # 調子に乗りすぎたという反省(3年3ヶ月4日ぶり, 334回目) # ### 早速ピボットした # # * __自分ができること・持っているもので直球勝負する__ # * ポジション・トークと煽りをやめる(やるにしてもちゃんとフラグは回収する) # * __自分が手を動かして試した・作った・学んだモノ...を「野球」と「技術」で言語化する__ # # ### 2014年8月3日「セイバーメトリクス入門」 # # [【野球】30分でわかるセイバーメトリクス](https://shinyorke.hatenablog.com/entry/2014/08/03/142506) # # # # ### この記事で心がけたこと # # * 自分が大好きで、自分が学んできたことを「30分でわかりやすく」伝える事に注力 # * 当時、この記事を書いたモチベーションは「セイバーメトリクスを”わかりやすく”言語化」すること # # __結果、長きに渡ってご愛顧いただけるコンテンツに!__ # ### 「ご愛顧いただいて」いる証拠はこちら # # # # ### 書いた当時は # # * さほどヒットしなかったのですが # * 気がつけばSEOが効いてたのか?グイグイ上にきた ※施策は何もしてない # * 書いて2年後くらい(2016年ごろ)に気がついた # # __「自分のことば」で書いたコンテンツは強い(確信)__ # ### 2015年4月6日「⚾とPython,初の大ヒット・コンテンツ」 # [最強の野球オープンデータ「Retrosheet」をPython+(長いので以下略)](https://shinyorke.hatenablog.com/entry/2015/04/06/190243) # # # # ### ヒットした理由(ブログ目線) # # * 自分のバットとボール...もとい、エンジニアリングで勝負(コードもついてる) # * マウンティングも煽りもしていない # * むしろ、「読む人」の定義をしている(≒合う人は読むと面白いと思う、合わない人はそっ閉じしていいよ) # ##### 読む人の定義(抜粋) # # # ### ヒットした理由(外的要因) # # * PyCon JP 2014で「[Pythonではじめる野球プログラミング](https://www.slideshare.net/shinyorke/python-39061157)」というトークをやった # * トークがバカ受け、Python界隈で「野球の人」「野球HackならPython」というイメージが定着 # * ブログそのものは、続編的な立ち位置→なんかいい感じにホームランになった # # __野球同様、技術(Python)も大切にしている、何故かと言うと__ # ### 野球同様「技術」が大切だからです. # # 私のブログは「野球と技術」の集合体 # # # ### Lean Baseballは「野球」を軸とした「技術」ブログ # # > 自分が手を動かして試した・作った・学んだモノを # # > 「野球」と「技術」で言語化する # # * 名前の由来(最後に紹介)そして上記の方針(再掲)のとおり、「野球」「技術」が軸 # * 野球はセイバーメトリクスを中心に(前述の通り) # * 技術は「Python」と「Python以外」でざっくり分けて取り扱い # ### なぜPythonなのか # # __便利かつ大好きだからです(こなみ)__ # # #### 汎用性の高さ # # * Webもデータサイエンスもそれ以外も、自由になにか使え!と言われたらPython # * という方針で7,8年前からずっと普段使いはPython # * Webもデータサイエンスも同じ言語でいい感じにできる # # #### コミュニティ # # * よく参加してるコミュニティがPythonだった # * [#pyhack](https://pyhack.connpass.com/), [#mokupy](https://mokupy.connpass.com/)あたりに行けば強い人からヒント仕入れられる # * 本や日本語のドキュメントが揃ってなかった頃からお世話になってる # # ### 2016年7月3日 - 一番気に入ってるPythonネタ # # [たった数行のPythonコードで打者大谷翔平がどれだけ凄いのかを見てみる](https://shinyorke.hatenablog.com/entry/2016/07/03/184739) # # # # ### その他のPythonネタ # # ...とまあこんな感じでWebとデータサイエンスしてました. # # * [Django(Webアプリケーション)のノウハウ](https://shinyorke.hatenablog.com/entry/vue-django-hateoas) # * [データサイエンスの初歩](https://shinyorke.hatenablog.com/entry/jupyterbook-baseball) # * [ Webスクレイピング(なお自己責任)](https://shinyorke.hatenablog.com/entry/scrapy-example-yakiu) # ### Python以外の技術要素 # # #### 基盤・インフラ層の技術・ライブラリ # # 運用と開発環境をキレイにするかつ、後日仕事で活かせるように積極的に投入 # # * Docker # * Ansible, etc... # # #### データサイエンスの道具 # # 主に分析・解析したデータの運用. これも仕事への導入前提.なおほとんどPython. # # * 可視化. Redash, Jupyter notebookほか. # * データフロー. Airflow, luigiなど # # ### Dockerとデータサイエンスの合わせ技とか(2017年8月31日) # # [AirflowとDockerで俺々データ分析基盤をつくってみた&Imageを公開してみた #kwskrb](https://shinyorke.hatenablog.com/entry/airflow-docker) # # # # ### 更にアジャイルやなんかも # # なんせ、名前が「Lean」なので # # #### スクラム # # * ふりかえりを分類したり # * あえてスクラムを捨てたり # # これはすぐ後のスライドにて # # #### フレームワーク・アクション # # * PyCon JPの登壇時に書いたインセプションデッキを公開 # * Lean Startupから派生したモノの紹介・オススメ(Lean Canvasなど) # ### よく読まれている「ふりかえりの分類」 - 2016年7月3日 # # [ふりかえりを分類してみた〜自分のチームに合うのはどれだ!? #Agile](https://shinyorke.hatenablog.com/entry/2016/06/16/013538) # # # # ### 「ご愛顧いただいて」いる証拠はこちら(本日二回目) # # # # ### こういうのもやりました(2018年12月18日) # # [あえて、スクラムを「捨てる」勇気 - 「越境」のための言語化とプラクティス選び](https://shinyorke.hatenablog.com/entry/retty-scrum-meetup-2018) # # 「Do Scrum」じゃなくて、「Be Agile」しようぜ!っていうはなし # # # # # ### 技術ネタがバズると # # * 色々な人に聞かれる # * 知人・友人・同僚(今度飯食いながらPython教えてよ、的な) # * 知らない方々(ブログを見たんですけど、野球の統計教えてもらえますか?、的な) # # ワイ「(いちいち答えるのムズイから)ブログにすっか」 # ### 結果、大人気コンテンツが爆誕(2017年12月24日) # # [Pythonの学び方と,読むべき本を体系化しました2018〜初心者から上級者まで](https://shinyorke.hatenablog.com/entry/python2018) # # # # ### 「Python 本」の検索結果 # # # ### Python本シリーズ # # * 2017年から毎年書いてる # * 単に本を紹介するだけでなく、学び方やその時のトレンドも含めて # *  __「複数人に同じことを25〜334回聞かれたらブログに書いたほうがよい!」という学び__ # * 最初のブログを「本棚」で炎上させたがきっちりとフラグを回収した(こなみ) # ### ちなみに最新作(2018年12月24日) # # [Python本まとめ・2019年版 - Webとデータ分析を初心者が仕事にするまで](https://shinyorke.hatenablog.com/entry/python2019) # # 毎年クリスマスイヴに出してます # # # # ### なお、書くのは辛い # # Python本記事は毎年丸一日かけて書いてます、護摩行並の辛さかな(適当) # # # ## 野球エンジニア - 今の話 # # __2018年2月1日, 「野球エンジニア」爆誕__ ※宣言は1/14 # # [夢は正夢〜「野球エンジニア」としてのキャリアのはじまり](https://shinyorke.hatenablog.com/entry/yakiu-no-jikan-daaaa) # # # ### なぜ⚾のキャリアを手にしたか? # # ...はさんざん話してる・書いてるのでこちらを御覧ください :bow: # # [野球エンジニアになるまでの歩み〜夢は正夢 #devsumi](https://speakerdeck.com/shinyorke/ye-qiu-enzinianinarumadefalsebu-mi-meng-hazheng-meng-number-devsumi) # # # ### 今日言いたいことは # # __「技術」×「野球」は進むべき道として間違っていなかった、そういうこと. __ # # ※SABRはセイバーメトリクスの略語 # # # ## 近未來のはなし - これから先の5年10年 # ### 5年後(2024) # # __立場はどうであれ、「エンジニアでありたい」__ # # * スポーツ(野球)の仕事を続けているか?それとも別に手を出しているか?それはわからん # * でも、エンジニアとしての技能・脳みそ・お気持ちで価値を出し続けたい # * ビジネスも技術も常に新しいもの・イケてるものを目指したい # # そして、ブログも発信し続ける(はず) # ### 10年後(2029) # # __まだイメージはつかないけど「エンジニアでありたい」__ # # * 10年前(2009年)ごろの自分はエンジニアな方に振り切って未來が来た # * と、いうことは10年後も?って考えるのは短絡的かもだけど信じてもいいかもしれない # * プレーヤーとしてのエンジニア、マネジメント側にシフトしても純粋にやりたい事をやってけるようにしたい # # 発信は、、、どうなるんだろう?ブログなのか他の手段なのか # ### 5年後・10年後にむけて今やってること # # #### 自分をふりかえる機会を増やす # # ちょっと前・だいぶ前の自分の活動・思想からヒントを得る # # * 昔に自分で書いたブログ・スライドなどを読み直す # * 昔に読んだ本・20代ぐらいから好きな本・作品を読み直す・見直す # # #### 個人活動を少しずつピボット # # 野球が仕事になったので去年までと同じじゃダメ、探索的に色々とやる(&時間を作る) # # * 気軽に発散. 具体的には[note](https://note.mu/shinyorke)でエッセイっぽいものを書き始めた. # * 登壇・イベント参加を減らして自分ふりかえり・新たな個人活動のリソースに当てる(つまり断捨離) # # ### 未來に向けて今のスタンス # # 言うたら「気持ちは今のまま、でも自分の限度を知る(大切にする)」ってこと # # * __心身の健康を第一とする、黙ってても身体は老いるので__ ※9月で40, 10年後は(ry # * __物事をゼロベースから俯瞰する、捉える、考える__ # * 新しい事は積極的にやる、かわりに何かを捨てる(チャレンジと断捨離の両立) # ## Lean Baseball #とは # # __2 + 2 = 5.__ # # 2つのDiff, 2つのDev, 5つのアクションから成り立っている # # (と、[好きな曲](https://youtu.be/11oAXmVdEyQ)に合わせてこじつけました) # ### 2つのDiff # # 何かを調べたり興味を持ってアウトプットするときの自分の原動力・ヒント # # #### 世間の「常識」に対するギモン # # * 周りが「常識」というものに対して自分なりにギモン・クエスチョンが常にある # * 特に野球、科学や統計的に「おや?」ってものが常識だったり # # #### 自分の「今」と「これから」に対するギャップ # # * もっと言うと、「将来への不安」 # * リーマンショック、転職、野球エンジニアと事があるたびにギャップが色々と変わる # ### 2つのDev # # 2つのDiff、をどうやってDev(開発)で証明するか? # # #### ギモン駆動開発(GDD) # # * ギモンに思ったり違和感あることを自分なりに考えて手を動かして証明するような開発 # * 野球の場合、統計学・セイバーメトリクスがまさにそれ # * 技術であれば、「有効かどうかわからん」というモノを試す(ドッグフーディングですね) # # #### 中長期の自分プロジェクト # # * GDDを習慣にするため、数ヶ月〜数年の自分プロジェクトを回す # * 野球エンジニアになるまでに続けていた野球Pythonとか # * 大きめのカンファレンス登壇を目指すのも一つの手(自分の場合はPyCon JP) # ### 5つのアクション # # 2つのDiffを証明し, 2つのDevをすすめるためにやった5つのアクション # # * イシュー駆動開発(すべてのDiffをイシュー化して検証する) # * 検証結果をアウトプット(登壇・ブログ) # * エンゲージメントを元にピボット(意見や反響を元にまた新たなイシューを出してまた回す) # * 実装力をつける(検証をより効果的にやるためのエンジニア力磨き) # * 常にホームランを狙う(三振でも構わない、インパクトが残るようなことをひたすらやる) # # __「2 + 2 = 5」が自分にとっての「越境」ということでした(DevLOVE風表現)__ # ## 聴衆・読者の皆さまへ # # 特に、「刺激を受けました!(けど何からやれば?)」っていう皆さまへ # # * 「好きなこと」×「技術」で何かやってみる # * やった結果をブログなりLTなり、好きな方法で人前に披露する # * フィードバックを元にまたチャレンジしてみる # * 得た経験・技術を仕事に活かす(少しでも良いから) # * ↑のイテレートを最低でも三ヶ月続けてみる # # __「継続は力なり」ってこと!__ # ## さいごのはなし - 名前の由来 # # 「Lean Baseball」という名前の由来は # # > __「スタートアップが常に変化してグロースするように__ # # > __自分も野球(Baseball)も技術で常に変化(Lean)してグロースしていくぞ!」__ # # ※ブログ記事「[平成の終わり](https://shinyorke.hatenablog.com/entry/heisei-no-owari-tmge) 」より引用 # # というわけで、 今後も__常に変化しながらガンガン越境していきます.__ # # # # # ご清聴ありがとうございました.