1999/12/26

物件導向與資料庫應用
分類:系統





軟體開發工具不斷地創新下,這幾年的開發工具可以說是一日千里,稍不注意,你會發現很難與別人溝通,在剛剛踏入程式設計的領域的時候,我們往往會在意要學會C/C++或是要學會MS Windows 的程式設計,這一些技能在我的觀點來看,只不過是工具,要達成一個龐大的軟體系統,這些技能當然是不能或缺,但是,最重要的是要善用物件導向與資料庫的概念,將這些概念融入系統,或許因為大家開發的工具不同,不能利用物件導向的語言來開發,只要能融入這些概念,未來的發展性是無可限量的。

資料庫系統的工具程式語言,我們通常稱為『第四代語言4GL』,著名的4GL作業系統廠商有 Sybase, Orace, Microsoft......, 目前最新查詢語言的規格為 SQL-92, 對於資料庫系統中有關table, view, store procedures,交易異動及權限的管理是資料庫最重要的幾個特色,我們往往認為資料庫只是一個儲存資料的系統,其實經過統計後的資料才是重要的資產,如果是一家企業,透過對資料庫系統的設計,我們可以很容易得到即時的企業統計資料,如果是客服系統,我們可以很快的統計出客戶所要的服務,而不用透過不準確的市場調查或問券統計。

物件導向,我們很容易就想到所謂的JAVA語言,其實程式語言只是實踐物件化的工具而已,現在的VB, Delphi及JAVA 語言有融入也都有物件導向的語法,甚至上述的資料庫系統也都有所謂的物件化關聯式資料庫概念,有使用者自行設定的資料型態,有自定的函數與完整的物件關聯式型態擴充等等。現在的物件導向從早期的原始檔物件概念,一直到可執行檔的元件化(VCL, OCX,COM+) ,到現在的網際網路元件化概念(HTML,XML),未來的連結性將趨向更開放的規格與通訊協定,簡單的例子,我們經常發現一個網站有JAVA applet程式開發的跑馬燈,這個跑馬燈的元件可能是A軟體公司開發給B網站公司,然後B將這些應用元件放在網站上應用顯示自己的資料,同樣的例子還有很多,有些是Server Side 的元件,有些則是Client Side 的元件。

了解資料庫與物件導向的概念後,我們設計一套軟體系統時要注意的就是應用的效率了,是伺服器的負擔比較重,還是客戶端系統的負擔比較重,通訊協定是否符合應用的環境,傳輸時間是否過久,客戶數目過多的時候伺服器是否會承受不住,客戶端的資料要如何取得,客戶端與伺服器的環境是否能配合......這些檢查點其實很容易評估,只要我們把附圖的各個連結點畫出來即可。

物件導向與資料庫理論應用已經是發展好一陣子的概念,要開發創新的軟體系統如果遵照這些理論規則來開發,系統的相容度很高,也很容易移植到不同的『平台』。

1999/12/19

開放性軟體在『平台』中演進的角色
分類:系統





從個人電腦的演進歷史上來看,從大型主機UNIX在商業的應用,作業系統在其中雖然扮演極大的角色,但難免的他的價值是隨著主機一起販售的,因此的他開放性程度很小,APPLE個人電腦在西元八十年代席捲的個人電腦的市場,但是終究抵不過IBM以相容性的PC 硬體平台架構。

同樣的例子,微軟將作業系統視為一個開放性平台的架構下,在1995年推出Windows 95 後,這四年內,也置換掉我們對於產業價值判斷的標準,從硬體的生產應用中獲利轉為從軟體創造創新中獲利,通常我們買電腦週邊用品都會附贈一些應用軟體,例如買數據機送上網的撥接點數,但是現在有愈來愈多的遊戲光碟軟體,是購買軟體送玩具,當這個價值供應鏈變更成為,買軟體送數據機的時候,整個軟體價值就不一樣了。

大型主機『平台』的時代,是應用在電腦的大量快速的計算能力,而PC個人電腦『平台』的時代,只是將這些大量快速的計算能力普及化與個人化而已,到了作業系統『平台』的時代,我們才真正的把作業流程全面的電腦化,以往開發的軟體系統往往是特殊用途的商業應用,在作業系統與網際網路的雙重應用效果下,軟體系統才真正的被大眾真正的應用。

因此,現在大家在討論下一波的趨勢到底是什麼平台,我個人認為是網路服務的平台,這個平台是沒有實體的商品,現在炒的正熱的開放性原始碼(OSS)作業系統Linux,與Cisco的路由器OS,也只是掌握部分的關鍵,試問世界上真的有那麼多人懂得程式設計與網際網路應用嗎?

在這個網路服務平台之下,所有的價值在創造一個服務型態,以往傳統的價值鏈會在加值性的服務重大的變革,有人說知識專利權是一個非常重要的未來,但是這些專利的認定與規範,如果不能在政府行政單位下有效的管理,我想不斷地提昇自己的服務內容與策略合作,將自己與競爭者拉大距離,將是這一波網路服務平台的生存之道。

1999/12/12

軟體的整合性價值
分類:創新





我們觀察一些畫家或是藝術家的畫作, 如果你看看畢卡索早期的單幅作品,你可能會覺得其實我們只要勤加練習,也可以畫出同樣品質的作品,但是畢卡索的成功是在於他不斷地創新的畫風,從社會寫實主義派、野獸派、印象派到立體派,無不表現出他驚人的創作思路,也提高了他個人作品的價值。

畢卡索參考網址:http://www.paris.org/Musees/Picasso

因此,一項產品、一項服務或是一家企業如果沒有不斷地創新他的產品服務範圍,他的價值就會慢慢地減少,競爭力也漸漸地比競爭者要弱,以3M為例,研發與生產的投入比例上面是30/70 的分配方式,不斷地創新開發是他們的核心價值與競爭力的所在。

我們舉唱片業為例子,我們去買CD唱片,計算一下這些流通物品的成本好像只有售價的十分之一甚至到二十分之一,但是這些唱片的價值在哪裡呢?在歌手的聲音與作曲作詞的創作嗎?我們在產品的價值比較上面往往會拿具有實體的東西來做比較,而在網際網路上面,我們用什麼來衡量作品的價值呢?當這些創作變成資料流在網路上流來流去時,智慧的結晶如何評斷價值呢?

以往,所有的產品服務都會搭售在具有實體物品的東西上面,例如:書籍、唱片、上課的講義、軟體光碟片、交易、電影、觀光等等,當這些知識的資料很容易在網路上複製、流通與查詢的時候,我們應該很容易的去判斷這些服務的價值吧!

網際網路正以級數成長的方式在統一傳輸的規格(TCP/IP...),也在統一顯示的介面( HTML...),軟體系統要達成服務的功能時,是絕對不能抵擋這些潮流的,而要把一項產品價值附加在實體物品的機會也愈來愈少了,在軟體系統上面創新去落實產品服務的本身價值,將是所以人人應該做的投資吧!

所以網路上許多單一的產品需加以適當的包裝變成有特色的商品,形成「整合性商品服務」才能真正成為創造價值者。

1999/12/05

創新力與執行力必須以專業為基礎
分類:創新





這幾天看一齣韓國的連續劇,內容是描寫一個非常喜歡做皮鞋設計的女主角,因為不是科班出身,設計出來的圖樣基礎非常不好,但是社長看到他的設計創意十足,因此請他進來在打樣室做粗重的工作,從基礎做起--《蕃茄》。

姑且不論這齣戲有多八股或是劇情的發展有多惡毒,我們往往只看到成功的人光鮮亮麗的一面,看不到他被後打拼階段的基礎,這一點在所有事情都是網路的時代更是明顯,我們往往會想到很多很多的創意,但是等到後續要執行的階段,不是發現資源不足就是策略方法錯誤。

在軟體設計的領域裡面,我們往往會聽到業務單位說,為什麼軟體設計單位花了這麼多時間開發我們不需要的功能呢?這除了是溝通不良之外,往往是兩個單位的人彼此的專業性不夠,軟體設計單位要充分的了解市場競爭者的現況,綜合客戶的需求等等,我們並不是一昧的聽單一客戶的訊息來修改,而是要走在客戶的前端,產品市場的前端,服務需求的前端。

在一個工作領域要培養專業能力並不是非常容易的,第一個是部門單位的專業分工,使得一個人經常只能在自己的工作領域上努力,而且犯了當局者迷的錯誤,除了自己在工作上要找出自己的專業能力外,我們也要了解別的單位的專業能力,更要了解公司整體的專業能力,如果在軟體設計的領域裡面,雖然現在的開發工具非常的容易使用,但是舉凡作業系統、資料結構、物件導向概念、主從架構(Client/Server)等等,就是最基礎最基礎的專業,無論是經驗法則苦練出身的軟體研發工程師,或是本科系出身的工程師,我想基礎打好是最重要的,十倍速的網路時代,其實是可以邊做邊學的。

前幾天跟同事討論,軟體操作功能表的演進,從Windows 3.1 時代的標準功能表(檔案、編輯、檢視...) 到工具列(Tool bar)的發展,到現在瀏覽器上面大大小小的組合下拉式選單(ComboBox),或彈出式(Popup)選單我們是否已經被微軟牽著鼻子走呢?如果我們能創新出更好的操作介面,是否更要考慮到讓客戶更好用呢?

1999/11/29

發行股票卡片的可能性?
分類:創新





今天在看電視的時候,聽到一句話"那就是為什麼有棒球卡,沒有性愛卡的原因了"--城市鄉巴佬

我去年去紐約旅遊的時候在精品店看到一種商品,大小跟撲克牌一樣的大小,每一張卡片介紹紐約附近好玩的地方,這種卡片不能玩撲克牌,但是確能引起觀光客的收藏與實際上的應用。

運動在美國是重要的休閒娛樂活動,所以在球場附近或書店的架子上擺上球員運動卡是在也自然不過的事情,除了收藏之外也是投資大眾(簽賭)了解這個球員基本資料的最好方法。

小時後有一種卡通卡片,要去書店買來,然後要把不同的卡片依據不同的編號貼在畫冊上面,若買到重複的卡片,還要跟同學去交換,等全部收集完成所有的編號的時候,就完成了一個故事,我現在還保存的很好,每當拿出來的時候,就會想到那段時間的回憶與同懠的互動!

前幾天一群朋友不約而同的傳了一個折扣網頁給我,只要上網註冊就可以將抽獎券及優待券列印出來,然後實際的到晶華酒店消費就可以優惠,這使我想到了在網路上發行"股票卡"的可能性?

每次到券商去交易的時候,門口總有一群人在發名片,上面打著零股買賣或者是未上市股買賣,為什麼這些人不能包裝一下,發一下股票卡,介紹他想炒作的未上市股票,或者是收購哪些零股的好處也可以順便打打知名度,兩年前的台北市,特種酒店印的名片不是就很精美的嗎?

在Internet 上的瀏覽器列印出來是一張撲克牌的大小,而塞進去很多有用的資訊並不容易,首先是這些卡片的資料必須是比較長期投資必要的資料,例如上市公司的基本資料或是營收成長圖,以週為單位的K線圖,或者是分析師的建議等等。

我想在網路上要做到社群的互動並不容易,如果這些卡片又能達到社群互動的話就要靠一番創意的思考了!如果大家因此而賺到許多的錢,請不要忘記我啊!

1999/11/22

軟體開發過程階段性目標與相容性的做法
分類:系統





一套大的軟硬體系統,通常會有很多很多的周邊設備來做搭配,或者是有很多很多的介面,這些介面有可能是不同時期開發的,或是不同公司開發的,或者是搭配不同的周邊設備所開發的。

因此在軟體的開發上大家時常看不見的有下面兩點:

a. 核心程式的開發
b. 共通介面的制定

這些系統程式的開發往往因為在功能性無法看到成果而被其他的業務部門或客服部門感覺研發軟體程式部門沒有成果,這其中的落差研發部門要負起溝通協調的工作,並不是只是在功能進度裡摸索而已。

核心程式的開發需要完整而單純的邏輯及非常嚴謹的通用規則,共通介面就是核心程式與其他週邊介面所溝通的介面,制定這些介面的時候所慣用的就是通訊協定、檔案規格、函式功能等等,因此軟體系統就是靠大大小小的核心程式與共通的介面交互的運作著。

隨著時代的演變,可能這些系統的功能不足,正常的做法是我們一直加入大大小小不同的介面來搭配核心程式,或者新增一下核心程式的功能,但是,往往新增加的邏輯與原來的核心程式邏輯不符合,但是時間的壓力下,或者是維護人員不熟悉的情況下,我們就新增一大堆的例外處理,把核心程式的單純邏輯與通用規則給搞亂了,甚至是介面程式的定位也模糊掉了。

因此,若是這個軟體系統是要長期的維護開發的話,風險比較低的做法應該是在新功能加入前先評估核心程式是否要改變通用性邏輯,若是要改變才能因應未來的需求的話,我們可能要先建立一個階段性的檢查目標把新的核心程式的開發排入進度內,並且與舊的核心程式建立一些轉換的介面程式,慢慢的把舊的核心程式的重要工作轉給新的核心程式,在慢慢的將所以的介面程式轉換成新的版本。

在這個轉換的過程比較重要而瑣碎的工作,但是又不得不做的工作就是相容性,人類的世界總是同時存在著所有的新舊事物,這些事物是不是永遠都很協調的在一起呢?這就是相容性,一個軟體系統不可能永遠的存在,他必需要被人類運用他才存在,如果一套軟體系統在發展過程中背離了相容性,教育使用者將是非常艱鉅的任務。

1999/11/15

躍進式的思考模式
分類:創新


創新與創造力是與生俱來的, 但是我們如何把這種能力激發出來呢? 我們經常會發現一項成功的產品, 並不是他發明了什麼新的科技, 只不過用了一些概念, 把舊有的產品特性把他組合起來, 變成新的產品, 而『創新』就是這個組合的結果。

簡單地舉一個例子,3M的便利貼只不過是把便條紙加上膠水的概念(當然膠水不能太黏),而這些概念的形成就是『創新』。

我認為要達到成功的創新必須要有躍進式改變的思考方式,以前我們在學校的時候總是要求自己的名次要比上一次考試的名次進步即可,這種的競爭模式是在不變的環境中追求成功的觀念,我們常常會想去年的業績是100萬,而今年只要做到110萬就是進步了,但是在現在的社會環境中,所有的環境都是變動的,如果只是單純的要求在不變的環境下求進步,作單純漸進式的改變,要達成創新目標是非常不容易的。

對於工作與生活作一些無聊或瑣碎的改善,幾乎人人都有做過,仔細的想一想看,我們是否經常不知不覺地因襲成規並經常下意識地經受現狀並樂在其中?我們是不是在平常上班做的事情,是遵循前認同是所建立的慣例與習慣?這些既有的思考模式就是創新的阻力,而要突破既有框框的思考模式就是採用躍進式的思考方式。

我提供一些簡單的方法,來增強躍進式的思考,就是對於目前的環境做全面化的了解,積極地往前看,我們往往會利用過去的經驗來判斷未來的發展,這樣子經常會掉落到一個陷阱裡面,認為未來就是過去的經驗組合,但是我們瞻望未來而非回顧歷史的話,我們就會發現要因應未來而改變的幅度心驚,如果我們努力的前瞻未來,思考哪些將會發生的改變,你就會很快的認清,如果只是做漸進式的改良,你永遠到達不了終點。

1999/11/08

為什麼需要創新?(2)
分類:創新


回顧在十九世紀末,蒸汽機發明後進入了工業時代,那時候的工廠林立,集中勞力資本大量生產成為生產產品成功的條件,到了現在,後工業時代或是稱為電腦時代,不斷地利用新的技術組合出新的產品,成功的條件就是要不斷地創新。

以前的消費性電子產品週期可能是十年,到了現在,一家公司,如果一年不出新產品的話,可能會被別人懷疑是否已經倒閉了呢?

我舉一個物理學的例子:

A.如果一件物品在一個完全沒有阻力的環境中,只要他的速度是每小時10公里,你不用給他任何的動力,只要環境不改變,他行進的速度永遠是每小時10公里,也就是他永遠都是在前進的。

B. 但是如果一件物品在一個完全沒有阻力的環境中,他的動力是一定的時候,他就一定會有加速度,而且他的速度是愈來愈快的,只要環境不改變,他行進的速度會一直不斷地增加。

由上面這個例子來說明,如果A是工業時代的環境,成功的條件就是集中勞力資本大量生產,而B是電腦時代的話,成功的條件就是不斷地利用新的技術組合出新的產品,而這個動力--"創新"的概念應該是非常重要的。

十年前大家習慣的稱為知識爆炸的時代,所以資訊的分類與儲存查詢引發了資料庫系統的開發與成長,現在,所有的產品生命週期,生活方式的改變,都是十倍速的在改變,我們不可能把全世界的知識來分類,儲存,查詢計算出這個改變的路徑,而不被這個時代所遺棄的方法,應該就是想出如何創新吧?

1999/11/01

為什麼需要創新?(1)
分類:創新


很高興這個網路時代,大家都可以變成發行者,也可以就自己有興趣的事情做討論,回憶自己在電腦軟體的開發工作上也有16年的光陰,我想就我的經驗與大家分享!

目前台灣最賺錢的行業莫過於電子硬體的代工,加工,我們買的是外國人的機器,生產的是外國人需要的硬體元件,有晶片,元件,主機板,筆記型電腦,PC等等,大家總以為這些就是高科技,但是自己想一想,除了高效率的製程外,我們還有哪些是別人無法取代的核心技術呢?

台灣人做事總是一窩蜂,常常有搶時機的觀念,因此,中小企業只要認為有賺頭,馬上大家搶進,例如最近的金融網站,由於金融產品是完全不用"實體商品"流通的行業,所以在網際網路上的傳播及買賣最為容易,但是能握有買賣機制的行業,到底有哪些呢?

在舊時代,只要握有產品的通路權,就擁有了一切;現在,握有了網際網路的通路(熱門網站),就擁有了一切嗎?這恐怕還是未定之數吧! 我想應該是握有"客戶"才是正確的路,而這些客戶為什麼會上門,就是靠創意創新與改變!

目前大家都說台灣的軟體業是下一波的電子股(或是生物科技?),但是我們用的作業系統,開發工具都是美國人開發的,要在這些工具平台上創新恐怕是很難,Microsoft 透過行銷手法,要大家學 VB/ASP是不是就無法在上面搞新的創意呢?

廣告公司的企劃人員,是靠"創意"讓他的客戶信任他的,但目前沒有一套軟體是靠"創新"讓客戶滿意的!

如果我們能用創新加注於現有產品的生命,是否就可以在創造我們的核心價值呢?