https://www.techbang.com/posts/62754-googles-artificial-intelligence-open-source-oracle-is-three-years-old-and-its-being-used-in-a-lot-of-places-you-cant-imagine
無人機 + 光學雷達
佔據一輛無人駕駛汽車成本40%的光學雷達,以精準和無死角的空間探測能力,成為是無人駕駛領域不可或缺的存在。但和汽車相比,似乎光學雷達在無人機上更有用武之地:成像精度要求不高、行動自由範圍大、成本更低、應用領域廣泛。
更重要的是,與傳統的無人機攝影機相比,光學雷達不受光線限制,在任何光線條件下效果都不錯。原本需要大量人力物力搞定的測繪工作,光學雷達飛一飛,分分鐘就能完成。
聽起來,光學雷達和無人機,完全可以組合出道成為科技圈新的「流量擔當」。事實也正是如此。
那麼,光學雷達如果上了天,是否就所向披靡了呢?不妨跟著我們一起來思考。
光學雷達上天現狀:為地球加特效的完美組合
為無人機裝上光學雷達,可以說解決了一個人類自古以來的執念:怎樣才能站得更高、望得更遠?
光學雷達最初就是由美國太空總署於上世紀70年代開發的太空探索工具。1971年阿波羅15號所繪製的月球表面地形圖,就是由早期的光學雷達儀器來完成的。人類甚至還發明了衛星這種可以從太空俯視整個地球的「重量級武器」。
但視野變大了,使用成本也變得極其高昂。 於是,又將主意打到了無人機身上。
原本無人機的攝影機只能攝錄平面資料,再合成地圖。但光學雷達的應用,讓它對複雜環境的立體感知成為可能。
通過光學雷達感應器,無人機可以向地面發射雷射脈衝,透過回波訊號來精準檢測距離和平面高度,從而進行3D立體構圖。更重要的是,很多人類難以抵達的地方,無人機都可以輕鬆搞定。
左手無人機,右手光學雷達,於是,一個強悍且成本低的「空中之眼」誕生了。
2016年,美國國防部旗下專門研發軍事用途高科技的DARPA(國防高等研究計劃署),就公佈了自己最新的輕型無人機。搭載了光學雷達的導航模組之後,無人機可以透過多次微調成功避障,讓自動巡航成為可能。
中國也這部分也有突破。南方電網就將光學雷達應用於電力巡線,透過雲端伺服器將巡航軌跡發送給現場作業的無人機,再透過感應器完成設備的高精度巡視,即時進行缺陷分析。預計到2025年,南方電網的無人機將全部由手工遙控變為自動駕駛。
縱觀無人機光學雷達組CP的過程,不難發現,在大小、成本、性能之間取得了最佳值之後,不僅可以為地球加上3D特效,而且應用場景遠遠比我們想像的廣泛。不誇張地說,甚至比無人駕駛還要來的更超前。
無人機+光學雷達:線上巡邏
相對於無人駕駛汽車來說,光學雷達技術與無人機的組合,很快就成功出道,撬動了一大批真實的商業價值,並且很多都已經投入使用。
除了前面我們提到的電線巡航,還能輕鬆carry以下領域:
1. 遺蹟、廢墟探測
其中最值得稱道的,就是和幫助考古學家發現新的古文化遺址。在不需要進行任何挖掘甚至實地勘探工作的前提下,就能瞭解遺址的全貌和具體構造。
例如去年早些時候,就透過光學雷達掃瞄,觀測到了瓜地馬拉叢林深處的瑪雅遺址,並對延伸430英里的艾爾米拉多(El Mirador)盆地進行了勘察。
2. 農業生產觀察
空中光學雷達還能幫助農民發現生產中的一些不合理現象,改變「靠天吃飯」的現狀。
透過建立雷射訊息圖層,可以建構出農田高程地圖,從資料中可以發現那些肥料使用過度的區域,幫助農民節約肥料。
甚至在一些農業保險定損時,無人機正在大規模取代了人拿著測損儀器去受災地測量的古老方式,在那些工作人員無法進入的受災地塊,透過雷射測繪來獲得受災資料。
3. 工業測繪與勘探
光學雷達也常常與攝影測量相互補充,應用於礦石勘探、自然資源追蹤、測量交通道路、森林或水域的地圖繪製和建模。
長沙市就引入了具有3D可視光學雷達的無人機,作為空氣品質監測儀在各個街道轄區的樓頂巡邏,並進行資料分析,即時回饋城市空氣品質。
4. 輔助無人駕駛
當談及無人駕駛時,車輛頂部光學雷達的「視覺盲區」一直是事故風險的高危區。
將光學雷達裝到天上,能更好的觀測並對車輛進行巡航引導,即時通報導路故障和交通風險。在一些難以快速進行車路協同建設的偏遠地帶,使用帶有光學雷達模組的無人機進行交通指引,顯然是一個好選擇。
光學雷達和無人機,曾經是風馬牛不相及的兩個東西,正在快速來到現實世界。
技術鏈條漸漸完備:令人期待的無人機未來
無人駕駛,看起來很近,其實很遠,很多技術問題在當前條件下幾乎無解。例如說高達10萬美元的汽車光學雷達,就讓汽車造價很難被普遍商用。
而光學雷達無人機,則是看起來很近,實際上也真的很近。因為禁錮它的技術鎖鏈,正在被一一拆除:
1. 成本問題
精度要求越高,光學雷達的成本就越大。但空中探測並不需要和地面交通一樣的高精度,而且大量的微型光學雷達感應器廠商,正在想方設法解決這方面的不足。
例如DARPA推出的專為自動駕駛而設計的小型光學雷達SWEEPER,就能達到小型化、低成本、高可靠的要求。
2. 續航問題
無人機的穩定性決定了它的有效使用時間和工作效率,尤其是工業上使用的大功率設備,波士頓無人機製造商CyPhyWorks新發佈了一款無人機,在執行巡航任務時,由一條「微絲」連接,既可以傳輸資料也可從外部發電機、車輛或其他設備獲得電力,理論上說可以永不著陸充電,長續航工作正在成為可能。
3. 算力問題
無人機的有限算力,導致自主執行和完成複雜任務在現實情況下異常困難。例如利用光學雷達的即時監測實現避障,目前還不是非常流暢和成熟。而透過地面通訊基地台和雲端伺服器的協同作業,就讓無人機有了一個強大的計算外掛,也就降低了複雜任務的難度。
4. 多模態問題
目前自動無人機還面臨的一大症狀就是硬體「大拼盤」帶來的資料不互通。
光學雷達的3D資料,與高解析度攝影機、聲納、感應器等零件的多模態混合作用,要投射到雲端處理器來進行辨識處理。利用多模態AI演算法,就可以讀取、對比和分析2D、3D等複雜環境中的多重資料,來合併產生更精準的高維度地圖。
這或許是個好消息,低成本、高續航、多模態演算法的光學雷達無人機,目前看來大規模商用甚至民用,僅僅只是時間問題。
永不消逝的煩惱:為什麼這對組合只能是「OK繃技術」?
當然,很快到來並不意味著沒有不足。尤其是光學雷達+無人機這樣看起來威力極大的事物。
最核心的一個問題是,如何防止無人機在資料蒐集中進行隱私窺探?
地面取景的訊息後端,可以對一些不恰當的資料展示進行處理。例如Google地圖就設置了一個臉部辨識並自動馬賽克的功能,使用者也可以要求Google對他們的房子或車進行永久性馬賽克。甚至曾經為了保護一頭牛的隱私而對其臉部進行了馬賽克。
對大多數企業來說,理解和建立技術倫理要比技術本身難度大多了,而且成本更高。
也就是說,擁有雷射探測功能的無人機,註定很難直面大眾使用者。
與有限的商業場景所對應的,將是它的吸引力進一步減小,為它做過多的投入是沒有意義的。失去了商業價值之後,還會有人願意投入鋪設基地台、建立頻譜等基礎設施建設嗎?
我們固然可以畫出一張商業上無限美好的大餅,但缺少了基礎設施這些後端硬體的支撐,關於光學雷達無人機的想像力,始終只能停留在「備胎」層面。
綜合來看,光學雷達和無人機所帶來的商業想像力,注定了是一個帶著鐐銬的「OK繃技術」,作為其他地理訊息系統的補償方案,它會帶來不少驚喜。但越是耳聰目明,越是會被眾人所警惕。
在技術已經不成問題的當下,要跨越心理的迷障,真可以算是一道天塹了。
更重要的是,與傳統的無人機攝影機相比,光學雷達不受光線限制,在任何光線條件下效果都不錯。原本需要大量人力物力搞定的測繪工作,光學雷達飛一飛,分分鐘就能完成。
聽起來,光學雷達和無人機,完全可以組合出道成為科技圈新的「流量擔當」。事實也正是如此。
那麼,光學雷達如果上了天,是否就所向披靡了呢?不妨跟著我們一起來思考。
光學雷達上天現狀:為地球加特效的完美組合
為無人機裝上光學雷達,可以說解決了一個人類自古以來的執念:怎樣才能站得更高、望得更遠?
光學雷達最初就是由美國太空總署於上世紀70年代開發的太空探索工具。1971年阿波羅15號所繪製的月球表面地形圖,就是由早期的光學雷達儀器來完成的。人類甚至還發明了衛星這種可以從太空俯視整個地球的「重量級武器」。
但視野變大了,使用成本也變得極其高昂。 於是,又將主意打到了無人機身上。
原本無人機的攝影機只能攝錄平面資料,再合成地圖。但光學雷達的應用,讓它對複雜環境的立體感知成為可能。
通過光學雷達感應器,無人機可以向地面發射雷射脈衝,透過回波訊號來精準檢測距離和平面高度,從而進行3D立體構圖。更重要的是,很多人類難以抵達的地方,無人機都可以輕鬆搞定。
左手無人機,右手光學雷達,於是,一個強悍且成本低的「空中之眼」誕生了。
2016年,美國國防部旗下專門研發軍事用途高科技的DARPA(國防高等研究計劃署),就公佈了自己最新的輕型無人機。搭載了光學雷達的導航模組之後,無人機可以透過多次微調成功避障,讓自動巡航成為可能。
中國也這部分也有突破。南方電網就將光學雷達應用於電力巡線,透過雲端伺服器將巡航軌跡發送給現場作業的無人機,再透過感應器完成設備的高精度巡視,即時進行缺陷分析。預計到2025年,南方電網的無人機將全部由手工遙控變為自動駕駛。
縱觀無人機光學雷達組CP的過程,不難發現,在大小、成本、性能之間取得了最佳值之後,不僅可以為地球加上3D特效,而且應用場景遠遠比我們想像的廣泛。不誇張地說,甚至比無人駕駛還要來的更超前。
無人機+光學雷達:線上巡邏
相對於無人駕駛汽車來說,光學雷達技術與無人機的組合,很快就成功出道,撬動了一大批真實的商業價值,並且很多都已經投入使用。
除了前面我們提到的電線巡航,還能輕鬆carry以下領域:
1. 遺蹟、廢墟探測
其中最值得稱道的,就是和幫助考古學家發現新的古文化遺址。在不需要進行任何挖掘甚至實地勘探工作的前提下,就能瞭解遺址的全貌和具體構造。
例如去年早些時候,就透過光學雷達掃瞄,觀測到了瓜地馬拉叢林深處的瑪雅遺址,並對延伸430英里的艾爾米拉多(El Mirador)盆地進行了勘察。
2. 農業生產觀察
空中光學雷達還能幫助農民發現生產中的一些不合理現象,改變「靠天吃飯」的現狀。
透過建立雷射訊息圖層,可以建構出農田高程地圖,從資料中可以發現那些肥料使用過度的區域,幫助農民節約肥料。
甚至在一些農業保險定損時,無人機正在大規模取代了人拿著測損儀器去受災地測量的古老方式,在那些工作人員無法進入的受災地塊,透過雷射測繪來獲得受災資料。
3. 工業測繪與勘探
光學雷達也常常與攝影測量相互補充,應用於礦石勘探、自然資源追蹤、測量交通道路、森林或水域的地圖繪製和建模。
長沙市就引入了具有3D可視光學雷達的無人機,作為空氣品質監測儀在各個街道轄區的樓頂巡邏,並進行資料分析,即時回饋城市空氣品質。
4. 輔助無人駕駛
當談及無人駕駛時,車輛頂部光學雷達的「視覺盲區」一直是事故風險的高危區。
將光學雷達裝到天上,能更好的觀測並對車輛進行巡航引導,即時通報導路故障和交通風險。在一些難以快速進行車路協同建設的偏遠地帶,使用帶有光學雷達模組的無人機進行交通指引,顯然是一個好選擇。
光學雷達和無人機,曾經是風馬牛不相及的兩個東西,正在快速來到現實世界。
技術鏈條漸漸完備:令人期待的無人機未來
無人駕駛,看起來很近,其實很遠,很多技術問題在當前條件下幾乎無解。例如說高達10萬美元的汽車光學雷達,就讓汽車造價很難被普遍商用。
而光學雷達無人機,則是看起來很近,實際上也真的很近。因為禁錮它的技術鎖鏈,正在被一一拆除:
1. 成本問題
精度要求越高,光學雷達的成本就越大。但空中探測並不需要和地面交通一樣的高精度,而且大量的微型光學雷達感應器廠商,正在想方設法解決這方面的不足。
例如DARPA推出的專為自動駕駛而設計的小型光學雷達SWEEPER,就能達到小型化、低成本、高可靠的要求。
2. 續航問題
無人機的穩定性決定了它的有效使用時間和工作效率,尤其是工業上使用的大功率設備,波士頓無人機製造商CyPhyWorks新發佈了一款無人機,在執行巡航任務時,由一條「微絲」連接,既可以傳輸資料也可從外部發電機、車輛或其他設備獲得電力,理論上說可以永不著陸充電,長續航工作正在成為可能。
3. 算力問題
無人機的有限算力,導致自主執行和完成複雜任務在現實情況下異常困難。例如利用光學雷達的即時監測實現避障,目前還不是非常流暢和成熟。而透過地面通訊基地台和雲端伺服器的協同作業,就讓無人機有了一個強大的計算外掛,也就降低了複雜任務的難度。
4. 多模態問題
目前自動無人機還面臨的一大症狀就是硬體「大拼盤」帶來的資料不互通。
光學雷達的3D資料,與高解析度攝影機、聲納、感應器等零件的多模態混合作用,要投射到雲端處理器來進行辨識處理。利用多模態AI演算法,就可以讀取、對比和分析2D、3D等複雜環境中的多重資料,來合併產生更精準的高維度地圖。
這或許是個好消息,低成本、高續航、多模態演算法的光學雷達無人機,目前看來大規模商用甚至民用,僅僅只是時間問題。
永不消逝的煩惱:為什麼這對組合只能是「OK繃技術」?
當然,很快到來並不意味著沒有不足。尤其是光學雷達+無人機這樣看起來威力極大的事物。
最核心的一個問題是,如何防止無人機在資料蒐集中進行隱私窺探?
地面取景的訊息後端,可以對一些不恰當的資料展示進行處理。例如Google地圖就設置了一個臉部辨識並自動馬賽克的功能,使用者也可以要求Google對他們的房子或車進行永久性馬賽克。甚至曾經為了保護一頭牛的隱私而對其臉部進行了馬賽克。
對大多數企業來說,理解和建立技術倫理要比技術本身難度大多了,而且成本更高。
也就是說,擁有雷射探測功能的無人機,註定很難直面大眾使用者。
與有限的商業場景所對應的,將是它的吸引力進一步減小,為它做過多的投入是沒有意義的。失去了商業價值之後,還會有人願意投入鋪設基地台、建立頻譜等基礎設施建設嗎?
我們固然可以畫出一張商業上無限美好的大餅,但缺少了基礎設施這些後端硬體的支撐,關於光學雷達無人機的想像力,始終只能停留在「備胎」層面。
綜合來看,光學雷達和無人機所帶來的商業想像力,注定了是一個帶著鐐銬的「OK繃技術」,作為其他地理訊息系統的補償方案,它會帶來不少驚喜。但越是耳聰目明,越是會被眾人所警惕。
在技術已經不成問題的當下,要跨越心理的迷障,真可以算是一道天塹了。
23 歲 CEO 的矽谷週記:矽谷的創投們,如何決定大把鈔票該交給哪個團隊?
https://buzzorange.com/techorange/2018/10/22/founders-in-silicon-valley/
Samuel 是個台灣的 23 歲青年,他有自己的兩家創業公司,因為國發會計畫而有機會到矽谷去一個月,TechOrange 特地邀請他,開一個為期一個月的專欄,分享他到矽谷去的第一手見聞,並將他的體悟分享給在台灣的讀者,有志創業的、想要更瞭解矽谷成功奧秘的。
如果你想要關注 Samuel 的每週最新觀察,歡迎每週一的晚上九點,花一罐啤酒的時間,來和我們一起,透過台灣青年創業家的眼睛,重新認識矽谷、認識創業。(責任編輯:林子鈞)
第一週專欄:【專欄】23 歲 CEO 的矽谷週記:踏上這片象徵成功的土地,徹底改變了我對「成功」的定義
第二週專欄:【專欄】所有人都在瘋狂追逐區塊鏈應用,但有人想過區塊鏈真的是下一次革命嗎?
「跳下懸崖後,新創如何求援?矽谷創投是如何評估投資標的?」
我叫劉家昇,21 歲那年開始在菜市場擺攤賣堅果,創辦了團圓堅果,而後轉向電商發展,成為近兩年台灣成長最快的堅果電商品牌。
小有成績後我寫了一本書《電商從 0 到 1》,希望分享給所有有志加入電商行業的朋友們。因緣際會之下,我們獲得銀行及廣告業的前輩合夥投資,決定切入廣告產業,幫助客戶降低廣告投放成本,這項新服務在推出 2 個月內取得非常不錯的成績,也因此得到政府、創投的關注。
來到位於加州灣區最精華的創業聖地,在矽谷的第三週,每位創業者都有 5 分鐘的時間能上台 Pitch,向台下近百名矽谷創投簡報。這絕對是每位新創最興奮也是最緊張的時刻,如何在新創人海中脫穎而出,進一步與創投對談,取得資金,一直是許多新創所困惑的疑問。 LinkedIn 創辦人 Reif Hoffiman 曾說:「創業就像從懸崖上往下跳。飛速下墜的同時,一邊為自己組裝一架飛機。」想在矽谷活下去?那你不僅要會在空中造飛機,還要能邊呼救,呼喚創投投放物資,支援你造完飛機並起飛。
在要完成這個目標的前提下,矽谷創投圈的遊戲規則究竟為何?在矽谷每天都有公司成立公司解散,其中又該如何獲得創投的青睞?
經過我在矽谷的所見所聞,認為大致能分成三個指標,分別是「我認識那個誰!」、「創投與新創的互相了解」、「賭騎士不賭馬」
創投青睞指南步驟一:「我認識那個誰!」
在創投這樣的風險投資,如果有人引薦背書,自然會大大加分。雖然不至於「有關係就沒關係;沒關係就有關係」,但總會少了第一步陌生開發的難度。 舊金山創投 8VC 的創辦人 Joe Lonsdale 更直接 坦言:「募資的成敗取決於你認識誰。」這也是我很推薦大家進駐創業加速器的原因,加入加速器後的人脈資源,定會遠超出預期。我們公司的第一筆投資,便是加速器從中引薦。
「師父引進門,修行在個人」,除了依靠創投引薦,在創投圈社交能力也變得重要,矽谷常常會有創投所舉辦的晚宴、品酒會、發表等等這些都是很好的機會。如何輕鬆的融入群體,自然且清晰的表達自家產品服務的藍圖,已經是必備條件,你必須練就隨時能在短短的一分鐘內,將你的事業 Pitch 給投資人的能力。此外,在我的觀察裡,那些受到創投特別多關注的同學,一定是自信、健談、且謙虛的,若不經意提到 NBA 的比數,他也能跟你小聊幾句。廣泛的興趣常常是開啟對話的起手式或臨門一腳,球賽、運動、閱讀、飲食、遊戲等閒聊能讓這段關係多了一份「人性」,先成為朋友後能深聊的機會就能大幅提升。
在這些場合若有創投願意跟你進一步聊聊,恭喜!拿到了創投的敲門磚。
創投青睞指南步驟二:「創投與新創的互相了解」
下一步若有機會能與創投進會議室好好聊一聊,無非是對新創很大的鼓勵,誰不想遇見知音呢?
但在你期望遇到知音前,你也該主動瞭解對方。不同的創投一定會有不同的溝通方式,去分析不同創投的性質、投資案例、團隊組成、創投願景等,都是必備的功課。不僅要瞭解創投,更要讓創投好好瞭解你。
Pitch 前夕,我的同學跟我分享在 2005 年 Youtube 用 15 張的簡報,獲得風險投資公司 Sequoia Capital 350 萬美元(約 1 億 500 萬台幣)的第一輪融資;以及 2011 年 Airbnb 天使融資使用的 12 張簡報,成功融資 50 萬美金(約 1500 萬台幣)。
YouTube 簡報原檔傳送門
Airbnb 簡報原檔傳送門
當時兩家公司紛紛做足功課,提出相當大的願景吸引創投注意。在完整的 Pitch 後一定有更多投資人的問題出現,如何在 Pitch 中不被問倒,這就端看對自家公司的理解,還有能不能預判投資者們的問題,這都回到原本的課題「創投與新創的互相了解」我們完成了多少。
創投青睞指南步驟三:「賭騎士,不賭馬」
在創投圈,有一句俗語:『創投賭騎士,不賭馬』,先前在台灣我很難對這樣的敘述有深刻的體會 ,總認為產品才是最重要的關鍵,但在矽谷一行,我對於創投有不同的見解。
「我在評估投資案件時,我更關注的是團隊本身,而不是想法,因為新創公司總是時常更換題目(Pivot)」矽谷知名投資人 Tim Draper 說道。在矽谷,拿到 200 萬美金(約 6000 萬台幣)創投的投資大有人在,創投在評估新創時,除了 三大要素:市場、產品、團隊 ,更重要的便是檢視團隊、創辦人的背景,是否有能力帶領一家公司快速成長,矽谷多半的創投皆認為,新創成功的因素團隊管理就是關鍵。
試想著,矽谷每天有多少新創誕生,你現在準備的題目真的沒有人做過嗎?新創市場爆炸,飽和的機率很高,會議桌對面的投資人有很大的機會見過與你相似的題目。但團隊組成一定不會相同。
在矽谷,許多前輩和我分享,面對一樣的創業題目,他們非常重視第一印象,指的往往是報告者的個人魅力、風範或是組成團隊的新穎程度。他們甚至能一眼看出團隊裡是否具個人魅力、業務開發能力的「執行長」;能快速抓準科技浪潮的「技術長」;市場嗅覺敏銳並肩負 UI、UX 設計規劃的「行銷長」;在專業領域深根多年的「領域專家」這四種人才,如果團隊具備以上四種「好騎士」,那投資者的意願就會大幅提高,因為他們知道題目有可能 Pivot,但「人」才是關鍵。這也就是在矽谷賭騎士比賭馬重要的原因。
創投青睞指南四:融資成功不代表創業成功
成功融資對新創來說是一個相當重要的里程碑,但也使其極具挑戰目標,向創投融資不是一件容易的事,其中牽涉引薦人、投資者、被投資者三方。一次融資的成功可以說是天時地離人和的展現,雖然天時(大環境時機)、地利(投資者的變因)我們能整握的太少,但人和的部分是我們可以努力的,大膽的提出願景,細心的做好服務跟研究。以上是我在矽谷所見所聞的整理,當然不同產業與團隊有不同的方式,還是必須實際嘗試才能幫自己優化。
據統計, 北美創投一年共投資約 1,500 家科技公司,但最終成功存活的不到 5%。也就是說雖然受到創投投資是新創的里程碑,但這還只是第一步,創投的資金是用來加速成長事業體的,絕非代表成功,成功融資離真正的創業成功還有很大的差距。
Samuel 是個台灣的 23 歲青年,他有自己的兩家創業公司,因為國發會計畫而有機會到矽谷去一個月,TechOrange 特地邀請他,開一個為期一個月的專欄,分享他到矽谷去的第一手見聞,並將他的體悟分享給在台灣的讀者,有志創業的、想要更瞭解矽谷成功奧秘的。
如果你想要關注 Samuel 的每週最新觀察,歡迎每週一的晚上九點,花一罐啤酒的時間,來和我們一起,透過台灣青年創業家的眼睛,重新認識矽谷、認識創業。(責任編輯:林子鈞)
第一週專欄:【專欄】23 歲 CEO 的矽谷週記:踏上這片象徵成功的土地,徹底改變了我對「成功」的定義
第二週專欄:【專欄】所有人都在瘋狂追逐區塊鏈應用,但有人想過區塊鏈真的是下一次革命嗎?
「跳下懸崖後,新創如何求援?矽谷創投是如何評估投資標的?」
我叫劉家昇,21 歲那年開始在菜市場擺攤賣堅果,創辦了團圓堅果,而後轉向電商發展,成為近兩年台灣成長最快的堅果電商品牌。
小有成績後我寫了一本書《電商從 0 到 1》,希望分享給所有有志加入電商行業的朋友們。因緣際會之下,我們獲得銀行及廣告業的前輩合夥投資,決定切入廣告產業,幫助客戶降低廣告投放成本,這項新服務在推出 2 個月內取得非常不錯的成績,也因此得到政府、創投的關注。
來到位於加州灣區最精華的創業聖地,在矽谷的第三週,每位創業者都有 5 分鐘的時間能上台 Pitch,向台下近百名矽谷創投簡報。這絕對是每位新創最興奮也是最緊張的時刻,如何在新創人海中脫穎而出,進一步與創投對談,取得資金,一直是許多新創所困惑的疑問。 LinkedIn 創辦人 Reif Hoffiman 曾說:「創業就像從懸崖上往下跳。飛速下墜的同時,一邊為自己組裝一架飛機。」想在矽谷活下去?那你不僅要會在空中造飛機,還要能邊呼救,呼喚創投投放物資,支援你造完飛機並起飛。
在要完成這個目標的前提下,矽谷創投圈的遊戲規則究竟為何?在矽谷每天都有公司成立公司解散,其中又該如何獲得創投的青睞?
經過我在矽谷的所見所聞,認為大致能分成三個指標,分別是「我認識那個誰!」、「創投與新創的互相了解」、「賭騎士不賭馬」
創投青睞指南步驟一:「我認識那個誰!」
在創投這樣的風險投資,如果有人引薦背書,自然會大大加分。雖然不至於「有關係就沒關係;沒關係就有關係」,但總會少了第一步陌生開發的難度。 舊金山創投 8VC 的創辦人 Joe Lonsdale 更直接 坦言:「募資的成敗取決於你認識誰。」這也是我很推薦大家進駐創業加速器的原因,加入加速器後的人脈資源,定會遠超出預期。我們公司的第一筆投資,便是加速器從中引薦。
「師父引進門,修行在個人」,除了依靠創投引薦,在創投圈社交能力也變得重要,矽谷常常會有創投所舉辦的晚宴、品酒會、發表等等這些都是很好的機會。如何輕鬆的融入群體,自然且清晰的表達自家產品服務的藍圖,已經是必備條件,你必須練就隨時能在短短的一分鐘內,將你的事業 Pitch 給投資人的能力。此外,在我的觀察裡,那些受到創投特別多關注的同學,一定是自信、健談、且謙虛的,若不經意提到 NBA 的比數,他也能跟你小聊幾句。廣泛的興趣常常是開啟對話的起手式或臨門一腳,球賽、運動、閱讀、飲食、遊戲等閒聊能讓這段關係多了一份「人性」,先成為朋友後能深聊的機會就能大幅提升。
在這些場合若有創投願意跟你進一步聊聊,恭喜!拿到了創投的敲門磚。
創投青睞指南步驟二:「創投與新創的互相了解」
下一步若有機會能與創投進會議室好好聊一聊,無非是對新創很大的鼓勵,誰不想遇見知音呢?
但在你期望遇到知音前,你也該主動瞭解對方。不同的創投一定會有不同的溝通方式,去分析不同創投的性質、投資案例、團隊組成、創投願景等,都是必備的功課。不僅要瞭解創投,更要讓創投好好瞭解你。
Pitch 前夕,我的同學跟我分享在 2005 年 Youtube 用 15 張的簡報,獲得風險投資公司 Sequoia Capital 350 萬美元(約 1 億 500 萬台幣)的第一輪融資;以及 2011 年 Airbnb 天使融資使用的 12 張簡報,成功融資 50 萬美金(約 1500 萬台幣)。
YouTube 簡報原檔傳送門
Airbnb 簡報原檔傳送門
當時兩家公司紛紛做足功課,提出相當大的願景吸引創投注意。在完整的 Pitch 後一定有更多投資人的問題出現,如何在 Pitch 中不被問倒,這就端看對自家公司的理解,還有能不能預判投資者們的問題,這都回到原本的課題「創投與新創的互相了解」我們完成了多少。
創投青睞指南步驟三:「賭騎士,不賭馬」
在創投圈,有一句俗語:『創投賭騎士,不賭馬』,先前在台灣我很難對這樣的敘述有深刻的體會 ,總認為產品才是最重要的關鍵,但在矽谷一行,我對於創投有不同的見解。
「我在評估投資案件時,我更關注的是團隊本身,而不是想法,因為新創公司總是時常更換題目(Pivot)」矽谷知名投資人 Tim Draper 說道。在矽谷,拿到 200 萬美金(約 6000 萬台幣)創投的投資大有人在,創投在評估新創時,除了 三大要素:市場、產品、團隊 ,更重要的便是檢視團隊、創辦人的背景,是否有能力帶領一家公司快速成長,矽谷多半的創投皆認為,新創成功的因素團隊管理就是關鍵。
試想著,矽谷每天有多少新創誕生,你現在準備的題目真的沒有人做過嗎?新創市場爆炸,飽和的機率很高,會議桌對面的投資人有很大的機會見過與你相似的題目。但團隊組成一定不會相同。
在矽谷,許多前輩和我分享,面對一樣的創業題目,他們非常重視第一印象,指的往往是報告者的個人魅力、風範或是組成團隊的新穎程度。他們甚至能一眼看出團隊裡是否具個人魅力、業務開發能力的「執行長」;能快速抓準科技浪潮的「技術長」;市場嗅覺敏銳並肩負 UI、UX 設計規劃的「行銷長」;在專業領域深根多年的「領域專家」這四種人才,如果團隊具備以上四種「好騎士」,那投資者的意願就會大幅提高,因為他們知道題目有可能 Pivot,但「人」才是關鍵。這也就是在矽谷賭騎士比賭馬重要的原因。
創投青睞指南四:融資成功不代表創業成功
成功融資對新創來說是一個相當重要的里程碑,但也使其極具挑戰目標,向創投融資不是一件容易的事,其中牽涉引薦人、投資者、被投資者三方。一次融資的成功可以說是天時地離人和的展現,雖然天時(大環境時機)、地利(投資者的變因)我們能整握的太少,但人和的部分是我們可以努力的,大膽的提出願景,細心的做好服務跟研究。以上是我在矽谷所見所聞的整理,當然不同產業與團隊有不同的方式,還是必須實際嘗試才能幫自己優化。
據統計, 北美創投一年共投資約 1,500 家科技公司,但最終成功存活的不到 5%。也就是說雖然受到創投投資是新創的里程碑,但這還只是第一步,創投的資金是用來加速成長事業體的,絕非代表成功,成功融資離真正的創業成功還有很大的差距。
做一個功能和 WhatsApp 一模一樣的 App,需要準備多少錢?
https://buzzorange.com/techorange/2018/11/05/how-much-money-to-make-a-whatsapp-like-app/
在網路世代下作為一個主管,軟體的開發時間逐漸成為一個工作必備知識,這就好比一個伐木業總經理不能不知道木材的處理時間一樣。如果因為無知而導致產品出產不及,那就得不償失了。
轉寫本文的 Skygear 團隊專注開發後台軟體工具,他們將帶大家理解一下,一個像 WhatsApp、Uber 的 App 到底要花多少錢製作呢?
作者:任職於軟體開發公司 Skygear 的 Queenie
「我想製作一個跟 Uber 一樣的 app,價錢是多少?」
Skygear.io(作者任職公司)作為 BaaS 後台服務商,我們(本文作者)每天都會收到潛在客戶查詢價格,甚至希望直接代為開發 app 要求報價。除了查詢寫一個像 WhatsApp 或者 Uber 的 app 要多少錢以外,我們也常遇到查詢開發一個像 Airbnb、Facebook 或其他知名品牌 app 的費用。這個問題背後隱含的含意是:「我能夠複製成功模式嗎?成本是多少?」
我們暫不討論是否能夠藉由複製成功模式來創業(別忘了具爭議性的德國公司 Rocket Internet 靠著完美複製 eBay、Groupon 和 Amazon 等知名電商品牌的商業模式,成為歐洲擴張最快的跨境電商,還能夠把複製出來的公司以高價賣回給被模仿者來營利),我們今天要討論的是,如果客戶真的想要複製一個 Whatsapp、Uber 甚至 Airbnb、Facebook,需要多少錢?
一般而言,委託製作一個 app 的專案費用是以「人天」(man-day)來計算的。簡單來說就是安排工程團隊為你開發這個專案一天的費用,再乘以預測這個專案需要多久完成的天數,得出一個總額就是報價。因為開發商大多有公定的 man-day 價格,所以變動因子就只有預測時程。也就是說,一個專案的報價很大程度是根據這個專案需時多久來決定的。
聰明的你應該立刻可以聯想到, 一個專案越龐大、越複雜,所需的開發時間自然更久,費用也自然更高 。專案的複雜程度主要建基於兩個重點:一、設計概念和功能是否複雜;二、功能的多寡。現在讓我們回到最初的問題,開發一個 WhatsApp / Uber 要多少錢?
做一個像 WhatsApp 的軟體是可以多難?
目前全球已超過 13 億活躍用戶的 WhatsApp 是通訊軟體的始祖,利用網絡連線讓用戶可以簡單可靠地傳送訊息,避免產生短訊費用。有些年輕人可能沒經歷過還沒有通訊軟體的年代 — 在那個年代,大家互傳訊息是需要使用 SMS 的,如果各自使用不同的電訊商,跨台短訊會產生一筆可觀的費用。
WhatsApp 的出現讓全球用戶可以擺脫電訊商的侷限,不受限制地免費發送訊息。WhatsApp 目前主要的功能有:
傳送(和撤回)文字或語音訊息
撥打/ 接聽語音或視訊通話
群組對話
傳送多媒體(照片、影片)或文件(PDF、文檔、試算表等等)
推送通知
自動同步手機通訊錄
備份 / 刪除 / 復原訊息紀錄
功能不算很多,看起來也是一些常用功能對不對?單純以功能面來說,開發「傳送訊息」功能大概需時 7 – 10 天,「群組對話」功能大概需要 10 – 15 天,推送通知大概需要 4 – 5 天。其他功能加一加,好像一兩個月就可以完成,算一算大概港幣 20 – 30 萬、台幣 100 萬以內可以搞定?
事實上,很多開發時間都花在隱藏的項目上:
支援單一裝置到進一步支援跨裝置會讓開發時間倍增
修正 bug(尤其支援跨裝置後,讓更多用戶透過不同裝置使用產品就會發現更多之前難以察覺的 bug))
語音通話 / 視訊通話的性能調整(如何減少斷訊、改善通話品質等等)
打造更細緻的用戶體驗(例如在傳送圖片前可以直接編輯、點名用戶;提供更準確的對話搜尋功能)
建構更穩定的後端(建立一個能穩定服務 1,000 名和 10,000 名同時連接用戶(concurrent user)的後台是完全不同的等級)
此外, WhatsApp 使用無縫端對端的訊息加密來保護個人隱私,讓駭客、政府甚至 WhatsApp 本身都無法監控訊息內容。
大家可能會以為加密訊息不就是一般通訊軟體必備的功能嗎?應該沒有很難吧? 但你知道 Whatsapp 從開始研究到最後完全實現這件事情總共花了多少時間嗎?三年(而且不是獨立完成而是與加密軟體新創 Signal 合作的)。保守估計, 如果開發第一個版本要花上四個月,費用就比一開始預估台幣 100 萬以內要多出一倍了,還沒包含持續更新的費用。(先賣個關子,下面會再為大家分析評估開發時間和費用)
Uber 軟體的製作也沒有想像的簡單
WhatsApp 估計要花上四個月快 200 萬的預算,那麼共享經濟的傳奇 Uber 呢?
Uber 以共享經濟的理念顛覆了交通運輸,風頭一時無兩,很多創業家夢想成為「XX 行業的 Uber」。但首先要提醒大家一點是,Uber 成功的原因並不是因為「它是一個很酷的 app」而是它背後提供給用戶快速、準確的媒合服務。 接下來我們來拆解 Uber app 的主要功能:
乘客面向:
註冊、登入和管理乘客帳號
上車及下車地點定位
聯繫司機
觀看地圖
付款方式
司機面向:
註冊、登入和管理司機帳號
接受預約行程及導航
完成行程後顯示狀態
車資及收款
其中「註冊、登入和管理帳號」大概需要開發 5 天,「付款方式」需要 8 天,「接受或取消預約」大概需要 5 天。但這些只是最基本功能,別忘了 Uber app 的設計屬於高度複雜等級,如何運用大數據計算出對司機及乘客最有利的接送 / 搭乘解決方案才是重點,單是實時動態定價策略就要開發 10 天以上了,還沒包含加入歷史數據、用戶喜好等考量。
初步估計,以開發半年為期,想複製一個 Uber 的雛形就要接近港幣 100 萬(約 400 萬台幣)。
一個功能簡單的 App 至少都要 120 萬台幣起跳,時間至少抓個半年最好
國外 App 開發公司 Goodfirms 曾進行過相關調查。調查結果 顯示,估計開發一個 高度複雜的 app 成本約需 70,000 至 100,000 美金(約台幣 220 – 300 萬),中等複雜的 app 約需 61,000 至 69,000 美金(約台幣 190 – 210 萬),至於功能簡單的 app 約需 40,000 至 60,000 美金(約台幣 120 – 190 萬)。
以 Uber 為例,估計開發需時 5.61 個月,平均成本為 91,218 美元(約台幣 280 萬)。至於開發 Whatsapp 的話,估計需時 4.66 個月,平均成本為 64,333.3 美元(約台幣 200 萬)。
開發一個 iOS / Android app 需要多久?
上面提到主要是開發功能的技術層面,其實 app 的開發週期裡,前期的研究和策劃(例如與使用者進行訪談,根據用戶意見來改善使用者介面和體驗)、後期的品質管理(QA)測試 app 是否能正常操作等等都會需要一定的時間。不過,也不是每一個 app 都會像 Uber 或者 WhatsApp 那麼複雜,那麼開發一般的 app 大概需時多久?
另一家國外公司 Kinvey 曾經訪問了 100 位 app 開發者,綜合調查結果,開發一款具備主要功能、結合前後端的 iOS / Android app 平均需要 18 週(約 4.5 個月)。當然,實際的開發時間還是需要個別 app 的功能需求而定。
不過縱觀兩個調查結果,想要開發一個 iOS / Android app,至少也得花上數月。假設一個 man-day 定價是台幣 20,000 元,要完成四個月的開發週期,開發成本大概台幣兩百多萬。
「我希望能像 WhatsApp 和 Uber 那樣成功,但沒有那麼多預算怎麼辦?」
既然開發成本跟開發時間息息相關,那有沒有方法可以縮短開發週期,降低開發成本?(這也是我們客戶常常查詢的問題)
引用一下股神巴菲特的名言:
無論才華多高、付出的努力多少,
有些事情還是需要時間。
你不可能讓九個女人同時懷孕,
然後寄望一個月後得到一個寶寶。
開發過程中有很多關鍵是無法妥協的。比如說,在架設一個 app 的基礎架構時,就算再熟練的工程師還是需要花費固定的時間。又或者想略過 QA 節省時間,結果弄巧反拙,導致 bug 無法在前期被發現,倉促推出後反而影響用戶體驗。
當然,這也不代表開發 app 是那麼死板的事情。如果想要縮短開發時間、減少創業成本的話,你可以考慮:
思考最小可行性產品 MVP
大部份創業家對最小可行性產品(MVP)的概念應該並不陌生。顧名思義,最小可行性產品是以最低的成本來完成一個產品的雛形,快速投放到市場上來測試它是否可行。MVP 的核心重點並不是以最便宜的價格來打造產品,而是利用相對低的成本和相對少的時間來完成產品,透過市場快速驗證自己的想法是否可行。
很多創業者期望能夠完美複製一個 WhatsApp、Uber 或其他知名品牌。在追求完美的過程中,很容易無止境的懷疑自己的產品還不夠完美,卻忽略了一個重點: 你想要複製到什麼程度?你的 app 是否真的需要包山包海、擁有所有功能才能達成你的目標?
MVP 就是要摒除這種想法。比起耗費大量資金和時間來完成心目中「完美」的產品,MVP 開發模式提倡以最少的成本來製作出一個能夠向市場表達你的核心設計概念的產品,透過市場的反饋來驗證你的點子是否能被市場接受和是否足以獲得利潤。獲得用戶回饋(甚至是獲得投資者的青睞而得到新資金)後,再慢慢修正、優化產品,讓產品變得更成熟。這樣的開發模式大大減低了投資風險,避免花了大把資金、結果產品卻無人問津的窘境。
我們就曾為其中一位客戶使用 MVP 模式在三個月內快速開發出三個版本投放到市場做測試,再透過收集用戶反饋數據來優化產品,最終產品順利通過市場考驗,客戶更成功獲得創投注資。請記得,在你打算長時間開發產品的時候,很有可能別人已經先把類似的概念發佈出來了,創業某程度上就是一場時間的競賽。
做好事前準備、想好需求,以節省雙方時間、財務成本
出色的 UI / UX(使用者介面 / 使用者體驗)跟無瑕的程式碼一樣重要,兩者結合決定了 app 的成敗。在正式開發之前,開發商一般會先進行產業調查、深入了解客戶的想法、設計介面流程等等前期準備工作。創業家與開發商合作的時候,事先應該做好充份的準備,明確訂立自己的期望和需要的功能。如果希望額外進行使用者訪談,建議先構想好自己想從訪談裡了解的重點,比如說你想了解用戶的喜好需求?使用習慣?還是用戶對競爭對手產品的感想?
事前準備越充足,就能 有效避免因為反覆修改而拉長了開發時間或浪費額外的費用。
開發 App 不一定要白手起家,使用 Baas 工具讓你省下 50% 的開發費用
一般小型新創團隊可能人力資源有限(或缺少同時擅長前後端的工程師), 但其實不一定所有部分都要自行從零開始打造 !像 BaaS 就是常見被利用來加快 app 開發速度的工具。
BaaS(後端即服務)可以稱得上是開發 app 的捷徑,它把後端服務轉移至第三方服務商運行,讓工程師節省開發後端環境和搭建伺服器的時間之餘,也降低了初期投入的成本,還確保了數據安全和未來的可擴充性。
譬如我們的 BaaS 工具 Skygear.io(又或是 Google 的 Firebase)可以在沒有後端工程師的協助下,讓前端工程師快速架設後台並選擇套用常見的後端功能(例如 聊天功能 、CMS、社交媒體帳號登入、雲端資料庫等等),得以專注在設計前端的用戶體驗上。以一個 50/50 比例的前後端設計為例,免除後端開發就已經減少了一半的開發時間,等於省下了 50% 的開發費用。
厲害的發明之所以成功,都是因為他們打到生活「痛點」
WhatsApp / Uber 的成功例子讓很多有興趣以 app 創業的人躍躍欲試,但畢竟不是每個人都有那麼充裕的時間和資金去開發產品,大家可以考慮使用 MVP 模式、做好前期準備和善用 工具 縮短開發週期、減省成本。
另一方面,其實 WhatsApp / Uber 之所以得到史無前例的成功,並不是因為他們比其他創業家有更多的錢和開發時間,而是它們的設計概念確實有效解決了很多人生活中的痛點(painpoint),可見創業最重要的成功因素,還是在於透過產品想要表達的核心創意呢。
在網路世代下作為一個主管,軟體的開發時間逐漸成為一個工作必備知識,這就好比一個伐木業總經理不能不知道木材的處理時間一樣。如果因為無知而導致產品出產不及,那就得不償失了。
轉寫本文的 Skygear 團隊專注開發後台軟體工具,他們將帶大家理解一下,一個像 WhatsApp、Uber 的 App 到底要花多少錢製作呢?
作者:任職於軟體開發公司 Skygear 的 Queenie
「我想製作一個跟 Uber 一樣的 app,價錢是多少?」
Skygear.io(作者任職公司)作為 BaaS 後台服務商,我們(本文作者)每天都會收到潛在客戶查詢價格,甚至希望直接代為開發 app 要求報價。除了查詢寫一個像 WhatsApp 或者 Uber 的 app 要多少錢以外,我們也常遇到查詢開發一個像 Airbnb、Facebook 或其他知名品牌 app 的費用。這個問題背後隱含的含意是:「我能夠複製成功模式嗎?成本是多少?」
我們暫不討論是否能夠藉由複製成功模式來創業(別忘了具爭議性的德國公司 Rocket Internet 靠著完美複製 eBay、Groupon 和 Amazon 等知名電商品牌的商業模式,成為歐洲擴張最快的跨境電商,還能夠把複製出來的公司以高價賣回給被模仿者來營利),我們今天要討論的是,如果客戶真的想要複製一個 Whatsapp、Uber 甚至 Airbnb、Facebook,需要多少錢?
一般而言,委託製作一個 app 的專案費用是以「人天」(man-day)來計算的。簡單來說就是安排工程團隊為你開發這個專案一天的費用,再乘以預測這個專案需要多久完成的天數,得出一個總額就是報價。因為開發商大多有公定的 man-day 價格,所以變動因子就只有預測時程。也就是說,一個專案的報價很大程度是根據這個專案需時多久來決定的。
聰明的你應該立刻可以聯想到, 一個專案越龐大、越複雜,所需的開發時間自然更久,費用也自然更高 。專案的複雜程度主要建基於兩個重點:一、設計概念和功能是否複雜;二、功能的多寡。現在讓我們回到最初的問題,開發一個 WhatsApp / Uber 要多少錢?
做一個像 WhatsApp 的軟體是可以多難?
目前全球已超過 13 億活躍用戶的 WhatsApp 是通訊軟體的始祖,利用網絡連線讓用戶可以簡單可靠地傳送訊息,避免產生短訊費用。有些年輕人可能沒經歷過還沒有通訊軟體的年代 — 在那個年代,大家互傳訊息是需要使用 SMS 的,如果各自使用不同的電訊商,跨台短訊會產生一筆可觀的費用。
WhatsApp 的出現讓全球用戶可以擺脫電訊商的侷限,不受限制地免費發送訊息。WhatsApp 目前主要的功能有:
傳送(和撤回)文字或語音訊息
撥打/ 接聽語音或視訊通話
群組對話
傳送多媒體(照片、影片)或文件(PDF、文檔、試算表等等)
推送通知
自動同步手機通訊錄
備份 / 刪除 / 復原訊息紀錄
功能不算很多,看起來也是一些常用功能對不對?單純以功能面來說,開發「傳送訊息」功能大概需時 7 – 10 天,「群組對話」功能大概需要 10 – 15 天,推送通知大概需要 4 – 5 天。其他功能加一加,好像一兩個月就可以完成,算一算大概港幣 20 – 30 萬、台幣 100 萬以內可以搞定?
事實上,很多開發時間都花在隱藏的項目上:
支援單一裝置到進一步支援跨裝置會讓開發時間倍增
修正 bug(尤其支援跨裝置後,讓更多用戶透過不同裝置使用產品就會發現更多之前難以察覺的 bug))
語音通話 / 視訊通話的性能調整(如何減少斷訊、改善通話品質等等)
打造更細緻的用戶體驗(例如在傳送圖片前可以直接編輯、點名用戶;提供更準確的對話搜尋功能)
建構更穩定的後端(建立一個能穩定服務 1,000 名和 10,000 名同時連接用戶(concurrent user)的後台是完全不同的等級)
此外, WhatsApp 使用無縫端對端的訊息加密來保護個人隱私,讓駭客、政府甚至 WhatsApp 本身都無法監控訊息內容。
大家可能會以為加密訊息不就是一般通訊軟體必備的功能嗎?應該沒有很難吧? 但你知道 Whatsapp 從開始研究到最後完全實現這件事情總共花了多少時間嗎?三年(而且不是獨立完成而是與加密軟體新創 Signal 合作的)。保守估計, 如果開發第一個版本要花上四個月,費用就比一開始預估台幣 100 萬以內要多出一倍了,還沒包含持續更新的費用。(先賣個關子,下面會再為大家分析評估開發時間和費用)
Uber 軟體的製作也沒有想像的簡單
WhatsApp 估計要花上四個月快 200 萬的預算,那麼共享經濟的傳奇 Uber 呢?
Uber 以共享經濟的理念顛覆了交通運輸,風頭一時無兩,很多創業家夢想成為「XX 行業的 Uber」。但首先要提醒大家一點是,Uber 成功的原因並不是因為「它是一個很酷的 app」而是它背後提供給用戶快速、準確的媒合服務。 接下來我們來拆解 Uber app 的主要功能:
乘客面向:
註冊、登入和管理乘客帳號
上車及下車地點定位
聯繫司機
觀看地圖
付款方式
司機面向:
註冊、登入和管理司機帳號
接受預約行程及導航
完成行程後顯示狀態
車資及收款
其中「註冊、登入和管理帳號」大概需要開發 5 天,「付款方式」需要 8 天,「接受或取消預約」大概需要 5 天。但這些只是最基本功能,別忘了 Uber app 的設計屬於高度複雜等級,如何運用大數據計算出對司機及乘客最有利的接送 / 搭乘解決方案才是重點,單是實時動態定價策略就要開發 10 天以上了,還沒包含加入歷史數據、用戶喜好等考量。
初步估計,以開發半年為期,想複製一個 Uber 的雛形就要接近港幣 100 萬(約 400 萬台幣)。
一個功能簡單的 App 至少都要 120 萬台幣起跳,時間至少抓個半年最好
國外 App 開發公司 Goodfirms 曾進行過相關調查。調查結果 顯示,估計開發一個 高度複雜的 app 成本約需 70,000 至 100,000 美金(約台幣 220 – 300 萬),中等複雜的 app 約需 61,000 至 69,000 美金(約台幣 190 – 210 萬),至於功能簡單的 app 約需 40,000 至 60,000 美金(約台幣 120 – 190 萬)。
以 Uber 為例,估計開發需時 5.61 個月,平均成本為 91,218 美元(約台幣 280 萬)。至於開發 Whatsapp 的話,估計需時 4.66 個月,平均成本為 64,333.3 美元(約台幣 200 萬)。
開發一個 iOS / Android app 需要多久?
上面提到主要是開發功能的技術層面,其實 app 的開發週期裡,前期的研究和策劃(例如與使用者進行訪談,根據用戶意見來改善使用者介面和體驗)、後期的品質管理(QA)測試 app 是否能正常操作等等都會需要一定的時間。不過,也不是每一個 app 都會像 Uber 或者 WhatsApp 那麼複雜,那麼開發一般的 app 大概需時多久?
另一家國外公司 Kinvey 曾經訪問了 100 位 app 開發者,綜合調查結果,開發一款具備主要功能、結合前後端的 iOS / Android app 平均需要 18 週(約 4.5 個月)。當然,實際的開發時間還是需要個別 app 的功能需求而定。
不過縱觀兩個調查結果,想要開發一個 iOS / Android app,至少也得花上數月。假設一個 man-day 定價是台幣 20,000 元,要完成四個月的開發週期,開發成本大概台幣兩百多萬。
「我希望能像 WhatsApp 和 Uber 那樣成功,但沒有那麼多預算怎麼辦?」
既然開發成本跟開發時間息息相關,那有沒有方法可以縮短開發週期,降低開發成本?(這也是我們客戶常常查詢的問題)
引用一下股神巴菲特的名言:
無論才華多高、付出的努力多少,
有些事情還是需要時間。
你不可能讓九個女人同時懷孕,
然後寄望一個月後得到一個寶寶。
開發過程中有很多關鍵是無法妥協的。比如說,在架設一個 app 的基礎架構時,就算再熟練的工程師還是需要花費固定的時間。又或者想略過 QA 節省時間,結果弄巧反拙,導致 bug 無法在前期被發現,倉促推出後反而影響用戶體驗。
當然,這也不代表開發 app 是那麼死板的事情。如果想要縮短開發時間、減少創業成本的話,你可以考慮:
思考最小可行性產品 MVP
大部份創業家對最小可行性產品(MVP)的概念應該並不陌生。顧名思義,最小可行性產品是以最低的成本來完成一個產品的雛形,快速投放到市場上來測試它是否可行。MVP 的核心重點並不是以最便宜的價格來打造產品,而是利用相對低的成本和相對少的時間來完成產品,透過市場快速驗證自己的想法是否可行。
很多創業者期望能夠完美複製一個 WhatsApp、Uber 或其他知名品牌。在追求完美的過程中,很容易無止境的懷疑自己的產品還不夠完美,卻忽略了一個重點: 你想要複製到什麼程度?你的 app 是否真的需要包山包海、擁有所有功能才能達成你的目標?
MVP 就是要摒除這種想法。比起耗費大量資金和時間來完成心目中「完美」的產品,MVP 開發模式提倡以最少的成本來製作出一個能夠向市場表達你的核心設計概念的產品,透過市場的反饋來驗證你的點子是否能被市場接受和是否足以獲得利潤。獲得用戶回饋(甚至是獲得投資者的青睞而得到新資金)後,再慢慢修正、優化產品,讓產品變得更成熟。這樣的開發模式大大減低了投資風險,避免花了大把資金、結果產品卻無人問津的窘境。
我們就曾為其中一位客戶使用 MVP 模式在三個月內快速開發出三個版本投放到市場做測試,再透過收集用戶反饋數據來優化產品,最終產品順利通過市場考驗,客戶更成功獲得創投注資。請記得,在你打算長時間開發產品的時候,很有可能別人已經先把類似的概念發佈出來了,創業某程度上就是一場時間的競賽。
做好事前準備、想好需求,以節省雙方時間、財務成本
出色的 UI / UX(使用者介面 / 使用者體驗)跟無瑕的程式碼一樣重要,兩者結合決定了 app 的成敗。在正式開發之前,開發商一般會先進行產業調查、深入了解客戶的想法、設計介面流程等等前期準備工作。創業家與開發商合作的時候,事先應該做好充份的準備,明確訂立自己的期望和需要的功能。如果希望額外進行使用者訪談,建議先構想好自己想從訪談裡了解的重點,比如說你想了解用戶的喜好需求?使用習慣?還是用戶對競爭對手產品的感想?
事前準備越充足,就能 有效避免因為反覆修改而拉長了開發時間或浪費額外的費用。
開發 App 不一定要白手起家,使用 Baas 工具讓你省下 50% 的開發費用
一般小型新創團隊可能人力資源有限(或缺少同時擅長前後端的工程師), 但其實不一定所有部分都要自行從零開始打造 !像 BaaS 就是常見被利用來加快 app 開發速度的工具。
BaaS(後端即服務)可以稱得上是開發 app 的捷徑,它把後端服務轉移至第三方服務商運行,讓工程師節省開發後端環境和搭建伺服器的時間之餘,也降低了初期投入的成本,還確保了數據安全和未來的可擴充性。
譬如我們的 BaaS 工具 Skygear.io(又或是 Google 的 Firebase)可以在沒有後端工程師的協助下,讓前端工程師快速架設後台並選擇套用常見的後端功能(例如 聊天功能 、CMS、社交媒體帳號登入、雲端資料庫等等),得以專注在設計前端的用戶體驗上。以一個 50/50 比例的前後端設計為例,免除後端開發就已經減少了一半的開發時間,等於省下了 50% 的開發費用。
厲害的發明之所以成功,都是因為他們打到生活「痛點」
WhatsApp / Uber 的成功例子讓很多有興趣以 app 創業的人躍躍欲試,但畢竟不是每個人都有那麼充裕的時間和資金去開發產品,大家可以考慮使用 MVP 模式、做好前期準備和善用 工具 縮短開發週期、減省成本。
另一方面,其實 WhatsApp / Uber 之所以得到史無前例的成功,並不是因為他們比其他創業家有更多的錢和開發時間,而是它們的設計概念確實有效解決了很多人生活中的痛點(painpoint),可見創業最重要的成功因素,還是在於透過產品想要表達的核心創意呢。
四大指標找到神隊友:AppWorks 分析師看完千位創業者後,給新創的找夥伴指南
https://buzzorange.com/techorange/2017/09/20/appworks-how-to-find-your-cofounder/
經過四年多,作者 Gaga Liu 從 AppWorks 的實習生到成為分析師,輔導過許多新創團隊,也見識過形形色色的創業者。身為亞洲最大創業加速器的一員,從他眼中看到適合創業的人會是什麼樣子?身為一個創業者,你又是從何時開始需要找共同創辦人呢?我覺得從實務經驗來說,這篇文章裡的資訊都是對創業者和新創公司來說很好的見解。
我在 2013 年加入 AppWorks,而因為 AppWorks Accelerator 一年招收的團隊超過 60 個 ,所以,我認識的創業者也跟著以每年百人為單位快速增加,至今已累計近千人。
在陪伴團隊創業的過程中,很多創業者會跟我分享他們的創業題目是如何醞釀出來的,當然,我們也一定會聊到團隊創辦人如何認識彼此,又是基於什麼樣的機緣一同開啟他們的創業路。
有些團隊打從一開始就有完整成員,有些則是在最初的創辦人開始創業後,才陸續有其他共同創辦人加入。雖說是後來才加入,但他們在團隊中一樣扮演至關重要的角色,在 AppWorks 的校友團隊中,便有部分產品或服務,是因為共同創辦人的加入,而有更加亮眼的表現。
什麼時候需要找共同創辦人?
根據我的觀察,新創團隊的創辦人大多會在下列幾種時機或狀態,開始尋找共同創辦人,以求加快公司發展的速度。
1. 單飛創辦人,本身無法實作產品
這可能是創業者的第一個 Idea,他過去尚未和太多朋友聊過這個 Idea,只把它藏在心裡等待時機。然而,當他開始起步時,卻發現自己需要其他專業能力,才能讓這個 Idea 真正成形,進而推向市場。在網路產業,絕大部份的時候,他會需要一位能夠把產品實作出來的共同創辦人。
2. 單飛技術創辦人,需要夥伴負責商務營運
創業者已經把產品做好,也很幸運的獲得許多用戶的反饋,除了持續專注開發產品,接踵而來的客戶需求也必須同時處理。但是,為了處理這些商品之外的問題,數天、數週下來,產品開發進程已嚴重受到影響。為了發展出可以長期營運的機制,並維持團隊的競爭力, 創業者需要能夠瞭解客戶,並擅於處理各種需求的人幫忙分擔工作。
3. 已有團隊成員,但還需尋找具不同專業的夥伴
現有團隊成員的能力不足以應付創業過程中的所有需求,需要具備其他專長的夥伴加入。當然,不是每個新加入的成員都想當創辦人,但一般來說, 新加入成員的專長和產品的發展越密不可分,就越需要扮演共同創辦者的角色。
4. 資金不足
當手上資源不足,創業者便會希望能夠找人挹注資金或帶來其他資源,同時也希望這個人和他志同道合,最好是可以加入團隊、貢獻專長。若幸運遇到能夠幫忙將產品推向市場的共同創辦人,這個人願意貢獻的資金,對公司來說便是額外營運資金,可以藉以加速成長,但彼此也必須清楚溝通,這筆投資帶有高風險,並不保證能夠獲利。
如果你正要開始或已經開始創業,且又符合以上任一種情況, 我建議你積極和周遭的人分享你的 Idea 與理念,看看是否有人喜歡你的點子,願意加入你的創業。 當然,要尋找一個可以和你一起長期奮戰的共同創辦人並不容易,因為大部分的時候,創業團隊都要自己摸石頭過河,不像在一般公司上班,有可供遵循的制度或典範,願意挑戰這段過程的人已經非常少了,能否在這當中發揮所長,又是另一個課題。
成功團隊創辦人的共同特點
和這麼多創業團隊深入相處後,我在那些創業成功的團隊中發現不少共通點,也從創業失敗的團隊看到一些相同的問題。在此,我根據過去的觀察,整理出幾個準則,提供大家在尋找共同創辦人時作為參考。
1. 能力必須互補
共同創辦人應補足你的不足之處,才能幫助公司成長。 能力重疊性高的共同創辦人,會造成其中一方必須把時間花在自己比較不擅長的事情上 ,當然,若能順利適應、安然度過磨合期,倒也是一樁好事,但極少創業者能夠順利轉換心態。因此,最好能夠選擇能力和你互補的人。
2. 個性最好也能互補
不同的個性能夠勝任的工作也不一樣,外向的創業者可負責對外溝通,個性偏內向的那位就可負責內部管理。有些人擅長看大局、抓方向,有些人的執行力高,且善於鑽研細節,若能根據這些差異,讓工作有妥善安排,通常可以讓團隊的潛能有更好的發揮。
3. 和你一樣高度投入
創業的工作步調和模式與在公司上班完全不同,特別是營收,一開始幾乎都是在燒錢,不太可能開工第一天就有進帳。再加上為了把握時間,草創時期可說是不分平日、週末都要全心投入打造產品、研擬商業模式。如果新加入的共同創辦人無法配合 CEO 擬訂的工作計畫和方向,別說個人,就算是團隊要付出的共同時間成本和機會成本也會變得更高。
4. 有共同價值觀和願景,且雙方可良好溝通
創業講求決策與執行效率,一定要快速試錯、快速修正,才有成功的機會。共同創辦人必須有共識,接受彼此的價值觀,並了解對方的期待,力量才可能真正凝聚,進而產生一加一大於二的效果。若在認知基礎上有很大的差異,經常有摩擦且無法解決問題,當公司處於低谷時,就難以保持共體時艱的心態。
盡量避免和這兩種人一起創業
以上是我針對尋找共同創辦人所提出的幾個建議,但在此我想特別提醒大家的是,某些特殊狀況可能會讓上述判斷基準被忽視:
1. 夫妻或情侶一起創業
許多人在第一次創業時,都會找自己熟識的朋友或身邊的家人一起加入,以為有感情的基礎,一切都好商量。但事實上,這樣的組合有一些隱形的危機,特別是夫妻或情侶創業。
為了支持心愛的人,許多創辦人的伴侶的確很可能離開原有的工作,全職投入、貢獻心力。但若彼此的個性和能力重疊性高,應該另覓其他人選,否則不僅是把雞蛋放在同個籃子裡,增加風險,對公司的成長幫助也不大。
2. 和業界大神或名人一起創業
若有人因為喜歡你的 Idea 和團隊,而主動找上你,希望成為共同創辦人,倍感榮幸的同時,也 請冷靜判斷他的專長是否是你的產品需要的,他是否能全力投入團隊運作,以及他期待加入後能夠獲得什麼。 如果權衡之下,你發現沒有可以讓他實際參與執行的事情,不妨讓這份良緣維持在好朋友或顧問的關係,否則分手只會讓你更難過。
衷心建議正在尋找共同創辦人的你把以上幾個要點放在心上,事前仔細確認對方是不是最適合的人選,畢竟,請人容易送人難,共同創辦人分手往往是非常痛苦的過程。若幾位共同創辦人都有一樣的認知和決心,不僅可以加快團隊的成長速度,即使團隊陷入低谷時,也可以攜手突破難關。
經過四年多,作者 Gaga Liu 從 AppWorks 的實習生到成為分析師,輔導過許多新創團隊,也見識過形形色色的創業者。身為亞洲最大創業加速器的一員,從他眼中看到適合創業的人會是什麼樣子?身為一個創業者,你又是從何時開始需要找共同創辦人呢?我覺得從實務經驗來說,這篇文章裡的資訊都是對創業者和新創公司來說很好的見解。
我在 2013 年加入 AppWorks,而因為 AppWorks Accelerator 一年招收的團隊超過 60 個 ,所以,我認識的創業者也跟著以每年百人為單位快速增加,至今已累計近千人。
在陪伴團隊創業的過程中,很多創業者會跟我分享他們的創業題目是如何醞釀出來的,當然,我們也一定會聊到團隊創辦人如何認識彼此,又是基於什麼樣的機緣一同開啟他們的創業路。
有些團隊打從一開始就有完整成員,有些則是在最初的創辦人開始創業後,才陸續有其他共同創辦人加入。雖說是後來才加入,但他們在團隊中一樣扮演至關重要的角色,在 AppWorks 的校友團隊中,便有部分產品或服務,是因為共同創辦人的加入,而有更加亮眼的表現。
什麼時候需要找共同創辦人?
根據我的觀察,新創團隊的創辦人大多會在下列幾種時機或狀態,開始尋找共同創辦人,以求加快公司發展的速度。
1. 單飛創辦人,本身無法實作產品
這可能是創業者的第一個 Idea,他過去尚未和太多朋友聊過這個 Idea,只把它藏在心裡等待時機。然而,當他開始起步時,卻發現自己需要其他專業能力,才能讓這個 Idea 真正成形,進而推向市場。在網路產業,絕大部份的時候,他會需要一位能夠把產品實作出來的共同創辦人。
2. 單飛技術創辦人,需要夥伴負責商務營運
創業者已經把產品做好,也很幸運的獲得許多用戶的反饋,除了持續專注開發產品,接踵而來的客戶需求也必須同時處理。但是,為了處理這些商品之外的問題,數天、數週下來,產品開發進程已嚴重受到影響。為了發展出可以長期營運的機制,並維持團隊的競爭力, 創業者需要能夠瞭解客戶,並擅於處理各種需求的人幫忙分擔工作。
3. 已有團隊成員,但還需尋找具不同專業的夥伴
現有團隊成員的能力不足以應付創業過程中的所有需求,需要具備其他專長的夥伴加入。當然,不是每個新加入的成員都想當創辦人,但一般來說, 新加入成員的專長和產品的發展越密不可分,就越需要扮演共同創辦者的角色。
4. 資金不足
當手上資源不足,創業者便會希望能夠找人挹注資金或帶來其他資源,同時也希望這個人和他志同道合,最好是可以加入團隊、貢獻專長。若幸運遇到能夠幫忙將產品推向市場的共同創辦人,這個人願意貢獻的資金,對公司來說便是額外營運資金,可以藉以加速成長,但彼此也必須清楚溝通,這筆投資帶有高風險,並不保證能夠獲利。
如果你正要開始或已經開始創業,且又符合以上任一種情況, 我建議你積極和周遭的人分享你的 Idea 與理念,看看是否有人喜歡你的點子,願意加入你的創業。 當然,要尋找一個可以和你一起長期奮戰的共同創辦人並不容易,因為大部分的時候,創業團隊都要自己摸石頭過河,不像在一般公司上班,有可供遵循的制度或典範,願意挑戰這段過程的人已經非常少了,能否在這當中發揮所長,又是另一個課題。
成功團隊創辦人的共同特點
和這麼多創業團隊深入相處後,我在那些創業成功的團隊中發現不少共通點,也從創業失敗的團隊看到一些相同的問題。在此,我根據過去的觀察,整理出幾個準則,提供大家在尋找共同創辦人時作為參考。
1. 能力必須互補
共同創辦人應補足你的不足之處,才能幫助公司成長。 能力重疊性高的共同創辦人,會造成其中一方必須把時間花在自己比較不擅長的事情上 ,當然,若能順利適應、安然度過磨合期,倒也是一樁好事,但極少創業者能夠順利轉換心態。因此,最好能夠選擇能力和你互補的人。
2. 個性最好也能互補
不同的個性能夠勝任的工作也不一樣,外向的創業者可負責對外溝通,個性偏內向的那位就可負責內部管理。有些人擅長看大局、抓方向,有些人的執行力高,且善於鑽研細節,若能根據這些差異,讓工作有妥善安排,通常可以讓團隊的潛能有更好的發揮。
3. 和你一樣高度投入
創業的工作步調和模式與在公司上班完全不同,特別是營收,一開始幾乎都是在燒錢,不太可能開工第一天就有進帳。再加上為了把握時間,草創時期可說是不分平日、週末都要全心投入打造產品、研擬商業模式。如果新加入的共同創辦人無法配合 CEO 擬訂的工作計畫和方向,別說個人,就算是團隊要付出的共同時間成本和機會成本也會變得更高。
4. 有共同價值觀和願景,且雙方可良好溝通
創業講求決策與執行效率,一定要快速試錯、快速修正,才有成功的機會。共同創辦人必須有共識,接受彼此的價值觀,並了解對方的期待,力量才可能真正凝聚,進而產生一加一大於二的效果。若在認知基礎上有很大的差異,經常有摩擦且無法解決問題,當公司處於低谷時,就難以保持共體時艱的心態。
盡量避免和這兩種人一起創業
以上是我針對尋找共同創辦人所提出的幾個建議,但在此我想特別提醒大家的是,某些特殊狀況可能會讓上述判斷基準被忽視:
1. 夫妻或情侶一起創業
許多人在第一次創業時,都會找自己熟識的朋友或身邊的家人一起加入,以為有感情的基礎,一切都好商量。但事實上,這樣的組合有一些隱形的危機,特別是夫妻或情侶創業。
為了支持心愛的人,許多創辦人的伴侶的確很可能離開原有的工作,全職投入、貢獻心力。但若彼此的個性和能力重疊性高,應該另覓其他人選,否則不僅是把雞蛋放在同個籃子裡,增加風險,對公司的成長幫助也不大。
2. 和業界大神或名人一起創業
若有人因為喜歡你的 Idea 和團隊,而主動找上你,希望成為共同創辦人,倍感榮幸的同時,也 請冷靜判斷他的專長是否是你的產品需要的,他是否能全力投入團隊運作,以及他期待加入後能夠獲得什麼。 如果權衡之下,你發現沒有可以讓他實際參與執行的事情,不妨讓這份良緣維持在好朋友或顧問的關係,否則分手只會讓你更難過。
衷心建議正在尋找共同創辦人的你把以上幾個要點放在心上,事前仔細確認對方是不是最適合的人選,畢竟,請人容易送人難,共同創辦人分手往往是非常痛苦的過程。若幾位共同創辦人都有一樣的認知和決心,不僅可以加快團隊的成長速度,即使團隊陷入低谷時,也可以攜手突破難關。
科技創業,團隊最少需要幾個人?
https://buzzorange.com/techorange/2018/11/21/how-to-build-an-app-team/
自從出現 WhatsApp 、 Uber 的成功例子帶來了 app 創業的蓬勃發展 ,很多有創意想實踐的人都想利用 app 創業。 App 創業除了需要資金以外,另一個關鍵就是創業團隊的組成了。今天我們來談談,想組成一個科技新創團隊寫一個 app 創業,最少需要幾個人?
App 創業團隊的組成奠定創業成功或失敗
在開始分析之前,我們先來看一下 CB Insights 發佈有關最常見的 20 個創業失敗原因的統計,其中 ”Not the right team”(「不合適的團隊」)高踞第三名,僅次於「產品不符市場需要」和「資金不足」,可見很多新創公司都在建立團隊的時候摔了一跤。
微網誌平台 Nouncers 創辦人 Eran 曾檢討其中一個不足的地方,就是團隊缺乏一個合適的夥伴來為他的業務和技術決策做判斷和平衡:
“This brings me back to the underlying problem I didn’t have a partner to balance me out and provide sanity checks for business and technology decisions made.” — Eran Hammer – Lahav, Nouncers
至於曾獲 A 輪投資 180 萬美元 、唯在創辦三年後選擇被收購的 Standout Jobs 創辦人 Ben Yoskovitz 則惋惜當初團隊中缺乏技術人員無法獨力做出 MVP (最小可行性產品)。從這兩位創辦人的反思中我們可以看到,要組成夢幻團隊從來都不容易,而且還會直接影響創業的成敗。那麼一個理想的團隊最少需要幾個人?
矽谷新創圈的格言:你只需要 3 種人 – Hipster 、 Hacker 、 Hustler
以一個健全的 app 開發商為例,一般會包含:
管理階層:
CEO(負責公司主要決策和方向)
CTO(決定產品架構、技術方向和資源)
執行階層:
業務顧問或成長駭客(業務發展)
設計師(UX / UI 設計)
軟體工程師(編寫程式)
品管工程師(QA)
專案經理(管理專案進程)
行政人員(處理會計、人資、行政工作)
如果你的資金充足,可以參考以上架構招募團隊成員。但現實中對初創團隊來說,很多時候都沒有足夠條件滿足這種龐大複雜的架構。那麼 Startup 團隊最基本的組成又是什麼?矽谷新創圈一直傳誦著 AKQA 的 CCO Rei Inamoto 的一句話:
“To run an efficient team, you only need three people: a Hipster, a Hacker, and a Hustler. When I look at the better teams I’ve been a part of, this has absolutely proven to be true.” — Rei Inamoto
他提到要組成一個有效率的團隊只需要三個人: Hipster(創意設計者)、 Hacker(精通各種技術的駭客)和 Hustler(行銷產品和公司理念的執行者)。
在還沒有組成一個更大的團隊前,核心人物(創辦人)通常會身兼多職,一個人兼任 CEO 、業務拓展、行銷、募資等各項工作,即是剛剛提到「Hustler」的角色。如果創辦人沒有技術背景,就需要尋找一位 CTO 負責技術面去開發產品(「Hacker」),再按著資金的餘裕來決定是否需要聘請前端 / 後端工程師來協助開發。又或者如果創辦人本身已經有一定的技術基礎,也可以自己兼任 CTO,直接聘請和指導前端 / 後端工程師開發產品。
找不到合適的人加入 app 創業團隊怎麼辦?
不過在尋找優秀的 CTO 或軟體工程師來負責技術面之前,你可能會先遇到以下問題:
1. 初創時期,很多新創團隊還無法高薪進行招聘,會選擇以股權分配的方式來吸引人才,但股權過度攤分在日後規模擴大時會衍生更多複雜問題。另一方面,加入團隊等於需要共同承擔創業失敗的風險,股權價值的不確定性讓很多優秀人才對「支取低薪 + 股權配給」的制度抱持保留態度。
2. 發現 CTO 相比其他職位更難找到合適的人才。 CTO 對於 app 創業的 startup 團隊尤其重要,除了要統籌各產品的技術解決方案、指引技術方向外,還要能夠前瞻性的發現未來市場對的技術需求,要找到足以勝任 CTO 的人才並不容易。
3. 預算有限,無法招請到優秀或足夠的工程師,延誤了 app 產品的開發時程。
可是創業是分秒必爭的,早一天實現自己的創意,就能早一天搶佔市場,趕在對手之前贏得先機。那如何可以擺脫團隊人力資源不足的限制呢?
1. 挑選合適的 app 開發工具作為替代方案
假設你打算自己兼任 CTO 或已經找到 CTO,但沒有足夠預算再同時聘請前端和後端工程師,又或者找不到優秀的全端工程師(對軟體工程師而言,要同時精通前端和後端的難度頗高),那麼你可以考慮使用一些加速工具,譬如 PaaS(platform-as-a-service)、 BaaS(backend-as-a-service)等等。
前端的知名工具有 Amazon 的 AWS 、 Google Cloud Platform 和 Windows 的 Azure,提供已經架設好的伺服器作為開發的基礎;後端則有 Facebook 的 Parse(但已被 FB 停止服務)、 Google 的 Firebase、香港開發商 Oursky 的 Skygear,除了伺服器還提供已經建構好的後台系統,讓工程師只需專注在產品開發,節省後端的維護成本。
使用 PaaS 或 BaaS 工具的好處在於團隊的人力資源還沒完全到位的時候,能夠 藉著已建構好的平台和後台功能,大幅縮減開發時間 。除了產品可以早日推出市場, CTO 也可以利用省下的時間來構思產品未來的技術發展和方向 。
2. 選擇 app 外包公司來承接開發案
當然,也不是每個人都能夠自己做設計、寫程式,加上前面提到要找理想的 CTO 加入團隊並不容易,如果沒有相關的專長,也可以考慮外包整個開發工作。超過百萬下載、曾獲 Apple App Store 音樂類別最佳應用程式的 Jamn Player 創辦人 Johnny Quattro 就是以外包的方式打造出 MVP 產品,待 Jamn Player 在市場上獲得成功後再融資自組團隊,持續發展產品。至於如何挑選合適的外包公司,又是另一種學問了。
不管是使用 BaaS 工具加速開發或是直接把開發的部份外包給專業製作公司,其目的都是盡快先把產品完成,推出市場後透過觀察用戶反饋來改善產品。 產品如果能夠成功通過市場考驗獲得小成功,自然能夠吸引投資者的青睞。等到融資成功,就有更多的資金可以運用來發展產品和招募優秀人才。另一方面,如果你已經有了名氣和明星產品,也更容易吸引到優秀工程師的目光加入你的團隊。
3. 積極參與不同的 startup 業界活動
解決了產品開發和資金的問題後,也要積極地參與跟新創有關的活動。各地常舉辦業界聚會(meetup)、新創週末(startup weekend)、駭客松(hackathon)或創投比賽等等, 多參加這類型活動能拓展人脈,認識更多與你一樣對新創有熱情的人,也有更多機會遇到理想的團隊合作夥伴。
App 新創團隊最少需要幾人? 1 個就可以
前面解釋了新創團隊的基本架構和建議組合,不過這並不是絕對的準則,因為每個產品的需求都是獨一無二的。
比方說如果你的目標是做一個 Instagram ,那麼一個擅長內容行銷和社群操作的專家就會比技術人員更有利於初創時期的發展。或如果你想要打造一個 Uber ,那麼熟悉大數據分析和運算的技術團隊就會比業務行銷更重要。 人數並不是關鍵,重要的是你團隊中的人能夠做什麼、擅長做什麼 。事實上,市場上一直不乏成功的小規模團隊新創,來看看最有名的幾個例子:
1. Instagram 在被 Facebook 以 10 億美元(約 300 億元新台幣)收購前,團隊只有 13 人。
2. 同樣被 Facebook 收購、當時擁有 4.5 億用戶的 Whatsapp 只有 35 名工程師(後來擁有 9 億活躍用戶的時候工程師也只有 50 人)。
3. 企業溝通協作平台 Slack 花了 5 年時間市值就高達 51 億美元(約 1530 億新台幣),當初的產品創意來自創辦人和 3 位同事製作遊戲時的溝通經驗。
最後一個勵志故事來自著名「稍後閱讀」(save-for-later)服務商 Pocket ,僅 20 位團隊成員就為 2,000 萬使用者提供服務,創業的頭四年更只靠 CEO Nate Weiner 一個人支撐,獨力設計開發網站和 app ,甚至還包攬客服支援。單憑一人之力,就能開發出產品為幾百萬用戶提供服務,所以說永遠不要小看自己的能力啊!
自從出現 WhatsApp 、 Uber 的成功例子帶來了 app 創業的蓬勃發展 ,很多有創意想實踐的人都想利用 app 創業。 App 創業除了需要資金以外,另一個關鍵就是創業團隊的組成了。今天我們來談談,想組成一個科技新創團隊寫一個 app 創業,最少需要幾個人?
App 創業團隊的組成奠定創業成功或失敗
在開始分析之前,我們先來看一下 CB Insights 發佈有關最常見的 20 個創業失敗原因的統計,其中 ”Not the right team”(「不合適的團隊」)高踞第三名,僅次於「產品不符市場需要」和「資金不足」,可見很多新創公司都在建立團隊的時候摔了一跤。
微網誌平台 Nouncers 創辦人 Eran 曾檢討其中一個不足的地方,就是團隊缺乏一個合適的夥伴來為他的業務和技術決策做判斷和平衡:
“This brings me back to the underlying problem I didn’t have a partner to balance me out and provide sanity checks for business and technology decisions made.” — Eran Hammer – Lahav, Nouncers
至於曾獲 A 輪投資 180 萬美元 、唯在創辦三年後選擇被收購的 Standout Jobs 創辦人 Ben Yoskovitz 則惋惜當初團隊中缺乏技術人員無法獨力做出 MVP (最小可行性產品)。從這兩位創辦人的反思中我們可以看到,要組成夢幻團隊從來都不容易,而且還會直接影響創業的成敗。那麼一個理想的團隊最少需要幾個人?
矽谷新創圈的格言:你只需要 3 種人 – Hipster 、 Hacker 、 Hustler
以一個健全的 app 開發商為例,一般會包含:
管理階層:
CEO(負責公司主要決策和方向)
CTO(決定產品架構、技術方向和資源)
執行階層:
業務顧問或成長駭客(業務發展)
設計師(UX / UI 設計)
軟體工程師(編寫程式)
品管工程師(QA)
專案經理(管理專案進程)
行政人員(處理會計、人資、行政工作)
如果你的資金充足,可以參考以上架構招募團隊成員。但現實中對初創團隊來說,很多時候都沒有足夠條件滿足這種龐大複雜的架構。那麼 Startup 團隊最基本的組成又是什麼?矽谷新創圈一直傳誦著 AKQA 的 CCO Rei Inamoto 的一句話:
“To run an efficient team, you only need three people: a Hipster, a Hacker, and a Hustler. When I look at the better teams I’ve been a part of, this has absolutely proven to be true.” — Rei Inamoto
他提到要組成一個有效率的團隊只需要三個人: Hipster(創意設計者)、 Hacker(精通各種技術的駭客)和 Hustler(行銷產品和公司理念的執行者)。
在還沒有組成一個更大的團隊前,核心人物(創辦人)通常會身兼多職,一個人兼任 CEO 、業務拓展、行銷、募資等各項工作,即是剛剛提到「Hustler」的角色。如果創辦人沒有技術背景,就需要尋找一位 CTO 負責技術面去開發產品(「Hacker」),再按著資金的餘裕來決定是否需要聘請前端 / 後端工程師來協助開發。又或者如果創辦人本身已經有一定的技術基礎,也可以自己兼任 CTO,直接聘請和指導前端 / 後端工程師開發產品。
找不到合適的人加入 app 創業團隊怎麼辦?
不過在尋找優秀的 CTO 或軟體工程師來負責技術面之前,你可能會先遇到以下問題:
1. 初創時期,很多新創團隊還無法高薪進行招聘,會選擇以股權分配的方式來吸引人才,但股權過度攤分在日後規模擴大時會衍生更多複雜問題。另一方面,加入團隊等於需要共同承擔創業失敗的風險,股權價值的不確定性讓很多優秀人才對「支取低薪 + 股權配給」的制度抱持保留態度。
2. 發現 CTO 相比其他職位更難找到合適的人才。 CTO 對於 app 創業的 startup 團隊尤其重要,除了要統籌各產品的技術解決方案、指引技術方向外,還要能夠前瞻性的發現未來市場對的技術需求,要找到足以勝任 CTO 的人才並不容易。
3. 預算有限,無法招請到優秀或足夠的工程師,延誤了 app 產品的開發時程。
可是創業是分秒必爭的,早一天實現自己的創意,就能早一天搶佔市場,趕在對手之前贏得先機。那如何可以擺脫團隊人力資源不足的限制呢?
1. 挑選合適的 app 開發工具作為替代方案
假設你打算自己兼任 CTO 或已經找到 CTO,但沒有足夠預算再同時聘請前端和後端工程師,又或者找不到優秀的全端工程師(對軟體工程師而言,要同時精通前端和後端的難度頗高),那麼你可以考慮使用一些加速工具,譬如 PaaS(platform-as-a-service)、 BaaS(backend-as-a-service)等等。
前端的知名工具有 Amazon 的 AWS 、 Google Cloud Platform 和 Windows 的 Azure,提供已經架設好的伺服器作為開發的基礎;後端則有 Facebook 的 Parse(但已被 FB 停止服務)、 Google 的 Firebase、香港開發商 Oursky 的 Skygear,除了伺服器還提供已經建構好的後台系統,讓工程師只需專注在產品開發,節省後端的維護成本。
使用 PaaS 或 BaaS 工具的好處在於團隊的人力資源還沒完全到位的時候,能夠 藉著已建構好的平台和後台功能,大幅縮減開發時間 。除了產品可以早日推出市場, CTO 也可以利用省下的時間來構思產品未來的技術發展和方向 。
2. 選擇 app 外包公司來承接開發案
當然,也不是每個人都能夠自己做設計、寫程式,加上前面提到要找理想的 CTO 加入團隊並不容易,如果沒有相關的專長,也可以考慮外包整個開發工作。超過百萬下載、曾獲 Apple App Store 音樂類別最佳應用程式的 Jamn Player 創辦人 Johnny Quattro 就是以外包的方式打造出 MVP 產品,待 Jamn Player 在市場上獲得成功後再融資自組團隊,持續發展產品。至於如何挑選合適的外包公司,又是另一種學問了。
不管是使用 BaaS 工具加速開發或是直接把開發的部份外包給專業製作公司,其目的都是盡快先把產品完成,推出市場後透過觀察用戶反饋來改善產品。 產品如果能夠成功通過市場考驗獲得小成功,自然能夠吸引投資者的青睞。等到融資成功,就有更多的資金可以運用來發展產品和招募優秀人才。另一方面,如果你已經有了名氣和明星產品,也更容易吸引到優秀工程師的目光加入你的團隊。
3. 積極參與不同的 startup 業界活動
解決了產品開發和資金的問題後,也要積極地參與跟新創有關的活動。各地常舉辦業界聚會(meetup)、新創週末(startup weekend)、駭客松(hackathon)或創投比賽等等, 多參加這類型活動能拓展人脈,認識更多與你一樣對新創有熱情的人,也有更多機會遇到理想的團隊合作夥伴。
App 新創團隊最少需要幾人? 1 個就可以
前面解釋了新創團隊的基本架構和建議組合,不過這並不是絕對的準則,因為每個產品的需求都是獨一無二的。
比方說如果你的目標是做一個 Instagram ,那麼一個擅長內容行銷和社群操作的專家就會比技術人員更有利於初創時期的發展。或如果你想要打造一個 Uber ,那麼熟悉大數據分析和運算的技術團隊就會比業務行銷更重要。 人數並不是關鍵,重要的是你團隊中的人能夠做什麼、擅長做什麼 。事實上,市場上一直不乏成功的小規模團隊新創,來看看最有名的幾個例子:
1. Instagram 在被 Facebook 以 10 億美元(約 300 億元新台幣)收購前,團隊只有 13 人。
2. 同樣被 Facebook 收購、當時擁有 4.5 億用戶的 Whatsapp 只有 35 名工程師(後來擁有 9 億活躍用戶的時候工程師也只有 50 人)。
3. 企業溝通協作平台 Slack 花了 5 年時間市值就高達 51 億美元(約 1530 億新台幣),當初的產品創意來自創辦人和 3 位同事製作遊戲時的溝通經驗。
最後一個勵志故事來自著名「稍後閱讀」(save-for-later)服務商 Pocket ,僅 20 位團隊成員就為 2,000 萬使用者提供服務,創業的頭四年更只靠 CEO Nate Weiner 一個人支撐,獨力設計開發網站和 app ,甚至還包攬客服支援。單憑一人之力,就能開發出產品為幾百萬用戶提供服務,所以說永遠不要小看自己的能力啊!
手機應用開發:token、cookie的區別
cookie最初是解决http连接无状态问题的产物,用于客户端和服务端共同维护一些状态数据。
cookie会被附加到http请求中,这不需要开发者做额外的支持。cookie存在一个最大长度的问题(4KB?)。
token通常作为验证后的凭证,免除在一定时间内的重复验证。
token的存储和参数传递都需要开发者来处理。
使用cookie来维持登录态,在实现过程中实际上是在cookie中添加一个token来维持一个登录态。
cookie和token都是一个字符串,具体在这个字符串里面存放什么都可以商量。
一般做法是这样的: 这里只讨论登录名和密码,不考虑设备id等其他一些参数。
客户端 登录请求参数:account,md5(password+salt)
服务端验证后 返回:result,token
md5(password+salt)的目的不在于抵御重放攻击,而是为了保护用户真正的密码不被泄露。
md5以及其他摘要算法(sha1、sha256等)并不属于加密算法。
如果希望整个通信不是明文传输,可以使用HTTPS,或者自己实现一套服务器认证,公钥交换以及加密解密的规则。
走 https 了,還需要對參數加密以防止重放攻擊嗎?
https://www.oschina.net/question/1047640_2180952
=> 走https之后,记得不要url后跟参数,因为会被浏览器,路由器记到历史记录里。不要用cookie存明文。其他的应该无所谓了。关键是app这边加密并没有用啊,因为别人可以看到你源码的。app加密,服务器解密,这样可以防止信息泄漏。服务器加密,app解密,这个没用,你源码都在别人手里了
抵御重放攻击,可以在请求中加入时间戳,对整个请求体做签名,服务器验签后检查时间戳以及account,来决定是否响应。
https://baike.baidu.com/item/%E9%87%8D%E6%94%BE%E6%94%BB%E5%87%BB
(1)加随机数。该方法优点是认证双方不需要时间同步,双方记住使用过的随机数,如发现报文中有以前使用过的随机数,就认为是重放攻击。缺点是需要额外保存使用过的随机数,若记录的时间段较长,则保存和查询的开销较大。
(2)加时间戳。该方法优点是不用额外保存其他信息。缺点是认证双方需要准确的时间同步,同步越好,受攻击的可能性就越小。但当系统很庞大,跨越的区域较广时,要做到精确的时间同步并不是很容易。
(3)加流水号。就是双方在报文中添加一个逐步递增的整数,只要接收到一个不连续的流水号报文(太大或太小),就认定有重放威胁。该方法优点是不需要时间同步,保存的信息量比随机数方式小。缺点是一旦攻击者对报文解密成功,就可以获得流水号,从而每次将流水号递增欺骗认证端。
在实际中,常将方法(1)和方法(2)组合使用,这样就只需保存某个很短时间段内的所有随机数,而且时间戳的同步也不需要太精确。
登录后实际上就是授权票据的传输,票据通常就是一个或多个字符串,被称为token,你可以把它放到cookie里面,也可以跟在参数上,那这两种有什么区别呢?
1.如果放在cookie里面,浏览器的安全策略会帮你做些安全检查,比如跨域不传输,非安全协议不传输,禁止脚本操作cookie等等,如果跟在参数上是没有这些功能的
2.无论是app,webview,还是浏览器,经常需要把地址分享到第三方,如果习惯在url上带token,那么,分享是要把token去掉才行,如果放在cookie就不用了,cookie不会被分享出去的
3.如果参数传输token,无论post get ,只要是需要鉴权的请求,你都要手动把token搭上,如果放在cookie,你只要放一次,只要补跨域,不过期,浏览器自己会在请求时给你传过去,省心省力,妈妈再也不担心漏掉token了,cookie还有许多其它规范,不再赘述
4.cookie有自己的规范和约束,不是哪哪都能用,所以很多时候必须请求参数里带token,比如常见的跨域授权后跳转
=> cookie是浏览器负责维护的,不灵活。现在的“终端”不止浏览器了
=> cookie 可以用来保存 token,也可以用来保存其他东西;
同样的,token 既能保存在 cookie 中,也能保存在其他地方。
所以,不是一个维度的东西
=> 作为安卓bug员,乱说一点吧,你截获密码密文,app要你输入明文,如果你输入密文会再次加密传递,除非你篡改app或者用请求软件模拟请求,这个还得反编译,现在大一点的软件都有加固混淆啥的,反编译也不是很容易,越涉及到金钱,安全性越高,而且后台的哥们也不是吃干饭的,他们还有别的通信安全策略,总体来说,除了有仇或者巨大利益,不然很少有人去黑...
=> 最近在写angular。 登录时服务器给客户端token存在本地,每次请求客户端都会附在http header,让服务器都会先验证token再操作。
參考文獻:
[iOS 开发]如何处理 iOS 原生网络请求中的 cookie ?
https://www.jianshu.com/p/d144bd7226b7
Wikipedia - HTTP cookie:
https://en.wikipedia.org/wiki/HTTP_cookie
聊一聊 cookie:
https://segmentfault.com/a/1190000004556040
NSHTTPCookieStorage 官方文档:
https://developer.apple.com/reference/foundation/nshttpcookiestorage
中文版:http://www.jianshu.com/p/b10652a1803e
iOS平台下cookie的使用:
http://www.jianshu.com/p/65094611980c
iOS HTTP网络请求Cookie的读取与写入(NSHTTPCookieStorage)
http://www.skyfox.org/ios-url-request-cookie.html
NSHTTPCookieStorage state not saved on app exit. Any definitive knowledge/documentation out there?
http://stackoverflow.com/questions/5837702/nshttpcookiestorage-state-not-saved-on-app-exit-any-definitive-knowledge-docume
app开发token、cookie的区别,账号密码加密又是如何保证安全?
https://www.zhihu.com/question/39137156
为什么 APP 要用 token 而不用 session 认证?
https://www.v2ex.com/t/148426
How to manage sessions with AFNetworking?
http://stackoverflow.com/questions/10984374/how-to-manage-sessions-with-afnetworking/11039784#11039784
Persisting Cookies In An iOS Application?
http://stackoverflow.com/questions/4597763/persisting-cookies-in-an-ios-application
NSHTTPCookieStorage and Cookie Expiration Date
http://stackoverflow.com/questions/7203641/nshttpcookiestorage-and-cookie-expiration-date/7209706#7209706
Can I set the cookies to be used by a WKWebView?http://stackoverflow.com/questions/26573137/can-i-set-the-cookies-to-be-used-by-a-wkwebview
haifengkao/YWebView:https://github.com/haifengkao/YWebView
https://www.jianshu.com/p/4fb94b4a281e
https://www.jianshu.com/p/e56fbc8940b2
關於 Golang 的亂數
https://ithelp.ithome.com.tw/articles/10193907
官方範例有展示
rand.Seed(time.Now().UnixNano())
fmt.Println(rand.Int())
另一種是用種子取得結構後,再開始產生亂數:
t := time.Now().UnixNano()
r1 := rand.New(rand.NewSource(t))
r2 := rand.New(rand.NewSource(t))
fmt.Println(r1.Int())
fmt.Println(r1.Int())
fmt.Println(r1.Int())
fmt.Println(r2.Int())
fmt.Println(r2.Int())
fmt.Println(r2.Int())
https://lihaoquan.me/2016/10/15/rand-in-go.html
使用golang生成随机数的时候,官方提供了两种方式,分别是 math/rand 和 crypo/rand ,那么它们两者之间究竟有什么 不同呢?如果通过它们来生成我们的随机数呢?
Go 的rand包:math/rand 和 crypo/rand, 前者是一种伪随机数生成方式,后者是真正意义上的随机数生成方式。
随机数至少具备两个条件: 数字序列在统计上是随机的 不能通过已知序列推算后面的序列 自从计算机诞生起,寻求用计算机产生高质量的随机数序列的研究就一直是研究者长期关注的课题。
一般情况下,使用计算机程序产生一个真正的随机数是很难的,因为程序的行为是可预测的,计算机利用设计好的算法结合用户提供的种子产生的随机数序列通常是“伪随机数”(pseudo-random number),伪随机数就是我们平时经常使用的“随机数”。伪随机数可以满足一般应用的需求,但是在对于安全要求比较高的环境和领域中存在明显的缺点:
例如:
1.伪随机数是周期性的,当它们足够多时,会重复数字序列
2.如果提供相同的算法和相同的种子值,将会得出完全一样的随机数序列
3.可以使用逆向工程,猜测算法与种子值,以便推算后面所有的随机数列
生成随机数是密码学中的一项基本任务,是生成加密密钥、加密算法和加密协议所必不可少的,随机数的质量对安全性至关重要。
总的来说math/rand是最简单的随机数,例如你要随机一个1-100之间的数字, 而crypto/rand是更加复杂的,例如beego里面的sessionid,他有一个很大的特点是不可预测。所以如果你要实现一些涉及安全的 上下文,建议还是使用crypto/rand, 如果只是简单生成随机数,math/rand是首选。
真隨機數,crypto/rand 的用法:https://blog.sqrtthree.com/articles/random-number-in-golang/
結果為 big int ,使用前需要進行各種轉換:https://medium.com/orbs-network/big-integers-in-go-14534d0e490d
https://golang.org/pkg/math/big/#Int.String
https://birdben.github.io/2017/01/10/Go/Go%E5%AD%A6%E4%B9%A0%EF%BC%88%E4%B8%89%EF%BC%89Go%E5%9F%BA%E6%9C%AC%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B%E6%80%BB%E7%BB%93/
官方範例有展示
math/rand 的兩種用法,一種是全域的:rand.Seed(time.Now().UnixNano())
fmt.Println(rand.Int())
另一種是用種子取得結構後,再開始產生亂數:
t := time.Now().UnixNano()
r1 := rand.New(rand.NewSource(t))
r2 := rand.New(rand.NewSource(t))
fmt.Println(r1.Int())
fmt.Println(r1.Int())
fmt.Println(r1.Int())
fmt.Println(r2.Int())
fmt.Println(r2.Int())
fmt.Println(r2.Int())
https://lihaoquan.me/2016/10/15/rand-in-go.html
使用golang生成随机数的时候,官方提供了两种方式,分别是 math/rand 和 crypo/rand ,那么它们两者之间究竟有什么 不同呢?如果通过它们来生成我们的随机数呢?
Go 的rand包:math/rand 和 crypo/rand, 前者是一种伪随机数生成方式,后者是真正意义上的随机数生成方式。
随机数至少具备两个条件: 数字序列在统计上是随机的 不能通过已知序列推算后面的序列 自从计算机诞生起,寻求用计算机产生高质量的随机数序列的研究就一直是研究者长期关注的课题。
一般情况下,使用计算机程序产生一个真正的随机数是很难的,因为程序的行为是可预测的,计算机利用设计好的算法结合用户提供的种子产生的随机数序列通常是“伪随机数”(pseudo-random number),伪随机数就是我们平时经常使用的“随机数”。伪随机数可以满足一般应用的需求,但是在对于安全要求比较高的环境和领域中存在明显的缺点:
例如:
1.伪随机数是周期性的,当它们足够多时,会重复数字序列
2.如果提供相同的算法和相同的种子值,将会得出完全一样的随机数序列
3.可以使用逆向工程,猜测算法与种子值,以便推算后面所有的随机数列
生成随机数是密码学中的一项基本任务,是生成加密密钥、加密算法和加密协议所必不可少的,随机数的质量对安全性至关重要。
总的来说math/rand是最简单的随机数,例如你要随机一个1-100之间的数字, 而crypto/rand是更加复杂的,例如beego里面的sessionid,他有一个很大的特点是不可预测。所以如果你要实现一些涉及安全的 上下文,建议还是使用crypto/rand, 如果只是简单生成随机数,math/rand是首选。
真隨機數,crypto/rand 的用法:https://blog.sqrtthree.com/articles/random-number-in-golang/
結果為 big int ,使用前需要進行各種轉換:https://medium.com/orbs-network/big-integers-in-go-14534d0e490d
https://golang.org/pkg/math/big/#Int.String
https://birdben.github.io/2017/01/10/Go/Go%E5%AD%A6%E4%B9%A0%EF%BC%88%E4%B8%89%EF%BC%89Go%E5%9F%BA%E6%9C%AC%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B%E6%80%BB%E7%BB%93/
Golang 爬蟲
Get the content of a web page (golang):
https://www.daniweb.com/programming/computer-science/code/495192/get-the-content-of-a-web-page-golang
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func main() {
url := "http://tour.golang.org/welcome/1"
fmt.Printf("HTML code of %s ...\n", url)
resp, err := http.Get(url)
// handle the error if there is one
if err != nil {
panic(err)
}
// do this now so it won't be forgotten
defer resp.Body.Close()
// reads html as a slice of bytes
html, err := ioutil.ReadAll(resp.Body)
if err != nil {
panic(err)
}
// show the HTML code as a string %s
fmt.Printf("%s\n", html)
}
為什麼 Response.Body 需要被關閉?
https://www.jianshu.com/p/407fada3cc9d
簡言之,與其額外處理各種錯誤導致的資源無法回收,使用後就 close Response.Body 是最好的做法。
容易踩到的 50 個坑
35. 關閉 HTTP 的響應體 (譯本這段的程式碼有誤,應參見原文)
https://segmentfault.com/a/1190000013739000#articleHeader38
原文:
http://devs.cloudimmunity.com/gotchas-and-common-mistakes-in-go-golang/
Closing HTTP Response Body
https://stackoverflow.com/questions/32818472/do-we-need-to-close-the-response-object-if-an-error-occurs-while-calling-http-ge
正則處理:
https://www.kancloud.cn/kancloud/web-application-with-golang/44184
https://www.daniweb.com/programming/computer-science/code/495192/get-the-content-of-a-web-page-golang
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func main() {
url := "http://tour.golang.org/welcome/1"
fmt.Printf("HTML code of %s ...\n", url)
resp, err := http.Get(url)
// handle the error if there is one
if err != nil {
panic(err)
}
// do this now so it won't be forgotten
defer resp.Body.Close()
// reads html as a slice of bytes
html, err := ioutil.ReadAll(resp.Body)
if err != nil {
panic(err)
}
// show the HTML code as a string %s
fmt.Printf("%s\n", html)
}
為什麼 Response.Body 需要被關閉?
https://www.jianshu.com/p/407fada3cc9d
簡言之,與其額外處理各種錯誤導致的資源無法回收,使用後就 close Response.Body 是最好的做法。
容易踩到的 50 個坑
35. 關閉 HTTP 的響應體 (譯本這段的程式碼有誤,應參見原文)
https://segmentfault.com/a/1190000013739000#articleHeader38
原文:
http://devs.cloudimmunity.com/gotchas-and-common-mistakes-in-go-golang/
Closing HTTP Response Body
https://stackoverflow.com/questions/32818472/do-we-need-to-close-the-response-object-if-an-error-occurs-while-calling-http-ge
正則處理:
https://www.kancloud.cn/kancloud/web-application-with-golang/44184
Youtube 與 Netflix 聯合研究:影片廣告百百種,最有效的長度只需 6 秒鐘
許多人都會在平日閒暇之餘觀看 Youtube 影片,不過看久了總是會遇到影片插入廣告的情況,有些廣告短短五六秒,也有些廣告長達半小時。
在這些廣告當中,有些令你著迷、也有些會讓你一秒跳過,但你知道在這麼多種類的 Youtube 廣告中,哪種廣告的效益最好嗎?
由 Youtube 與 Netflix 合作研究的結果指出:6 秒,6 秒的廣告效果最好。
Youtube 無法跳過的 6 秒廣告,成效卻是最好的
Youtube 曾經與 Netflix 合作研究,想知道短廣告的廣告效益是否能夠跟長廣告一樣好,在經過多次的測試與研究之後,他們發現大約 5 – 6 秒的短廣告效果最好,在某些案例下效果甚至超越長廣告。
事實上,早在 2014 年之前,Youtube 就開始推出「6 秒廣告」的影片廣告,這種「六秒鐘」的影片廣告無法被跳過,一般用戶只能乖乖看完這六秒鐘的短廣告。
時間超短的 6 秒,需要全新的廣告思考方式
但是到了這邊,一定就會有人開始詢問:一個廣告才 6 秒鐘,我是要怎麼推銷我的標的物?
沒錯,短短的 6 秒鐘,確實是很難描述廣告商所想表達的事物,但是既然打從一開始這 6 秒鐘就不可能讓你放入完整廣告,那們在設計廣告時就應該拋開「放入所有項目」的思維,而用別的觀點與角度來看待、利用這種 6 秒廣告的特性,打造出別的特色。
而且,可沒人說你只能放一次 6 秒廣告的。
短廣告「前菜」+ 長廣告「主餐」= 成功的廣告組合「套餐」
在思考時,不要想著把所有的故事內容塞進 6 秒鐘以內,而是利用 6 秒鐘廣告當成是誘餌,引誘大家想要看到更多的內容,或是對那 6 秒鐘背後的完整故事感到好奇,才能最大程度的利用到 6 秒廣告的特性。
一般來說,最理想的方式,是透過多段的 6 秒廣告,一段 15-30 秒的短廣告,以及一段 1 分半的完整廣告組合可以達到最好的效果。藉由依序對同一個使用者投送多段 6 秒廣告,吸引使用者的注意,等待使用者點進去後,再用短廣告與完整廣告來訴說完整的故事。
當然,在這邊就要開始思考,我該怎麼善用這 6 秒鐘的時間,該怎麼取捨廣告的內容依然是很重要的問題,不過總比起要把所有的故事內容塞進 6 秒鐘以內來得好多了。
當然,如果你能夠把一整部電影濃縮在 5 秒預告的話那就另當別論了,但應該沒人這麼做…… 的吧?
在這些廣告當中,有些令你著迷、也有些會讓你一秒跳過,但你知道在這麼多種類的 Youtube 廣告中,哪種廣告的效益最好嗎?
由 Youtube 與 Netflix 合作研究的結果指出:6 秒,6 秒的廣告效果最好。
Youtube 無法跳過的 6 秒廣告,成效卻是最好的
Youtube 曾經與 Netflix 合作研究,想知道短廣告的廣告效益是否能夠跟長廣告一樣好,在經過多次的測試與研究之後,他們發現大約 5 – 6 秒的短廣告效果最好,在某些案例下效果甚至超越長廣告。
事實上,早在 2014 年之前,Youtube 就開始推出「6 秒廣告」的影片廣告,這種「六秒鐘」的影片廣告無法被跳過,一般用戶只能乖乖看完這六秒鐘的短廣告。
時間超短的 6 秒,需要全新的廣告思考方式
但是到了這邊,一定就會有人開始詢問:一個廣告才 6 秒鐘,我是要怎麼推銷我的標的物?
沒錯,短短的 6 秒鐘,確實是很難描述廣告商所想表達的事物,但是既然打從一開始這 6 秒鐘就不可能讓你放入完整廣告,那們在設計廣告時就應該拋開「放入所有項目」的思維,而用別的觀點與角度來看待、利用這種 6 秒廣告的特性,打造出別的特色。
而且,可沒人說你只能放一次 6 秒廣告的。
短廣告「前菜」+ 長廣告「主餐」= 成功的廣告組合「套餐」
在思考時,不要想著把所有的故事內容塞進 6 秒鐘以內,而是利用 6 秒鐘廣告當成是誘餌,引誘大家想要看到更多的內容,或是對那 6 秒鐘背後的完整故事感到好奇,才能最大程度的利用到 6 秒廣告的特性。
一般來說,最理想的方式,是透過多段的 6 秒廣告,一段 15-30 秒的短廣告,以及一段 1 分半的完整廣告組合可以達到最好的效果。藉由依序對同一個使用者投送多段 6 秒廣告,吸引使用者的注意,等待使用者點進去後,再用短廣告與完整廣告來訴說完整的故事。
當然,在這邊就要開始思考,我該怎麼善用這 6 秒鐘的時間,該怎麼取捨廣告的內容依然是很重要的問題,不過總比起要把所有的故事內容塞進 6 秒鐘以內來得好多了。
當然,如果你能夠把一整部電影濃縮在 5 秒預告的話那就另當別論了,但應該沒人這麼做…… 的吧?
訂閱:
文章 (Atom)
程式語言編年史
程式語言編年史原文 下面這張圖片描繪了整個程式語言的歷史。包括各種程式語言的發明人、程式語言的特點和適用領域、被什麼網站或公司使用等 (檢視 完整高清圖 )。 之所以會有那麼多不同的程式語言是因為設計程式語言的初衷不同、對語言學習曲線的追求不同、不同程式之間的執行成本差異...





