Ruby ecosystem applied to agile project

82
Rubyエコシステムを 活用したアジャイルな 受託開発の成功事例 RubyWorld Conference 2011 (株)永和システムマネジメント 諸橋恭介 @moro

description

slides used in RubyWorld Conference 2011(http://www.rubyworld-conf.org/ja/program/A-7/).

Transcript of Ruby ecosystem applied to agile project

Page 1: Ruby ecosystem applied to agile project

Rubyエコシステムを活用したアジャイルな受託開発の成功事例

RubyWorld Conference 2011(株)永和システムマネジメント 諸橋恭介

@moro

Page 2: Ruby ecosystem applied to agile project
Page 4: Ruby ecosystem applied to agile project

諸橋恭介✓ http://twitter.com/moro

✓ http://github.com/moro✓ (株)永和システムマネジメント✓ Railsコンサルタント&プログラマ

Page 5: Ruby ecosystem applied to agile project

http://amzn.to/rails3recipebook

Page 6: Ruby ecosystem applied to agile project

http://tatsu-zine.com/books/cuke

Page 8: Ruby ecosystem applied to agile project

http://www.joho-shimane.or.jp/docs/2011060300083/

Page 9: Ruby ecosystem applied to agile project

http://www.joho-shimane.or.jp/docs/2011060300083/

Page 10: Ruby ecosystem applied to agile project

http://www.pref.shimane.lg.jp/industry/syoko/sangyo/itsangyo/rubybiz_outcome.html

Page 11: Ruby ecosystem applied to agile project

http://www.pref.shimane.lg.jp/industry/syoko/sangyo/itsangyo/rubybiz_outcome.html

Page 12: Ruby ecosystem applied to agile project

http://flic.kr/p/8E5kRT

Rubyエコシステム

Page 13: Ruby ecosystem applied to agile project

http://www.rubyworld-conf.org/ja/

Page 14: Ruby ecosystem applied to agile project

http://www.rubyworld-conf.org/ja/

今年も、来場した皆様がRubyに関わる様々な情報を得ることができる、そして、「Rubyのエコシステム(生態系)」を理解できる「RubyWorld Conference」を開催いたします。

Page 15: Ruby ecosystem applied to agile project

http://flic.kr/p/8E5kRT

Rubyエコシステム

Page 16: Ruby ecosystem applied to agile project

http://ja.wikipedia.org/wiki/エコシステム

生物群の循環系という元の意味から転化されて、経済的な依存関係や協調関係、または強者を頂点とする新たな成長分野でのピラミッド型の産業構造といった、新規な産業体系を構成しつつある発展途上の分野での企業間の連携関係全体を指して用いられることが多い。

Page 17: Ruby ecosystem applied to agile project

今日お話しすること✓いまのRubyには豊かなエコシステムがある

✓受託開発でも、そのエコシステムを活かすのが大切

Page 18: Ruby ecosystem applied to agile project

今日お話しすること✓いまのRubyには豊かなエコシステムがある

✓受託開発でも、そのエコシステムを活かすのが大切

Page 19: Ruby ecosystem applied to agile project

いまあるRubyのエコシステム

Page 20: Ruby ecosystem applied to agile project

Ruby活用したベンチャー

技術者コミュニティ

ライブラリとフレームワーク

投資効果のあるソフトウェア

Page 21: Ruby ecosystem applied to agile project

✓ Ruby✓ ライブラリとフレームワーク

✓ 各種サービス✓ 開発者コミュニティ

Page 22: Ruby ecosystem applied to agile project

http://ruby-lang.org/

Page 23: Ruby ecosystem applied to agile project

ライブラリとフレームワーク

Page 24: Ruby ecosystem applied to agile project

http://rubyonrails.org/

Page 25: Ruby ecosystem applied to agile project

https://github.com/rspec/

Page 26: Ruby ecosystem applied to agile project

http://relishapp.com/rspec

“RSpec is a Behaviour-Driven Development tool for Ruby programmers. ...

... RSpec helps you do the TDD part of that equation, focusing on the documentation and design aspects of TDD.

Page 27: Ruby ecosystem applied to agile project

http://cukes.info

Page 28: Ruby ecosystem applied to agile project

シナリオ: お問い合わせでメールが来る

もし “トップ”ページを表示している かつ “お問い合わせ・ご相談”リンクを クリックする かつ “メールアドレス”に ”[email protected]”と入力する かつ “お名前(Name)”に”ぼく”と入力する かつ “本文”に”たた、たすけてー”と入力する かつ “送信”ボタンをクリックする ならば “[email protected]”にメールが 送られること

Page 29: Ruby ecosystem applied to agile project

各種サービス

Page 30: Ruby ecosystem applied to agile project

http://heroku.com

Page 31: Ruby ecosystem applied to agile project

✓ 本番と同等の検証環境をすぐ作れる

✓ デプロイも自動化しやすい

Page 32: Ruby ecosystem applied to agile project

http://pivotaltracker.com

Page 33: Ruby ecosystem applied to agile project

✓ お客様と相談し、“要求”を優先順に並べる

✓ 上から順に開発する✓ 進捗が完全に丸見えになる

Page 34: Ruby ecosystem applied to agile project

コミュニティ

Page 35: Ruby ecosystem applied to agile project

http://github.com

Page 36: Ruby ecosystem applied to agile project

http://lumberjaph.net/community/2011/06/20/stargit.html

Page 37: Ruby ecosystem applied to agile project

✓ Social Coding✓ プログラマが自分のコードを公開するSNS

✓ Railsはじめ多くのプロジェクトをホストしている

Page 39: Ruby ecosystem applied to agile project

http://wiki.fdiary.net/rails/?RailsMeetingTokyo

Page 40: Ruby ecosystem applied to agile project

Ruby活用したベンチャー

技術者コミュニティ

ライルぶらりとフレームワーク

投資効果のあるソフトウェア

Page 41: Ruby ecosystem applied to agile project

エコシステムを活かす受託開発

Page 42: Ruby ecosystem applied to agile project

首都圏を中心に理科実験教室を展開されているサイエンス倶楽部様向けの価値創造契約を適用したプロジェクトの開発成功事例(2011年6月に サービスリリース済み )をベースに、お客さまと受託開発ベンダの協業と、Rubyのエコシステムを活用した受託開発のあり方について、テクノロジと開発プロセスの観点からお話しいたします。

Page 43: Ruby ecosystem applied to agile project

http://www.esm.co.jp/trial/new-agile-contracts-service.html

Page 44: Ruby ecosystem applied to agile project

開発Railsと各種gem

要求PivotalTracker

自動化テストRSpec

Cucumber+ CI

ステージングHeroku

リリース

Page 45: Ruby ecosystem applied to agile project

開発Railsと各種gem

要求PivotalTracker

自動化テストRSpec

Cucumber+ CI

ステージングHeroku

リリース

Page 46: Ruby ecosystem applied to agile project

PivotalTracker

✓ 顧客自身が、要求に優先順位をつける

✓ 顧客がつけた優先順位に従えるように開発する

Page 47: Ruby ecosystem applied to agile project

開発Railsと各種gem

要求PivotalTracker

自動化テストRSpec

Cucumber+ CI

ステージングHeroku

リリース

Page 48: Ruby ecosystem applied to agile project

Railsと各種gem

✓RubyとRailsで30+プロジェクトを実施

✓レシピ本を書くくらいにはRails詳しいです

Page 49: Ruby ecosystem applied to agile project

http://pragprog.com/book/rails4/ agile-web-development-with-rails

Page 50: Ruby ecosystem applied to agile project

http://amzn.to/rails3recipebook

Page 51: Ruby ecosystem applied to agile project

Railsと各種gem

✓GitHubで探す✓ 定番のgem

✓ コミュニティで知ったgem

✓システム開発のレバレッジを効かせる

Page 52: Ruby ecosystem applied to agile project

✓ Haml✓ omniauth✓ cancan✓ rails_admin✓ kaminari and more ...

Page 53: Ruby ecosystem applied to agile project

https://github.com/sferik/rails_admin

Page 54: Ruby ecosystem applied to agile project

https://github.com/sferik/rails_admin/pull/689

Page 55: Ruby ecosystem applied to agile project

開発Railsと各種gem

要求PivotalTracker

自動化テストRSpec

Cucumber+ CI

ステージングHeroku

リリース

Page 56: Ruby ecosystem applied to agile project

RSpec/Cucumber

✓単体テストとエンドツーエンドテストを自動化

✓詳細設計と最低限の退行テストとして役立つ

Page 57: Ruby ecosystem applied to agile project

5 years know-how of

RSpec drivenRails app. development

MOROHASHI Kyosuke(@moro)

https://www.slideshare.net/moro/

Page 58: Ruby ecosystem applied to agile project

開発Railsと各種gem

要求PivotalTracker

自動化テストRSpec

Cucumber+ CI

ステージングHeroku

リリース

Page 59: Ruby ecosystem applied to agile project

Heroku✓本番と同等のステージング環境を用意できる

✓ 基本プレイ無料です。

✓CI通過時に自動デプロイ✓ 顧客にすぐ見てもらえる。

Page 60: Ruby ecosystem applied to agile project

開発Railsと各種gem

要求PivotalTracker

自動化テストRSpec

Cucumber+ CI

ステージングHeroku

リリース

IRC

Page 61: Ruby ecosystem applied to agile project

メンバーの相談

PivotalTracker

Jenkinsheroku

http://www.slideshare.net/hsbt/20110714-cookpad-rubyrecipe

Page 62: Ruby ecosystem applied to agile project

https://github.com/esminc/pivotter

Page 63: Ruby ecosystem applied to agile project

CI環境の全体像

http://www.slideshare.net/hsbt/20110714-cookpad-rubyrecipe

Page 64: Ruby ecosystem applied to agile project

開発Railsと各種gem

要求PivotalTracker

自動化テストRSpec

Cucumber+ CI

ステージングHeroku

リリース

コミュニティ

Page 65: Ruby ecosystem applied to agile project

Asakusa.rbRails勉強会@東京

✓ 会場提供/積極的に参加✓ 知っていることを教えると✓ 知らないことを教えてもらえる

Page 66: Ruby ecosystem applied to agile project

エコシステムを活かす受託開発

Page 67: Ruby ecosystem applied to agile project

“Rubyをキメると気持ちイイまつもとゆきひろ - RubyKaigi2008

http://www.slideshare.net/kakutani/making-software-development-agile-with-ruby

Page 68: Ruby ecosystem applied to agile project

�������������������http://www.slideshare.net/kakutani/the-gate-8616906

Page 69: Ruby ecosystem applied to agile project

http://flic.kr/p/8f7vso

Page 70: Ruby ecosystem applied to agile project

http://flic.kr/p/8f7vso

Ruby ?

Page 71: Ruby ecosystem applied to agile project

✓自分たちで使うライブラリを自分たちで選ぶ。バグがあれば自分たちで対応する

✓顧客と対話できる✓ちゃんと自動化テストを書ける

Page 72: Ruby ecosystem applied to agile project

✓ 上流工程で決まった謎のライブラリ(last changed at 2006-08-30)

✓ 取り付く島もなく動かせない仕様

✓ テストを書く隙がない

Page 73: Ruby ecosystem applied to agile project

開発Railsと各種gem

要求PivotalTracker

自動化テストRSpec

Cucumber+ CI

ステージングHeroku

リリース

Page 74: Ruby ecosystem applied to agile project

http://www.esm.co.jp/trial/new-agile-contracts-service.html

Page 75: Ruby ecosystem applied to agile project

Rubyエコシステムを活かせる枠組みのプロジェクトにする

Page 76: Ruby ecosystem applied to agile project

エコシステムを活かす受託開発

Page 77: Ruby ecosystem applied to agile project

自分たち(だけ)でうまくやるから

エコシステムに乗る

Page 78: Ruby ecosystem applied to agile project

今日お話ししたこと✓いまのRubyには豊かなエコシステムがある

✓受託開発でも、そのエコシステムを活かすのが大切

Page 79: Ruby ecosystem applied to agile project

Rubyエコシステムを活かせる枠組みのプロジェクトにする

Page 80: Ruby ecosystem applied to agile project

http://flic.kr/p/8f7vso

and Ruby ecosystem

Page 81: Ruby ecosystem applied to agile project

http://flic.kr/p/8E5kRT

ご清聴ありがとうございました

Page 82: Ruby ecosystem applied to agile project

http://flic.kr/p/8E5kRT

せっかくのRubyエコシステムの

一員になりましょう