平臺升級

(2008/04/09)

為客戶升級業務系統的工作已經接近尾聲,經過了將近五個月,除了重新編寫了客戶的所有應用程式,也為開發平臺增加了七十多項新功能.

在這個項目的初期,還比較擔心會疲於應付客戶提出的大量修改,後來只要客戶提出的修改合理,就算不在報價的範圍以內,我們都接受了. 因為客戶這次升級業務系統促成了平臺的改良,一般的程式修改已縮短到幾分鐘,複雜的修改也不會超過三個小時,這個時間已包括了動手之前的準備. 這樣,修改程式的速度基本上超過了客戶試用程式然後再提出要求的速度.

客戶能夠得到快速的回應,並在第一時間知道自己的要求會導致怎樣的後果,更加清楚了自己的需要. 有更多試錯的機會,他們也更了解自己的業務軟件,甚至更了解自己的業務運作,提出的要求也越來越接近程式員的思路. 我相信他們會覺得這樣的程式服務很有價值.

除此之外,為開發平臺增加了新功能,不單只令這個項目的程式員受惠,更令所有使用同一個開發平臺的程式員都跟著受惠,連帶我們所有的客戶都將會得益,這是以平臺去支持應用程式開發的好處. 就算將來客戶的應用程式不再更新,更新開發平臺也可以改善已有的應用程式的運作. 開發平臺更加完善,可以進一步簡化編製用戶介面和報表的工作,程式員做得更輕鬆,可以更多地從使用者的角度去考慮,做出來的軟件自然更易為客戶接受.

另方面,開發平臺本身具備互聯網的操作功能,使用者和程式員均連線到同一個開發電腦,介面與報表的調整大家都可以即時見到效果,使用者能夠及時提出修改的建議,避免了程式員在完成製作之後要面對大量修改,這樣開發應用程式所需的時間就可以大幅減少. 在這種開發模式裡,使用者其實也是開發小組的成員,甚至人數比程式員更多,他們熟悉自己的業務運作,並負起測試應用程式的責任,為軟件公司節省了開發成本.

看來這種訂製商務軟件的模式真的很值得推廣,如果有更多人成為這個開發平臺的程式員,就能為大量企業機構訂製出真正價廉物美的業務系統. 程式員也會對開發平臺提出有建設性的修改,平臺繼續發展,應用程式的製作又會更加容易. 程式員之間的合作大部份都體現在應用程式與平臺系統的配合,合作也變得更單純更高效益.

每次回顧開發平臺的改變,都會覺得還有很多工作要做. 到目前為止,主要的用戶介面之中,行式資料庫表格的製作已經足夠簡單,頁式表格的製作雖然也算簡單,但還是覺得有少許繁瑣,如果能夠再添加一些輔助工具,對一個新手來說,用戶介面的製作也完全沒有難度. 至於報表的製作,似乎不容易作進一步的改良,但觀察新手程式員的開發過程,看到他們必須經過多次練習,才能的掌握好製作報表的技巧,說明製作報表的工具還有發展的空間.

我們也很清楚,這個開發平臺遲遲沒有大幅增加程式員,是因為我們的推廣工作做得不夠好,尤其是教材的編寫,由於需要一些有這個平臺的編程經驗,文字表達又準確的人才,一直都跟不上新功能的增加. 人多好辦事這句老話,似乎適用於我們現在的情況,不過,優秀的人才,對任何企業機構來說都是越多越好的.

寫應用,改平臺

(2008/01/11)

接手一個運作了超過十年的業務系統的升級工作.

這個系統第一個版本出自二位從未受過程式編寫訓練的人士,十年前一位中型公司的主管帶著秘書,毅然在我們的開發平臺上開始了一個龐大的程式發展計劃. 現在要升級的系統是那個秘書把自己的部份作品移植給其他客戶的,在零零年更新過一次平臺,直到近期客戶因應業務發展才提出一些修改要求. 我接手這項工作其中一個目的是想詳細了解一下,沒有受過程式訓練的人在我們的開發平臺規範下能夠寫出怎樣的業務應用程式.

這個系統算是一個比較複雜的系統,要管理的物料很多,與物料有關的內容也很多. 從報價到物料收發以及庫存管理,整個物料購銷業務所需的軟件程式均已齊全,如果不是因為業務發展有需要修改,這個系統可以再使用很多年. 本來打算只在程式上做些調整,但發覺有很多程式都可以進一步簡化,就決定把整個系統進行一次大修,這種牽一髮動全身的工作雖然很有價值,但卻會讓人非常忙碌.

很多年沒有碰這類繁複的業務系統了,還好開發平臺是自己建立的工作環境,開展後還感到得心應手,而且可以從升級工作中看到平臺有甚麼欠缺,為建立下一個版本的開發系統做些準備.

繁簡體中文字

(2007/07/10)

正在做系統升級至unicode的前期工作,覺得在一篇文章中允許同時使用繁簡體中文字,可能對中文的學習有點副作用.

例如"國"字,能夠在一篇文章輸入"國"及"国",看中文的人就要知道這兩個字其實是意思相同但筆劃不同的"一個字". 統計過有2千多個簡體字,本來常用字3千左右,現在可能變成5千多了.

還有一點不好,一些公司在大陸香港都有辦事處,以前在大陸輸入的簡體字資料在香港的電腦可以即時全部變成繁體,現在或者不可以了.對寫程式的人來說,資料中同時出現兩個意思一樣但編碼不同的字,始終都會增加處理上的麻煩.

看來也只好這樣,雖然簡體字有所不足,但已經被太多人使用. 不過學中文可能難度大了.

或者參照英文,把繁體字看成是大寫,把簡體字看成小寫,可能會比較容易接受這個難以改變的現實.

Picture

免費不單是一種誠意

(2007/06/30)

開放軟件系統的部份使用權將近半年了,這段時間接到不少查詢電話,其中一個經常被問到的問題是"你們提供了免費軟件,還怎樣賺錢".

在商務軟件激烈競爭的環境中,"提供免費使用的軟件"是商務軟件公司表達誠意的一種最直接的方式,也是建立業務自信的一種方法. 免費使用不應被解讀成不提供服務,而應理解為只提供最基本的支援.

如果用戶覺得最基本的支援已經足夠,可以一直免費使用,當需要更多支援的時候,又可以付費購買更多的服務. 用戶也可以一開始就選擇付費,以便第一時間獲得比較全面的支援. 軟件市場很大,先讓一部份用戶免費使用軟件,沒有收回的開發費可以看成是宣傳費用. 當用戶與軟件公司進一步聯繫的時候,他們已經熟悉了軟件系統的運作模式,所需要的已經不是一些操作使用上的支援,而是比較技術上的或者是有關繼續發展的服務,那是商務軟件公司最能盈利的項目. 另方面,當免費軟件產生了宣傳效果,用戶群迅速擴大,軟件公司的市場佔有率提高了,業務量也會跟著提提升.

不同於音樂或影像,也不同於一般的工具軟件,商務軟件大多有進一步發展的需要,這時候就需要軟件公司在技術上提供協助. 所以,對商務軟件公司來說,提供可以免費使用的軟件是一個很好的策略,不但可以控制宣傳費用,讓產品自我宣傳,更為將來業務成長播下種子.

現成軟件的售價已經很低,與降低軟件售價相比,提供免費軟件實際上還有優勝之處. 不像付費用戶那樣,免費軟件的用戶在支援方面不會對軟件公司構成很大的壓力,讓軟件公司得以保持架構上的簡潔,並且可以集中力量為一些需要長期及大量支援的客戶提供服務,這樣軟件公司的效益反而有機會提高.

從使用者的角度看,免費軟件是一種最實際的優惠. 只要軟件公司承諾提供必須的最基本的支援以及軟件更新,使用者會樂意採用的,將來需要進一步發展的時候,也會向提供免費軟件的公司尋求合作.

總的來說,免費軟件是協助軟件公司突圍而出的有力武器.

程式員

(2007/04/03)

像伺服器系統那樣,效忠每一個連線的用戶. 聆聽每一個需求,運作無誤,及時地給出對方想要的結果.

把真實世界虛擬化,又把虛擬世界真實化. 穿梭在人與電腦之間,把文件與程式交織在一起. 既是客戶夢想的實現者,也是發揮電腦能力的人.

作為一個程式員,不但要對寫程式有長久的熱情,能夠在程式世界之中找到樂趣,更要懂得真實世界的運作模式,也能擔當帶領客戶進入虛擬世界的嚮導.

對商務軟件程式員來說,不應走入行業胡同. 其實很多行業都有不少相似的需求,程式設計的思路也會很一致. 放棄了某些行業,不但少了生意,也會令自己失去了觸類旁通的機會,所專注的行業也難以勝人一籌.

這些程式員也不必走入技術的胡同,他們不像系統程式員,必須專注於某種技術才能有所發展,而可以運用一切能夠令到商業軟件更快更好地投入運作的工具.

當然他們必須懂得選擇,重點在縮短商務軟件的開發時間,並延長此等軟件的壽命.

客戶需要甚麼?

(2007/04/02)

市場上已經有太多的現成軟件,有些軟件的功能還十分豐富,要知道客戶手上的資訊工具還有些甚麼不足,可能要直接去問客戶.

我覺得客戶最缺乏的是貼身的程式服務. 生意變化大,很多時候需要處理新的業務資訊,如果軟件系統跟不上改變,就會令業務操作產生不便,甚至還會影響到業績以及將來的發展. 很多小型企業又難以設立自己的IT部門,所以市場上很需要低成本的軟件訂造服務. 如果程式服務的收費相宜,小型企業就會大量訂造軟件,IT行業將會十分蓬勃.

怎樣才能降低商務軟件的訂造服務收費? 我想必須有一個商務軟件的開發平臺,為程式員解決很多編寫商務軟件必須面對的問題,例如使用者管理,軟件功能的權限控制,多用戶同步運作的協調,乃至軟件功能的遠程使用. 如果程式員能夠專注於了解客戶的業務運作,編寫和修改這方面的應用程式,不但能夠提高程式的素質,收費也可以大幅降低.

多年的經驗使我們知道,只要客戶能夠負擔得起,又能促進業務發展,他們會很樂意付費去發展有企業個性的資訊系統的.

理性遊戲

(2007/03/27)

程式是一種理性遊戲,喜歡用心去感受的人,都有機會進入這個深微的世界,從深微中影響著宏觀世界的事物.

喜歡以文字溝通的人,可能已經具備程式的寫作能力,只要找到進入程式世界的入口,自然就能發現這個世界的吸引力,不久就會嚐到程式寫作的樂趣. 有部份人可能不適合系統程式的寫作,而適合編寫較有針對性的應用,只要讓這些人不需面對機械式的低層次程式循環,他們就可以有不錯的作品.

寫文章與寫程式有很多共通之處,系統程式的編寫需要有全局思想,也需要有自我修正的欲望和勇氣. 而編寫應用程式,又要考慮到使用者的希望和感受. 要做好一個程式或軟件系統,除了技術以外還要考慮很多其他的因素,可以有很多發揮才華的場地.

另一方面,軟件系統多少都會反映出開發者的性情和品味,未必會被所有人接受,所以軟件市場遠未飽和. 尤其是開發應用程式,還等著更多人去參與. 只要能夠形成一種編寫個性化應用的趨勢,參與者就會有不錯的回報.

程式短了

(2007/01/28)

今天統計了一些通用程式的行數,比之前少了,或者應該可以更加簡短.

客戶及供應商資料管理:           400
貨品資料管理:                           270
貨幣及單位換算表:                     90
銷貨及應收系統:                     1700
進貨及應付系統:                     1200
存貨系統:                                   600
總賬系統:                                 1500
公用程式:                                 2600
==========================
總數:                                         8360

簡短的應用程式,有利於修改和擴充. 但花在開發平台上的心血又會有多少呢?

熱心電腦中文化的長者

(2006/11/20) 

87/88年間認識了一位長者,他是我任職的那個軟件公司辦公室業主的哥哥.

有天我到業主在同一幢大廈的辦公室交租,業主告訴我她的哥哥想找人編寫一個中文輸入法的程式. 認識了那位頭髮斑白略帶孩子氣的長者之後,我才知道是他研究了一套中文輸入法. 他把很多本厚厚簿拿給我看,每本簿都密密麻麻寫滿了中文字及輸入法的部首及編碼,還有編碼重覆的頻率統計. 這個時候我已經不太願意談下去,最大的原因是怕被要求輸入那一萬幾千個中文字的編碼. 那位長者見我面有難色,便開始講述有關那個輸入法的故事.

那是一個以數字小鍵盤單手操作的輸入法,以中國數字花碼代表中文字的部首,早年中文輸入法提案,他也把自己的設計交到有關部門參選. 雖然落選了,但他仍心有不甘,始終認為自己的輸入法比倉頡碼優勝. 從台灣回到香港,他一直找不到有興趣幫忙的程式員,知道了我們是軟件公司,又想再碰碰運氣.

長者的故事令我有點心動,我提議為他編寫程式,但不負責輸入編碼資料,沒想到長者一口答應,他說自己輸入就可以了. 我帶他到黃金商場買了一臺XT兼容電腦,開始編寫讓他輸入資料的程式. 他眼力不太好,資料輸入畫面的文字要放大兩倍,但過了不到十天,他已經輸入了千多字編碼. 可見他真的很希望把自己的中文輸入法推廣,讓使用中文字的人多一個選擇. 我當時認為他的輸入法有很多缺點,要求單手操作是其中一個. 不知後來使用小鍵盤的輸入法有沒有參考他的設計.

在那位長者輸入了四五千字的時候,我提出不再參與這個項目,我覺得這個項目令我多了一項自己不是太有興趣的工作. 老人家以為我想得到報酬,但他沒有給我錢,而是想送一塊小玉石給我. 當時我沒有在意,認為老人家太小器. 現在想起才有點意會,老人家知道我的名字有一個玉字,或者是意味深長.

我當時沒有顧及那位長者的想法,也沒有接受他的報酬,推託工作忙不再與他見面. 直到89年底我幫公司交最後一次租金,才知道那位長者在一場大病之後沒有再來他妹妹的辦公室了.

網絡中見出路

(2006/11/07)

怪不得很多公司不太想投放資金去購買軟件.

在網上搜尋了一下,發覺仍有很多應用軟件停留在單機或局部網的程度. 如果這些軟件的使用者業務有較大發展,可能整套系統也要更換. 更換系統不但要重新投資,也會再次佔用管理人員的寶貴時間…

應用軟件應該隨著業務的發展作出修改. 但現成軟件像實物工具那樣,難以符合這個要求. 更大的問題是,使用者大多只有現成軟件的使用權,並不擁有該軟件,更加不能擅自修改.

度身訂造軟件應該是較佳的電腦化途徑,但礙於開發軟件的工作量大,開發人員質素參差,電腦化的效果難以預料. 而收費之高也不是普通小型公司能夠輕易負擔.

小型軟件公司要與具規模的同行競爭,可能要把基本應用(例如會計系統,零售系統,進銷存系統,貨運系統)轉為可以通過互聯網使用的軟件,這樣客戶就不用擔心以後業務網絡的擴充,最好把應用系統的源程式交給客戶,這樣客戶也不必擔心軟件公司倒閉. 如果還能為客戶提供較為廉價亦高質素的度身訂造軟件,不但不會被淘汰,還有機會走上一條大路.