SIer企業が Ruby で成長する自社 Web サービスをリリースするまでの失敗と成功の道のり
by
Hironori Yokoyama
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Ruby Business Users Conference 2019 SIer企業が Rubyで成⻑するWebサービスを リリースするまでの失敗と成功の道のり 株式会社システムインテグレータ 製品企画室 横⼭ 弘典
Slide 2
Slide 2 text
横⼭ 弘典 (@yokoyantech) (株)システムインテグレータ TOPSIC開発リーダー 著書 やさしいT-SQL⼊⾨ 基礎からわかる PL/SQL コミュニティ Saitama.rb 2歳の息⼦BOT作りたい 2
Slide 3
Slide 3 text
本⽇お伝えしたいこと 3
Slide 4
Slide 4 text
新ビジネスはRailsで。 会社の⽂化も⼈⽣も変わります。 4
Slide 5
Slide 5 text
(株)システムインテグレータ さいたま市 東証⼀部 創業24年⽬ 事業内容 ⾃社パッケージソフト 企画、開発 カスタマイズ WEBサービス 開発、運営 5
Slide 6
Slide 6 text
6
Slide 7
Slide 7 text
7
Slide 8
Slide 8 text
8
Slide 9
Slide 9 text
9
Slide 10
Slide 10 text
AtCoder社による問題作成 国内最⼤の競技プログラミングコンテンストの開催企業 10
Slide 11
Slide 11 text
11
Slide 12
Slide 12 text
12
Slide 13
Slide 13 text
13
Slide 14
Slide 14 text
14
Slide 15
Slide 15 text
15
Slide 16
Slide 16 text
16
Slide 17
Slide 17 text
弊社の主な技術スタック 17
Slide 18
Slide 18 text
18
Slide 19
Slide 19 text
19
Slide 20
Slide 20 text
20
Slide 21
Slide 21 text
21
Slide 22
Slide 22 text
事業部、製品で様々 22
Slide 23
Slide 23 text
Ruby採⽤のきっかけ 23
Slide 24
Slide 24 text
社員の軽い⼀⾔ 24
Slide 25
Slide 25 text
SaaS作るなら Railsでサクッとやったら︖ 25
Slide 26
Slide 26 text
採⽤ 26
Slide 27
Slide 27 text
27
Slide 28
Slide 28 text
Ruby経験者がいない 28
Slide 29
Slide 29 text
社内のRubyエンジニア数 ●⼈/150⼈ 中途採⽤も試みるものの なかなか上⼿くいかず・・・ 29
Slide 30
Slide 30 text
当社のパートナー企業さん Java/C# 新規事業であるため ずっと仕事をお願いすることが難しい (短期間の技術アドバイザーを依頼) 30
Slide 31
Slide 31 text
社内で異動 + 新卒を育成 31
Slide 32
Slide 32 text
Ruby/Railsを学ぶ 32
Slide 33
Slide 33 text
33
Slide 34
Slide 34 text
34
Slide 35
Slide 35 text
35
Slide 36
Slide 36 text
未知の⾔語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
Slide 37
Slide 37 text
未知の⾔語Rubyでびっくりしたこと アクセサメソッドに set_ , get_ と書かないのに違和感 セッターに = がついてる︕︕︕ メソッド呼び出し時に()が省略できる Class User # initializeなどは省略 def name=(val) @name = val end end user = User.new # 変数代入ではなく、name=メソッドの呼び出し!!! user.name = 'yokoyama' 37
Slide 38
Slide 38 text
未知の⾔語Rubyで困ったこと ⾃由 プログラマ的には楽しい 書き⽅が⾊々ある ハッシュとシンボルに慣れなかった # シンボルをキーにしたハッシュ prices = { :apple => 100, :orange => 200 } # Ruby1.9以降 prices = { apple: 100, orange: 200 } 38
Slide 39
Slide 39 text
未知の⾔語Rubyで困ったこと チーム内で⼒量差がある オブジェクト指向の秩序が乱れることも Java的に型で縛りたくなることもある 型宣⾔ interface abstract 安全性は上がるが冗⻑ ダックタイピングを理解する Ruby3に期待︕ 39
Slide 40
Slide 40 text
Ruby/Railsの 最善⼿法がわからない 40
Slide 41
Slide 41 text
はじめてのデプロイ ⼿動×サーバ数 git pull origin master 41
Slide 42
Slide 42 text
世の中を知るために コミュニティに参加 42
Slide 43
Slide 43 text
経験不⾜はツールで補う 43
Slide 44
Slide 44 text
44
Slide 45
Slide 45 text
開発⼿法がSIerあるある 45
Slide 46
Slide 46 text
ウォーターフォール 体制 少⼈数だけど分業 管理する⼈ 設計する⼈ コード書く⼈ コードを全く書かない⼈ がいるのは⾟い テスト ⼈⼒ EXCELテスト仕様書 46
Slide 47
Slide 47 text
⼈⼿が⾜りない 47
Slide 48
Slide 48 text
開発のやり⽅を変えた 48
Slide 49
Slide 49 text
変えたこと チーム全員がコードを書く フルスタック 必要最低限の管理 要件からモノを作る アジャイル開発へ レビューはプルリクで統⼀ アプリ以外もコード化 仕様、ER図、インフラ テストはRSpecへ(挑戦中) 49
Slide 50
Slide 50 text
⾊々変えた結果 継続的なサービス開発が可能に 50
Slide 51
Slide 51 text
柔軟性 & ⽣産性 要件さえあれば作れる 単純なModelの検索画⾯ 1⽇くらいでできる Javaでプロダクトを作って いた頃 検索系の機能 5⽇から10⽇ 更新系の機能 20⽇ぐらい 51
Slide 52
Slide 52 text
⽣産性が⾼い ↓ 作ってて楽しい ↓ 早く帰れる ↓ 52
Slide 53
Slide 53 text
育児できる︕ 幸せ︕ 53
Slide 54
Slide 54 text
TOPSICも 順調に成⻑中 54
Slide 55
Slide 55 text
55
Slide 56
Slide 56 text
56
Slide 57
Slide 57 text
57
Slide 58
Slide 58 text
ありがとうRuby 58
Slide 59
Slide 59 text
本⽇お伝えしたいこと 59
Slide 60
Slide 60 text
新ビジネスはRailsで。 会社の⽂化も⼈⽣も変わります。 60
Slide 61
Slide 61 text
61