SIer企業が Ruby で成長する自社 Web サービスをリリースするまでの失敗と成功の道のり

SIer企業が Ruby で成長する自社 Web サービスをリリースするまでの失敗と成功の道のり

2019-12-13に開催された、Ruby Business Users Conference 2019の発表資料です。

https://rubyassociation.doorkeeper.jp/events/99493

42aecedc4c212563b0f3d72928350b44?s=128

Hironori Yokoyama

December 13, 2019
Tweet

Transcript

  1. Ruby Business Users Conference 2019 SIer企業が Rubyで成⻑するWebサービスを リリースするまでの失敗と成功の道のり 株式会社システムインテグレータ 製品企画室

    横⼭ 弘典
  2. 横⼭ 弘典 (@yokoyantech) (株)システムインテグレータ TOPSIC開発リーダー 著書 やさしいT-SQL⼊⾨ 基礎からわかる PL/SQL コミュニティ

    Saitama.rb 2歳の息⼦BOT作りたい 2
  3. 本⽇お伝えしたいこと 3

  4. 新ビジネスはRailsで。 会社の⽂化も⼈⽣も変わります。 4

  5. (株)システムインテグレータ さいたま市 東証⼀部 創業24年⽬ 事業内容 ⾃社パッケージソフト 企画、開発 カスタマイズ WEBサービス 開発、運営

    5
  6. 6

  7. 7

  8. 8

  9. 9

  10. AtCoder社による問題作成 国内最⼤の競技プログラミングコンテンストの開催企業 10

  11. 11

  12. 12

  13. 13

  14. 14

  15. 15

  16. 16

  17. 弊社の主な技術スタック 17

  18. 18

  19. 19

  20. 20

  21. 21

  22. 事業部、製品で様々 22

  23. Ruby採⽤のきっかけ 23

  24. 社員の軽い⼀⾔ 24

  25. SaaS作るなら Railsでサクッとやったら︖ 25

  26. 採⽤ 26

  27. 27

  28. Ruby経験者がいない 28

  29. 社内のRubyエンジニア数 •⼈/150⼈ 中途採⽤も試みるものの なかなか上⼿くいかず・・・ 29

  30. 当社のパートナー企業さん Java/C# 新規事業であるため ずっと仕事をお願いすることが難しい (短期間の技術アドバイザーを依頼) 30

  31. 社内で異動 + 新卒を育成 31

  32. Ruby/Railsを学ぶ 32

  33. 33

  34. 34

  35. 35

  36. 未知の⾔語Rubyでびっくりしたこと 本当に全部オブジェクト 演算⼦はメソッド呼び出しのシンタックスシュガー︕ instance method Integer#+ irb(main):001:0> 1.class => Integer

    # これは以下のシンタックスシュガー irb(main):002:0> 1 + 2 => 3 # 本来はこう irb(main):003:0> 1.+(2) => 3 36
  37. 未知の⾔語Rubyでびっくりしたこと アクセサメソッドに set_ , get_ と書かないのに違和感 セッターに = がついてる︕︕︕ メソッド呼び出し時に()が省略できる

    Class User # initializeなどは省略 def name=(val) @name = val end end user = User.new # 変数代入ではなく、name=メソッドの呼び出し!!! user.name = 'yokoyama' 37
  38. 未知の⾔語Rubyで困ったこと ⾃由 プログラマ的には楽しい 書き⽅が⾊々ある ハッシュとシンボルに慣れなかった # シンボルをキーにしたハッシュ prices = {

    :apple => 100, :orange => 200 } # Ruby1.9以降 prices = { apple: 100, orange: 200 } 38
  39. 未知の⾔語Rubyで困ったこと チーム内で⼒量差がある オブジェクト指向の秩序が乱れることも Java的に型で縛りたくなることもある 型宣⾔ interface abstract 安全性は上がるが冗⻑ ダックタイピングを理解する Ruby3に期待︕

    39
  40. Ruby/Railsの 最善⼿法がわからない 40

  41. はじめてのデプロイ ⼿動×サーバ数 git pull origin master 41

  42. 世の中を知るために コミュニティに参加 42

  43. 経験不⾜はツールで補う 43

  44. 44

  45. 開発⼿法がSIerあるある 45

  46. ウォーターフォール 体制 少⼈数だけど分業 管理する⼈ 設計する⼈ コード書く⼈ コードを全く書かない⼈ がいるのは⾟い テスト ⼈⼒

    EXCELテスト仕様書 46
  47. ⼈⼿が⾜りない 47

  48. 開発のやり⽅を変えた 48

  49. 変えたこと チーム全員がコードを書く フルスタック 必要最低限の管理 要件からモノを作る アジャイル開発へ レビューはプルリクで統⼀ アプリ以外もコード化 仕様、ER図、インフラ テストはRSpecへ(挑戦中)

    49
  50. ⾊々変えた結果 継続的なサービス開発が可能に 50

  51. 柔軟性 & ⽣産性 要件さえあれば作れる 単純なModelの検索画⾯ 1⽇くらいでできる Javaでプロダクトを作って いた頃 検索系の機能 5⽇から10⽇

    更新系の機能 20⽇ぐらい 51
  52. ⽣産性が⾼い ↓ 作ってて楽しい ↓ 早く帰れる ↓ 52

  53. 育児できる︕ 幸せ︕ 53

  54. TOPSICも 順調に成⻑中 54

  55. 55

  56. 56

  57. 57

  58. ありがとうRuby 58

  59. 本⽇お伝えしたいこと 59

  60. 新ビジネスはRailsで。 会社の⽂化も⼈⽣も変わります。 60

  61. 61