[系統分析]談談需求分析(RA)

[系統分析]談談需求分析(RA)

我想有參與過應用系統開發的人應該都曉得,系統的開發週期簡單的分可以分成三的階段:系統分析、系統設計與實作,而系統分析則位於開發週期的最前頭,整體的重要性而言,系統分析絕對是系統開發中最重要的點,良好的系統分析不見得可以產出正確且穩定的產品,但錯誤的系統分析絕對是一場災害,導致專案花了非常多的人力,但卻做錯了方向,我想有過這種經驗的人應該十分明白這種狀況......簡直是一場噩夢......

系統分析的最前頭,必須要先釐清客戶對系統的需求是什麼,釐清需求,乍聽之下並不難,但當我們看過很多案例後,我個人卻認為,釐清需求比實作還困難的多,為什麼我這麼說,我們來看看下面這個關於系統開發的幽默漫畫:

image

第一張圖跟第二張圖,是客戶真正要的客戶口中的需求,你可能覺得好笑,怎麼可能會差這麼多,標準的嘴裡說一套,心裡想一套是吧,不過這其實不能怪客戶,因為其實每個人表達能力都不同,雖然我想著A,但表達出來卻是B,而客戶表達出來的需求在RD小組頭-->系統分析師-->程式設計師這些人心理的認知都不相同,這除了與表達能力有關係外,與每個人的學經歷、職務、背景、想像力都有些關聯,我想大家也都看過超級星期天吧(太年輕的朋友可能沒看過)?裡頭的超級比一比單元就是出一道題目,讓來賓們逐一向下一位參賽者比手畫腳,從第一位開始依直到最後一位,而最後一位須回答前面的人到底在表演些什麼...

這是非常典型表達能力考驗,有些人可以表達的讓別人一眼就看出來,但有些人則是手舞足蹈了老半天別人還是一頭霧水,這其實不能完全怪他表達能力不好,而是他所想到的與別人想到的並不一致,舉例來說,如果我們今天先說好,當我把兩隻手放在頭上比YA時,代表我是一隻小白兔;我一隻手抓著我的鼻子,另一隻手從手臂間穿過去,代表我是一隻大象......一旦我們先訂出相同的動作規則時,我們對動作的認知就開始一致了,而當題目有出現這些內容時,我想你也很難表達錯誤了,這樣的規格制定,我們可以稱之為規範或共通語言,就有點類似手語了。

這個跟需求分析有什麼關聯呢?關聯可大了,因為兩個人之間認知的差異主要起因於我們兩個對於用詞或者圖表沒有一致性的共通語言,講到UPS,有些人想到的托運業者UPS,有些人則是想到不斷電系統,而當我們在需求討論過程中,將一些關鍵用詞與關鍵流程用相同的表達方式來做表達時,兩個人之間的認知才會逐漸走向同一水平上,而在需求分析階段,我們常使用的工具就是UML了,透過不同的diargam,我們可以跟不同的對象進行溝通,這些diagram後續有空檔我再做些說明吧。

工具是重要的,工具有助於兩人之間的溝通,但像前頭說的,客戶自己心裡想的跟他表達出來的,已經有差異了,這怎麼辦?需求分析有個很重要的點就是需求的引發,我們必須要一次又一次的確認客戶真正的需求,借由問題、工具來協助客戶釐清他心中真正所想要的,並做反覆的check,若可以,最好是進行逐步遞交,避免最後做了白工。

游舒帆 (gipi)

探索原力Co-founder,曾任TutorABC協理與鼎新電腦總監,並曾獲選兩屆微軟最有價值專家 ( MVP ),離開職場後創辦探索原力,致力於協助青少年培養面對未來的能力。認為教育與組織育才其實息息相關,都是在為未來儲備能量,2018年起成立為期一年的專題課程《職涯躍升的關鍵24堂課》,為培養台灣未來的領袖而努力。