Monday, May 26, 2008

IT、程式員、工程師 (一)

鐵鎚兄講香港IT,小弟都想加把口講吓。

如鐵鎚兄所言,其實可以大分software同hardware(或者engineer)。小弟做開software,對engin o個邊真係唔熟,對engin o既career path一知半解,都係小講小錯。至於software,小弟浸淫了一段時間,對software略知一二,等小弟班門弄斧,獻醜獻醜。

software其實可以分工好細,排明不分先後:-

業務分析員(Business Analyst)

好似棉花姐咁,主要工作係幫user搵啲業務上o既問題同埋提供解決o既辦法,係business同ITo既一道橋樑。有新project o既時候,同user吹完一大輪水後,寫spec (requirement/functional specification)俾啲developer去跟。如果遇著user太忙,份spec好多時都係BA作出黎。UAT o既時候,陪啲user試。好多時啲user都唔肯試,都係講個「信」字,叫BA自己試。就萛肯試,都係係咁咦,始終都係要BA試哂。

一個好o既BA,一定要同user有良好o既關係,所以同user social係必收科。因為經常接觸user,而係人o既習慣係事無大小,熟邊個就搵邊個。當system有問題o既時候,BA有好多時係要做埋客席support。 做BA最緊要識走位。遇著啲燥狂o既user,當佢心情唔好o既時候,如果BA唔知定搵user,真係送上門俾人鬧。

有啲BA有鋪癮,鍾意睇埋code,好hand-on。不過好多都係齋睇齋吹,對technical都係一知半解,去到有事都係靠啲developer去救。 又有啲BA吹自己好technical,鍾意寫spec時寫到好technical,同做埋technical design冇分別。但係好多時諗o既o野都好門面,淨係諗啲short-cut又唔理會影響成個system o既flow同performance。technical design都係搵啲專業人仕做啦。

=============================================

資料庫管理員(Database Adminstrator)

一個不食人間煙火o既位,同啲network佬一樣,可以叫做IT中o既古墓派。每日o既工作就係咁咦mon吓database有冇爆碟,做吓backup同restore。做o既o野極其technical,以有GUI都唔用為榮。

叫佢做o野,成日一大堆理論。話咁做唔得,咁做又唔啱規矩,永遠俾唔到答案。我行我素,唔理application team想點,鍾意隨意亂改啲security同database settings。有起事,慢十拍。話之你system死,人急我唔急,永遠call唔到。data modeling又唔幫手,個system performance差又話係application design o既問題。

DBA叫價好高,好多公司都冇閑錢請一個。DBA個role都係support或developer兼任。

=============================================

開發員/軟件工程師/系統建築師(Developer/Software Engineer/System Architect)

鐵鎚兄講o既你係programmer。programmer可以話係pure做programming,行內人會叫dup石仔,係將design spec上o既logic轉化為一堆code o既高手。一個超級programmer,真係有啲似Matrix入面啲人,可以好快係上萬行o既source code海入面,搵出所要o既module同點de個bug。

而小弟想講o既係好似堅兄咁出色o既developer(或者Software Engineer)。programmer同developer有啲分別,programmer比較純programming,而developer就要兼顧development life-cycle o既其他o野。project開波,當然要攞requirement,如果個project冇BA,senior developer要requirement都攞埋。到system analysis & design,當然唔可以小o左developer個份。出到technical design之餘,仲要refine個estimation。有啲唔生鏽o既PM,成日quote個鬼死咁少o既estimation俾user,真係累死啲developer。好多時搞到啲數左衾右衾,暪天過海。到coding,有啲冇QA team o既project,senior developer係要QA啲junior o既code。system build多數要senior developer做埋,對啲冇試過就check-in o既人真係恨之入骨。如果個system有翻咁上吓大,十萬個project parallel行緊。十個筒一個蓋,做environment management都幾頭痕。testing時睇實個testing environment唔在講,啲tester多數對個system一知半解,testing時啲BA多數失o左蹤,揍tester o既重任就交o左俾developer。implementation多數係weekend,如果個project係global,等如要等埋美國收工先可以做,一個大好星期六就咁冇o左。implementation後,又要post-implementation support。如果個project係有New Zealand、澳洲份,就唔該你零晨四點返公司support。

一個出色o既developer可以話文武雙全,十八般武藝皆精,coding又得,寫document又點,去support又得,做coordination又點。一啲senior o既developer如果唔轉做BA或PM,好多時會升o左做architect。system architect同建築師差唔多,都係oversee成個system(building)。不過architect唔單只管一個system,佢會consider唔同system o既partitioning and interfacing,俾advice俾啲developer,同埋make一啲high level o既design decision。當system有啲麻煩o既問題(特別係performance issue),architect就會挺身而出,把問題擺平。

=============================================

項目經理(Project Manager)

PM o既職責緊係揹起個project。理論上project所有頭暈身興、東瓜豆腐都係入PM數,同啲問責高官冇分別(有起事可以瀉落啲細或程序出錯,有鑊可以唔上身)。當個project細,好多時PM會撈埋BA同埋QA,做個啊四咁。當個project大,PM淨係做planning同coordination,反而會輕鬆啲。

PM o既座佑銘係一字記之曰「卒」,卒到人做o野就係一個好PM,一個成功o既PM可以卒到任何人做o野。唔同PM卒人做o野各施各法。有啲PM鍾意每隔五分鐘催一次,煩到你唔準時交課唔得。有啲PM會凶你,甚至捩橫折曲,escalate俾你老細,總之迫你搞點啲o野。有啲PM鍾意同你講耶穌,利誘你,話你o既contribution有幾重要,上層幾睇個project。如果你想紮,就好快手啲啦。又有啲PM鍾意同人懶friend,有起事以為拍吓膊頭就搞點。成功o既PM可以靈活運用以上o既方法,卒到人做o野之餘又keep到個好o既relationship,做PM真係一種藝術。

software其實仲有好多工種,今日講住咁多,留待他日繼續…

延伸閱讀
大鐵鎚 - IT, 程式員, 工程師
資訊科技及通訊業資歷架構

12 comments:

C.M. said...

真搞鬼,小弟真係連BA,DA都要兼埋,無陰功。

Kenny Yan said...

嘩~ 安兄 ~
你咁抬舉我呀 ~ 有點兒唔好意思 ~~~

出色...自問自己談不上, 只係自己心入面嗰團火仲未熄 (做左幾年都仲未熄...不過家陣好似變左文火...)

BTW, 安兄 ~ I.T. 界仲有 System Administrator / Operator - Monitor Batch Job, System Operation, etc 的一班 輪班制的 支援人員 ~

安諾勿斯 said...

CM兄:嘩!勁!CM兄真係博學多才!

堅兄:小弟寫呢一篇o既時候,就即刻諗到堅兄。所以寫o既時候,都有reference堅兄。篇文睇落都有啲堅兄o既影子(諗諗吓,都幾斷背feel,哈哈)。

係呀!啲SA、network佬、opts、同啲sales佬都未講,下期再續。

C.M. said...

安兄:

小弟吹下水遮,唔好玩到咁大丫。 =p

(人在江湖,爛頭卒周不時都要當車使)

Marshmallow said...

嘩果然係行內人...

”遇著啲燥狂o既user,當佢心情唔好o既時候,如果BA唔知定搵user,真係送上門俾人鬧。”

其實都係一啲啲公司,同埋一啲啲時候.好似小女子舊公司咁,公司有錢賺,燥狂得黎有個普;以家就係唔係IT事都俾人X咗先講,有時係d trader都知自己無理取閙,但係佢地明知你地一定會忍,明恰你,都無法.

安諾勿斯 said...

唔好話user,小弟間行啲IT老屎忽都有呢啲惡習。成日一個電話打入來一開口就鬧:「有冇搞錯!你啲兄弟又整死啲o野(兄弟?!名都冇,就入我數)。上個禮拜仲work,今日就死(你都話上個禮拜啦,今日唔work有乜出奇!)。urgent o架,下晝個客會駁上來試,總之同我死點佢(吓食lunch囉喎)。」就收線。說穿了,又唔係自己整死o左唔識救。凶吓人地,就以為人地會幫佢整,真係天真又傻。最後,咪escalate上o左去九重天到,啲老細都買佢怕,咪叫小弟整o左佢。

佢呢啲燥狂人小弟錯既之然鬧,人地錯又鬧,自己錯照鬧。啲燥狂人真係冇佢咁好氣。

Marshmallow said...

同行老屎忽小女子又唔驚佢,你係都要escalate小女子幫你同老細講埋又點話(又可以承機打定底,何樂而不為?!)...最緊要老細肯backup你,如果唔係就一隻死貓食落肚,真係有苦自己知.

安諾勿斯 said...

驚又唔驚,只係買佢怕。user撐佢,大老細都冇佢乎。老細雖然明白小弟o既苦況,但對啲唔係太無理o既要求,真係愛莫能助,死貓照食,屎照踩。

Anonymous said...

經大鎚兄的連結來這邊看看延伸閱讀...
你又講得幾個癮.

看來除了做大老闆之外,都沒什麼好的IT工種.不過感覺DBA很閒也很爽,工作好像很簡單. network佬應該也挺好的吧!?

期待續篇~

安諾勿斯 said...

歡迎skyx兄光臨!

多謝對小弟拙文o既讚賞。小弟正努力完成續篇,到時敬請skyx兄多多指教。

Blogger70th Floor said...

劉伶來留言呀

安諾勿斯 said...

「竹林七賢」?!