IT項目天方夜譚

  最近從幾個不同的朋友口中,聽來一些IT業界的「老調重彈」,這裡做一個記錄。以下故事都是真實的,絕非虛構。

故事一

  某人要開發一個系統,願意出高價,可是開發的時間非常緊迫,只限一兩星期。開發者問,怎麼會要那麼趕?

  原來系統本來就有人在開發,只是……後來……程式設計師跑路了。

  而自己答應要交貨的時間逼近,只好出高價找人。但時間太短,有能力開發的人都沒法那麼快交貨,看來他只有兇多吉少。

  程式設計師跑路的「新聞」是時有所聞。頻率與女傭跑路,以及老闆跑路是差不多的。

故事二

  電腦這種「東西」,其實範圍廣泛,一般人對它一知半解,也是情有可原。 Continue Reading

PPStream for iOS & Android

  前幾天想寫一篇預測文章,看看PPStream會先推出iOS或Android版。今天上網一查,發現了一篇熱烘烘的內容。

  PPStream過去幾年推馬來西亞華人是帶來了很多的好節目,更對付費衛星電視造成很大的打擊,雖然網速時快時慢,且有被ISP過濾的事情,但是免費看電影、電視,已經算是很優秀了。

  原來今天他們貼上了招聘廣告,同時招iOS和Android的程序員,工作地點在上海。上PPStream網站確認一下,他們的公司確實在上海。

  我想這篇不會是惡作劇。有了PPStream的iPad,將會更有吸引力了。至於大陸的眾多Android Tablets,也有免費好電影的「加盟」了,畢竟現在iPad, Android Tablets的用戶不停的增長。 Continue Reading

從面試題看大學的「供」和企業的「需」

  我長期以來都在面試新人,以填補不同項目和公司的空缺,最主要是電腦程式設計師(在中國稱為「程序員」)這個職位。不過最近的面試經驗愈來愈離奇,搞得我不得不與同行談論,以確定一下是我自己活在幻覺裡?抑或是大學畢業生活在幻覺裡。

  這一兩個星期以來,我洽巧能與幾個同行、在教育領域的朋友以及有孩子的家長,談論了馬來西亞的幼稚園、小學、中學和大學的教育。我們當然不是真正的教育專家,也只能談論著我們「正常人」所能理解的正常教育。以下是這兩週談論的總結。

  面試的時候,一般上我會有筆試,考題如下:

讀取十個數字,然後列出最大的數字。

  因為我在網絡上得知微軟和谷歌的考題。所以出上述的題目我都不好意思說出口。平時也只能跟同行的朋友說起,本地小企業要請人真難。直到這兩天,我告訴朋友。朋友甲說:「你這題算是難囉!我的更簡單!證明我的要求更低。」

  我問他出甚麼題目,他說, Continue Reading

又改程式

  昨天與朋友聊起系統的編寫,聽來了這個真實故事。

  一公司要把業務電腦化,但員工對電腦化沒有概念。至於編寫程式的程式設計師,也一忍再忍,系統改了又改。

  終於有一天,大家都有點光火了。

  男程式設計師:「你以前不是說要這樣子的嗎?怎麼現在又說要另一個做法?」

  男的語氣很不耐煩了,對方聽了這種回答也就更火冒三丈。

  女業務人員:「以前我不知道它是這樣子,現在我用了才發現不適合我啊!」

  朋友說,其實女業務人員也沒有錯,有很多人其實更本就不知道出來的東西會成甚麼樣。跟想像中有差異是難免的。

  其實溝通是一門藝術。

項目的「預付金」問題

  朋友說他之前找freelancer,把網頁設計的工作外包出去,錢也付了一半,最後一無所獲。後來,他僱用了一名網頁設計人員當全職員工,每月支付薪水半年後,甚麼也沒「製造」出來,程式設計「師」就走人。

  經歷兩次失敗,他說他要找人開發網站確實面臨很大的難題,他不知道付了錢後,能得到甚麼!

  其實他是找我談項目,把他「出身未捷」的宏願做下去,雖然那是他「兩年前」的計劃。但一談起「預付金」(Deposit),他斬釘截鐵說”No way”,「我花了兩三個小時跟你談這個工作,你以為我是閒著沒事幹嗎?」,「如果我是無聊,我也不必跟你討價還價,天價我都可以答應你」,「我實在沒法說服我的股東,說還要拿出一筆錢來買一個看不清摸不著的『東西』」,更何況我要求的「預付金」是一半之多。 Continue Reading

IT人才奇缺?!

  在馬來西亞剛推廣多媒體超級走廊(MSC)時,一時之間似乎有太多的學生涌入「電腦」、「多媒體」這類的課程。那個時候要找個軟體工程師,或程序員實在太容易了。只要打個廣告,就一窩蜂的「高科技」人才寄來履歷,要求面試。

  但是近幾年的情況卻起了很大的變化,許多公司要聘請電腦程序員,真可謂遍尋不著,連人影都見不到,更何況要去三顧芧蘆。而且早幾年的人力過剩,還有許多能力不足者,都已經離開這個行業。

  當然,編寫程式這門工作也不是人人可以勝任的,許多人年過三十也紛紛轉行,更加造成「資深」的人才短缺。

  在人才缺乏的當兒,其實這方面人才的薪水也並沒有因此而提升,真是個怪現像。加上電腦系統基本上已是任何生意的「必備」,更造成了人才市場供應不足。 Continue Reading

屈原與愛國工程師

  今天是端午節,普遍的說法是紀念愛國詩人屈原。我在想為甚麼他能成為愛國詩人,是因為愛國才寫詩,寫了詩才愛國?因為他是知識份子進了政府更愛國,還是被逐出政府後駡國家腐敗,才被稱為愛國詩人?歷史的記載,屈原是被逐出政府後才開始文學創作的。

  我的想法是,駡政府腐敗的人太多了,一般上只要不在政府內部工作的都會駡政府差勁,古今中外都不例外,偶爾政府官員也會駡,包括皇帝也會訓戒自己的官員。那麼為甚麼會有少數的人成了愛國詩人?因為他們能夠駡,還駡得有文采,而且文章留傳下來,再不然他們就是愛國愛到連自己的命都不要了。

  像屈原,在秦國名將白起攻破郢都後,就在汨罗江畔,說了傳世名言「眾人皆醉我獨醒,舉世皆濁我獨清」,然後抱石投江自殺。因為能夠跟國家共存亡,所以他以詩人的身份,升級成為了「愛國詩人」。試想,世上有幾人能與國家共存亡呢?

  其實還有一人也很慘,官拜丞相但沒那麼出名,可能是因為他沒有詩人的身份,或沒有詩句傳世。宋朝被蒙古滅後,宋政府成了流亡政權不停往南逃,最後宋軍在一海戰中被全部殲滅,南宋愛國的政治家陸秀夫知道國家亡了,逼著自己的家屬先跳海自殺,然後再把玉璽挂在年僅八歲的小皇帝身上,一起跳海自盡。

  我相信他的悲慘不比屈原少,而且他要先解決自己的妻兒,再與朝廷皇帝揮別人間。只可惜廣東人沒有弄個類似粽子的食品出來,差別可能在於屈原投江,陸秀夫跳海,大海的範圍太廣,那些粽子可能應付不來魚群,干脆算了。

  陸秀夫的名氣沒那麼大,但同時期的丞相文天祥,被元兵所俘,最後不降而被殺頭。但他有詩集,有「過零丁洋」、「正氣歌」等等,還有傳世千古名言「人生自古誰無死,留取丹心照汗青」。所以他也很出名,所以說愛國還是要有一點文采,有文章留下來。

  這個世界上,天天在駡政府的人太多,但是駡了之後要成為愛國者不容易,要被世人知道的更不容易。憂國憂民者能有多少人?杜甫有這些名句「安得廣厦千萬間,大庇天下寒士俱歡顏」、「朱門酒肉臭,路有凍死骨」、「國破山河在,城春草木深」,是理所當然的愛國詩人,而且他的確讓人們感受了他的心境。

  在現今的世界,駡國者到處都是,即使部落格裡的愛國者也很多,如果走在街上一問,有誰會說自己不愛國呢?但是我們是否想過,人類有歷史以來的任何地方,愛國者到處都是,但是國家政府沒有幾個是像樣的,是不是說那是屬於正常現像?這值得深思。所有在政府裡的人最後都被駡奸臣、腐敗,但是愛國者如果也進了政府部門,是不是也必定變質了。

  在部落格的世界裡,當然也有很多愛國者,大家以最「嘔心瀝血」的心情來駡國家(當然我也是一份子,最近知道駡不下去了,病情開始好轉)。可是有時候想想,國家政府官員來自於人民,是不是人民的基本素質有待提升?或是人性本來如此,恆古不變。

  好多年前的波斯灣戰爭,其中一炮而紅的是美國的「愛國者」導彈,我也認為「愛國者」真的愛國啊!我們先不評論戰爭的是非功過,只談導彈。首先美國人可以信賴它,靠它保衛「自已的」國家或保衛「別人的」國家,二來可以耀武揚威,是他們的驕傲,三來可以賣錢為國家賺取外滙。所以我說它真的愛國,為美國做了那麼多事。而在背後認真工作的科學家呢?就是他們以實際行動來向世界展示他們的成果和能力。

  說回馬來西亞的雙峰塔在每年國慶都有煙花表演,我去過一次之後不再去。為甚麼?當然是有一大群自稱愛國者的去倒數看煙花。愛國者太多,交通亂來,隨處停車,然後垃圾亂丢。口中說愛國,行為慘不忍睹,民弱國家怎會強盛呢?(或許這幾年有所改善而我不知道,可能今年我再去看看)

  說了許多,你會覺得這篇文章無關電腦。現在我要說說電腦的一個「愛國工程師」了。你或許也奇怪,但我這裡舉個例子與您分享,原來除了詩人能愛國,軟體工程師也能愛國。如何愛國呢?當然不是程式執行到一半時,彈出個訊息框駡政府叫工程部長下台,或彈出個對話框說你支持某某政黨。

  上個星期我在網上查找資料,找到了這篇簡介和示範,就下載程式碼做參考。這是個指導如何制作報表的示範說明,文章很清楚,還寫了二十多頁的PDF說明指示來教導使用者,實在太用心,也太有心了。在我查看程式碼時,竟然讓我看到了很特別的程式碼header。

  他是伊朗的軟體工程師,宣揚他的和平主義,也表現出了他的愛國。一般上,有誰在寫程式時會想到國家呢?大家都會想著寫好後有多少收入,想著幾時可以交差給上司,想著早點放工去約會。

  軟件工程師們,這個愛國思想值得學習啊!但不是叫你也學他啦!別把愛國詩寫在程式裡,被你上司駡別來向我問罪。

以下是他的header原文,

///////////////////////////////////////////////////////////////
//
// By: Shahab Fatemi
// Date: 2006/10/06
//
// Message: IRAN and IRANIAN never need nuclear BOMB.
// All the world right know that we need NUCLEAR ENERGY.
// Our oil enery will be finished, and just nuclear energy can help us.
// All the world must know that IRANIAN love them and respect to them.
// Why our world mustn't have peace? Why the birds cann't sing?
// Why the fish cann't swim?
// War or not war? Which one is better?
// (I.LOVE.U) SHAHAB FATEMI.
////////////////////////////////////////////////////////////

十八般武藝

徵才廣告

  時常在徵聘廣告中看見招聘程序員,列出來的條件,在國內沒人覺得不妥,在國外我就不知道了.通常程式語言都要會VB, JAVA, DELPHI, C#,資料庫就要來個MSSQL, MySQL, Oracle.然後會一點ASP.Net或PHP,報表就要來個Crystal Report.一個程式不可能沒有一點圖標(Icons)或圖形界面設計,所以還要會Adobe Photoshop或Illustrator.最後他們歡迎剛畢業的大學生去應徵,也歡迎有兩年工作經驗者來.最好要有交通工具,然後會華巫英三語,還要像乾電池一樣‘耐操勞’.


人找工

  可是剛畢業大學生我們可以猜出企業能付給的薪水到甚麼程度.但是一個大學生會懂那麼多才怪.還是祇需要會幾樣就夠了?一個沒有經驗的大學生,看了廣告必定找不到工作,因為那麼多工具,至少有兩三個是沒用過沒聽過的,還要做一些美工設計.實力不夠沒信心的畢業生根本不敢去,有實力有信心者就三思了,該不會是去打雜的吧?幸好還有一批實力中等的,來滿足這些企業.

  但若仔細觀察,會發現廣告中的錯誤,有時是Visio Basic,有時Jaya,有時Micromedia Flash, 有時Macrosoft Office.通常這種公司都不會是IT公司,他們要請的是個全能的程序員.所以畢業生若有興趣,可以大膽上去應徵,他們通常不會考你甚麼,因為他們的人事部也不知道老闆要請甚麼人(就是因為老闆甚麼都不會,所以才要請個甚麼都會的).但重要的是你的大學成績不要太爛.如果成績太爛,你說你精通 Microsoft Word也沒人相信(為甚麼呢?因為多做工課者常用Word,Word愈熟就表示功課做愈多,成績自然不會差.抄功課者多熟悉Copy, Cut & Paste功能,其它功能則不熟.由此可證功課好,Word自然不會差;成績差,則Word也不會好到哪!你不會想說你用手來寫工課吧!).

  畢業生在這種公司也有大好處,因為你甚麼都要會.誰教你應徵時說甚麼都會,十八般武藝都裝在腦裡.這時你祇有靠自己了,不會也要逼著自己去學會了.


工找人

  那麼公司看起來好像賺到了.可是運氣不好的話,不是請到身懷十八般武藝的程序員,而是請到身藏七種武器的程序員,因為他的CD盒有七到十八種盜版的工具光碟(Microsoft Windows, Microsoft Office, Visual Studio .Net, Java, Macromedia Flash, Delphi, MSSQL, MySQL, Photoshop, Illustrator, etc).他祇會安裝,然後就…,不會那麼多,天才幾千年才一兩個,怎麼會被你的低薪請到呢!而且天才的目標在Microsoft,絕對不是SimpleSoft或EasySoft.

  看見了市場需求,畢業生也必須符合需求.所以身為經理人的,在招募新人時看見那份履歷,絕對會刮目相看.因為此人會Windows 95/98/Me/NT/2000/XP,會Word, Excel, Powerpoint, Access, Outlook,Netscape,還會HTML, JavaScript,來應聘程序員的更會Java, C#, C++, Delphi, VB, Foxpro,資料庫會MSSQL, Oracle, MySQL,最後他還會Photoshop, Illustrator, 3D Studio Max, Flash,然後還有其它的WinZip, ACDsee等等.

  身為經理人的當然也不會被嚇倒,因為司空見慣了,幾乎每個來應聘的都會相同的武功.祇可惜不能擺個擂台,讓他們來個華山論劍,然後聘請武功天下第一者.若要知道他們是否符合要求,祇需叫他們寫兩個小程式就看出來了.最好的辦法是給個簡單的小測驗,也考考最新資訊,就可以比較客觀的選出的人才或可造之才.

  當然,經理人還是要非常小心,免得失去了無招破有招的令狐沖還有招式全忘了的張無忌.若真的三生有幸聘請到了令狐沖或張無忌怎麼辦?非常簡單,千萬不要讓他們去寫甚麼會員或會計系統,更不要讓他們去升級舊系統.他們是遇強愈強的,所以一定要把他們丟進去地牢裡或山谷底,他們才能真正發揮,當然你的公司也要有地牢或山谷,俗稱研發部R&D Department.總之不要讓他們出去見客戶,他們本來就不想牽涉到江湖事(人與人的問題)要不然早就當教主了,還會輪到你來面試他?


天馬行空

  這時,我想,若有一日我再去面試,我要在履歷表填上「失傳八百年的九陰真經,3 years working experience」(一定要有幾個英文字,看起來比較專業!),不懂經理會不會錄取我?在我還沒嘗試之前,希望你可以去試試.如果他說‘NO,不錄用’,你就一掌把他打到外太空(是哪一本漫畫了?).

誤會很深

  某日,與一自由工作者(freelancer)閒聊,他是個電腦程序員,年紀輕輕功夫不錯。他知我負責過一些專案也在軟體公司混過。同我說行銷人員習慣性隨意答應客戶要求,搞得程序員半生不死,尋求我的認同.因為我曾當過系統支援(System Suport),也寫過程式(雖然功夫不怎麼樣)當過程序員(Programmer),曾做軟體產品推廣(Sales)。所以就告訴他一些我的看法。


Support, Salesman & Programmer的關係

  行銷人員一般上從金錢與服務看問題,祇要產品可以滿足客戶,或許再加上一些特殊功能(customize features),他們就算完成了一單生意。可是他們也許不知道那個特殊功能在編程上複雜程度以及所需完成時間,所以造成程序員對他們敵視。程序員的看法則是這群人就祇認得錢,甚麼都不懂就隨口答應客戶。而系統支援則常埋怨系統不穩,常常推陳出新,搞到他們本身也不懂如何使用,更何況要他們支援客戶。

  我在當程序員期間,曾聽過一個很幽默的程序員回答客戶支援說,「它有時會這樣」(它是指軟體系統),然後那客戶支援目瞪口呆,不知是否把這話告訴客戶。有時覺得這個真是個好答案,因為有時軟體很複雜,一時間你也無法確定問題所在,客戶聽了也無法再問下去。當然這種好答案祇可以關鍵時刻才用,不能天天用!

  行銷人員也是有怨言的,怎麼就改一點小功能需要那麼長時間,當初一臉自信的答應客戶,現在東西還沒弄好,沒臉面見客戶,都怪那群不解人情的程序員。

  他們就這樣的大家互不順眼。你覺得我寫出來的程式爛,根本賣不出;我覺得你不學無術,祇會信口開河,你覺得我自命清高,我怪他不懂變通.這是三組人的恩怨情仇。

  這是部門之間的事,祇能留給老闆去解決了。但若從公司角度去看呢?我告訴那個程序員說,若你從公司與客戶角度去看,你就得到答案了,答案很清楚簡單。他目前自由工作者的身份是身兼行銷,支援與程序員角色,必定會很快理解的。

  我常說,許多員工一直以為是老闆付他們薪水,其實真正付他們薪水的是那些客戶。難道企業的錢會是老闆生出來的嗎?其實客戶有問題,企業提供解決方案,這才是他們存在的價值,不可能硬要客戶來配合軟件系統吧?軟體公司的任務簡單說就是「受人錢財,替人消災」。


客戶真的需要這些功能

  先說行銷人員,如果能把產品不經修改調整,直接賣出收錢,難道他們不想嗎?他們寧願遲獲佣金而且多樹立敵人(程序員)嗎?他們會那麼沒腦嗎?那麼行銷人員說現有程序必須修改,皆因客戶的需求嘛!而客戶呢?不可能他們有現成產品不用,要東改西改還要多付費,難道是看行銷人員不爽?這不合理吧!就是因為目前軟體的功能與他們現有作業流程無法完全配合,所以要調整。從這裡,程序員就可以更明白行銷人員的處境了。

  至於客戶支援,他們的最大難處在於他們夾在客戶與程序員之間。客戶當然是不許得罪的;程序員呢?得不得罪他們,他們也那一副「與我無關」的樣子。許多客戶支援在客戶面前被駡得狗血淋頭,程序員沒法體會。但程序員一直沒法聽見客戶的一肚子苦水。所以客戶支援就必需想個辦法騙程序員到客戶面前,讓他被臭駡一頓,這樣他就會明白客戶支援的困境了。

  若客戶支援對於公司產品的一知半解,那是做不了好支援的。許多客戶的要求,很多時候可以通過不同的步驟來完成。不一定要程式員另寫新功能。當然好的用戶介面,就易學易用,可減輕支援成本,易學易用就易推廣。易推廣就可以有好銷售成績,這就可以進入良性循環。到時這三組人就不再臉黑黑了(除非老闆沒派年終花紅給他們!)。客戶支援的存在是因為系統有毛病出狀況,所果沒有問題,他們也沒辦法呆在公司了。所以他們會希望軟體常常出狀況嗎?其實他們的客戶支援的存在是必要的,但不在軟體狀況的多寡,而在用戶的多寡。用戶少的話,通常程序員就身兼客戶支援了。

  程序員的問題其實也很簡單,如果客戶就是要那些功能,客戶支援要更穩定更易用的介面,他們就得認真去弄出來,埋怨行銷與支援人員根本沒辦法改變甚麼。程序員若還不能明白,我這裡舉一例,如果你去吃咖哩米粉麵,老闆給你弄來一碗咖哩米粉,沒有麵。你同老闆理論,他反而大聲說∶『有米粉你就吃下去,又吃不死你,幹嘛一定要米粉麵那麼挑剔』。這時你就能體會客戶的委屈與需求了。如果可以理解客戶的需求,那「死期」(Deadline)呢?系統那麼複雜,一兩個星期就要,太過份了吧?從另一個角度看,就是因為這功能可以幫客戶消災解難,所以才急啊!如果是八年後才來拿貨,那麼這貨的價值可想而知。剩下的就是程序員去編排本身時間表的問題了。


journey to the west西遊記 老闆的工作

  許多人常會用《西遊記》裡的師徒五人來比喻不同人的性格與專長。在電腦開發公司裡,唐僧,就一定是老闆(CEO)了,因為他除了有百折不撓(九九八十一難都不怕)的精神外,就祇會嘮嘮叨叨,天天在唸經。專案經理(Project Manager)就要找老猪了,因為他甚麼都不會做,就會說話,會做人,是上下的橋樑;程序員就一定是齊天大聖了,因為任何高難度動作他都會做,就是不會做人,一開口就得罪人,一動手就打死人。沙和尚雖然聽話,但不會創新(Creative),祇能寫寫文檔(Documentation),測試(testing)孫悟空粗心大意留下來的臭蟲(bug);當然,唐僧和老猪要去見客戶時,就要那隻白馬當司機了。有時客戶的問題緊急,也必須載老沙去現場解決。祇要大家分工得當,必定能取得西「金」。

  多數人都是貪心的,老闆也不例外。我曾問一個MIS經理,問他想為他部們聘請一個甚麼樣的人。他說,最好有齊天大聖的實力,老猪的善解人意,沙和尚的服從旨意還有白馬的路遙馬力,然後與現有的同僚齊心協力。我說天底下應該沒有這樣的員工吧!這種人在公司裡祇有一個,就是你自已啊(或是老闆)!有時甚至自己都不是,還怎能要求別人呢?

  話說回頭,老闆這時候的任務就是要讓這三組人瞭解他們要服務的對象,三組人之間關係,客戶有這些莫名其妙需求的原因,公司的金錢來源。讓他們認清目標各司其職,化解三組人之間的「恩怨」;同時確保修改的功能獲得合理的收費。所以這時又回到一句老話「客戶永遠是對的」。(除非你不想做他的生意,這時他也不是你的客戶)