184
角谷信太郎 (株)永和システムマネジメント / 日本Rubyの会 15-D-1 実践『From Java to Ruby』 ~血があつい鉄道ならば/走りぬけてゆく 汽車はいつかは心臓を通るだろう~

From Java To Ruby In Action Internal Edit

Embed Size (px)

Citation preview

Page 1: From Java To Ruby In Action Internal Edit

角谷信太郎(株)永和システムマネジメント /日本Rubyの会

15-D-1

実践『From Java to Ruby』~血があつい鉄道ならば/走りぬけてゆく 汽車はいつかは心臓を通るだろう~

Page 2: From Java To Ruby In Action Internal Edit

実践『JavaからRubyへ』~血があつい鉄道ならば/走りぬけてゆく 汽車はいつかは心臓を通るだろう~

(株)永和システムマネジメント/日本Rubyの会

角谷 信太郎[email protected]

Internal Edit.

2007-2-21(Wed.)

Page 3: From Java To Ruby In Action Internal Edit

雲と雲の間を突き抜けて誰も見た ことの ない場所へ夢の中で描いていた場所へありふれた スピードを超えて

もうすぐ 変わるよ 世界がもうすぐ 僕らの 何かが 変わるよ

ーー「コンピュータシティ」Perfume

Page 4: From Java To Ruby In Action Internal Edit

謝辞岩切さん、雨宮さん、高さん、諸橋さん、伊藤コウイチさん、河村さん、橋本さん、高井さん、木下さん、家永さん、山口さん、中西さん、西村さん、齋藤さん、梶田さん、近藤さん

そして: Ruby開発チームのみなさん、 まつもとゆきひろさん

Page 5: From Java To Ruby In Action Internal Edit

自己紹介•角谷 信太郎 (かくたに しんたろう)• (株)永和システムマネジメント•オブジェクト倶楽部•日本Rubyの会 理事•テスト駆動開発者•ときどきプレゼン•たまに執筆•http://kakutani.com/

Page 6: From Java To Ruby In Action Internal Edit

約1年間の執筆先

Page 7: From Java To Ruby In Action Internal Edit

ポジションペーパー•“立場表明書”•「今日の自分の立場」を A4一枚の紙に•『LifeHacks PRESS』で紹介 :-)

Page 8: From Java To Ruby In Action Internal Edit

今日の講演は全編ポジション

トーク

Page 9: From Java To Ruby In Action Internal Edit

本日お話しすること•翻訳書籍と弊社の宣伝•RubyのSI組織への導入:•作戦と注意点:•現在進行形の実践経験ベース

•Rubyがもたらす(かもしれない)変化•質疑応答やってみたい!

Page 10: From Java To Ruby In Action Internal Edit

本日お話ししないこと•Web2.0•Enterprise

デベロッパーがビジネスを刺激するー時代はWeb2.0 + Enterprise にー

Page 11: From Java To Ruby In Action Internal Edit

もくじ1.ビジネスの未来とRuby• Open Classes, Open Companies

2.なぜ、私にはRubyなのか?• strange_love.rb3.『JavaからRubyへ』

Page 12: From Java To Ruby In Action Internal Edit

補助線

Page 13: From Java To Ruby In Action Internal Edit

•5つの世界•主な登場人物•話題の比重

補助線

Page 14: From Java To Ruby In Action Internal Edit

5つの世界

Page 15: From Java To Ruby In Action Internal Edit

Joel on Software

Page 16: From Java To Ruby In Action Internal Edit

オーム社

Page 17: From Java To Ruby In Action Internal Edit

“5つの世界”•パッケージ•インターナル•組み込み•ゲーム•使い捨て

Page 18: From Java To Ruby In Action Internal Edit

“5つの世界”•パッケージ•インターナル•組み込み•ゲーム•使い捨て

Page 19: From Java To Ruby In Action Internal Edit

主な登場人物

Page 20: From Java To Ruby In Action Internal Edit

組織

Ruby私

Java

Page 21: From Java To Ruby In Action Internal Edit

主な登場人物•私: あとで話す•Java : あとで話す•Ruby: あとで話す•組織

Page 22: From Java To Ruby In Action Internal Edit
Page 23: From Java To Ruby In Action Internal Edit

(株)永和システムマネジメント• 福井本社 (1980年~:27期)

• 金融,、医療、パッケージ、”オープン系”

• 東京支社 (2002年~)

• オブジェクト指向、UML、Java、アジャイル開発

• 資本金: 6,168万円 (2006年7月)

• 従業員: 210名 (2006年7月)

• 年商: 24億円 (2006年7月)

• 関連会社:

• (株)チェンジビジョン

• (株)アフレル

Page 24: From Java To Ruby In Action Internal Edit
Page 25: From Java To Ruby In Action Internal Edit

もくじ1.ビジネスの未来とRuby• Open Classes, Open Companies

2.なぜ、私にはRubyなのか?• strange_love.rb3.『JavaからRubyへ』

Page 26: From Java To Ruby In Action Internal Edit

まとめ

Page 27: From Java To Ruby In Action Internal Edit

まとめ•Rubyとビジネスは相性抜群

•5つの根拠と私(たち)の未来

•自分の仕事に自信と誇り、そして希望を•ソフトウェアは人がつくる

•Rubyは:•プログラマを信頼する言語

•プログラミングを楽しくする言語

•Rubyの組織への導入は協調ゲーム

Page 28: From Java To Ruby In Action Internal Edit

第1部

Page 29: From Java To Ruby In Action Internal Edit

ビジネスの未来とRuby

Page 30: From Java To Ruby In Action Internal Edit
Page 31: From Java To Ruby In Action Internal Edit

Open Classes,Open Companies

by Nathaniel Talbott

Page 33: From Java To Ruby In Action Internal Edit

Open Classes,Open Companies

✓ 動的 (Dynamic)✓ インタプリタ (Interpreted)✓ 簡潔さ (Succinct)✓ リフレクション (Reflection)✓ オープンクラス (Open Class)

Page 34: From Java To Ruby In Action Internal Edit

動的

「汚れているのは世界そのものであって、 汚れた世界では動的な言語が必要なのだ」 essa (2003-11-20)

http://amrita.s14.xrea.com/d/?date=20031120#p01

Page 35: From Java To Ruby In Action Internal Edit

動的✓ 世界は動的だ✓ 肩書に拘泥するな✓ Duck Typing!✓ “クライアント”からの “メッセージ”に応答せよ

Page 36: From Java To Ruby In Action Internal Edit

インタプリタ✓ 柔軟性✓ ”ランタイム”に決定する✓ ギリギリまで決定しない✓ Last Responsible Moment

Page 37: From Java To Ruby In Action Internal Edit

簡潔さ✓「簡潔さは力」✓ Paul Grahamも言ってたよ

✓ 処理の本質だけを捉える✓ puts “Hello World”

✓ 書きやすさ <<<< 読みやすさ

Page 38: From Java To Ruby In Action Internal Edit

リフレクション✓ 言語にビルトイン✓ 自分の行動が自分を変える✓ “ふりかえり”

Page 39: From Java To Ruby In Action Internal Edit

オープンクラス✓ あらゆるクラスを改変可能✓ オープンで密な コミュニケーション✓ チームのメンバを信頼する✓ Rubyが信頼してくれている

Page 40: From Java To Ruby In Action Internal Edit

Open Classes,Open Companies

✓ 動的 (Dynamic)✓ インタプリタ (Interpreted)✓ 簡潔さ (Succinct)✓ リフレクション (Reflection)✓ オープンクラス (Open Class)

Page 41: From Java To Ruby In Action Internal Edit

第1部まとめ•Rubyは、言語自身が、21世紀のビジネスパーソンの備えるべき特徴を提供している。•Rubyとビジネスは相性抜群•Open Class!•コミュニケーションと信頼

Page 42: From Java To Ruby In Action Internal Edit

第2部

Page 43: From Java To Ruby In Action Internal Edit

なぜ、私にはRubyなのか?

Page 44: From Java To Ruby In Action Internal Edit

strange_love.rb or: How I Learned to Stop

Worrying and Love the Ruby

プログラマの異常な愛情 または私は如何にして心配するのを 止めてRubyを愛するようになったか

Page 45: From Java To Ruby In Action Internal Edit

自分の仕事を憎むには人生はあまりにも短い

ジョエル・スポルスキ

Page 46: From Java To Ruby In Action Internal Edit

Joel on Software

Page 47: From Java To Ruby In Action Internal Edit

オーム社

Page 48: From Java To Ruby In Action Internal Edit

月を指さす話It is like a finger pointing a way to the moon.

Page 49: From Java To Ruby In Action Internal Edit
Page 50: From Java To Ruby In Action Internal Edit

Don't concentrate on the finger or you will miss all that heavenly glory

指先に集中するな

Page 51: From Java To Ruby In Action Internal Edit

Heavenly Gloryすばらしき栄光

Page 52: From Java To Ruby In Action Internal Edit

私には夢があるI have a dream...

Page 53: From Java To Ruby In Action Internal Edit

✓ 動作する✓ ソフトウェアを✓ 提供✓ し続けること

Page 54: From Java To Ruby In Action Internal Edit

私には夢があるI have a dream...

Page 55: From Java To Ruby In Action Internal Edit

✓ 自分だけではできないことを チームでなしとげたい✓ チームの成果が 誰かの役に立って欲しい✓ 自分のなしとげたことに対して 適切な報酬を受けたい

Page 56: From Java To Ruby In Action Internal Edit

私には夢があるI have a dream...

Page 57: From Java To Ruby In Action Internal Edit

✓ 顧客、✓ 上司、✓ チーム、✓ そして、家族✓ これらの間で ANDを取りたい

Page 58: From Java To Ruby In Action Internal Edit

フォースに調和を

“Bringing balance to the force”

Page 59: From Java To Ruby In Action Internal Edit

I have a dream...•自分の仕事を憎むには人生はあまりにも短い•自分の仕事に自信と誇り、 そして希望を•フォースに調和を!

Page 60: From Java To Ruby In Action Internal Edit

Page 61: From Java To Ruby In Action Internal Edit

二本指

Page 62: From Java To Ruby In Action Internal Edit

✓ eXtreme Programming✓ Ruby

二本指

Page 63: From Java To Ruby In Action Internal Edit
Page 64: From Java To Ruby In Action Internal Edit

eXtremeProgramming

Page 65: From Java To Ruby In Action Internal Edit

P is for Programming

•ビジネスの制約を踏まえて、•製品をリリースするための、•プログラミングの作戦

Page 66: From Java To Ruby In Action Internal Edit

I am Programmer and proud

Page 67: From Java To Ruby In Action Internal Edit

•フツウのプログラマが、•チームで勝つ。•全体でひとつのチーム•顧客 AND プログラマ

P is for Programmer

Page 68: From Java To Ruby In Action Internal Edit

X is for eXtreme•これに従えばうまくいくプロセス、•……なんて無いよ、•というプロセス。•誰でも/今日から/一人でも•持続可能性

Page 69: From Java To Ruby In Action Internal Edit

“指”としてのXP•全体でひとつのチーム•フィードバックによる学習•継続的な改善•チームを信頼する•チームに信頼される

Page 70: From Java To Ruby In Action Internal Edit

Ruby

Page 71: From Java To Ruby In Action Internal Edit

前提

Page 72: From Java To Ruby In Action Internal Edit

プログラマはプログラミング

が好き

Page 73: From Java To Ruby In Action Internal Edit

I am Programmer and proud

Page 74: From Java To Ruby In Action Internal Edit

Ruby✓ プログラマを信頼✓ プログラミングの楽しさ✓ 学習

Page 75: From Java To Ruby In Action Internal Edit

プログラマを信頼•良いコードを書きたいはず•グローバル変数は $gloval•ゆるい構造•オープンクラス•学習

•ソースがドキュ(ry

Page 76: From Java To Ruby In Action Internal Edit

プログラミングの楽しさ• (1 + 1).should eql(2)•簡単なことは簡単に、 難しいことはそれなりに•「期待」通りに動く•“Babel-17”言語

Page 77: From Java To Ruby In Action Internal Edit

えもいわれぬ楽しさ

Page 78: From Java To Ruby In Action Internal Edit

No one can be told...

Page 79: From Java To Ruby In Action Internal Edit

And there's business value in fun - after all motivation is a major factor in programmer productivity.

- Martin Fowlerそして、楽しさにはビジネス価値があります

-- 結局、モチベーションこそがプログラマの生

産性を左右するのです。

-- マーチン・ファウラー

Page 80: From Java To Ruby In Action Internal Edit

学習•良いコードを書きたいはず•初心者には優しく、 熟練者には頼もしい

Page 81: From Java To Ruby In Action Internal Edit

コーディング時間

難易度

メタプログラミング

手続型OOP/(関数型)

ドメイン特化言語

Page 82: From Java To Ruby In Action Internal Edit

月を! 二本指で!•チームを信頼する•チームに信頼される•フィードバックによる学習•継続的な改善•持続可能性•楽しさ

Page 83: From Java To Ruby In Action Internal Edit

今こそ時だNow is the time.

Page 84: From Java To Ruby In Action Internal Edit

RailsRuby on

Page 85: From Java To Ruby In Action Internal Edit

大流行

Page 86: From Java To Ruby In Action Internal Edit

今こそ時だNow is the time.

Page 87: From Java To Ruby In Action Internal Edit

If I were a Hacker...

テキスト

Page 88: From Java To Ruby In Action Internal Edit

ハッカーと画家

Page 89: From Java To Ruby In Action Internal Edit

オーム社

Page 90: From Java To Ruby In Action Internal Edit

I am Programmer and proud

Page 91: From Java To Ruby In Action Internal Edit
Page 92: From Java To Ruby In Action Internal Edit

第2部まとめ•自分の仕事に自信と誇り、そして希望を

•ソフトウェアは人がつくる

•Rubyは:•プログラマを信頼する言語

•プログラミングを楽しくする言語

•私はハッカーではなく、フツウのプログラマ。チームで勝ちたい

Page 93: From Java To Ruby In Action Internal Edit

第3部

Page 94: From Java To Ruby In Action Internal Edit

JavaからRubyへFrom Java to Ruby

Page 95: From Java To Ruby In Action Internal Edit

“From Java to Ruby”Things Every Manager

Should Know

Bruce A. Tate 著

Page 96: From Java To Ruby In Action Internal Edit

『JavaからRubyへ』マネージャのための

実践移行ガイド

Bruce A. Tate 著角谷信太郎 訳オライリー・ジャパン 発行2007年春 発売予定

Page 97: From Java To Ruby In Action Internal Edit

組織にRubyを導入する

作戦

Page 98: From Java To Ruby In Action Internal Edit

Ruby導入決断

チャート

Page 99: From Java To Ruby In Action Internal Edit

主に3つの段階から構成

Page 100: From Java To Ruby In Action Internal Edit

限定的な展開Limited Deploy

情報収集Gather Information

広範な展開Broad Deploy

Page 101: From Java To Ruby In Action Internal Edit

限定的な展開Limited Deploy

情報収集Gather Information

広範な展開Broad Deploy

各段階に2つのサブステップ

Page 102: From Java To Ruby In Action Internal Edit

限定的な展開Limited Deploy

情報収集Gather Information

広範な展開Broad Deploy

パイロット実施Build Pilot

限定的な展開Limited Deploy

統合Integrate

普及Ramp Up

“苦痛”の確認Validate Pain

評価の確立Establish Rewards

Page 103: From Java To Ruby In Action Internal Edit

限定的な展開Limited Deploy

情報収集Gather Information

広範な展開Broad Deploy

パイロット実施Build Pilot

限定的な展開Limited Deploy

統合Integrate

普及Ramp Up

“苦痛”の確認Validate Pain

評価の確立Establish Rewardsサブステップ

単位で続行を判断

Page 104: From Java To Ruby In Action Internal Edit

限定的な展開Limited Deploy

情報収集Gather Information

広範な展開Broad Deploy

パイロット実施Build Pilot

限定的な展開Limited Deploy

統合Integrate

普及Ramp Up

Stop!

Stop!

Stop!

Stop!

“苦痛”の確認Validate Pain

評価の確立Establish Rewards

Stop!Stop!

Page 105: From Java To Ruby In Action Internal Edit

『JavaからRubyへ』マネージャのための

実践移行ガイド

Bruce A. Tate 著角谷信太郎 訳オライリー・ジャパン 発行2007年春 発売予定

Page 106: From Java To Ruby In Action Internal Edit

弊社の現状

(2006年8月頃~)

Page 107: From Java To Ruby In Action Internal Edit

情報収集Gather Information

広範な展開Broad Deploy

“苦痛”の確認Validate Pain

Stop!

評価の確立Establish Rewards

限定的な展開Limited Deploy

限定的な稼動Limited Deploy

統合Integrate

普及Ramp Up

Stop! Stop!

いまここ

Stop!

パイロット実施Build Pilot

Stop! Stop!

限定的な展開Limited Deploy

Page 108: From Java To Ruby In Action Internal Edit

Ruby導入の心構え✓ 協調ゲーム✓ “忠誠心”に頼るな✓ 人は自分の速度でしか 変われない

Page 109: From Java To Ruby In Action Internal Edit

協調ゲーム•ゼロサムゲームではない•上司との「交渉」ではない•問題 VS. 私たち•私たちにとってのメリット

Page 110: From Java To Ruby In Action Internal Edit

忠誠心に頼るな•上から押しつけない•人は新しいことを学べる•人は新しいことを学びたい•もう良い大人なんだし……

Page 111: From Java To Ruby In Action Internal Edit

人は自分の速度でしか変われない (by Kent Beck)•Don’t Panic!•相手が変わったときに、 力になれるように•同志を増やす•ボトムアップ

Page 112: From Java To Ruby In Action Internal Edit

Ruby導入の心構え✓ 協調ゲーム✓ “忠誠心”に頼るな✓ 人は自分の速度でしか 変われない

Page 113: From Java To Ruby In Action Internal Edit

限定的な展開Limited Deploy

情報収集Gather Information

広範な展開Broad Deploy

パイロット実施Build Pilot

限定的な展開Limited Deploy

統合Integrate

普及Ramp Up

Stop!

Stop!

Stop!

Stop!

“苦痛”の確認Validate Pain

評価の確立Establish Rewards

Stop!Stop!

Page 114: From Java To Ruby In Action Internal Edit

情報収集✓ 「苦痛」の確認• 問題のほんとうの原因は何?

✓ 評価の確立• Rubyで大丈夫かな?

Page 115: From Java To Ruby In Action Internal Edit

“苦痛”の確認Validate Pain

Page 116: From Java To Ruby In Action Internal Edit

限定的な展開Limited Deploy

情報収集Gather Information

広範な展開Broad Deploy

パイロット実施Build Pilot

限定的な展開Limited Deploy

統合Integrate

普及Ramp Up

Stop!

Stop!

Stop!

Stop!

“苦痛”の確認Validate Pain

評価の確立Establish Rewards

Stop!Stop!

Page 117: From Java To Ruby In Action Internal Edit

ソフトウェアは人がつくる

Page 118: From Java To Ruby In Action Internal Edit

ソフトウェアは人がつくる

•人と機械の協調作業•人•個人、組織、文化、開発プロセス

•機械•コンピュータ、言語、ツール

Page 119: From Java To Ruby In Action Internal Edit

Page 120: From Java To Ruby In Action Internal Edit
Page 121: From Java To Ruby In Action Internal Edit

✓ 理解ある上司 / 顧客✓ ほどよい大きさのチーム ✓ 士気の高い同僚✓ (待遇は別段良くはない)

Page 122: From Java To Ruby In Action Internal Edit

ほどよい大きさのチーム

Page 123: From Java To Ruby In Action Internal Edit

Java

Page 124: From Java To Ruby In Action Internal Edit

Java feeds my son.

So long, and thank you for all the fish!

Page 125: From Java To Ruby In Action Internal Edit

Javaの強み✓ 巨大なマーケット✓ 活発なOSSコミュニティ✓ 成熟と安定✓ スケーラビリティ✓ 豊富な選択肢

Page 126: From Java To Ruby In Action Internal Edit

Javaの弱み✓ 非本質的(偶発的)複雑性•EJB,XML,Webサービス•一定レベルを越えると超ムズイ•中小規模開発のリスク

✓ 多すぎる選択肢✓ オフショアリング

Page 127: From Java To Ruby In Action Internal Edit

MY JOB WENT TO INDIA

Page 128: From Java To Ruby In Action Internal Edit

オーム社

Page 129: From Java To Ruby In Action Internal Edit

オーム社同時代ソフトウェア開発者叢書 (by arton)

Page 130: From Java To Ruby In Action Internal Edit

✓ 複雑•JavaEEサーバ•EJB✓ 手間と時間•デプロイ地獄•テスト基盤、テスト記述

私がJavaで困ったこと

Page 131: From Java To Ruby In Action Internal Edit

評価の確立Establish Rewards

Page 132: From Java To Ruby In Action Internal Edit

限定的な展開Limited Deploy

情報収集Gather Information

広範な展開Broad Deploy

パイロット実施Build Pilot

限定的な展開Limited Deploy

統合Integrate

普及Ramp Up

Stop!

Stop!

Stop!

Stop!

“苦痛”の確認Validate Pain

評価の確立Establish Rewards

Stop!Stop!

Page 133: From Java To Ruby In Action Internal Edit

Ruby

Page 134: From Java To Ruby In Action Internal Edit

諸君、私はRubyが好きだ

Page 135: From Java To Ruby In Action Internal Edit

RailsRuby on

Page 136: From Java To Ruby In Action Internal Edit

大流行

Page 137: From Java To Ruby In Action Internal Edit

1点だけ

Page 138: From Java To Ruby In Action Internal Edit

フルスタック

Page 139: From Java To Ruby In Action Internal Edit

Model

デプロイメント

DBマイグレーション

Controller

View テスト

自動化

Page 140: From Java To Ruby In Action Internal Edit

Model

デプロイメント

DBマイグレーション

Controller

View テスト

自動化

Page 141: From Java To Ruby In Action Internal Edit

情報収集のまとめ•人や組織には対処可能•Javaは時にリスクがある•複雑さ、中小規模開発、短納期

•諸君、私はRubyが好きだ•Railsの流行キタ!!

Page 142: From Java To Ruby In Action Internal Edit

限定的な展開Limited Deploy

情報収集Gather Information

広範な展開Broad Deploy

パイロット実施Build Pilot

限定的な展開Limited Deploy

統合Integrate

普及Ramp Up

Stop!

Stop!

Stop!

Stop!

“苦痛”の確認Validate Pain

評価の確立Establish Rewards

Stop!Stop!

Page 143: From Java To Ruby In Action Internal Edit

限定的な展開✓ パイロット実施• 実際に手を動かしてリスク低減

✓ 限定的な展開•Ruby Worldで完結するアプリ•納品 / リリース / 本番稼動

Page 144: From Java To Ruby In Action Internal Edit

パイロット実施Build Pilot

Page 145: From Java To Ruby In Action Internal Edit

限定的な展開Limited Deploy

情報収集Gather Information

広範な展開Broad Deploy

パイロット実施Build Pilot

限定的な展開Limited Deploy

統合Integrate

普及Ramp Up

Stop!

Stop!

Stop!

Stop!

“苦痛”の確認Validate Pain

評価の確立Establish Rewards

Stop!Stop!

Page 146: From Java To Ruby In Action Internal Edit

パイロットのリスク

政治 x 技術

Page 147: From Java To Ruby In Action Internal Edit

政治リスク低 高

困難 決死楽勝 好機

技術リスク

Page 148: From Java To Ruby In Action Internal Edit

政治リスク低 高

困難 決死楽勝 好機

救出

トロイの木馬

競走

古典的パイロット社運を賭ける

技術リスク

Page 149: From Java To Ruby In Action Internal Edit

『JavaからRubyへ』マネージャのための

実践移行ガイド

Bruce A. Tate 著角谷信太郎 訳オライリー・ジャパン 発行2007年春 発売予定

Page 150: From Java To Ruby In Action Internal Edit

政治リスク低 高

困難 決死楽勝 好機

救出

トロイの木馬

競走

古典的パイロット社運を賭ける

技術リスク

Page 151: From Java To Ruby In Action Internal Edit

政治リスク低 高

困難 決死楽勝 好機

救出

トロイの木馬

競走

古典的パイロット社運を賭ける

技術リスク

武者修行

Page 152: From Java To Ruby In Action Internal Edit

パイロットで政治リスクを取ってない

Page 153: From Java To Ruby In Action Internal Edit

•Rubyの「売り込み」•Rubyの学習

パイロットのゴール

Page 154: From Java To Ruby In Action Internal Edit

•Rubyの「売り込み」•Rubyの学習

パイロットのゴール

Page 155: From Java To Ruby In Action Internal Edit

売り込みは別チャネル

•執筆•コミュニティ活動•社内向け説明会 / デモ

Page 156: From Java To Ruby In Action Internal Edit

執筆• 「Rubyで進むオブジェクトの道」

• 2005/01~: オブジェクト倶楽部メルマガ, 家永

• 「Rubyでアジャイルプロトタイピング」

• 2005/11~2006/05: @IT, 西川 ほか

• 「Ruby on Rails 1.0の世界」の一部

• 2006/02: オープンソースマガジン, 角谷

• 「Rubyで仕事がラクになる!」の一部

• 2006/08, 日経ソフトウェア2006/10号, 西村

• ほかにも出版予定とか、執筆予定とか

Page 157: From Java To Ruby In Action Internal Edit

コミュニティ活動• オブジェクト倶楽部

• 2005/12 Matz:「Agileと言語~Is Ruby Agile?」

• 2006/06 かずひこ: 「Ruby道チュートリアル」

• RubyKaigi2006

• 協賛企業

• しまねOSS協議会

• なぜか法人正会員

• RubyKaigi2007

• 協賛企業

Page 158: From Java To Ruby In Action Internal Edit

社内向け説明会 / デモ•協調ゲーム•意識を合わせる•「銀の弾丸じゃないよ」

•「生産性」•工数? 機能? 品質?

•動くデモ

Page 159: From Java To Ruby In Action Internal Edit

売り込みは別チャネル

•執筆•コミュニティ活動•社内向け説明会 / デモ

Page 160: From Java To Ruby In Action Internal Edit

政治リスク低 高

困難 決死楽勝 好機

救出

トロイの木馬

競走

古典的パイロット社運を賭ける

技術リスク

武者修行

Page 161: From Java To Ruby In Action Internal Edit

政治リスク低 高

困難 決死楽勝 好機

救出

トロイの木馬

競走

古典的パイロット社運を賭ける

技術リスク

武者修行

Page 162: From Java To Ruby In Action Internal Edit

古典的パイロット•いわゆるパイロット•学習を目的•技術の不安を部分的に検証•スパイク

Page 163: From Java To Ruby In Action Internal Edit

古典的パイロット•Windows上でのスパイク•開発プロセスの検証•テスト基盤の整備•BDD、JavaScript、Selenium

Page 164: From Java To Ruby In Action Internal Edit

政治リスク低 高

困難 決死楽勝 好機

救出

トロイの木馬

競走

古典的パイロット社運を賭ける

技術リスク

武者修行

Page 165: From Java To Ruby In Action Internal Edit

トロイの木馬•いつのまにかRuby•技術的には、 難易度低めを狙う•許可を得るよりも、 赦しを乞う

Page 166: From Java To Ruby In Action Internal Edit

トロイの木馬•ある日突然、社内アプリが出現•社員旅行Webアンケート•個人情報管理Webアプリ

•客先で最初のデモがRails•受入テストデータ作成ツール

•ビルドプロセスの一部•TRICHORDのビルド

Page 167: From Java To Ruby In Action Internal Edit

政治リスク低 高

困難 決死楽勝 好機

救出

トロイの木馬

競走

古典的パイロット社運を賭ける

技術リスク

武者修行

Page 168: From Java To Ruby In Action Internal Edit

武者修行•オリジナルの作戦•Rubyの仕事がある企業にプログラマを送り込む•成果を社内で軽くデモ•リスクは相手持ち(!)•でもノーリスクではない

Page 169: From Java To Ruby In Action Internal Edit

(株)ネットワーク応用通信研究所http://www.netlab.jp/

Page 170: From Java To Ruby In Action Internal Edit
Page 171: From Java To Ruby In Action Internal Edit
Page 172: From Java To Ruby In Action Internal Edit

•政治リスクは取ってない•主に技術リスクを検証•売り込みは別チャネル•武者修行

パイロットのまとめ

Page 173: From Java To Ruby In Action Internal Edit

限定的な展開Limited Deploy

Page 174: From Java To Ruby In Action Internal Edit

限定的な展開Limited Deploy

情報収集Gather Information

広範な展開Broad Deploy

パイロット実施Build Pilot

限定的な展開Limited Deploy

統合Integrate

普及Ramp Up

Stop!

Stop!

Stop!

Stop!

“苦痛”の確認Validate Pain

評価の確立Establish Rewards

Stop!Stop!

Page 175: From Java To Ruby In Action Internal Edit

•NaCl武者修行プロジェクツ•SNSみたいなやつ•CMSみたいなやつ•ドキュメント管理Webアプリ•コンセプト実証Webアプリ試作•他、提案など今後の展開を考え中

限定的な展開

Page 176: From Java To Ruby In Action Internal Edit

志半ばにして逝く……•ブログみたいなやつ• 顧客都合で唐突にキャンセル•サプライチェーンみたいなやつ•内部統制法関連で棚上げ•某社向け社内ツール•宙ぶらりん

Page 177: From Java To Ruby In Action Internal Edit

第3部まとめ•Rubyの組織への導入は協調ゲーム

•情報収集•「苦痛」の確認と、評価の確立

•限定的な展開

•パイロットの実施•(パイロット以外で認知度を上げる)

•限定的な展開

•『JavaからRubyへ』をよろしく

Page 178: From Java To Ruby In Action Internal Edit

『JavaからRubyへ』マネージャのための

実践移行ガイド

Bruce A. Tate 著角谷信太郎 訳オライリー・ジャパン 発行2007年春 発売予定

Page 179: From Java To Ruby In Action Internal Edit

まとめ

Page 180: From Java To Ruby In Action Internal Edit

まとめ•Rubyとビジネスは相性抜群

•5つの根拠と私(たち)の未来

•自分の仕事に自信と誇り、そして希望を•ソフトウェアは人がつくる

•Rubyは:•プログラマを信頼する言語

•プログラミングを楽しくする言語

•Rubyの組織への導入は協調ゲーム

Page 181: From Java To Ruby In Action Internal Edit

『JavaからRubyへ』マネージャのための

実践移行ガイド

Bruce A. Tate 著角谷信太郎 訳オライリー・ジャパン 発行2007年春 発売予定

Page 182: From Java To Ruby In Action Internal Edit

Choose the red pill

Page 183: From Java To Ruby In Action Internal Edit

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

Page 184: From Java To Ruby In Action Internal Edit

何かご質問は?Do you have any questions?