我看手機產業 (7) 軟體 – App 開發環境

  1. Software (軟體)
  • App Ecosystem ( App 生態系統)

「生態系統」這個詞最近常被用在手機產業上面,雖然沒有明確的定義,但我認為它泛指以某個手機作業系統為中心,參與上下游相關軟硬體製造與設計的公司或個人,或者說這個階層圖中所有參與的人。而 App 生態系統則專指在手機上面開發第三方 Apps 的社群,也就是階層圖中 App Ecosystem 那一塊區域。在這裡我們要來談談 App 生態系統對手機產業的影響。

App 生態系統和手機之間有種魚幫水、水幫魚的關係,彼此的成熟與繁榮與否,都會為對方帶來巨大的影響。然後究竟是一款暢銷的手機吸引了眾多軟體開發者來參與投入,進而創造出數量可觀的 Apps?還是因為大量的 Apps 所以吸引了消費者購買該系統的手機,從而導致手機的暢銷?這似乎是一個雞生蛋、蛋生雞的問題。對於這個問題我個人的看法是,一個好的手機 (包含軟、硬體) 絕對是成功的基石,因為唯有手機本身的設計優良,才能讓一個好的 App 完全展現出它的特色,反之如果手機的設計有瑕疵,再好的 App 也無法讓人感到滿意。

由於各個 App 生態系統是圍繞著手機 OS 來發展的,因此一個手機 OS 對於開發 App 的支援程度對 App 生態系統是否繁榮有著決定性的影響。我認為有三方面值得討論,首先是技術面的App Developing Environment (App 開發環境),其次是市場面的 App Market (App 市集),最後是交易面的 Transaction System (金流系統)。

App Developing Environment (App 開發環境)

對於第三方開發商的支援我認為是整個手機生態系統中軟體部分最困難的挑戰,它需要的不僅是自身系統架構的穩定與豐富的函式庫支援,更重要的是提供完整而清楚的技術文件與教學範例,讓原本不熟悉該系統的程式人員可以在最短的時間內上手,最小化因為技術問題而帶來的困擾與延誤。

之前有提過,一個產品關起門來自己搞容易,但要把門打開讓其他人一起參與卻是難上加難。設計一個穩定而又高效的作業系統本身難度已經不低,但相較於把這個作業系統完整、正確而又清楚的推廣出去,那簡直就是芝麻蒜皮的小事。也許因為我自己是有軟體工程實際經驗的人,所以對這件事有先入為主的偏見,但我真的覺得建造一個所有人可以共同參與的開發環境幾乎可以說是軟體工程的「最高境界」。這裡面牽涉很多技術層面的問題,但我舉其中一個比較不技術的例子,也許你就能大致明白其中的困難點在哪。

一般而言,一個軟體產品通常需要幾種技術文件,由最核心(公司研發部門)到最外圍(客戶端)分別如下:

程式碼–>注釋–>內部技術文件–>內部訓練文件–>外部技術文件–>外部訓練文件

理論上來講這六種文件應該永遠保持一致性。換句話說就是當程式碼有更動,造成系統的運作邏輯或是使用介面和以前不同的時候,其他五種文件都必須要在同一時間更新。理由是這五種文件的使用者都會根據他們所獲得的文件來發展他們自己的產品,也許是軟體、也許是硬體、也許是教育課程…等,而一旦他們所依據的文件和系統本身運作的邏輯不同時,就很有可能會導致他們自己的系統發生問題,輕微一點的也許是螢幕上出現一串亂碼,嚴重一點的甚至會導致探測衛星墜毀。那既然這些文件的一致性這麼重要,你一定認為一般軟體公司都非常注意這個問題吧?事實剛好相反,你隨便找一個有實際工作經驗的工程師來問,他們一定會告訴你,這六個文件裡面唯一可以相信的只有程式碼而已,就連程式碼旁邊的注釋都很有可能和程式碼本身相差十萬八千里。為什麼會這樣呢?這其中有主觀也有客觀的原因。主觀的原因在於公司本身不認為這是個需要重視的問題。大部分的公司都是以賣出產品為主,而這些文件裡面唯一可以賺錢的就只有程式碼,既然如此,有什麼理由要花人力、物力去維護其他的東西呢?而客觀的原因在於,維護後面四種文件的人員不僅要能動筆寫文章,而且還必須具備相當的專業能力,或者自己有開發程式的經驗,才有辦法和程式員溝通 (因為很多programmers 常覺得其他人是白痴),這是為什麼很多時候 technical writer (技術文件作者) 比程式員還難找。(不要告訴我可以叫程式員來寫文件,因為寫文件和寫程式根本是兩回事。相信我,要寫一段說明描述你的程式碼在幹嘛、該怎麼用,絕對比寫這段程式碼要難上許多倍,更別提要像寫教科書一樣來寫訓練文件,這不是隨便路上找一個工程師就有辦法寫出來的。)

(建置一個好的文件團隊,所需要的資源絕對不亞於同等規模的研發團隊,而由於一般公司普遍不重視文件團隊,所以你可以反其道而行,用這一點來評佔一家科技公司的技術水準。如果一個公司的文件庫很充實、完整,內容也很詳細、清楚,那這家公司肯定有高於平均的技術水準。根據我的經驗, Apple 和 Intel 的技術文件是我看過最好的。Apple 的文件編排有相當的一致性,甚至有專門的文件製作規範,而各文件之間的相互參照也很完整,很顯然是有專門的單位在負責。至於 Intel ,真的沒話講,完全是大廠的風範,隨便一個主機板的使用說明都可以拿來當硬體技術的教科書,當年我們就靠著給一般使用者看的說明書,在 Intel 的主機板上開發出第一代系統的雛型。相較起來,某些 IC 廠提供的 Specification (規格書) 有的時候就真的不知所云,搞不清楚到底是我太笨還是文件有問題。)

總而言之,我認為要提供一個完整的 App 開發環境,除了作業系統開發的能力之外,還必須要對軟體工程有完全的理解以及執行的紀律,長期和第三方開發者合作的經驗也不可或缺,少了其中任何一項,公司再大也玩不起來,Nokia 就是一個前車之鑑。基於此,我想在這個部份有資格的競爭者並不多,所以應該大局底定,Google, Microsoft, Apple 是現階段主要玩家,Amazon, Facebook 也具有相當的實力,至於其他的像是 HTC, Samsung, Intel, Sony, Acer, Asus ,大概就只能摸摸鼻子去找別的事幹了。(這是為什麼我不看好 Tizen 的主要原因。Intel 的晶片設計能力很強是沒錯,Samsung 在硬體方面也是世界一流,但兩者都不是專門的軟體公司,我不認為他們有辦法建構出一個好的第三方開發環境,Tizen 很有可能會步上 MeegoMaemo 的後塵。我也不看好亞洲的公司,主要是因為語言的問題,要在台灣或是中國找到既懂程式、又能寫英文技術文件的人恐怕不多。當然,用中文寫技術文件也是可以,可是這樣就大幅限制參與開發的人數了。)

圖片來源:http://animalspets.co.uk/2012/05/03/freshwater-aquarium-fishes-how-to-choose/

廣告

About Weicheng Chu

創業中,微碧愛普科技 (www.weibyapp.com) 已婚, 有一對雙胞胎兒子, 現居住在美國加州、台灣台中
本篇發表於 我看手機產業 並標籤為 , , , , , , 。將永久鏈結加入書籤。

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s