Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Building SaaS using Rails

Yi-Ting Cheng
December 19, 2013
2.1k

Building SaaS using Rails

Yi-Ting Cheng

December 19, 2013
Tweet

Transcript

  1. Building Saas using Rails
    [email protected]

    View full-size slide

  2. self introduction

    View full-size slide

  3. 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

    View full-size slide

  4. Entrepreneur
    Rocodev, top Rails consultancy in Taiwan

    Logdown, leading Markdown Blogging Platform

    View full-size slide

  5. Logdown
    • 基於 Markdown 開發的部落格平台

    • ⺫⽬目標:優化寫作體驗

    • Software as a Service

    View full-size slide

  6. Logdown
    • User : ~ 6000

    • Post : > 100000

    • HackerNews ⾸首⾴頁兩次

    • ⾸首⽉月即 break even

    View full-size slide

  7. 開發原因
    • 這是我⾃自⼰己「想買」的東⻄西

    • 上班...⼿手癢...

    View full-size slide

  8. ⽤用過 Wordpress 的請舉⼿手

    View full-size slide

  9. ⽤用過 Octopress 的請舉⼿手

    View full-size slide

  10. ⽤用⼀一個殘障 HTML Editor 寫作

    View full-size slide

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

    View full-size slide

  12. ⽤用⼀一個⽂文字 Editor 寫作

    View full-size slide

  13. 再⽤用命令列編譯

    View full-size slide

  14. 寫⼀一⼩小段預覽

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  18. 這樣不是很合理嗎?

    View full-size slide

  19. 這就是我作 Logdown 的動機

    View full-size slide

  20. 只要有⼈人做出來賣

    View full-size slide

  21. 我⼀一定會買。

    ⽽而且⼀一次買三年份。

    View full-size slide

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

    View full-size slide

  23. 所以只好⾃自⼰己作

    View full-size slide

  24. === 分隔線 ===

    View full-size slide

  25. 知道什麼是 SaaS 的舉⼿手

    View full-size slide

  26. SaaS =

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

    View full-size slide

  27. SaaS 從無到有的開發

    View full-size slide

  28. 開發⽅方式有兩種

    View full-size slide

  29. 1. 寫規格書 / User Story

    View full-size slide

  30. 2. 想到什麼就亂做

    View full-size slide

  31. 1. 寫規格書 / User Story

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  34. 2. 想到什麼就亂做

    View full-size slide

  35. ⾸首⾴頁 ⽂文章列表
    編輯器 部落格⾴頁⾯面
    ⽤用 15 分鐘

    !
    畫了四張圖就開⼯工

    View full-size slide

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

    View full-size slide

  37. 然後之後想到什麼就做什麼

    (這樣⼈人⽣生才開⼼心)

    View full-size slide

  38. 時間線
    • 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 ( 我寫的書)

    View full-size slide

  39. 講到這裡

    View full-size slide

  40. 各位腦袋應該爆炸了

    View full-size slide

  41. 怎麼會這麼亂來 XD

    View full-size slide

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

    View full-size slide

  43. === 分隔線 ===

    View full-size slide

  44. RD 的四步頓悟

    View full-size slide

  45. RD 的四步頓悟(1)
    • 想做⼀一個⼩小產品

    • 覺得我做的產品⼀一定會有⼈人⽤用

    • 想到什麼就做什麼

    • 發現太困難連⼀一個功能都作不完 Orz

    • ⻑⾧長⼤大以後再說
    學⽣生階段

    View full-size slide

  46. RD 的四步頓悟(2)
    • 公司想做⼀一個產品

    • 找來⼀一群⼈人開會

    • PM 寫 Spec -> 美術設計 -> RD 寫 code

    • (⾮非常有秩序)

    • 但:Spec 根本就功能太多寫不完....orz

    • 且:Spec 根本是真空討論出來的,做出
    來通常也沒⼈人⽤用
    剛出社會發現的

    View full-size slide

  47. RD 的四步頓悟(3)
    • 太⻑⾧長的 Spec 根本是垃圾。

    • Lean Startup!! Minimal Viable Product!!

    • 簡潔的 User Story

    • 敏捷開發 / TDD

    • (⾮非常有秩序)

    • 不⼀一定會賺錢。看運氣。
    成為開發專家之後

    神⼀一般的 Best Practices

    View full-size slide

  48. RD 的四步頓悟(4)
    • 想做⼀一個⼩小產品

    • 只做會有⼈人買(⽤用)的東⻄西

    • ⽤用⼾戶要買什麼你就做什麼賣他。不會賺
    的不需要作。沒有美國時間寫測試。

    • 根本不知道明天會作什麼功能

    • (⾮非常混亂過得跟地獄⼀一樣)

    • ⼀一定會賺錢
    成為⽣生意⼈人之後

    View full-size slide

  49. 簡單來說

    View full-size slide

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

    View full-size slide

  51. 與⽤用什麼語⾔言無關

    View full-size slide

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

    View full-size slide

  53. 與⽤用什麼語⾔言無關

    View full-size slide

  54. (重新溫習)

    View full-size slide

  55. RD 的四步頓悟(3)
    • 太⻑⾧長的 Spec 根本是垃圾。

    • Lean Startup!! Minimal Viable Product!!

    • 簡潔的 User Story

    • 敏捷開發 / TDD

    • (⾮非常有秩序)

    • 不⼀一定會賺錢。看運氣。

    View full-size slide

  56. RD 的四步頓悟(4)
    • 想做⼀一個⼩小產品

    • 只做會有⼈人買(⽤用)的東⻄西

    • ⽤用⼾戶要買什麼你就做什麼賣他。不會賺
    的不需要作。沒有美國時間寫測試。

    • 根本不知道明天會作什麼功能

    • (⾮非常混亂過得跟地獄⼀一樣)

    • ⼀一定會賺錢

    View full-size slide

  57. 重點
    • 敏捷開發 (功能要快速推出市場)

    • 最⼩小可⾏行性產品 (作太多結果沒⼈人⽤用是浪費)

    • 只做⽤用⼾戶會付錢的功能 (有可能與之前 spec 衝突)

    • 不知道明天會作什麼功能(無法預先規劃架構)

    • 每天都混亂的跟地獄⼀一樣(廢話。這很正常)

    View full-size slide

  58. 出征未捷⾝身先死
    • 做了前五個功能開始賣錢很開⼼心(任何語⾔言都
    做得到)

    • 第六個功能加不上去

    • 有錢請了第⼆二個 RD 以後發現速度沒變快

    • 繼續賺錢請到第五個 RD 以後發現速度變更慢

    • 原先架構讓網站變得很慢。⽣生意受到影響

    • 市場⾵風向轉變。但是網站無法配合調整

    View full-size slide

  59. Engineering Problem
    • 先天架構不好。很難再新加功能/刪除。

    • RD 有⽂文化與開發習慣。造成加⼈人可能不會變
    快。

    • 資深與資淺程度差異。架構越⼤大新⼈人學習時間
    越⻑⾧長。(即使是即戰⼒力)

    • 多⼈人合作需要 Framework, Pattern, Deployment
    tool…etc.

    • 摩登開發⽂文化與架構才能協助成⻑⾧長。但是⽤用錢
    不⼀一定買的到

    View full-size slide

  60. Rails offer
    • a community BEST practices (框架本⾝身)

    • 社群指南。

    • Google 得到的開發慣例與指南(內部
    Framwork 很難達到的⽔水平)

    • 良好的軟體⽣生態圈(各種彈性及⽅方便的相關開
    發⼯工具)

    • 讓你瞬間就把功能做好的 RubyGems ( 不需重造
    輪⼦子,在 1000 萬 PV/day 以前)

    View full-size slide

  61. That’s what startup needs
    Scalable and Affordable
    Engineering

    View full-size slide