狠狠撸

狠狠撸Share a Scribd company logo
Eiwa System Management, Inc.
Agile Division
Ruby x Agile Group
Koichi ITO (@koic)
2015.12.14 (Mon)
Somewhere in Tokyo
Yamama.rb #0
Agile Software Development
Edge Rubywith
Computer programmer, guitarist.
Leader of an Agile software development team
at Eiwa System Management, Inc.
Lives in Shinjuku.
@koic photo token by @NaCl
Agile Software Development with Edge Ruby
#esm_drinkup #rubykaigi
ESM Drinkup
Sake supervisor @joker1007
Agile Software Development with Edge Ruby
WE ARE HIRING
www.wantedly.com/projects/28670
Agile Software Development with Edge Ruby
Pitch
Ruby 2.3 のリリースが近づいているこの頃、
新たに入る機能の話題を開発メンバーや地域の
Ruby コミュニティに持ち込むと新機能自体の
話題が注目される一方で、どのように情報を集
めているかといった質問を受けることがあり、
その受け答えをベースにした話をまとめてみよ
うと思ったのが今回のテーマのきっかけです。
本日お話しすること
現場
伝統の契約形態での受託開発サービス
Ruby Agile
To
?be
?肠辞苍迟颈苍耻别诲…?
?#1 やる気の上がる道具を
ふだんから使おう
?#2 ソフトウェアは人が人
のために作るもの
アジェンダ
?#1 やる気の上がる道具を
ふだんから使おう
?#2 ソフトウェアは人が人
のために作るもの
アジェンダ
?
?Ruby 2.0
?Ruby 2.1
?Ruby 2.2
?Ruby 2.3-dev
あなたのやる気が上がるのはどれ?
?Ruby 2.0
?Ruby 2.1
?Ruby 2.2
?Ruby 2.3-dev
わたしのやる気が上がるのはこれ!
? 本番環境は長いこと Ruby 2.0
? オンプレによる微妙な不可侵領域
? ちょっと流れが変わってきたけれ
どそれはまた別の機会のお話に
? かといって諦めるにはまだはやい
私のプロジェクト(現実)
? 本番環境、ステージング環境と同じ
RubyのバージョンでCIを えてる
? 本番はLinuxで手元はMac OS X
とそもそもの環境が違う
? native buildとかありますし
Jenkins老という門番
ふだん使っていて
モチベーションの
上がる道具を使う
オレの考え
2.3.0-dev
16.7%
2.3.0-preview1
16.7%
2.2
33.3%
2.0
33.3%
プロジェクトメンバーのRubyバージョン
? 綺麗事だけではないわけですよ
チームでのスレ违い(现実)
チームでのスレ违い(现実)
? 手元では動くわけですよ←不穏
あれ?
$ irb
irb(main):001:0 class C; end
= nil
irb(main):002:0 module M end
= nil
irb(main):003:0 C.include M
= C
某老による裁定(现実)
? 手元だけ動いても仕方ないんですよ
XPでCIは主要プラクティス
$ irb
irb(main):001:0 RUBY_VERSION
= 2.0.0
irb(main):002:0 class C; end
= nil
irb(main):003:0 module M end
= nil
irb(main):004:0 C.include M
NoMethodError: private method `include'
called for C:Class
? そんな気にならない
じゃあ、Ruby 2.0使う?
? フルビルドは30分越え
? フィードバックの速さは重要
? CIという冗長に任せて、手元はフル
ビルドせずスポットのテストのみ流す
? バージョンの違いを意識しておけば問
題があっても解決は速い
スローテスト問題(現実)
問題ない
手元では最新の
Rubyを使おう
オレの結論
ヤル気が最大の生产性らしい
やる気の上がる道具をふだんから使おう
Ruby 2.3
?#1 やる気の上がる道具を
ふだんから使おう
?#2 ソフトウェアは人が人
のために作るもの
アジェンダ
? 基本的に問題なく開発できてる
ruby-headを使っている対象
+----------------------+-------+-------+---------+---------+-----+-------+
| Name | Lines | LOC | Classes | Methods | M/C | LOC/M |
+----------------------+-------+-------+---------+---------+-----+-------+
| Controllers | 3443 | 2656 | 72 | 337 | 4 | 5 |
| Helpers | 297 | 248 | 0 | 34 | 0 | 5 |
| Models | 5550 | 4351 | 97 | 426 | 4 | 8 |
| Mailers | 270 | 212 | 10 | 21 | 2 | 8 |
| Javascripts | 958 | 637 | 13 | 149 | 11 | 2 |
| Libraries | 244 | 195 | 6 | 11 | 1 | 15 |
| Controller specs | 2584 | 2058 | 1 | 10 | 10 | 203 |
| Decorator specs | 348 | 269 | 0 | 0 | 0 | 0 |
| Helper specs | 29 | 20 | 0 | 0 | 0 | 0 |
| Mailer specs | 246 | 196 | 0 | 0 | 0 | 0 |
| Model specs | 12802 | 9832 | 9 | 1 | 0 | 9830 |
| Request specs | 818 | 690 | 0 | 0 | 0 | 0 |
| Staging specs | 163 | 116 | 0 | 3 | 0 | 36 |
| Worker specs | 174 | 132 | 0 | 0 | 0 | 0 |
| Acceptance tests | 2656 | 2116 | 0 | 27 | 0 | 76 |
+----------------------+-------+-------+---------+---------+-----+-------+
| Total | 30582 | 23728 | 208 | 1019 | 4 | 21 |
+----------------------+-------+-------+---------+---------+-----+-------+
Code LOC: 8299 Test LOC: 15429 Code to Test Ratio: 1:1.9
? 基本的に問題がない (すごい!)
? ごく稀に踏むときは踏む
? 動かないと困るので、以前打ち合わ
せと打ち合わせの間にレポートした
? 以前動いていたタイミングに戻す
踏むときは踏む(現実)
Agile Software Development with Edge Ruby
? これでruby-core宛に報告できる
大江戸Ruby会議05での学び
http://www.a-k-r.org/pub/2015-11-08-oedo-rubykaigi-05-akr.pdf
? 自分の報告した結果が気になって
bugs.ruby-lang.orgを見るよ
うになる
? 他のチケットが気になる
? 自分の場合特に Feature チケット
Change My Life
? おれってばスゲー感
コミュニティで発表する題材ができる
http://www.slideshare.net/koic/presentations
? ruby-head で .? 動かないんで
すけど
? try! から .? へ の発表数日後
に、.? が . に変更された
? 発表すると仕様が変わりますね
スライド公開後に仕様が変わることも
https://www.instagram.com/p/-M9l6mRPLR/
? Rubyもソフトウェアであることを
より実感できる
? タイピングしている先に、開発者の
顔が見えるときがある
? この機能、nobuさんのコミット
でみたものだ
Ruby is a Software
圧倒的感谢
ソフトウェアは人が人のために作るもの
Gratitude to
Ruby committers
Christmas
2015
Ruby 2.3

More Related Content

Agile Software Development with Edge Ruby