3/09/2006

太陽牌米先生 "芋圓製作實務" 課程感想(II)



一. 了解本部門:
客觀來說, 太陽牌米先生問的問題都是震撼彈, 可以清楚察覺這個部門或許還有很大的進步空間(這話就像某客戶對某PM的看法一樣).

要來打個岔, 說一件事情.
第一屆的JAVA Two研討會, 那時我正好恭逢其盛, 有個場次是意藍 劉保國的.
他說了一句話:"...最新的技術不見得是最適合客戶的...".
過了一段時間, 我在網路上也看過類似的討論, 有人覺得會說這話的人一定不是JAVA基本教義派, 因為只有符合OO的JAVA才是王道, 而且用JAVA開發出來的新技術才有使用的價值; 也有人認為一個好的JAVA工程師, 一定要循正統物件導向精神, 否則就跟用Script Language做專案沒什麼差別.

說真的, 這句話對我相當有震撼力.
以前我是專攻ASP/VB/MS SQL的, 在轉換JAVA之前, 補了一陣子的OO觀念, 因為當時的我對ASP沒啥元組件概念的寫法有點ooxx, 認為OO的觀念加上JAVA, 應該會是最好的解法.
但是說真的, 站在客戶的立場, 客戶懂JAVA與ASP的差別嗎? NO!
客戶知道用JAVA或ASP寫程式那個花時間嗎? NO, 如果本來就有時程壓力, 怎麼會管廠商那麼多.
客戶能感受到JAVA或ASP整合系統的難易與彈性? Maybe, 我們可能會在cook專案橋價錢的時候拼命提醒客戶, 但一旦簽約, 就是得做出來.

為什麼我要把話題扯到這裡呢?
因為客戶才是決定廠商價值的最終決定者(What management is一書中也有類似觀點).
那我們該滿足客戶什麼? 一個在既有預算內照著時程開發出來的穩定運作的系統, 而且以後還可以架構其上繼續累加新功能.
在這個大原則之下, 對技術人員而言最重要的是什麼? 那就是要製作出穩定運作的系統, 而且還充滿彈性.
要用JAVA或ASP或.NET或PHP或Perl是不是很重要?
理想狀況當然是希望軟體品質都照正統物件導向精神開發, 才有彈性有架構有很多很多優點.
現實狀況則是要取決於很多變動因素, 但應該要努力靠近理想狀態與現實狀況都可接受的那條底線.

不管你用的是什麼技術, 也不管理想狀況或現實狀況, 都有一個共同的重點 -- 根本很重要 -- 做什麼要像什麼, 像什麼要是什麼!
要做什麼之前, 底子一定要顧好, 之後才能去談要理想還是現實, 不然下場一定四不像.


太陽牌米先生在第一堂課問了一堆問題, 有的很冷門, 屬於SCJP基本教義類, 不會回答也不表示技不如人.
那我為何說是震撼彈呢?
如果這些問題不是他故意找來刁難的, 如果這些問題是去年就曾經問過老戰友種子成員的, 如果這些問題是其他廠商或者太陽牌做專案時有碰到的, 如果這是太陽牌內部對工程師的要求 ...
那不是震撼彈是什麼?

因為我們或許還有很大的進步空間, 我們的底子或許還不夠穩.
我說的"底子", 單純是指JAVA技術.
我說的"不夠穩", 包含做專案使用的技術與深度、做專案的數量、態度、經驗.

這樣是不是不能做專案? 可以的, 當然可以做.
只是, 要小心, 很多環節必須顧好, 用怎樣的架構、態度必須要清楚明白, 也要能夠控制掌握, 拿不動關公的刀就拿家裡廚房的菜刀.
因為這些問題要是真的是其他廠商或者太陽牌做專案時有碰到, 要是有一天我們碰到了, 就有可能花很多時間在Debug上 ...


對於新技術呢? 難道太陽牌米先生沒有提到新技術嗎?

米先生在這堂課上提到少少的新技術, 但是一問到是否曾實作過, 或再深入一點的問題, 我們這群人又像啞巴一樣了(不知道是真的不懂還是給太陽牌面子).
我覺得啦 ... 喜新厭舊乃人之天性, 每個人看到新東西難免心動想試試看, 但是底子沒顧好, 對新技術又一知半解的話, 是很危險的.


種怎樣的因就得到怎樣的果.
我們在瞎子摸象, 準確度時好時壞.


0 意見: