紙一重の積み重ね

35歳のエンジニアがなれる最高の自分を目指して、学んだことをこつこつ情報発信するブログです。

【レポート】Rubyビジネスセミナーに参加して、MatzさんやRubyに出会えて幸せだと思った話

f:id:yokoyantech:20190803164309p:plain

はじめに

7月31日に東京で開催された Ruby アソシエーション主催のRuby ビジネスセミナーに参加してきました。セミナーの講演内容はどれも素晴らしく、まつもとゆきひろさん(以下、Matzさん)と直接お話する機会があり、大変有意義な一日でした。

参加した理由と目的

何が何でも、Matzさんのお話を、直接自分の耳で聴きたかったからです。 昨年、サポーターズCoLabさんが主催している、若手エンジニアの生存戦略というイベントがありました。 Qiitaにもまとめられていますね。

qiita.com

現在も不定期で同様のイベントが開催されているようです。

supporterzcolab.com

私は三十歳を過ぎてからRubyと出会い、人生が変わりました。具体的にどう変わったかは、以下の記事にまとめました。

www.yokoyan.net

その後、日本のSIerあるあるだと思いますが、キャリアとして徐々に管理を求めてくる会社と、技術に携わっていたい自分、という問題に現在進行系で悩んでいます。そして子供が生まれ、自分の勉強のためだけに使える時間も激減しているという状況です。

自分の状況を鑑みて、今後どのようなエンジニアを目指していくか、Matzさんの講演を聞いて、今後の自分の生存戦略の参考にしたい と考えました。そして、2018年に サポーターズCoLabに会員登録をして、イベントに申し込みをしようと試みました。

しかし、なんとこのイベントは、20代限定だったのです・・・。 (完全に私の確認ミスです)

聴きたい話があるのに、年齢で除外されるというのは非常に悔しく、ショックがとても大きかったため、2019年の元旦に、Matzさんの講演を聞く、という目標を立てました。

www.yokoyan.net

それからずっと、Matzさんの講演を聞くチャンスがないだろうかと、いろいろ探し続けた結果、 Ruby ビジネスセミナーに参加するに至りました。

基調講演 Rubyの未来

登壇者

まつもとゆきひろ氏

プレゼン資料について

プレゼン資料は、Rabbitで作成されていました。 プレゼンの残り時間を表すウサギとカメが可愛いかったです。

rabbit-shocker.org

私は知らなかったのですが、Rubyist向けのプレゼンテーションツールなんですね。 今後、自分のライトニングトーク資料で使ってみたいと思います。

講演メモ

ハイプ・サイクル

f:id:yokoyantech:20190803164024p:plain

  • ガートナー社が考えたサイクル
  • 技術の受容過程
    • 面白い技術が出てきた時のサイクル
      • 黎明期
        • 過度な期待のピークはここ
        • この技術を使えば何でもできる!!みたいな過大な期待
      • 幻滅期
        • 急激ながっかり感
      • 啓蒙活動期
      • 生産性の安定期
  • 今で言うとAIやRPAが該当すると思う
    • 何でもできる!?
      • もちろんできること・できないことがある

Rubyの場合

  • 1993~95年 隠蔽期
    • ユーザが1人(自分)しかいないw
    • フロッピーで友人に共有w
      • 今は20MBくらいなのでフロッピー入らないw
    • バブル崩壊の恩恵で生まれた
      • SI会社で生産性を上げるために社内システムを作ってた
      • 売上が立たない部門
      • 景気が悪いのに自分たちだけお金を使うわけには行かない
      • 50人くらいのチームも解散・・・。
        • うち、2人だけ残った。
          • 社内システムやツールのメンテナンスチーム
          • うち1人はまつもとさん
        • 48人はお金稼ぐ部署に転属。
      • やることない
        • 新規開発ダメ
        • だいぶ窓際な感じwww
        • 調子が悪いという問い合わせが来ると、再起動してください、という流れ
      • 開発コンピュータは取り上げられなかった
        • 給与泥棒!?
          • メール
          • ニュースサイトチェック
      • 黙ってRuby作ってた
        • 結局その会社はやめた
        • 上司から黙っててやるから(Rubyも外に)持っていけと言われたww
      • 一人開発
        • 95年12月公開
        • プログラミング言語の当たり年
          • PHP
          • Java
          • JavaScript
  • 95-2004年
    • Windows95が出た年
    • 普通の人もPC使うようになった
    • wwwはじまった
    • WEBアプリケーションの登場
      • CGI
        • Perl
        • Python
        • Ruby
          • プログラミング言語への要求がちょうど変わった時期
    • 話題にはなった
      • 知る人ぞ知る
      • Ruby知ってます!使ってないけどw
    • 99年オブジェクト指向スクリプト言語Ruby出版
      • 結構売れた
        • 1万部売れるとベストセラーらしい
        • 1.6万部売れたw
        • 書くのに4年かかった
    • 2000年Programming Ruby(英語)
      • まつもとさん以外の人が英語で執筆
      • 半年で執筆!
    • 2001年 RubyConf
      • 出席者34名
  • 05-2012年
    • Ruby on Rails
    • CGIからフレームワーク使ったほうがいいんじゃない?という時期
    • 世界初のWEBフレームワークというわけではない
    • Strutsなどと見ると「Javaの10倍の生産性」
      • 炎上したw
      • DHHさんはガソリン投下w
    • 各方面から注目
    • 自治体からも支援
      • Rubyアソシエーションへ
  • 13-2017年幻滅期
    • Twitterの移行
      • 最初はRailsだった
      • スケーラビリティ問題
        • DCに借りてるホスト多すぎるので、コスト下げたい
        • Ruby1.8使ってた
          • 1.9以降に移行しようと思えばできたのに・・・
          • Scalaに移行した
    • 大学でのPython普及
      • 卒業してからもPython使ってる人が多い
      • 人工知能・計算科学系
      • RubyはAIには向いていない・・・?
      • Web以外の領域
        • Rubyは死んだ、とか言われる
          • 酷いww

Rubyの特徴/いいところ

  • Rubyは万能ではない
  • Rubyには価値がある
    • 小規模なスタートアップが小中規模のWEBアプリを高速に開発できる
  • Rubyには未来がある
    • 安定的なWebアプリケーション開発
    • 生産性に強み
  • Railsの起源
    • Basecamp/37signals
    • 最初はPHPで書いていた
    • Rubyに移行した
    • 実用アプリケーションからのスピンアウト
  • DRY
    • 無駄なことはしない
    • RailsはDBにアクセスするメンバを直接参照する
    • DBが変化するとプログラムも自動で変化する
  • CoC
    • JavaによるWeb開発からの反動
      • XMLが非常に大きくなる傾向
    • Rails標準に従っている限り、妙な設定はしなくていい
      • だからレール
  • 柔軟性の提供
    • Javaは硬い言語
    • 変更すると再コンパイル必要
  • 言語による柔軟さ
  • デザインパターン
    • 言語に組み込まれている
  • 結果的に、典型的なJavaよりも10倍の生産性
  • Web開発のDSL
    • 早く、安く
    • 小さいチーム
    • コストに直結
    • 人が多くなるほど大変
      • 100人~500人になるとコミュニケーションコストが大きくなる
  • 競争を支援
    • スタートアップを支援
    • ライバルよりも早く提供・早く方向転換
  • 速さと遠さ
    • 速さ:パフォーマンス
      • お金で解決できる問題
        • より早いPC使う
      • お金で解決できない問題
        • 優秀なエンジニアの確保w
      • 世の中失敗プロジェクトの山
        • 公共系は8割失敗
        • ゴールしない
    • 遠さ:適用限界
      • スケーラビリティ
      • スタートは早く、安く
        • 殆どのプロジェクトはそれでOK
          • 1人のユーザが来る前に100万人きたらどうしよう!?
        • Twitterは稀
      • プロジェクトが成功した時
        • ユーザ増加
        • 拡大するチーム規模
        • 増えるコード量
        • 損益分岐点がやってくる可能性
          • ここまで来るとビジネス的には成功
            • Twitter
              • 当初、140文字しか打てないSNSはクレイジーな考えだった
              • しかもライバルもいた
                • みんな死んだ
              • ショートメッセージSNSのあるべき姿を考え続けた
              • 他のテクノロジーに移るのもよし
            • Airbnb
              • 見たこともない人を自分ちに泊める、これもクレイジーw
              • 受け入れられるために色々試行錯誤してる
              • 今もRuby使ってるが、1/3くらいはJava

Rubyの課題

  • ボトルネック
    • メモリ
      • GCの改善
        • いちばん重要な改善
    • CPU
      • マルチコアの活用
      • スレッド・プロセス
      • Guild(仮称)
    • I/O
      • 多重化
      • node.js
      • v8の高速性
      • AutoFiber
  • スケーラビリティボトルネック
    • Traffic
    • パフォーマンス改善
  • 動的さの功罪
    • 柔軟と脆弱のトレードオフ
      • 型チェックしてないとか
        • 静的型解析

Ruby3

  • 2020年12月リリース予定
  • 着実に開発中
  • もっとよいRuby
  • mruby
  • CRubyの限界
    • 互換性
    • 高機能
  • 機能を減らせない
  • APIも変えられない
    • 後方互換性がない変化はできない
  • 高機能プラットフォームを要求
  • 小さいデバイスに乗らない
  • 適用範囲の限界
  • ただひとつのRubyじゃなくても
    • CRuby
    • JRuby
    • mruby
      • 省メモリ
      • 組み込みAPI
      • モジュール化
    • mruby/c
      • 更に小さい
      • 最低ライン16KBあれば動く
      • 中くらいのマイコンで動く
      • QPS人工衛星に採用
      • ToT
        • 酒蔵の気温湿度測る
    • 商用デバイスプロトタイプ
    • ゲーム
    • Webサーバ制御
    • Shopify
      • 楽天の海外版
        • 自分でプログラム書ける
        • Rubyでカスタマイズできる
    • ホビープログラミング
    • どこでもRuby!!

Rubyの未来

  • Rubyは死んでないよ
  • 最後に立っているやつが勝つ!
    • 立ち続ける困難さ
  • 流行り廃りに負けない
  • 価値を提供し続ける
    • 過去25年
    • これからも
  • 時代の移り変わりに敏感に
  • いつもそこにいるRuby
  • 少しづつ良くなっている
  • 居心地がいい場所
  • それがRubyの未来

フードロス問題の現状と食の未来

f:id:yokoyantech:20190803164056p:plain

登壇者

株式会社コークッキング 川越一磨氏

講演内容

TABETEの紹介

  • 非エンジニアで恐縮w
    • 飲食店の経験からコークッキングCEOへ
    • アイヌの食文化を守る活動など
  • TABETEというサービスやってる
    • Rubyベース
    • 昨年グランプリ取った
    • 廃棄の危機にある食事をレスキューできるフードシェアリングサービス
  • サービスの流れ
    • ロス危機の発生
    • TABETEに掲載
    • 「食べ手」の登場
    • お店で引き渡し
  • みんながハッピーになる社会派のサービス
    • お店よし
    • 食べ手よし
    • 地球によし
  • スキーム
    • 食事情報掲載250円~680円
    • 手数料150円
  • 実績
    • 登録者数約15万人
    • 登録店舗400店舗
    • 金沢市でも実験中
      • 車社会でもマッチング率100%

Q1:食料廃棄って?

  • 食品由来の廃棄物全般
  • 年間2842万トン
    • 油など可食部じゃないところ含む
  • 一般家庭
    • 832万トン
  • 法人
    • 約2000万トン
  • フードロス
  • 捨てられる食べ物のうち、問題なく安全に食べられるもの
  • 日本のフードロスは年間643万トン
    • 一般家庭:282万トン
    • 法人:339万トン

Q2:何が問題なの?

  • 実は深刻な問題
  • 日本のフードロス
    • 全世界の食糧援助料の約2倍!!
  • 日本の食料自給率は38%
    • なのに輸入しては捨ててという矛盾
    • 輸入できなくなった時、輸入に依存してるのは持続可能性あるのか?
    • これから途上国がどんどん発展する
      • 食料需要が高まる
      • このまま捨て続けると、いつか満足に食べられない国になるかも
  • 問題の深刻さを実感して自分ごとに捉えるのが難しい
    • 地球温暖化問題とかと似てる
  • 経済規模
    • 経済損失額1兆9000億円
      • 食べ残しだけ
    • 中食・外食
      • フードロス市場規模
        • 約3000億円

Q3:

  • 生産から流通まで、様々なところで廃棄ロスがある
  • 中食・外食でのロス
    • 予約のドタキャン
    • 異常気象
      • ゲリラ豪雨など
    • 食べ放題
    • 食材の端材
    • ディスプレイ
      • 見せてないと売れない
      • デパ地下など
        • ロス前提での売価
    • 持ち帰り不可
    • 発注ミス
    • 試作品
  • 梱包の不具合・輸送トラブル
    • 箱が凹んでる
    • 中身には問題ない
  • 農場の規格外野菜
    • よりきれいなものを選んで買う傾向
    • 形が悪い野菜はそもそも収穫されない
    • 排気量の計算に含まれてない
  • 賞味期限
    • 賞味期限と消費期限の違い
  • 季節モノ
    • クリスマスケーキ、恵方巻など
      • ニュースなのに毎年同じことが流れる
      • 誰も解決しようとしない
  • 知識不足や怠慢による家庭でのロス
    • 料理する人が減ってる
    • 匂いも嗅がずに捨てる
    • 捨てたほうが楽
    • 捨てても家計にさほど響かない
  • まとめ
    • 食のサプライチェーンが長すぎる
    • すべての段階でロスが生まれる

Q4.解決策は?

  • ◯◯は食料廃棄してるから反対運動を起こそう、は見当違い
    • 必要な協力関係を対立関係にしてしまう
    • 特効薬的な解決策は難しい
      • これをやったら減ります!はない
      • 地道にやってく
  • エネルギー効率
    • バイオマスの5F
      • 食料はなるべく食料の状態で食べるのが効率的
  • フードロスは食べ手の存在によって廃棄のレスキューが可能!
  • ツール
    • TABETE
    • 海外
      • Too Good To Go
        • デンマーク発
        • B2Cフードロスアプリの先駆者
      • ResQ Club
        • フィンランド発
      • Karma
      • OLIO
        • ご近所同志で食のC2C
          • おすそ分け
      • 米国
        • goMkt
        • foodforall
        • Buffet Go
      • スーパー
        • NoFoodWasted
          • 価格変動型
          • 新しいのは高い
          • 古いのは安い
          • オランダ
        • FoodLoop
        • flashfood
      • INSTOCK
      • OZ HARVEST Market
      • こども食堂
        • 貧困家庭に無償か廉価で食事提供

まとめ

  • しくみづくり、ムーブメントづくり
  • 一人ひとりの食や消費への意識。視点・選択肢を増やすことがTABETEの根底
  • 納得感を持って食べる事が重要
    • 正しく食べるってけっこう大変
      • 人は一生のうち9万回しか食事しない
      • もっと一食を丁寧に
    • 何を食べるか考えて選択する

CTOよりメッセージ

  • RubyはPDCAサイクルを最速で回せる!
  • 今後もRubyを使って社会課題を解決するサービスを構築していく!

Rubyエンジニアの転職市場における変化と求められるエンジニア像について

f:id:yokoyantech:20190803164130p:plain

登壇者

  • 株式会社リブセンス 星野 里季氏
    • 転職ドラフト事業責任者
    • 元ホテルマン

講演内容

転職ドラフトについて

  • エンジニアに特化したダイレクトリクルーティングサービス
  • スカウト時に年収を提示
  • 最終面接まで行かないと年収が提示されない
    • オープンにしていく!
  • スカウトメールには必ず具体的な年収額を提示
  • リリースして3年
    • 350社

Rubyエンジニアを取り巻く環境

  • Rubyを導入している企業94社/350社中
    • 小規模~中規模のスタートアップはRuby
    • 2位はJava
  • 2016年くらいまでに設立された企業の約40%はRuby
  • 直近はアプリやデータ解析などWEBサービス以外の創業が多い
    • 近年ダウントレンド
  • スカウトされた人の言語傾向
    • Rubyは継続して利用率高い(30%以上)
    • PHPは下降傾向

転職市場におけるRubyエンジニアの市場価値

  • 職種別求人倍率(dodaより2019年6月)
    • 全体は2.5倍
    • エンジニア系は8倍!!
      • 業種別トップ
  • 言語別スカウト数
    • 1位JavaScript
    • 2位Java
    • 3位PHP
    • 4位Ruby
    • 6位Python
  • 年収推移
    • 平均指名額657万円
    • Rubyは634万円
    • Scalaは678万円で最高
  • 年齢別
    • 30代後半のシニア平均753万円
    • 20代前半でも常に550万円 f:id:yokoyantech:20190803164151p:plain

評価されるRubyエンジニアとは

  • 1000万円以上のスカウトの全体感
    • Ruby利用者が45%
      • Rubyの経験を持っている
      • Rubyだけバリバリ使ってる、というわけではない(他言語経験もある)
  • 特徴
    • OSSのコミッターが56%
    • 1000万円以下だと19%
    • Github,Qiita,Speakerdeckなど使ってる
      • 外部発信
  • 企業の声
    • T字型の人材(開発力だけでなく周辺スキルを成長させる)
      • 英語
      • 技術選定
      • 個人開発
      • チームビルディング
      • 採用広報
      • マネジメント

QA

  • 転職ドラフトの審査って何をやってるのか?
    • リブセンスの現役エンジニアが職務経歴書を確認
    • 基準は定性的
      • 独り立ちしているか
      • サポートなくエンジニアできるか
    • どこを見てるのか
      • 職務経歴書に厚く書いてもらうようにしている
      • どの言語でどういう役割でどういう課題感を持ってやってたのか、など
      • キャラクター部分がわかるようになってる
        • チーム開発が好きなのか、など
      • 外部発信してるか
        • 発信の精度がどれくらいかも見てる
    • 将来的にはレジュメ以外の要素で評価するという構想もあるが、今はテキストベース

懇親会

お酒と軽食がある立食パーティー形式の懇親会でした。食事がとても美味しかったです。またRubyを使って仕事をしている方、これから起業しようと考えている方など、様々な業種業界の方の話を聞くことができて非常に勉強になりました。

f:id:yokoyantech:20190803164216p:plain

そして、懇親会ではなんと、Matzさんと2人でお話しすることができました。ものすごく緊張しましたが、勇気を出して話しかけてよかったです。実際のMatzさんは、非常に穏やかで優しい方でした。初対面なのに一緒に写真まで取っていただいて恐縮です。 本当に嬉しいです!

f:id:yokoyantech:20190803164232p:plain

Matzさんとお話したこと

  • 会社で勉強するのが理想
    • 会社や上司の理解も必要
    • そのために自分の生産性上げる
    • 自分の仕事を早く終わらせて、好きなことを勉強する
      • あまりにも早く終わらせると、次の仕事が来るので注意が必要w
  • 子供がかわいい時期は子供といる
    • 今しかない。貴重。
    • Matzさんは子供が小さいときは家にPCがなかった
      • 家では紙とノートで考える、くらいでもいいかも
  • 技術か管理か
    • 選択肢は色々考えられる
      • エンジニアの気持ちに寄り添えるマネージャになるか
      • プレイングマネージャになるか
        • 50:50だとキツい
      • プレイヤーで在り続けるか
    • いっそ技術か管理かどっちかに振り切る
      • Matzさんは管理は早々に切った
        • チームリーダーをやってみて、向いてないと感じた
          • みんなに進捗聞いても「順調です!」しか言わないw
          • でも直前になって「やっぱりできてません!」みたいな事になったw
      • 切ったはずなんだけど、結果的に、Rubyアソシエーションの理事とかやってるw
    • 人と関わる以上、管理は何かしらするかも
      • 1人だけで仕事をする、という機会はほぼない
    • マネージャになっても、勉強でコードを書くとかはできる

感想

今回一人で参加しましたが、Rubyビジネスセミナーは楽しかったです! 非常に有意義な時間を過ごすことができました。MatzさんのRubyの未来に関する基調講演はもちろん、コークッキングさんのフードロスをなくす!という世界的な社会問題をRubyを使って解決するという姿勢に非常に感銘を受けました。私も、身の回りの課題をRubyで解決するエンジニアでありたい、と改めて思いました。思わず手帳にメモりました。

また、リブセンスさんの Ruby エンジニアの平均年収は634万円、というお話を聞いて、今の自分の待遇に少々疑問を感じました(笑)これからもAWSを軸に、RailsとRubyが使えるT字型のエンジニアを目指します。

今回、Matzさんの講演を聴きにきたわけですが、まさかご本人と直接お話することができるとは夢にも思っていませんでした。人生、願いに向かって行動し続ければ、叶うのだなと学びました。 Rubyに出会えて幸せです。

Matzさんとお話して、技術なのか管理なのか、どちらを軸にキャリアを重ねていくのか、という自分の問題については、おぼろげながら自分なりの答えが見えてきました。今後、Rubyで自社 Web サービスを創り、チームでビジネスをしていくためには、どちらも必要な要素なのだろうと思うようになりました。また、家族との時間を最優先にするという今の自分の方針は間違っていなさそうです。

Rubyは死んでないし、未来がある言語です。何より、Rubyは書いていて楽しい言語だと思っています。Matzさんに恩返しするべく、Rubyで 世の中の課題を解決するサービスやプロダクトを作り続けていきたいと思います。

まとめ

ということで、今回は2019年7月31日に開催された Ruby ビジネスセミナーの振り返りを行いました。今後もRuby アソシエーション主催のイベントに参加したいと思います。長文のレポートを最後まで読んでいただき、ありがとうございました!