2000/05/27

程式開發人員的工作風險與動機
分類:職場


剛剛投入程式開發工作的人,總有滿腔的熱誠,想要把開發的系統做到非常完美,但是現實世界中,沒有一項事件是完美的,往往遭遇到許多的挫折,我們從程式設計師的工作動機來討論,並且說明他們的工作風險,讓大家更了解程式設計師的心路歷程。

一般的程式設計師並不在乎短期的工作時間,在乎的是下列三大項,一是成就認同,二是技術成長的可能性,三是工作本身的興趣,我們觀察一般的程式設計師的個性,其實發現他們比一般人還要『內向』,而內心的世界往往比外在的世界要大,要觸發這些動機並且平衡所有角色的工作並不容易。

成就認同,軟體開發的程式設計師喜歡工作,激發開發人員最好的方法就是提供一個環境讓他們可以很容易專注在最喜歡做的事情上面,對於一個專案或產品要給所有權的概念,這樣自然會產生參予感,而他們總是充滿了野心,所以工作時程總是訂的特別短,所以目標的設定非常重要,當然這些目標不能太過複雜與多樣,要用程式設計師的語言來設定目標,而這個設定目標就是一種被認同被肯定。

技術成長的可能性,程式設計師的開發環境是持續變化的領域,為了能夠生存下去,必須每天學習一點東西,今天做的這個工作有可能有一半會在兩年內過時,想想這個行業的自然現象,所以為他們成長的激發是非常重要的組織內功能,一個組織要提供專業課程的補助,給予上課或是讀書學習的空間與時間,購買專業書籍的補助,分配程式設計人員擴展技術的專案,給予新進人員一個顧問(輔導員),如果一個組織內部無法提供這幾項機制的話,程式人員的開發動機會隨著時間,而熱忱慢慢的降低,相對的給予資深的程式開發人員很多的技術地位提昇與技術管理顧問的工作也是一種成長。

工作本身的興趣,我想這是所有工作者都要具備的,但是對於程式設計師來講,要十分的投入並且去培養的,不能時常被打斷的工作環境也非常的重要,如果我們在一件工作的任務認同上給予重視的話,他們就會比較關心他們的工作,而對於工作的回饋會完完全全的反應在興趣上面。

如果一個組織能提供這些環境,程式設計師的風險還是非常大的,可能你的專案一夕的需求改變,我們要花十倍的資源去修改甚至重新設計,一個設計良好的系統,有可能一個顯示的錯誤,被批評的非常不可用,品質的保證好像是測試人員的事情,但是終究是透過程式開發人員來修正的,上面敘述的三大動機也可能因為工作環境的改變,使用技術的改變與成就認同的改變,讓程式開發人員面臨強大的壓力。

或許呆伯特的出現,就是要減低這些風險壓力吧!

2000/05/14

軟體系統建構的五大基礎面向
分類:系統





從無到有開發一套系統看起來看似簡單,但是一套系統要有計劃的開發,系統架構要方便於未來的維護與擴充,是系統開發人員最大的痛,本文簡單的說明一套軟體系統在開發之初或是在維護的時候要注意的幾個重要的課題,可以讓您更了解您的系統出了什麼問題?

 一、資料儲存的型態、儲存的位置、使用方式
 二、通訊協定架構與資料量、傳輸媒介
 三、用戶端的操作介面與資料列印問題
 四、配合用戶端必須有哪些伺服器
 五、安全性問題,認證、加密......

首先,有很多人認為開發工具(如VC++,BCB,VB,Delphi...等)是開發一套系統要優先考慮的事情,我認為開發工具是團隊中重要的溝通工具,但是並非一整套系統的重要考量,因為寫程式碼、修改程式並非就是開發系統的全部。

資料型態,首先就一個系統的資料來講的話,大家想到的就是用資料庫來管理,但是如果您的資料是非常簡單的型態,或者是資料量並不是非常大,有時候用檔案的型態,倒是非常好的維護方式,程式撰寫容易,效率也比資料庫好,如果您的系統資料不會擴充的話,建議以文字資料檔案的方式來儲存,如果您認為您的系統前景看好,可管理的資料非常的多樣化,這時候選擇的資料庫系統也要十分謹慎,而資料儲存的位置是伺服器端或是客戶端,客戶端如何存取資料或是資料的加值計算統計是在哪一端,都要事先規劃。

通訊協定,大家第一個想到的就是TCP/IP,並非所有的網路傳遞都靠TCP/IP,網路理論中的七層架構中,我們要先了解一套系統的網路組成是如何的,當然利用比較公開或比較常用的通訊協定,可能未來的擴充性較高,但是必須先考慮資料傳遞的特性,例如大家常用的FTP傳檔的通訊服務,起始並不是很適合用TCP/IP,當您發現您傳一個大檔案的時候會愈傳愈慢,這就是TCP/IP的缺點,後來開發出來的續傳伺服器與續傳的用戶端軟體(GetRight),就是要彌補這項的缺點,早期也有TFTP利用UDP/IP來傳遞資料,其實是不錯的解決方案,而通訊協定的確定包含一項重要的考量,就是資料傳遞的方式。對於近年來伺服器代理程式或者是路由器的轉傳遞資料,必須也要事先考慮到的。

用戶介面,這個關係到您的產品系統對於用戶的感受,也要視情況選擇開發的方法,如果用戶只有3-4個人,可能不需要太炫麗的外觀,只要針對使用者常用到的功能效率提昇並且考慮使用者操作的方便性就好了,至於您的系統如果是免費下載的Shareware,就要考慮到使用者必須如何學習你的程式與使用者使用操作的動機了,現在的系統很多應用到瀏覽器的介面,不失為一個良好的方式,但是如果考慮的前面所提到的資料量,用IE或Netscape經常在資料的傳遞上的效果不好,操作的便利性也不是很好,常常需要一問一答的方式,增加了使用的時間。這一方面雖然微軟也一直在推廣Windows視覺式的操作介面,但是滑鼠並非能解決所有的問題,我們必須同時考量到鍵盤快速的操作便利性。

伺服器端,我們經常接觸到的Mail Server, Web Server, FTP Server是標準的伺服器系統,但是這些伺服器資料的傳遞方式是否符合我們的需求,是否要另行開發是我們必須先考量的地方,現在有很多的系統都用HTML 當介面,然後對於WEB Server做操作,這一種方式的開發目前來看雖然非常的快速,但是客戶量的多寡,還有操作事項的複雜度,都是必須考量的,如果需要的話,必須是要開發一些中介自動化的伺服器程式來對使用這的操作在排程,否則在網路的傳遞(頻寬),或是伺服器的負荷都是很大的負擔。

安全性,以前的封閉系統開發可能不會在資料儲存傳遞的過程中加密,但是隨著網路時代的公開化,現在我們有標準的加密通訊方式(SSL...),也有標準的認證伺服器,而安全性包括使用者的基本資料與歷來的交易資料,也包含了使用這一整套系統的權限,這個在系統開發之初就一定要考量的問題。

網路時代的軟體系統開發雖然也趨向標準化了,但是,一個系統的開發必須更謹慎的評估,才不會失去他的擴充性。

2000/05/07

創意模型與軟體系統開發模型
分類:創新





每一種行業或者是說每一種專業,都有所謂的『模型』,就是事情思考運作的模式,有所謂的商業模型、組織模型、營運模型等等,我們要討論的創意模型與軟體系統開發的模型如何整合在一起,是我們要不斷地學習的地方。

創意模型,思考過程與方法是最重要的,經常性的『跳脫』,有助於提供更好的解決方式,並且讓你更清楚你目前的阻礙在哪裡,要了解目前看事情的方法外,真的還有其他的替代方案存在﹔找尋『刺激』,把一貫的想法和對事物的評價分開了看,思考的過程或許要犯錯才能達到快速或正確的解決方法,人往往在說話之後,才會找到說話的理由,雖然接受刺激的心理不是很舒服,但是刺激之後的想法會穫得不少的改變,至於這些激發創意的這兩個過程與方法在運用的時候,心理面最好能分辨,而這些技巧要長時間的訓練而達成的。

軟體系統開發的模型,我們在第十期有做簡單地說明,就是瀑布式、螺旋式與壓縮扭曲後的開發過程,這些開發模型依照每一個專案或產品的不同會有不同的方法,如果隨著開發工具的不斷提昇,加上創意創新的組合,會有千百種不同的運作模式,而時間的因素是我們一直考慮不周詳的地方,也是軟體開發為什麼無法掌控進度的原因。

簡單地舉一個例子,如果有一個專案,是進出貨管理系統,我們一定要做使用者訪談的工作,但是系統分析師去訪問了兩次,發現使用者以往的工作流程過於繁複,有些是因為紙上作業或方便上司查核,或者是莫名的原因而做的流程,系統分析師會不斷地內心掙扎,到底是原來的過程如何改變呢?這時候用的方法往往是依照原流程『不變』,當系統完成之後,使用者會發現比原來的作業更繁複。

當系統分析師利用創意思考的方法,找到更好的運作流程而將資訊系統做了大改變,而且作業過程簡化後,將查核的功能自動的做進了系統,等到系統開發好了,也除錯到達一定的階段,這時候的使用者因為少了很多很多的步驟,掌控的資料量少了,變開始對系統不信任或者是有不安全感,往往會開始抱怨,這時候要改變的就是使用者的心態,或者是使用者對外溝通的模式整個改觀,雖然我們的例子過於極端,但是一套資訊系統的開發,真正的是影響到一個環境內的運作與思考模式的。