Slide 1

Slide 1 text

免責条項 ● Tokyu.rbの話をしようと思ったんですが、その前にこれまでをいろいろ話した方がいいとも思い ● 今年50歳になるエンジニアがどう生きてきたのかを含めて、比較的面白おかしく話そうと思います ○ 「どうしたらこうなったのか」がわかるといいなと思いつつ ○ Tokyu.rbを作った人がどんなことを考えていたのかとかも ● 一方でかなり特殊(?)だとも思うので、聞きたいことは何でも質問してください ● みなさんの今後の参考になれば幸いです

Slide 2

Slide 2 text

どう生きてきたか、どう生きるのか ~シニアエンジニアの人生~ Tokyu.rb / 株式会社i-plug 執行役員 CTO 小川 伸一郎 2024 年 9 月 27 日

Slide 3

Slide 3 text

アジェンダ ● 序文 ● 自己紹介 ● どう生きてきたか ○ 幼少期 ○ 中高時代 ○ 青年時代 ○ 社会人 ○ 中年期 ○ 壮年期 ● どう生きるべきか ● まとめ

Slide 4

Slide 4 text

自己紹介 小川 伸一郎 (Shinichiro OGAWA) 株式会社i-plug 執行役員CTO @rust @conceal_rs rust.ogawa

Slide 5

Slide 5 text

どう生きてきたか 幼少期

Slide 6

Slide 6 text

幼少期 ● そもそもコンピューターがない時代 ○ オフィスコンピューターと呼ばれていた時代 ■ なので若い人は恵まれているなと思っている ● 電話もダイヤル式

Slide 7

Slide 7 text

幼少期 ● ずっと図鑑を読んでいたらしい ○ この頃から好奇心は旺盛だったよう ■ 何か分解しようとしたり... ● 親の仕事の都合か、家にコクヨの総合カタログがあった ○ なぜかこれもよく読んでいた ○ そこにオフィスコンピューターの紹介があって興味が沸いたのを覚えている

Slide 8

Slide 8 text

幼少期 ● そんな中、パーソナルコンピューターという単語が世に現れ出す( 1980年過ぎ ○ 元々はアラン・ケイが提唱した言葉が由来 ○ 日本ではマイコン → パソコンという流れ ● 日本ではPC-6001とかMZ-80などが発売され始める ○ 個人でも手を出せるような状況に近づいてきた(とは言っても高い

Slide 9

Slide 9 text

幼少期 ● そんなとき、地元の大型スーパーにパソコンコーナーができていた(小 4ぐらい ○ 「これが全ての始まりであった 」 ● 触っても良いパソコンがあったので、週 3ぐらいで入り浸る ○ プログラム入門書を買い、家で方眼紙にコーディングして、お店で入力して実行する 日々が始まる ■ 常連になってしまい、店員に「今日はどんなのやりにきたの?」と声かけられるぐ らいになる

Slide 10

Slide 10 text

幼少期 ● さすがに我慢しきれなかったところ、 MSXというホビーパソコンを知る ○ 2万ぐらいで買えたので、お年玉を全額注ぎ込んだ覚えがある ● それからは雑誌のコードを打ち込み、実行し、改造して遊ぶという日々が始まる ○ 仕組みとか挙動の理解には改造が非常に役に立った ○ 主にBASICでZ80アセンブラも勉強したが楽しかった とにかく作って動かし続けることが非常に大事

Slide 11

Slide 11 text

どう生きてきたか 中高時代

Slide 12

Slide 12 text

中高時代 ● あまり変わらずプログラミングとかやってる ● そんなとき X68000 という名機と出会う ○ 「運命を決定づける出会いであった 」 ● そのとき主流だったPC-8801/PC-9801シリーズではないなにか ○ このときCPUアーキテクチャーとメモリ管理について興味を持つ

Slide 13

Slide 13 text

中高時代 ● アセンブラとC/C++をちょっとかじる ○ CPUの挙動、レジスタ、割り込み、I/Oとかの理解が進む ○ パソコンがどう動いているのかを知ることでプログラミングの理解が捗った ● このとき Emacs(μEmacs)に出会う ○ 「自分の手がEmacsに馴染んでしまった 」

Slide 14

Slide 14 text

中高時代 ● X68000界隈の思想にはかなり影響を受けたと思う ○ 「ないものは作る」 ■ ソフトウェアだけではなくハードウェアすらも ○ 「草の根的な活動が活発」 ■ いまでいうところのコミュニティ活動

Slide 15

Slide 15 text

中高時代 ● ハードウェアの詳細が公開されてたりしたので、自分でも理解する手段があった ● 自分で何かをガツガツ作ったわけではないけど、そういう世界にいたことで作るのが当たり前 だと思えるようにはなった 自分が触れているものが どうやって動いているのかを知るのは大事

Slide 16

Slide 16 text

中高時代 ● このまま情報工学への道へ進むと思っていたが転機が訪れる ● 「宇宙は5次元で構成されているという本を読んだ」という話を聞く ○ ちなみに高1の生物の授業での先生の雑談 ● なんだか無性に興味がそそられてしまい、学校帰りに本を買ってしまう ○ 「すべてはあのときの出会いが運命を決定づけた 」

Slide 17

Slide 17 text

どう生きてきたか 青年時代

Slide 18

Slide 18 text

青年時代 ● それ以降はひたすら物理の勉強をしてしまう ○ そして研究者になるしかないと思ってしまう ■ 人生何が起こるかわからない

Slide 19

Slide 19 text

青年時代 ● 一方でプログラミングとか技術は好きだったので情報収集とか研鑽は続ける ● そんななか、一つのミスによって精神的大打撃を受ける ○ 「これは二度と起こしてはいけないミス」 ○ 「仕組みで解決するしかない」と強く思う

Slide 20

Slide 20 text

青年時代 ● いまだったらそういうSaaSとか代替できる仕組みとかあるが、当時はなにもない ○ 「なければ作るしかない 」と決意する ● 自宅サーバでシステム構築開始 ○ ADSL + DynamicDNS + RedHad(7.x) + PHP(3.x) + PostgreSQL(7.x) ■ PCとEZwebで閲覧できるように作った

Slide 21

Slide 21 text

青年時代 ● とにかく急がないといけないので、とにかく作り続けた ○ 機能は試行錯誤とドッグフーディングしつつ作っていった 考えて作るより作ってから考えるほうがよい

Slide 22

Slide 22 text

青年時代 ● なんだかんだで物理で博士号を取る(低温物性の理論) ○ 物理の研究は非常に楽しかった ■ 物理シミュレーションはプログラミング ● C++ / Fortran / Mathematica ■ 仮説検証をひたすら繰り返した ● というかむしろそれが研究だった

Slide 23

Slide 23 text

青年時代 ● だがしかし、人生で博士後期課程のときがいちばん大変な時期だった ○ 割と暗黒時代 ○ ◯◯ハラに近い体験とか、プライベートの激変とか ● それでも最後までやりきろうとは思った ○ 「自分で決意したからにはやりきらないと 」

Slide 24

Slide 24 text

青年時代 ● 大変だったがまだ若かった(20代中盤)ので、乗り切れた感覚はある ○ 体力大事 苦労は買ってでもしろというが、 むしろ若いときしか苦労に耐えられる体力がないから、 若いときに頑張ったほうがよい

Slide 25

Slide 25 text

どう生きてきたか 社会人

Slide 26

Slide 26 text

社会人 ● 一応研究者の道を目指したが断念しました ○ アカデミックポストの倍率は100倍とかそんな感じ ● そんななか「就活か~」と思っていたところに友人から声がかかる ○ その流れで就職して社会人になってしまう ■ 「プログラミングでお金もらえるからいいか」ぐらいの感覚

Slide 27

Slide 27 text

社会人 ● Web制作会社なので要するに受託開発してた ● とにかくいろんなことをやった記憶がある ○ Flash 2.0 とか mod_perl とか IIS + ASP とか ○ キャンペーンサイト作ったり、社内システム作ったり、 ECサイト作ったり ● いろんなことできたので楽しかった

Slide 28

Slide 28 text

社会人 ● が、会社が大きくなるにつれて、マネジメントを求められる ○ 案件マネジメントしかり、メンバーマネジメントも ● そのうち役員になってしまう ○ 最初の社員だったというのもある ● 「これが最初の地獄であった 」

Slide 29

Slide 29 text

社会人 ● 「マネジメントなんて人間のやるもんじゃない」という気付き (?)を得た ○ そうそうに心が折れる ■ 「人間面倒くさい...」 ● これはいかんと転職を決意する → そして東京へ 将来マネージャーになりたいと思う前に いま一度考えることをお勧め

Slide 30

Slide 30 text

どう生きてきたか 中年期

Slide 31

Slide 31 text

中年期 ● 東京に転職したとき、Rails の会社に入った ○ 当時は Rails 1.2.3 + jpmobile という組み合わせ ● そんななかで Rails 2.X が出る ○ しかし 1.2.3 に悪魔合体したライブラリがあって前に進めない ■ よくある話 ● 「やるしかない」

Slide 32

Slide 32 text

中年期 ● 力技でRails 2.2とRails 1.2.3が同時に動くようしようと思う ○ ひたすらコードを読んで修正ポイントを見つけ出してモンキーパッチ ● jpmobile の2.2 対応があまり進んでなかったので、 同じようにパッチを当てる ○ という話を Tokyu.rb(後述) でしたら、開発者と RubyKaigi で会うことになった ■ そしてその場でコミット権をもらって今に至る

Slide 33

Slide 33 text

中年期 ● そんなこんなでエンジニアリングを謳歌していた ○ ただひたすら勉強会に参加する日々 (最大で週3とか行ってた) ○ そうすると知り合いたくさんできる 「また会いましたね」

Slide 34

Slide 34 text

中年期 ● そんななかつくったのが Tokyu.rb ○ RubyKaigi 2008で toRuby の話を聞いた帰りのつくばエクスプレスで ginkouno さんと 「やりましょう」となった(わりと勢い) ● 最初は Seattle.rb 形式でやったが人が集まらない ○ 飲み会やるかみたいな話になって募集したら人が来る

Slide 35

Slide 35 text

中年期 ● そういや勉強会で一番楽しいのは懇親会 ○ 「楽しいことだけやればいいのでは」 (意訳) ● そうすると毎回15人ぐらい集まるようになる ○ だいたい肉を食っていた     \  __  /
      _ (m) _ピコーン
        |ミ|
     /  .`´  \
       ('A`)    <飲み会こそ至高のコンテンツでは!
      ノ( )ヽ
        くく


Slide 36

Slide 36 text

中年期 ● そうこうするうちに Tokyu.rb でRuby会議やりたくなる ○ そしていろいろ揉めた(?)末に伝説の TokyuRuby会議01 が開催される ○ そして明後日15回目の TokyuRuby会議15 が開催される ● 長くやれてこれたなと思うが、秘訣は「がんばらないこと」 ● Ruby会議のスタッフとか見てても燃え尽きてる人が多いように見えた ○ スポンサー集めたり、懇親会の準備したり、ネットワークの準備したり ...

Slide 37

Slide 37 text

中年期 ● 「場を用意するのでみんなで楽しもう」みたいなコンセプトにする ○ TokyuRuby会議も同じコンセプトでやってます 持続性を上げるには省力化がすごく重要     \  __  /
      _ (m) _ピコーン
        |ミ|
     /  .`´  \
       ('A`)    <参加者に準備してもらえばいいのでは!
      ノ( )ヽ
        くく


Slide 38

Slide 38 text

中年期 ● それとは別に勉強会で知り合った人から「本書いてるんですが一緒にやりません」と言われ る ○ 「なんでもやってみる」という精神で「興味あります」と即答する ○ そして書いたのが Gitによるバージョン管理

Slide 39

Slide 39 text

中年期 ● そのあともお誘い受けたものはなんでもやることにした ○ 最近 Ruby技術者認定試験 公式テキスト 出ました カンファレンスとか勉強会とか コミュニティ活動大事、本当に大事

Slide 40

Slide 40 text

どう生きてきたか 壮年期

Slide 41

Slide 41 text

壮年期 ● そうこうするうちに「次のCTO」等と言われるようになる ○ そして退職を決意する ■ マネジメントするのは本当に嫌だった ● そんななか知人に誘われて転職 ○ 「一生現場でコード書いていよう」と思う

Slide 42

Slide 42 text

壮年期 ● ひたすら現場でコードを書いていて楽しい ○ 一方で社内の課題が気になる始める ■ 気になる始めると解決したくなる ○ 見る範囲・見える範囲が変わってきたことが要因かもしれない

Slide 43

Slide 43 text

壮年期 ● そうこうするうちにマネジメント側に踏み出すことに ○ きっかけは「活きが良い若い人」を見たこと ■ 「若い人が頑張れる場所を提供するのも、年配者の仕事」 ● 大人力(?)というのが必要なこともある ○ でも誰もやろうとしないので ■ 「誰もやらないならやるしかない 」

Slide 44

Slide 44 text

壮年期 ● それからはマネジメント主体で生きてきている ○ とは言えやっていることは実は変わっていない ■ 「課題があるからそれを解決している 」だけ ● プログラミングで解決するのか、マネジメントで解決するのか マネジメントは仕組み化 組織づくりはシステム構築

Slide 45

Slide 45 text

どう生きるべきか

Slide 46

Slide 46 text

どう生きるべきか ● 振り返ってみて感じるのは ○ 思った以上に「楽しいと思ったこと 」をやっていたこと ● 楽しいと思わないと長続きしない ○ 物理もマネジメントも「楽しい」と思ってた ○ 「苦行」は長続きしない

Slide 47

Slide 47 text

どう生きるべきか ● でも楽しいだけでは生きていけない? ○ みなさんに考えてほしいのは Ikigai

Slide 48

Slide 48 text

どう生きるべきか ● 以下の4つを意識することが大事 ○ 得意だと思っていること ○ やってて好きなこと ○ 世の中から求められていること ○ 対価を払ってもらえそうなこと

Slide 49

Slide 49 text

どう生きるべきか ● 特に「やってて好きなこと 」が大事 ○ 好きでもないマネジメントをやると辛いだけ(実感値) ○ プログラミングが好きならそれをやり切る方が良い ■ 持続性があることでないとモチベーションが続かない 「好きこそものの上手なれ」はその通り

Slide 50

Slide 50 text

まとめ

Slide 51

Slide 51 text

まとめ 「好きなこと」に注力することが大事、本当に大事 ● 「やり続けることができる」ことに注力していきましょう ○ モチベーション高く続けられることは何かを考えることは大事 ● 「好きなこと」がたくさんあっても問題なし ○ やれるだけやっておけという気持ち

Slide 52

Slide 52 text

みんな楽しく 生きていきましょう