從「人腦」到「電腦」軟體開發是一場複雜的溝通遊戲

張貼者: 分類: 先傑電腦的願景_策略_執行_價值 評論

image◆為了與時俱進,持續系統化優化先傑電腦軟體工程組織智能,每一季都會安排【軟體工程(系統管理資安研發設計)融入日常工作】系列研討會,第四季研討內容中,蘇組長整理論述從「人腦」到「電腦」軟體開發是一場複雜的溝通遊戲,軟體開發是一場團隊合作的遊戲,其中有人扮演需求提供者,有人扮演需求解譯者,有人扮演需求執行(或完成)者,軟體專案從最初的提出者(如顧客),到最後專案的執行者(如程式師),中間產生了極大的落差,尤其是訊息經過層層傳遞,每一次的溝通都帶進了新的解釋,扭曲了原始需求的樣貌;多數時候用戶既不確定自己的需求,也說不清楚,這會導致兩個現象:

– IKIWISI(I Know It When I See It):指用戶只有當看到可操作的軟體時,才知道自己的真正需求。

– 需求蔓延(creeping feature):指用戶的需求隨著對問題的瞭解而不斷擴大。

上述二者都是軟體開發過程中常遇到的挑戰,若未能妥善因應,往往會導致專案的失敗。

從「問題」到「答案」

軟體工程是研究如何「以工程化的方法,從一個抽象的『問題』,推導(或創造)出具體的軟體『解答』」。因此,軟體開發的困難也可以從這個角度去探討。

軟體開發的困難可分為兩類

本質性(essence):軟體本身在概念(conceptual)建構上存先天的困難;亦即如何從抽象性問題,發展出具體概念上的解決方案。

附加性(accident):將概念上的構思施行於電腦上,所遭遇到的困難。

造成本質性困難的原因有以下幾項

複雜性(complexity):軟體的目的是要解決問題,其中牽涉到計算(computation)步驟。這是一種人為、抽象化的智能活動,通常是複雜的。

不可見性(invisibility):尚未完成的軟體是看不見的,即使利用圖示說明,也常無法充分呈現其結構,使得人們在溝通上面臨極大的困難。

協同性(conformity):在大型軟體環境中,各子系統間的介面必須協同一致。

變異性(changeability):軟體所應用的環境,常是由人群、法規、硬體設備、應用領域等各項因素匯集而成,而這些因素皆會快速變化。

imageimageimageimage

Comments are closed.