2002/03/30

程式設計師的工作慣性


這次要討論的主體可能跟創新的關係很小,請容許我離題。一般來講年後換工作的風潮在各個行業都會發生,我們來分析一下程式設計師工作的型態,這些分析可能在各行業都可以適用。

首先,我面對到程式設計師換工作的主要原因大部分是認為原來的工作創新度不足,使用的開發工具比較舊,原系統已經不做大幅度開發,只作例行性的維護,缺乏新鮮感,種種的跡象顯示很難獲得成就感,或者是無法獲得大家的一致的認同有價值。

但是,這時候程式設計師的確是一樣的忙碌,每有忙著救火,卻得不到掌聲,如果你正式處於這種狀況,你第一個想到解決的辦法就是換工作吧!然後原公司可能會在找一個人頂替你的位置,而你接觸新的工作,同樣的狀況兩年後又發生一次,這是一個無法解決的惡性循環。

問體出現在哪裡呢?我想並不是技術能力的不足,而是錯估了處理問體所花的成本,接專案的人總認為有一個洞,把他補起來就好了,哪知道有很多洞要補,而且補了洞還不一定知道是不是會產生另一個洞,所以需要從系統架構上的問題去了解,然後再來解決。

第二,可能是在系統整合上的問題,現在的系統大部分是採用開放式的架構,大家協同把所有的子系統放上去,第一次整合測試沒問題,第二次也沒問題,測試過後就上線了,但是系統運作的時間久了之後,有的子系統因為檔案讀取失敗,資料庫沒有正常運作,或者是當初沒有考量道的錯誤,造成平常操作人員的困擾,因為程式設計人員也換過了好幾代,文件不齊全,原始程式碼沒有說明,導致無法找出問題點。

這一類的程式設計師總覺得自己在接爛攤子,接愈多包袱愈大,最後只好選擇丟掉,其實,要解決整合的問題,別無他法,就是程式設計師或者操作人員下去做分析,詳細的一步一步的把錯誤訊息找出原因,然後把問題發生的狀況紀錄分析,然後看是要改程式來解決,或者是從作業流程去改變,這個以目前用 Excel 來做應該都綽綽有餘了,這個過程可能隨時都在做,但必須密集的去分析解決。

最後,可能跟資源的整合或是分開有關,公司會資源整合一定是有某些產品的收入不合經濟效應,所以一個人本來負責一個產品或專案,但是可能一個人變成負責兩樣產品,如果程式設計師還認為事情是Double 的話就錯了,可能剛開始的時候是這樣,既然負責了兩件事情,就要把程式碼變成一份,這樣慢慢地就變成一件事情了,不然比較差的方法就是安排事情的重要程度來處理。

另外最重要的想要換工作除了是被挖角跳槽之外,其實也有景氣循環這一回事,景氣不好的時候,開發新功能新產品的事情是比較少,維護程式系統的事情比較多,認清楚你的專長是在開發新系統還是在維護系統,在搭配業界的景氣循環,才不會永遠在景氣循環或是過年的時候換工作。

2002/02/19

找出產品創新的特色
分類:創新


最近一直被別人問到,什麼是創新?創新的定義是什麼?這實在是非常難講清楚,我認為創新是讓一個公司或是一家企業生存下來最重要的要件之一,現在企業之間的競爭非常激烈,只要成本、管理、流程、財務等等沒有控制好,往往競爭力就差了很多。而創新不單單適用在產品上面,是全面性的創新。

如果只講軟體產品上的創新,我想找出產品的特點,訂立有效地目標,並且大力的往那個方向前進是最好的辦法。

維護成本的降低,由於現在的軟體系統多半會隨著維護合約簽訂,如果在產品開發之初沒有考慮維護的成本,無論是在設備或是人力上,往往是一個產品成功與否的關鍵,如果你的軟體系統上的維護大部分是資料庫的維護,儲存媒介的選擇與檔案存取的技術方式,決定了維護上的成本。

執行速度的加速,軟體系統內部的演算法,以及資料存取計算的速度往往是使用者選擇重要的關鍵,如果能在使用者最在意的地方加速執行的效能,往往是成功的關鍵點。

使用介面上的創新,雖然Windows標榜所有的軟體有一致的介面,很容易學習,但是並不是各行各業都能適用這些方式來操作,如果能在使用介面上獨樹一格,容易使用,並且減少出錯的機會,相信是很大的特色。

使用學習上的創新,現在的套裝軟體,或是網路上下載的軟體,往往都要看使用手冊,全部翻完才能知道所有的功能,不然就是一個功能一個功能慢慢嘗試,以MS Word為例,你用的到的功能有他提供的50%嗎?恐怕很難吧!在產品使用的學習上如果讓人很簡單使用,很快的學習所有的功能,也是不錯的。

整合度上的創新,如果你的系統是平台式的系統,或是提供資料的系統,整合度就是很大的考驗了,例如語音辨識的系統,一定要與作業系統的輸入法,或者是文書處理的程式做好整合,如果是兩三家廠商共同開發的系統,不同的程式之間要提供良好的整合介面,這項工作有些廠商並不太願意做好,有的是商業的考量,有的真的是困難度很高,可是只要整合良好,一定是很好的賣點。

使用人數的增加,網際網路讓全世界的網路連接起來,電腦的效能也愈來愈高,所以提昇使用者上限,以及二十四小時不間斷地服務,是現在所有產品必須思考的,當然使用者多起來,效能及維護的問題也要同時考量的。

作業系統與硬體的選擇,雖然說PC普及率非常的高,但是PC的硬體廠商很多,周邊設備以及擴充性導致開發出來的產品經常有不相容的情況,如果你的產品可以使用簡單而統一的硬體規格,使用不同的作業系統,例如DOS或者是Linux也是可以思考的方向之一,不過這一點一定要考慮到未來開發的便利性。

找出產品的特色,是迫切需要去做的,隨時的問一下,我們的產品有沒有特色,有沒有競爭力?