Posted – September 17th, 2011
under Uncategorized
Leave a comment
 
– go to post

雖然離職六個多月,收入雖然沒有很多,但是學到了很多事情,不過都是無形的。今天剛好有一個多小時的空閒時間,來聊聊App的類型與設計及維護的成本。

先定義一下『類型』,這邊的類型不是屬於生活用,工具類,這樣的分類邏輯。是以開發者的角度來看,屬於什麼樣的類型。我先定義幾個分類:

  • 框架類,套用N次(賣N次)
  • 廣告類,套用次數少
  • 單一目的類,套用次數接近一

如果用上面的類型來看,開發的成本其實大同小異,但是慎選一個好的開發商(者),諮詢他的意見,也許會讓你少走些冤望路,會提醒你會有什麼樣的狀況發生。畢竟開發軟體,不是在賣糖水,有個標準市價,還有質量與問題解決能力的問題。不過你想諮詢這些事情,勢必開發的金額會比較高,不過可以縮短開發時程,加速上架時間,減少可能淺在問題,相對起來是很划算的。

維護的成本應該是怎什麼樣子?

  • 框架類:

如果所有東西都是很固定,那維護的成本是非常低的,幾乎就是套theme的概念來運作。而這樣的框架大多用於有Content的app上面,如電子書,教學影片,等等(但是如果你一間公司上很多這樣的app會怎樣勒?這要問Apple),這部份的 Content 如果來自後端,維護的成本大多會來自後端 Server side。

  • 廣告類:

這都是用專案的方式進行,所以是某種,做完及丟的案子。就是不用維護,上架的那天就是結束的那天,除了一些小部分的bug fix

  • 單一目的類:

這部份維護的成本就會比較重,看設計時定義了哪些範疇,然後是否有新家功能的想法。如果有,你就可以用製作office的概念與維護來想。但是你也可以在第一次釋出就決定只提供到這個程度的功能,那後面就沒有維護的成本在。

這樣說或許有些模糊,我列了一些常用的app:

  • 框架類:
    • BookU
    • MagV
    • 好讀電子書
    • Adobe inDesign 轉檔製作的 app
  • 廣告類:
    • Coke Collector (可口可樂)
    • HairStyle Maker (沙宣)
  • 單一目的類:
    • Camera+
    • Facebook
    • Evernote
    • Dropbox
    • WhatApp Messager
    • Speed Bus 大台北極速公車
    • 我要搭高鐵
    • Costco 折扣小幫手

如果是上面這樣的維護成本,我應該怎麼樣找尋適合的開發商?

  • 框架類:

建議找前端與後端都有能力的開發商,整合的速度會比較快,除非你內部有開發人員非常熟悉,或是已經有開發經驗。另外你也可以聘請一個有開發過開發者來當諮詢顧問。建議需取得程式碼,建議內部要有一位開發者可以維護或解決相關問題。

  • 廣告類:

直接列出功能與目的,發包即可,記得要談上架與後面程式修正問題,取不取得程式碼無所謂,主要是廣告效益。

  • 單一目標:

這部份建議與開發者一起合作,或拆帳的方式。不然就是公司內部養RD的方式來開發,因為這個app的週期會比較長。維護的成本也會比較重。

上面是我的經驗談,不是鐵則,歡迎批評指教與合作。

Charles


 
– go to post

前陣子看到Jamie的這篇文章,在討論『什麼時候Scale?』

這個問題我在開發小幫手的時候也有思考過,思考的邏輯是這樣:

  • 『假設同時上線的人數有1000人,server會不會爆掉?需不需要考慮 Scale 的動作?』
  • 『每天查詢的流量會有多少?我應該用怎麼樣的Server會比較適合?』
  • Web hosting server (GoDaddy, Bluehost)
  • ADSL + single server
  • Amazon ec2 server
  • Heroku
  • GAE
  • 『開發語言我應該選那個?php, RoR, Python, Java?』
  • 『如果這樣,我要怎麼處理?如果那樣我要怎麼處理?』

就因為開發初期,給了太多的選項,導致一片混亂,所以浪費了很多時間。其實這些思考是需要,但是很多再開發初期其實是不必要的,其實不外乎,再沒有任何數據下的情況,你只能用猜的,所以很多東西都沒有根據,沒有根據,你就不能依據事實去修正!所以進入的狀況只是腦袋中的無窮迴圈。所以我只能說一切都是幻覺!

因為這些幻覺,導致我裹足不前,觀望了兩三個月,最後我做了一個小決定,就是先做再說!而這時候我只考慮三點:

  • 怎麼做最快
  • 有數據可以分析
  • 可以用最低人力維護(Maintainability)

而我也有考慮Scale的因素進去,不過我是拿來選語言用的。因為畢竟要從一個語言轉換到一個語言會花一些時間,但是有時候你不可能每次都是在第一次就選對!所以先做一個可以動的模型只要這個系統的是有能力scale,你也可以透過這樣小的模型去感受到,你選的東西是不是對的!下面是我認為,要提供到scale程度的難易度(簡單<難):

GAE = Heroku < Amazon EC2 (RoR) < WebHosting(RoR) = ADSL+ Server

如果你要做一個服務,請先用到前半段的 scale 服務 (GAE, Heroku or EC2),得到數據之後再來考慮應該怎麼拓展,但是要確認你的服務可以繼續維持!

當你把初步架構弄出來後,其實就可以release一個版本出來給使用者用,然後看流量的狀態,你就會知道你該怎麼樣改進你的東西。這樣的模式才是有用的。請不要傻傻的跟我一開始的想法一樣,想規劃一個超級完美的服務,通常你規劃完了,你就沒力氣做了!

PS. 我不是這方面的專家,我只是提供一個想法,歡迎討論

Charles

 

 


Posted – July 23rd, 2011
under App, 隨想
Leave a comment
 
– go to post

最近有個朋友在問,為什麼我比較不傾向接案子來做?一個月有一個案子很不錯啊!(對上班的人來說,這樣的外快是真的不錯!)但是如果你是獨立開發者,也許這樣的案子量應該是不夠的。

當然我也會開始嘗試著接案子,來補足些生活上的支出或是來調整開發的節奏,讓自己保持在有固定的產出。畢竟想要獨立開發軟體,是必須保持一定的效率,還需要一點點小資金。只是如果案子接的順利,依照現在的狀況,應該會很忙碌,忙碌到你沒有時間想自己要做的東西,你的時間都會被專案佔據,不過這樣也很充實,沒有什麼不好。只是如果想要這樣做,應該去上班,然後下班接案子會比較好!因為會固定賺的比較多(我猜的!)不過因為我在上班的時候,沒有接過案子,所以大部分的時間都花時間在公司的案子上(感覺很呆)。

做自己的創作(案子),賺的錢可以很少,也有機會很多,不過那前提是你要被看到。才會有爆炸性的成長,在那之前你必須很努力的準備,不過也可能很快就陣亡,看你可以堅持多久,怎麼調節自己的節奏與夥伴間的合作關係。其實獨立開發吸引人的地方在於,你可以決定你要怎麼做你的產品,然後使用者如果喜歡用你的產品,然後給你的回應的那種感覺,很棒啊!即使是免費的軟體,成就感也是滿分的,不過也要承受被幹瞧的情況。我想我是基於這樣的原因才想開始獨立開發。不過獨立開發不代表只有一個人,只是說在資源很少的情況下去做軟體的開發,我也是期待有同樣信念的合作夥伴,至少可以往共同目標邁進(如果你有同樣的信念,歡迎寫信給我,美工也可以)。

今年至少要寫12隻app的目標不變,希望可以維持一個水準。

Charles

 

 


 
– go to post

最近忙於折扣小幫手2.0版本的更新,以及後續的服務建置。

這套小軟體源自於自己的一個小困擾,因為我知道這樣的App很難有實際收入(看到這邊趕快打開小幫手,點個廣告贊助一下!),所以在要做不做間思考了一段時間。但是基於想解決自己問題的前提下,就這樣著手開發了!也算是實驗性質的App。

這是我第一套上架的App,也是讓我被罵很慘的一支App。

more…


Posted – June 3rd, 2011
under 隨想
Leave a comment
 
– go to post

這個網站將會專注在:

  • App開發的心得
  • 軟體開發的想法
  • 自己開發的App介紹
  • App開發教學(video)

Charles