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 Slide

  2. self introduction

    View 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 Slide

  4. Entrepreneur
    Rocodev, top Rails consultancy in Taiwan

    Logdown, leading Markdown Blogging Platform

    View Slide

  5. View Slide

  6. View Slide

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

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

    • Software as a Service

    View Slide

  8. Logdown
    • User : ~ 6000

    • Post : > 100000

    • HackerNews ⾸首⾴頁兩次

    • ⾸首⽉月即 break even

    View Slide

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

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

    View Slide

  10. ⽤用過 Wordpress 的請舉⼿手

    View Slide

  11. ⽤用過 Octopress 的請舉⼿手

    View Slide

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

    View Slide

  13. 再預覽

    View Slide

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

    View Slide

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

    View Slide

  16. 再⽤用命令列編譯

    View Slide

  17. 寫⼀一⼩小段預覽

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  21. 這樣不是很合理嗎?

    View Slide

  22. 這就是我作 Logdown 的動機

    View Slide

  23. 其實

    View Slide

  24. 我很懶

    View Slide

  25. View Slide

  26. 只要有⼈人做出來賣

    View Slide

  27. 我⼀一定會買。

    ⽽而且⼀一次買三年份。

    View Slide

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

    View Slide

  29. 所以只好⾃自⼰己作

    View Slide

  30. === 分隔線 ===

    View Slide

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

    View Slide

  32. SaaS =

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

    View Slide

  33. SaaS 從無到有的開發

    View Slide

  34. 開發⽅方式有兩種

    View Slide

  35. 1. 寫規格書 / User Story

    View Slide

  36. 2. 想到什麼就亂做

    View Slide

  37. 1. 寫規格書 / User Story

    View Slide

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

    View Slide

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

    View Slide

  40. 2. 想到什麼就亂做

    View Slide

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

    !
    畫了四張圖就開⼯工

    View Slide

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

    View Slide

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

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

    View Slide

  44. 時間線
    • 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 Slide

  45. 講到這裡

    View Slide

  46. 各位腦袋應該爆炸了

    View Slide

  47. 怎麼會這麼亂來 XD

    View Slide

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

    View Slide

  49. === 分隔線 ===

    View Slide

  50. RD 的四步頓悟

    View Slide

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

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

    • 想到什麼就做什麼

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

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

    View Slide

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

    • 找來⼀一群⼈人開會

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

    • (⾮非常有秩序)

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

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

    View Slide

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

    • Lean Startup!! Minimal Viable Product!!

    • 簡潔的 User Story

    • 敏捷開發 / TDD

    • (⾮非常有秩序)

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

    神⼀一般的 Best Practices

    View Slide

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

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

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

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

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

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

    View Slide

  55. 簡單來說

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  60. (重新溫習)

    View Slide

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

    • Lean Startup!! Minimal Viable Product!!

    • 簡潔的 User Story

    • 敏捷開發 / TDD

    • (⾮非常有秩序)

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

    View Slide

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

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

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

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

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

    • ⼀一定會賺錢

    View Slide

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

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

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

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

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

    View Slide

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

    • 第六個功能加不上去

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

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

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

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

    View Slide

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

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

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

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

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

    View Slide

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

    • 社群指南。

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

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

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

    View Slide

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

    View Slide

  68. View Slide

  69. Q& A

    View Slide