Slide 1

Slide 1 text

Building Saas using Rails [email protected]

Slide 2

Slide 2 text

self introduction

Slide 3

Slide 3 text

Rails Developer since 2007 Speaker of RubyTaiwan Conf 2010,2011
 Speaker of RubyChina Conf 2012, 2013
 Speaker of Reddot RubyConf Singapore 2013 Grand Prize of Facebook World Hack (12 countries) 2012

Slide 4

Slide 4 text

Entrepreneur Rocodev, top Rails consultancy in Taiwan Logdown, leading Markdown Blogging Platform

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

Logdown • 基於 Markdown 開發的部落格平台 • ⺫⽬目標:優化寫作體驗 • Software as a Service

Slide 8

Slide 8 text

Logdown • User : ~ 6000 • Post : > 100000 • HackerNews ⾸首⾴頁兩次 • ⾸首⽉月即 break even

Slide 9

Slide 9 text

開發原因 • 這是我⾃自⼰己「想買」的東⻄西 • 上班...⼿手癢...

Slide 10

Slide 10 text

⽤用過 Wordpress 的請舉⼿手

Slide 11

Slide 11 text

⽤用過 Octopress 的請舉⼿手

Slide 12

Slide 12 text

⽤用⼀一個殘障 HTML Editor 寫作

Slide 13

Slide 13 text

再預覽

Slide 14

Slide 14 text

沒⼈人覺得這樣很智障嗎?

Slide 15

Slide 15 text

⽤用⼀一個⽂文字 Editor 寫作

Slide 16

Slide 16 text

再⽤用命令列編譯

Slide 17

Slide 17 text

寫⼀一⼩小段預覽

Slide 18

Slide 18 text

再回去⽤用⼀一個⽂文字 Editor 寫作

Slide 19

Slide 19 text

再⽤用命令列預覽。重複上述動作10伺候。⽤用命命列發布

Slide 20

Slide 20 text

沒⼈人覺得這樣也很智障嗎?

Slide 21

Slide 21 text

這樣不是很合理嗎?

Slide 22

Slide 22 text

這就是我作 Logdown 的動機

Slide 23

Slide 23 text

其實

Slide 24

Slide 24 text

我很懶

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

只要有⼈人做出來賣

Slide 27

Slide 27 text

我⼀一定會買。
 ⽽而且⼀一次買三年份。

Slide 28

Slide 28 text

但是就是沒⼈人這麼神經病

Slide 29

Slide 29 text

所以只好⾃自⼰己作

Slide 30

Slide 30 text

=== 分隔線 ===

Slide 31

Slide 31 text

知道什麼是 SaaS 的舉⼿手

Slide 32

Slide 32 text

SaaS = 把軟體包起來放在雲端賣給⼈人

Slide 33

Slide 33 text

SaaS 從無到有的開發

Slide 34

Slide 34 text

開發⽅方式有兩種

Slide 35

Slide 35 text

1. 寫規格書 / User Story ✔

Slide 36

Slide 36 text

2. 想到什麼就亂做 ✘

Slide 37

Slide 37 text

1. 寫規格書 / User Story

Slide 38

Slide 38 text

✔先進⼯工程團隊的作法 (分析需求再動⼯工)

Slide 39

Slide 39 text

✘ 要做到⺠民國幾年才上線? ( 特別是業餘 project) ( ⼀一個禮拜沒做完就放棄了...)

Slide 40

Slide 40 text

2. 想到什麼就亂做

Slide 41

Slide 41 text

⾸首⾴頁 ⽂文章列表 編輯器 部落格⾴頁⾯面 ⽤用 15 分鐘
 ! 畫了四張圖就開⼯工

Slide 42

Slide 42 text

⾸首⾴頁 ⽂文章列表 編輯器 部落格⾴頁⾯面 ✔ (⼀一天就寫完了) (就是這麼變態)

Slide 43

Slide 43 text

然後之後想到什麼就做什麼 ✔ (這樣⼈人⽣生才開⼼心)

Slide 44

Slide 44 text

時間線 • 2013/06/15-16 完⼯工上線 • 2013/06/20 Subdomain • 2013/06/30 Custom Domain • 2013/07 HackerNews & Inside 報導 • 201/08/25 Custom Theme • 2013/09 收費 • 2013/11 Lean SaaS ( 我寫的書)

Slide 45

Slide 45 text

講到這裡

Slide 46

Slide 46 text

各位腦袋應該爆炸了

Slide 47

Slide 47 text

怎麼會這麼亂來 XD

Slide 48

Slide 48 text

真實世界跟你想的都不⼀一樣

Slide 49

Slide 49 text

=== 分隔線 ===

Slide 50

Slide 50 text

RD 的四步頓悟

Slide 51

Slide 51 text

RD 的四步頓悟(1) • 想做⼀一個⼩小產品 • 覺得我做的產品⼀一定會有⼈人⽤用 • 想到什麼就做什麼 • 發現太困難連⼀一個功能都作不完 Orz • ⻑⾧長⼤大以後再說 學⽣生階段

Slide 52

Slide 52 text

RD 的四步頓悟(2) • 公司想做⼀一個產品 • 找來⼀一群⼈人開會 • PM 寫 Spec -> 美術設計 -> RD 寫 code • (⾮非常有秩序) • 但:Spec 根本就功能太多寫不完....orz • 且:Spec 根本是真空討論出來的,做出 來通常也沒⼈人⽤用 剛出社會發現的

Slide 53

Slide 53 text

RD 的四步頓悟(3) • 太⻑⾧長的 Spec 根本是垃圾。 • Lean Startup!! Minimal Viable Product!! • 簡潔的 User Story • 敏捷開發 / TDD • (⾮非常有秩序) • 不⼀一定會賺錢。看運氣。 成為開發專家之後 ✔ 神⼀一般的 Best Practices

Slide 54

Slide 54 text

RD 的四步頓悟(4) • 想做⼀一個⼩小產品 • 只做會有⼈人買(⽤用)的東⻄西 • ⽤用⼾戶要買什麼你就做什麼賣他。不會賺 的不需要作。沒有美國時間寫測試。 • 根本不知道明天會作什麼功能 • (⾮非常混亂過得跟地獄⼀一樣) • ⼀一定會賺錢 成為⽣生意⼈人之後

Slide 55

Slide 55 text

簡單來說

Slide 56

Slide 56 text

跟作什麼「主題」和「開發步驟」有關

Slide 57

Slide 57 text

與⽤用什麼語⾔言無關

Slide 58

Slide 58 text

不過聽說我今天要講的是「以 Rails 為例」…

Slide 59

Slide 59 text

與⽤用什麼語⾔言無關

Slide 60

Slide 60 text

(重新溫習)

Slide 61

Slide 61 text

RD 的四步頓悟(3) • 太⻑⾧長的 Spec 根本是垃圾。 • Lean Startup!! Minimal Viable Product!! • 簡潔的 User Story • 敏捷開發 / TDD • (⾮非常有秩序) • 不⼀一定會賺錢。看運氣。 ✔

Slide 62

Slide 62 text

RD 的四步頓悟(4) • 想做⼀一個⼩小產品 • 只做會有⼈人買(⽤用)的東⻄西 • ⽤用⼾戶要買什麼你就做什麼賣他。不會賺 的不需要作。沒有美國時間寫測試。 • 根本不知道明天會作什麼功能 • (⾮非常混亂過得跟地獄⼀一樣) • ⼀一定會賺錢

Slide 63

Slide 63 text

重點 • 敏捷開發 (功能要快速推出市場) • 最⼩小可⾏行性產品 (作太多結果沒⼈人⽤用是浪費) • 只做⽤用⼾戶會付錢的功能 (有可能與之前 spec 衝突) • 不知道明天會作什麼功能(無法預先規劃架構) • 每天都混亂的跟地獄⼀一樣(廢話。這很正常)

Slide 64

Slide 64 text

出征未捷⾝身先死 • 做了前五個功能開始賣錢很開⼼心(任何語⾔言都 做得到) • 第六個功能加不上去 • 有錢請了第⼆二個 RD 以後發現速度沒變快 • 繼續賺錢請到第五個 RD 以後發現速度變更慢 • 原先架構讓網站變得很慢。⽣生意受到影響 • 市場⾵風向轉變。但是網站無法配合調整

Slide 65

Slide 65 text

Engineering Problem • 先天架構不好。很難再新加功能/刪除。 • RD 有⽂文化與開發習慣。造成加⼈人可能不會變 快。 • 資深與資淺程度差異。架構越⼤大新⼈人學習時間 越⻑⾧長。(即使是即戰⼒力) • 多⼈人合作需要 Framework, Pattern, Deployment tool…etc. • 摩登開發⽂文化與架構才能協助成⻑⾧長。但是⽤用錢 不⼀一定買的到

Slide 66

Slide 66 text

Rails offer • a community BEST practices (框架本⾝身) • 社群指南。 • Google 得到的開發慣例與指南(內部 Framwork 很難達到的⽔水平) • 良好的軟體⽣生態圈(各種彈性及⽅方便的相關開 發⼯工具) • 讓你瞬間就把功能做好的 RubyGems ( 不需重造 輪⼦子,在 1000 萬 PV/day 以前)

Slide 67

Slide 67 text

That’s what startup needs Scalable and Affordable Engineering

Slide 68

Slide 68 text

Slide 69

Slide 69 text

Q& A