Enews57 談軟體開發中的溝通問題

出自KMU e-News

在2014年9月11日 (四) 17:20由Publish (對話 | 貢獻)所做的修訂版本
跳轉到: 導航, 搜索

高雄醫學大學 第57期 資訊處專題

談軟體開發中的溝通問題

鄭炳強顧問


資訊科技已經是所有企業組織必備的工具,而電腦軟體又是其中的靈魂,關係到組織運作的效率,以及管理制度的落實。但是「軟體是如何被開發出來的」,卻似乎不是那麼有人關心。對用戶來說,以為只要有預算,找到工程師,或者外包給廠商,自然就會得到他所要的東西。同樣的,如果你到軟體業界去調查,可能會驚訝地發現,軟體公司或資訊單位,自己也沒有「標準」答案。各式各樣的實踐方法,都有人鼓吹,也都有人用。但是更多看到的,卻是「沒有方法的方法」。這究竟是怎麼一回事?


依據美國Standish Group CHAOS 2003的統計報告,他們調查了13,522個專案,發現其中66%的軟體專案失敗、82%的專案超出時程、48%的專案在產品推出時缺乏必需的功能。怎麼回事?為什麼「軟體開發」這麼困難?從事軟體開發的,多數是專業人員,知識水平遠高於一般人,怎麼會做出如此差勁的成果?


我們這裡試著來談一談其中的原因。所謂軟體開發,不外乎就是轉換使用者的需求,變成電腦程式。聽起來這似乎不難,通常提專案需求的顧客也這麼認為:「已經告訴你的東西,為什麼還做不出來?」關鍵在哪裡呢?我們試著來找找看。


有一個有趣的漫畫廣為流傳,其中的故事描述一個悲慘的專案,如何因為不同的解讀,導致最後所開發出來的結果,與原先使用者所要的,相差十萬八千里。許多有經驗的軟體工程師看過之後,往往發出會心的一笑。但不幸的是,從當年這張圖的創作到今日,將近二十年過去了,軟體開發所面臨的問題依舊。因此這漫畫裡面所隱含的問題,必定有更深層的原因。


Image:談軟體開發中的溝通問題.jpg


我們其中很多人可能都玩過一個遊戲,就是一群人排成若干排,最前頭的人輕聲向後面的人傳達一個口令或者一句話,然後像接力賽一般向後傳達,直到最後的人接收到之後,跑到前面大聲說出他所聽到的內容。這時候人們往往哈哈大笑,忽然發現原來簡單的一句話,竟然到後來變成一些完全不相干的內容。


怎會如此呢?心理學家有答案。他們會告訴你說,因為資訊溝通的過程中,牽涉到人腦的編譯與解譯的過程。當人們聽到一件事時,他們將資訊經過組織後存入大腦中;取出的過程恰好相反,必須將腦中的資訊經過解碼之後,透過口說或文字表達出來。上面的遊戲由於在多次的編譯與解譯過程中,帶進了許多雜訊,導致最後的結果失真。


軟體開發所面對溝通的問題遠超過一個簡單的遊戲。不僅參與者眾多,訊息經過層層傳遞。溝通的內容本身也更多樣、更複雜,並且有時可能不夠精確,甚至模稜兩可。最後再加上我們所用的溝通工具-人類語言本身-就不精確。經過每個人不同的解讀,從原始系統需求到最終開發出來的軟體,一不小心發生遊戲或漫畫中的情境,也就不足為奇了。底下的調查報告,其中將近有一半軟體專案的失敗原因,與系統的需求有關。


Image: 談軟體開發中的溝通問題2.jpg


那麼問題要如何解決呢?如果要深入的談,這個問題牽涉到的面向很廣,而溝通只是其中的一端。受限於空間,這裡單就如何進行有效率的溝通作一些建議。我們列出幾個可以思考的方向:

  • 表達技巧的改善
  • 去除不必要的人對人的溝通
  • 讓溝通更系統化
  • 結合並強化電子化的溝通方式


表達的技巧有些是先天的,但是更多時候是可以透過訓練而得。這裡我們談的是軟體開發,若要讓用戶與工程師之間溝通更有效,雙方其實都有有一些方法可循。底下是一些建議,例如,可多利用:


  • 白版
  • 書面資料
  • 投影片簡報
  • 情境分析
  • 互動式媒體,e.g.,雛形程式

尤其是書面的資料,如文件或簡報,因為需要經過整理,是思考後的產物,所以溝通的品質要比口說更好。此外,易於保存和流通,對溝通的來說,更有效率,應多加利用。

其次,是去除不必要的人對人的溝通。某件事情如果能用機器或其他工具替代,那麼應該儘量利用,以減少用人對人溝通所可能產生的誤差。例如,

  • 用ATM代替到櫃臺領款或轉帳,或
  • 用書面文件代替口頭通知

等等,這裡並非反對人與人面對面的溝通,後者仍然必要。但是許多時候,如果能用其他方式代替,則應考慮使用。尤其今日社會大家都忙,要找許多人一塊開會,實在是一件高成本的事。


讓溝通系統化、結構化,則是另一個可以做的事。我們看到機器與機器之間的溝通,遠比人與人之間的溝通更準確、更有效率得多。為什麼這樣呢?因為機器與機器之間,早已經約定好溝通的格式。所以當資料傳遞時,自然就知道如何解讀,以及要如何做。在軟體方面,我們資訊處目前大力推廣的需求管理單,就是在這樣的背景裡產生。結構可以幫助人們更快知道溝通的內容及目的。


最後要來談一談溝通的工具。歷史上人類的溝通,因為整合了電子設備,例如,電傳、電話、無線電廣播等,而獲得強化。我們讀唐詩,古人常常因為丈夫被徵兵到塞外,而妻子在家思念以致於死。這在今日是不可思議的事。為什麼?因為如今我們有各式各樣好用的電子化溝通工具!這些工具應該被充分利用,以降低溝通的失誤,並提高效率。對於軟體開發來說,底下幾個工具,如電子郵件、文件查詢及檢索工具、PDA、視訊會議工具(e.g., Skype, vSkype)等,都是很好又不用花錢的工具,應該結合起來,發揮彼此的長處,以達到強化溝通的目的。


軟體開發是一個高風險的活動,要開發好用的軟體,千頭萬緒,有許多要注意的東西。以上簡單地從專案溝通談起,下回如果有機會,再來談談其他有關軟體開發的活動。





enews57