12/10/2007

需求:把菜從冰箱拿出來!

常常聽人說,IT 就是會把事情複雜化。我到後來才知道原因。

使用者需求:把高麗菜從冰箱拿出來。

IT寫成系統規格文件:
  1. 找到冰箱;
  2. 打開冰箱門;
  3. 找到高麗菜放在哪一層;
  4. 判斷有沒有其它東西擋在高麗菜前面
    有:把其它東西拿開
    無:跳走;
  5. 把高麗菜拿出來;
  6. 判斷剛有才有沒有把其它東西搬開
    有:把東西放回原位
    無:跳走;
  7. 把冰箱門關起。
 (功力爛、概念不好的人,還不會有 6.7.步驟咧!)

請問,這個功能有複雜嗎?和使用者溝通時,用「使用者需求」就可以,把系統規格文件丟給使用者,是怎樣?那些是 IT 自己要思考的問題,包括背後的系統架構和效能問題等等。

前一陣子小玉在問我的意見,她們想要一個功能,IT人員的答覆是:這個功能超複雜,單是功能拆解就要寫上四張A4,要修改得要一個月。 然後真的丟了一份「天書」給她們,上面寫滿系統規格。我一聽到就忍不住怒氣上昇,大喊:「P 咧!是誰說可以用這種理由來判定這個需求叫做超複雜?」我當年所開的需求才半張A4,用表格呈現我要的功能,而這次小玉她們要的只不過是那個2X8的表格其中一格的條件修改而已。

最好是真的有這麼難!

因為使用者不懂,所以才要作需求分析,要幫使用者弄清楚要什麼、並且確實轉換成系統規格,而不應該要把使用者弄得更混亂、更害怕系統。我氣的是不負責任、不適任的人,把 IT 的專業形象都搞爛了。這些人不是科班出身,沒有正確的觀念,不知道尊重使用者。

偏偏在許多企業中就是充滿這種人,因為覺得學資訊、轉行作資訊人員會比較有前途,所以去上補習班學寫程式,就投入資訊工作。但心裡面根本就不尊重這份工作。讓許多使用者以為凡事只要碰上 IT 就是沒有簡單解、就是要曠日廢時。

最好笑的是,我曾經碰過一個人,跟我嚴正抗議說他不是 IT,他不負責修電腦,他負責的是系統分析和規劃。連自己都對 IT 這個職別有誤解、有歧見,又怎麼能贏得別人的尊重?寫過幾年程式,就可以說自己要轉換為規劃、專案管理嗎?一樣,沒有專業、不尊重工作的人是永遠無法勝任的。反之,即使職稱叫助理,那又怎麼樣?

6 則留言:

  1. 本來想寫個更複雜的冰箱取高麗菜系統規格,後來覺得自己真是太閒了,放棄... :P
    覺得 Montreal 冷到爆的方展博

    回覆刪除
  2. please do that. I am curious.
    It is so cold in Utah, too. On my way to the office, I slipped on the ice three times.. orz

    回覆刪除
  3. 或許可以反過來想,軟體硬體韌體都要懂得的"工程師"往往被人要求為萬能,而卻永遠找不出標準的作業流程,於是惡性循環的趨向於分工,越底層的硬體維護人員月被人家當作是"黑手"即使經驗在多,也獲不得別人的尊重,有的人在累積經驗後當然會想嘗試更高階的工作,那也並不是排斥。
    就像你現在再作助理,以後或許也想變成助理教授一樣的心理。
    而什麼是科班,又有多少的實務經驗,或許真的要立足點一樣的那天才能互相了解彼此的難處以及判斷是否經驗足夠。學著欣賞一個人才能發現那個人的長處。
    現在再作專案,也常遇到教授諮詢經驗較長的長官產業合作流程要怎樣進行才好,有完善的概念也要有能力的執行者,就像業務員與廠房工程師的關係,業務員說要不是因為我的完美概念怎麼會拉到客戶,工程師說要不是因為我在日夜加班,怎麼會有客戶要的產品。要找出合作的利基,一樣的道理不是?加油,妳正走著大家都期望去經過的道路。

    回覆刪除
  4. IT的全名為:Information Technology,正所謂資訊人員即是指IT人員。
    至於你老兄要找的應該是Programmer(程式設計師),用IT來概括這個行業,不也顯示出你老兄的水平嗎?呵呵....罵人之前先看看自己有沒有那個本事!
    另外,假如Programmer能把所有的事情都做完(能規劃也能設計環境),說真的第一個要離職的絕對是你!

    回覆刪除
  5. Thanks for alrin's feedback. Actually, I use the term "IT" to include programmer , system analyst and architect (even include DBA..etc.)
    I worked as an user, and I designed for the functional requirements. I indeed expect the ITs to be "能規劃也能設計環境", whereas "規劃" for the system architect.
    I don't think my job functionality would overlap with the ITs'.

    回覆刪除
  6. Thanks for salingers' feedback. You are right, and I should not deny all ITs' contributions just because of someone's misunderstanding of this job.
    I used the term "不是科班出身" just mean to put emphasis on "沒有正確的觀念,不知道尊重使用者", which will be taught in the "科班", but not "學寫程式的補習班."
    Besides, I didn't mean that people who work as programmer cannot promote themselves into another level of job. In my opinion, people who cannot respect users' requirement and the business operation would never be qualified as an analyst, an planner, or even a project manager.
    Hope you can understand.

    回覆刪除