SlideShare a Scribd company logo
Lessons learned form 
Ruby 
楽天技術研究所 
ネットワーク応用通信研究所 
Rubyアソシエーション 
Heroku 
まつもとゆきひろ 
Yukihiro "Matz" Matsumoto 
@yukihiro_matz 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
1993 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Crash of Bubble economy in 
Japan 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Project Cancel 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Skunk works 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Lesson 1 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Don't ask for permission, 
beg for forgiveness 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Permission 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
You can permit only when you 
understand 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Limit of asking permission 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Persuasion 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Compromise 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Hinders innovation 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
The Innovator's Dilemma 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Innovation 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
You need freedom to innovate 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Lesson 2 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Don't value ideas 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Idea matters in innovation 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Or not 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Ruby 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Object-oriented scripting 
language 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Everyone can think of 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Perl, Python,... 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
It only takes a minute to make 
up an idea 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
It takes months or years to 
implement 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Mere idea matters not 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Adding ideas can ruin the 
product 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Mere ideas have no value 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Ideas without implementations 
have no value 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Details matter 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Working implementations matter 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Community matters 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Philosophy matters 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Lesson 3 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Never give up 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Software Lifespan 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Apps: 2+ years 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Services: 5+ years 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Frameworks: 10+ years 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Languages: 20+ years 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Some software live long 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Have higher viewpoint 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Adopt changing situation 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Application domains 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Scripting → Web 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Sysadmin 
Research computing 
Embedded programming 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Changing platforms 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Multi-core 
Cloud 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Tooling 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
RubyGems 
Ruby on Rails 
New Relic 
Code Climate 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Ruby did not have CPAN 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Ruby has RubyGems 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Ruby was slow 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Ruby is faster 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
We always meet complaints 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Complaints are good 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Most people just leave without 
complaints 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Complaints tell us where to 
improve 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
They indicate you have room to 
improve 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Don't give up 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Cheer up 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Move forward bit by bit 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
You will win gradually 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Lesson 4 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Mind the power of OSS 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Open Source Software 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Free Software 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Libre Software 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
FLOSS 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Free/Libre/OpenSource Software 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Richard Stallman 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Stallman is my hero 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
He changed the world 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
The Internet is driven by FLOSS 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Linux 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Apache 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Ruby, PHP, Python, Perl 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
MySQL, PostgreSQL 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
OpenOffice, LibreOffice 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
DNS, OpenSSL 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Firefox, Chromium 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
1998 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
The term "OSS" was created 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Rephrasing free software 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Software Freedom 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
1. Freedom to execute 
2. Freedom to study 
3. Freedom to modify 
4. Freedom to redistribute 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Engineers' paradise 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Engineers' instinct 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
You can be better with freedom 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
The power of secrecy 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
The infomation has nature to 
spread 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
The power of disclosure 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
The new business model 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Implicit alliance 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
If you can't stop it 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
You must join in 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
And you can't stop it 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
No choice 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Thanks RMS! 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Software development has 
changed 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Internet based development 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Decentralized development 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Social Coding 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Github 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Lesson 5 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Mind the community 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Community 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
OSS community 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Made by spontaneous volunteers 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Mostly driven by techical interest 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Or maybe by career pressure 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Most successful OSS has 
atractive community 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Technologically, Philosophically 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
OSS communities are like sharks 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Must move forward, or die. 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Need continuous progress 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
To entertain/atract members 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
If we stop progressing 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
The community will lose interest 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
They will go away 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
And start more interesting things 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Moving forward over stability 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Progress over cost 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Even in the enterprise 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Lesson 6 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Amateurism 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Don't ask for permission, 
beg for forgiveness 
Don't value ideas 
Never give up 
Mind the power of OSS 
Mind the community 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Software development has 
changed 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Hard to forecast 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Hard to estimate 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Need to be flexible 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Keep moving forward 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Adopt the situation 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Amateurism 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
In software development 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Great amateurs surpass ordinary 
professionals 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Software made by amateurs 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Be amateurs 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Summary 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
From Ruby experience, I learned 
those lessons 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Don't ask for permission, 
beg for forgiveness 
Don't value ideas 
Never give up 
Mind the power of OSS 
Mind the community 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Be great amateurs 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Driven by technological interest 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Create great software 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
To create great future 
Lessons learned form Ruby Powered by Rabbit 2.1.2
  
Thank you! 
Lessons learned form Ruby Powered by Rabbit 2.1.2

More Related Content

PPT
[RakutenTechConf2013] [LT] Scrum of Global Ichiba
PPTX
[Rakuten TechConf2014] [B-4] Rakuten Technology Conference Diversity session
PDF
楽天市場を取り巻く状況と開発
PDF
楽天プロジェクトX:基幹DB移設 編
PDF
Making Ruby a Bazzar Project
PDF
Feeding the sharks
PPT
Intro To Ror
PPTX
Optimizing for programmer happiness
[RakutenTechConf2013] [LT] Scrum of Global Ichiba
[Rakuten TechConf2014] [B-4] Rakuten Technology Conference Diversity session
楽天市場を取り巻く状況と開発
楽天プロジェクトX:基幹DB移設 編
Making Ruby a Bazzar Project
Feeding the sharks
Intro To Ror
Optimizing for programmer happiness

Similar to [Rakuten TechConf2014] [A-5] Lessons learned from Ruby (20)

PDF
RubyConf 2010 Keynote by Matz
KEY
Ruby on Rails survival guide of an aged Java developer
PDF
10 Things you should know about Ruby
KEY
Wed Development on Rails
PDF
Panmind at Ruby Social Club Milano
PDF
When Ruby Meets Java - The Power of Torquebox
PDF
Ruby Metaprogramming - OSCON 2008
PDF
Ruby everywhere
PDF
Be a library developer!
ODP
PDF
Ruby 124C41+ - Matz
PDF
Ruby Best Practices Increase Your Productivity Write Better Code 1st Edition ...
PDF
Rubyconf 2014 recap
PDF
Ruby Presentation
PPTX
Ruby Newbie
PDF
Ruby on Rails 101 - Presentation Slides for a Five Day Introductory Course
PDF
Ruby Beyond Rails
PDF
Workin On The Rails Road
PDF
Ruby and Rails short motivation
PPT
WorkinOnTheRailsRoad
RubyConf 2010 Keynote by Matz
Ruby on Rails survival guide of an aged Java developer
10 Things you should know about Ruby
Wed Development on Rails
Panmind at Ruby Social Club Milano
When Ruby Meets Java - The Power of Torquebox
Ruby Metaprogramming - OSCON 2008
Ruby everywhere
Be a library developer!
Ruby 124C41+ - Matz
Ruby Best Practices Increase Your Productivity Write Better Code 1st Edition ...
Rubyconf 2014 recap
Ruby Presentation
Ruby Newbie
Ruby on Rails 101 - Presentation Slides for a Five Day Introductory Course
Ruby Beyond Rails
Workin On The Rails Road
Ruby and Rails short motivation
WorkinOnTheRailsRoad
Ad

More from Rakuten Group, Inc. (20)

PDF
EPSS (Exploit Prediction Scoring System)モニタリングツールの開発
PPTX
コードレビュー改善のためにJenkinsとIntelliJ IDEAのプラグインを自作してみた話
PDF
楽天における安全な秘匿情報管理への道のり
PDF
What Makes Software Green?
PDF
Simple and Effective Knowledge-Driven Query Expansion for QA-Based Product At...
PDF
DataSkillCultureを浸透させる楽天の取り組み
PDF
大規模なリアルタイム監視の導入と展開
PDF
楽天における大規模データベースの運用
PDF
楽天サービスを支えるネットワークインフラストラクチャー
PDF
楽天の規模とクラウドプラットフォーム統括部の役割
PDF
Rakuten Services and Infrastructure Team.pdf
PDF
The Data Platform Administration Handling the 100 PB.pdf
PDF
Supporting Internal Customers as Technical Account Managers.pdf
PDF
Making Cloud Native CI_CD Services.pdf
PDF
How We Defined Our Own Cloud.pdf
PDF
Travel & Leisure Platform Department's tech info
PDF
Travel & Leisure Platform Department's tech info
PDF
OWASPTop10_Introduction
PDF
Introduction of GORA API Group technology
PDF
100PBを越えるデータプラットフォームの実情
EPSS (Exploit Prediction Scoring System)モニタリングツールの開発
コードレビュー改善のためにJenkinsとIntelliJ IDEAのプラグインを自作してみた話
楽天における安全な秘匿情報管理への道のり
What Makes Software Green?
Simple and Effective Knowledge-Driven Query Expansion for QA-Based Product At...
DataSkillCultureを浸透させる楽天の取り組み
大規模なリアルタイム監視の導入と展開
楽天における大規模データベースの運用
楽天サービスを支えるネットワークインフラストラクチャー
楽天の規模とクラウドプラットフォーム統括部の役割
Rakuten Services and Infrastructure Team.pdf
The Data Platform Administration Handling the 100 PB.pdf
Supporting Internal Customers as Technical Account Managers.pdf
Making Cloud Native CI_CD Services.pdf
How We Defined Our Own Cloud.pdf
Travel & Leisure Platform Department's tech info
Travel & Leisure Platform Department's tech info
OWASPTop10_Introduction
Introduction of GORA API Group technology
100PBを越えるデータプラットフォームの実情
Ad

Recently uploaded (20)

PDF
Encapsulation theory and applications.pdf
PDF
A comparative analysis of optical character recognition models for extracting...
PPTX
Tartificialntelligence_presentation.pptx
PPTX
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
OMC Textile Division Presentation 2021.pptx
PDF
August Patch Tuesday
PDF
A novel scalable deep ensemble learning framework for big data classification...
PDF
Web App vs Mobile App What Should You Build First.pdf
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
Hindi spoken digit analysis for native and non-native speakers
PDF
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPTX
Chapter 5: Probability Theory and Statistics
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Zenith AI: Advanced Artificial Intelligence
Encapsulation theory and applications.pdf
A comparative analysis of optical character recognition models for extracting...
Tartificialntelligence_presentation.pptx
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
Assigned Numbers - 2025 - Bluetooth® Document
Encapsulation_ Review paper, used for researhc scholars
Agricultural_Statistics_at_a_Glance_2022_0.pdf
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
OMC Textile Division Presentation 2021.pptx
August Patch Tuesday
A novel scalable deep ensemble learning framework for big data classification...
Web App vs Mobile App What Should You Build First.pdf
Group 1 Presentation -Planning and Decision Making .pptx
Hindi spoken digit analysis for native and non-native speakers
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
Building Integrated photovoltaic BIPV_UPV.pdf
Chapter 5: Probability Theory and Statistics
Digital-Transformation-Roadmap-for-Companies.pptx
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Zenith AI: Advanced Artificial Intelligence

[Rakuten TechConf2014] [A-5] Lessons learned from Ruby