Building SaaS using Rails

19e786a2a74377ff6e052d87fd8d1fa8?s=47 Yi-Ting Cheng
December 19, 2013
2.1k

Building SaaS using Rails

19e786a2a74377ff6e052d87fd8d1fa8?s=128

Yi-Ting Cheng

December 19, 2013
Tweet

Transcript

  1. Building Saas using Rails xdite@rocodev.com

  2. self introduction

  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
  4. Entrepreneur Rocodev, top Rails consultancy in Taiwan Logdown, leading Markdown

    Blogging Platform
  5. None
  6. None
  7. Logdown • 基於 Markdown 開發的部落格平台 • ⺫⽬目標:優化寫作體驗 • Software as

    a Service
  8. Logdown • User : ~ 6000 • Post : >

    100000 • HackerNews ⾸首⾴頁兩次 • ⾸首⽉月即 break even
  9. 開發原因 • 這是我⾃自⼰己「想買」的東⻄西 • 上班...⼿手癢...

  10. ⽤用過 Wordpress 的請舉⼿手

  11. ⽤用過 Octopress 的請舉⼿手

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

  13. 再預覽

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

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

  16. 再⽤用命令列編譯

  17. 寫⼀一⼩小段預覽

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

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

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

  21. 這樣不是很合理嗎?

  22. 這就是我作 Logdown 的動機

  23. 其實

  24. 我很懶

  25. None
  26. 只要有⼈人做出來賣

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

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

  29. 所以只好⾃自⼰己作

  30. === 分隔線 ===

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

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

  33. SaaS 從無到有的開發

  34. 開發⽅方式有兩種

  35. 1. 寫規格書 / User Story ✔

  36. 2. 想到什麼就亂做 ✘

  37. 1. 寫規格書 / User Story

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

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

  40. 2. 想到什麼就亂做

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

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

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

  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 ( 我寫的書)
  45. 講到這裡

  46. 各位腦袋應該爆炸了

  47. 怎麼會這麼亂來 XD

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

  49. === 分隔線 ===

  50. RD 的四步頓悟

  51. RD 的四步頓悟(1) • 想做⼀一個⼩小產品 • 覺得我做的產品⼀一定會有⼈人⽤用 • 想到什麼就做什麼 • 發現太困難連⼀一個功能都作不完

    Orz • ⻑⾧長⼤大以後再說 學⽣生階段
  52. RD 的四步頓悟(2) • 公司想做⼀一個產品 • 找來⼀一群⼈人開會 • PM 寫 Spec

    -> 美術設計 -> RD 寫 code • (⾮非常有秩序) • 但:Spec 根本就功能太多寫不完....orz • 且:Spec 根本是真空討論出來的,做出 來通常也沒⼈人⽤用 剛出社會發現的
  53. RD 的四步頓悟(3) • 太⻑⾧長的 Spec 根本是垃圾。 • Lean Startup!! Minimal

    Viable Product!! • 簡潔的 User Story • 敏捷開發 / TDD • (⾮非常有秩序) • 不⼀一定會賺錢。看運氣。 成為開發專家之後 ✔ 神⼀一般的 Best Practices
  54. RD 的四步頓悟(4) • 想做⼀一個⼩小產品 • 只做會有⼈人買(⽤用)的東⻄西 • ⽤用⼾戶要買什麼你就做什麼賣他。不會賺 的不需要作。沒有美國時間寫測試。 •

    根本不知道明天會作什麼功能 • (⾮非常混亂過得跟地獄⼀一樣) • ⼀一定會賺錢 成為⽣生意⼈人之後
  55. 簡單來說

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

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

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

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

  60. (重新溫習)

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

    Viable Product!! • 簡潔的 User Story • 敏捷開發 / TDD • (⾮非常有秩序) • 不⼀一定會賺錢。看運氣。 ✔
  62. RD 的四步頓悟(4) • 想做⼀一個⼩小產品 • 只做會有⼈人買(⽤用)的東⻄西 • ⽤用⼾戶要買什麼你就做什麼賣他。不會賺 的不需要作。沒有美國時間寫測試。 •

    根本不知道明天會作什麼功能 • (⾮非常混亂過得跟地獄⼀一樣) • ⼀一定會賺錢
  63. 重點 • 敏捷開發 (功能要快速推出市場) • 最⼩小可⾏行性產品 (作太多結果沒⼈人⽤用是浪費) • 只做⽤用⼾戶會付錢的功能 (有可能與之前

    spec 衝突) • 不知道明天會作什麼功能(無法預先規劃架構) • 每天都混亂的跟地獄⼀一樣(廢話。這很正常)
  64. 出征未捷⾝身先死 • 做了前五個功能開始賣錢很開⼼心(任何語⾔言都 做得到) • 第六個功能加不上去 • 有錢請了第⼆二個 RD 以後發現速度沒變快

    • 繼續賺錢請到第五個 RD 以後發現速度變更慢 • 原先架構讓網站變得很慢。⽣生意受到影響 • 市場⾵風向轉變。但是網站無法配合調整
  65. Engineering Problem • 先天架構不好。很難再新加功能/刪除。 • RD 有⽂文化與開發習慣。造成加⼈人可能不會變 快。 • 資深與資淺程度差異。架構越⼤大新⼈人學習時間

    越⻑⾧長。(即使是即戰⼒力) • 多⼈人合作需要 Framework, Pattern, Deployment tool…etc. • 摩登開發⽂文化與架構才能協助成⻑⾧長。但是⽤用錢 不⼀一定買的到
  66. Rails offer • a community BEST practices (框架本⾝身) • 社群指南。

    • Google 得到的開發慣例與指南(內部 Framwork 很難達到的⽔水平) • 良好的軟體⽣生態圈(各種彈性及⽅方便的相關開 發⼯工具) • 讓你瞬間就把功能做好的 RubyGems ( 不需重造 輪⼦子,在 1000 萬 PV/day 以前)
  67. That’s what startup needs Scalable and Affordable Engineering

  68. Thanks xdite@rocodev.com

  69. Q& A