Ruby３０年からの教訓
OSS Vision
Ruby Association

Yukihiro "Matz" Matsumoto@yukihiro_matz

Powered by Rabbit 3.0.1

1993-02-24

Powered by Rabbit 3.0.1

Ruby開発開始

Powered by Rabbit 3.0.1

Rubyの特異性

Powered by Rabbit 3.0.1

３０年続くプロジェクト
海外進出
オープンソース

Powered by Rabbit 3.0.1

３０年続くプロジェクト

Powered by Rabbit 3.0.1

ソフトウェアの寿命

Powered by Rabbit 3.0.1

組織の寿命Powered by Rabbit 3.0.1

プロダクトの継続

Powered by Rabbit 3.0.1

ソフトウェア開発の発達段階

Powered by Rabbit 3.0.1

変化する環境Powered by Rabbit 3.0.1

ハードウェア環境

Powered by Rabbit 3.0.1

ソフトウェア環境

Powered by Rabbit 3.0.1

ソフトウェアトレンド

Powered by Rabbit 3.0.1

変化する立ち位置

Powered by Rabbit 3.0.1

ユーザー層の変化

Powered by Rabbit 3.0.1

海外進出Powered by Rabbit 3.0.1

日本発のソフトウェア

Powered by Rabbit 3.0.1

マーケットサイズ

Powered by Rabbit 3.0.1

商習慣の違いPowered by Rabbit 3.0.1

文化の違いPowered by Rabbit 3.0.1

法律の違いPowered by Rabbit 3.0.1

スコープの違い

Powered by Rabbit 3.0.1

オープンソースPowered by Rabbit 3.0.1

無償・自由なソフトウェア

Powered by Rabbit 3.0.1

お金がないPowered by Rabbit 3.0.1

リソースがない

Powered by Rabbit 3.0.1

人事権がない

Powered by Rabbit 3.0.1

業務命令がない

Powered by Rabbit 3.0.1

コントロールが難しい

Powered by Rabbit 3.0.1

達成感

Powered by Rabbit 3.0.1

自慢Powered by Rabbit 3.0.1

よかったことPowered by Rabbit 3.0.1

プロダクトオーナー

Powered by Rabbit 3.0.1

BDFLPowered by Rabbit 3.0.1

Benevolent Dictator For Life

Powered by Rabbit 3.0.1

慈悲深き終身の独裁者

Powered by Rabbit 3.0.1

「権威」に疑念がない

Powered by Rabbit 3.0.1

学んだ教訓Powered by Rabbit 3.0.1

「名前重要」Powered by Rabbit 3.0.1

「Vision重要」

Powered by Rabbit 3.0.1

「Visionの名付け重要」

Powered by Rabbit 3.0.1

「Programmers' Best Friend」

Powered by Rabbit 3.0.1

名前重要Powered by Rabbit 3.0.1

ソフトウェアは概念

Powered by Rabbit 3.0.1

取り扱いに名前が要る

Powered by Rabbit 3.0.1

名前によって概念が表現される

Powered by Rabbit 3.0.1

名前重要Powered by Rabbit 3.0.1

デザインパターンPowered by Rabbit 3.0.1

パターンに名前をPowered by Rabbit 3.0.1

Vision重要Powered by Rabbit 3.0.1

ベクトルを揃える

Powered by Rabbit 3.0.1

綱引きPowered by Rabbit 3.0.1

労力の浪費Powered by Rabbit 3.0.1

生産性向上の要件

Powered by Rabbit 3.0.1

ベクトルを揃える方法

Powered by Rabbit 3.0.1

意識の統一Powered by Rabbit 3.0.1

目的の統一Powered by Rabbit 3.0.1

リーダーシップ

Powered by Rabbit 3.0.1

プロジェクト創始者

Powered by Rabbit 3.0.1

プロダクト責任者

Powered by Rabbit 3.0.1

「よいもの」を作りたい

Powered by Rabbit 3.0.1

「よい」は未定義

Powered by Rabbit 3.0.1

「よい」を定義する

Powered by Rabbit 3.0.1

リーダーの重要な責務

Powered by Rabbit 3.0.1

独裁者の必要性

Powered by Rabbit 3.0.1

目的の言語化

Powered by Rabbit 3.0.1

VisionPowered by Rabbit 3.0.1

Vision＝あるべき姿

Powered by Rabbit 3.0.1

Vision＝未来の予見

Powered by Rabbit 3.0.1

Vision＝説得力の根源

Powered by Rabbit 3.0.1

RubyのVision

Powered by Rabbit 3.0.1

「Programmers' Best Friend」

Powered by Rabbit 3.0.1

「Just for Fun」

Powered by Rabbit 3.0.1

「楽しいプログラミング」

Powered by Rabbit 3.0.1

「人間指向言語」

Powered by Rabbit 3.0.1

後発に勝ち目は薄いPowered by Rabbit 3.0.1

性能・機能Powered by Rabbit 3.0.1

開発リソース

Powered by Rabbit 3.0.1

「それが私に楽しかったから」

Powered by Rabbit 3.0.1

説得力ゼロPowered by Rabbit 3.0.1

人間にフォーカス

Powered by Rabbit 3.0.1

使いやすさに集中

Powered by Rabbit 3.0.1

オブジェクト指向プログラミング

Powered by Rabbit 3.0.1

メタプログラミング

Powered by Rabbit 3.0.1

充実したクラスライブラリ

Powered by Rabbit 3.0.1

生産性(と楽しさ)にフォーカス

Powered by Rabbit 3.0.1

スクリプト言語の方向性を言語化

Powered by Rabbit 3.0.1

Visionによる説得力Powered by Rabbit 3.0.1

開発に楽しさを求めるコミュニティ

Powered by Rabbit 3.0.1

「仕事は楽しいものじゃない」

Powered by Rabbit 3.0.1

コミュニティの成長

Powered by Rabbit 3.0.1

開発者の増加Powered by Rabbit 3.0.1

機能増加Powered by Rabbit 3.0.1

性能向上

Powered by Rabbit 3.0.1

実用性向上Powered by Rabbit 3.0.1

ライブラリ増加

Powered by Rabbit 3.0.1

フレームワーク登場

Powered by Rabbit 3.0.1

エンタープライズ利用

Powered by Rabbit 3.0.1

「人間指向言語」

Powered by Rabbit 3.0.1

多少は上手く行ったPowered by Rabbit 3.0.1

「驚き最小の原則」

Powered by Rabbit 3.0.1

Principle of Least Astonishment

Powered by Rabbit 3.0.1

「人間指向」の自然な拡張

Powered by Rabbit 3.0.1

上手く行かなかったPowered by Rabbit 3.0.1

誰にとっての驚きか？

Powered by Rabbit 3.0.1

背景の違いを過小評価

Powered by Rabbit 3.0.1

個別の視点に固執Powered by Rabbit 3.0.1

議論の妨げになる傾向

Powered by Rabbit 3.0.1

十分な情報を集めトレードオフを考慮しできるだけ説明可能な判断を責任者が行うPowered by Rabbit 3.0.1

十分な情報を集める

Powered by Rabbit 3.0.1

全ての問題の専門家ではありえない

Powered by Rabbit 3.0.1

判断の前に情報収集

Powered by Rabbit 3.0.1

感想や意見ではなく事実をPowered by Rabbit 3.0.1

Powered by Rabbit 3.0.1

ユーザーは自分の必要を知らない

Powered by Rabbit 3.0.1

ユーザーに解決策を聞いてはいけない

Powered by Rabbit 3.0.1

リーダーの怠慢

Powered by Rabbit 3.0.1

問題の存在を尋ねる

Powered by Rabbit 3.0.1

ファクトを問う

Powered by Rabbit 3.0.1

トレードオフを考慮する

Powered by Rabbit 3.0.1

トレードオフの存在

Powered by Rabbit 3.0.1

判断に優先順位が必要

Powered by Rabbit 3.0.1

優先順位＝リーダーの専権Powered by Rabbit 3.0.1

トレードオフへの判断Powered by Rabbit 3.0.1

優先順位の決定

Powered by Rabbit 3.0.1

「よい」プロダクトの定義

Powered by Rabbit 3.0.1

できるだけ説明可能な判断

Powered by Rabbit 3.0.1

「機嫌」や「思いつき」の排除

Powered by Rabbit 3.0.1

「納得」の必要性

Powered by Rabbit 3.0.1

「Ruby3x3」

Powered by Rabbit 3.0.1

Ruby3.0をRuby2.0より３倍高速にPowered by Rabbit 3.0.1

困難な目標Powered by Rabbit 3.0.1

Powered by Rabbit 3.0.1

困難な挑戦による一体感

Powered by Rabbit 3.0.1

技術革新の源Powered by Rabbit 3.0.1

実際に３倍にPowered by Rabbit 3.0.1

Visionの効果

Powered by Rabbit 3.0.1

ソフトウェアの寿命

Powered by Rabbit 3.0.1

ソフトウェアは老化するPowered by Rabbit 3.0.1

変化への追随Powered by Rabbit 3.0.1

「Keep Moving Forward」

Powered by Rabbit 3.0.1

環境変化

Powered by Rabbit 3.0.1

ハードウェア環境

Powered by Rabbit 3.0.1

ソフトウェア環境

Powered by Rabbit 3.0.1

ビジネス環境Powered by Rabbit 3.0.1

ユーザー変化Powered by Rabbit 3.0.1

停滞したOSSは廃れる

Powered by Rabbit 3.0.1

OSSでなくても廃れる

Powered by Rabbit 3.0.1

魅力の低下Powered by Rabbit 3.0.1

コミュニティの縮小

Powered by Rabbit 3.0.1

負のサイクルPowered by Rabbit 3.0.1

継続的進歩が必要

Powered by Rabbit 3.0.1

Creeping Featurism

Powered by Rabbit 3.0.1

変化の拒絶か過剰な進化かPowered by Rabbit 3.0.1

トレードオフ

Powered by Rabbit 3.0.1

「水道モデル」

Powered by Rabbit 3.0.1

安定した基本的機能

Powered by Rabbit 3.0.1

過大な機能強化の排除

Powered by Rabbit 3.0.1

継続的な保守

Powered by Rabbit 3.0.1

継続的な更新

Powered by Rabbit 3.0.1

必要な変化は大胆にPowered by Rabbit 3.0.1

つまり、リーダーシップとはPowered by Rabbit 3.0.1

課題を正しく把握しPowered by Rabbit 3.0.1

適切な解決策を模索しPowered by Rabbit 3.0.1

トレードオフを検討しPowered by Rabbit 3.0.1

納得可能な解決方針を提示する

Powered by Rabbit 3.0.1

チームの方向性を決定する

Powered by Rabbit 3.0.1

Visionを提示

Powered by Rabbit 3.0.1

チームのベクトルを揃える

Powered by Rabbit 3.0.1

管理するものはPowered by Rabbit 3.0.1

プロダクトの仕様

Powered by Rabbit 3.0.1

プロダクトの未来

Powered by Rabbit 3.0.1

チームのモチベーション

Powered by Rabbit 3.0.1

管理しないものはPowered by Rabbit 3.0.1

スケジュール

Powered by Rabbit 3.0.1

予算Powered by Rabbit 3.0.1

プロジェクトPowered by Rabbit 3.0.1

良いプロダクトが世界を変える

Powered by Rabbit 3.0.1

Visionとリーダーシップがプロダクトを作るPowered by Rabbit 3.0.1

良いVisionのために名前重要Powered by Rabbit 3.0.1

開発者よコピーライターを目指せ

Powered by Rabbit 3.0.1

Sponsored by
Salesforce.com

Powered by Rabbit 3.0.1

Sponsored byNaClPowered by Rabbit 3.0.1

Sponsored by
OSS Vision

Powered by Rabbit 3.0.1

Sponsored by
GitHub Sponsors

Powered by Rabbit 3.0.1

Sponsored by
Ruby Community

Powered by Rabbit 3.0.1

Thank you

Powered by Rabbit 3.0.1