All posts by hevangel

The Mythical Man-Month – Frederick P. Brooks Jr.

51XnDL5KC+L

Project又delay,怎麼辦?

一大team人做project,delay之事十常八九。每當老闆發現專案出了亂子,最常見的解決辦法是人海戰術,進度遲了便投放更多人手,希望把時間追回來。可惜成功追回進度的例子萬中無一,沒有更加落後已屬萬幸。有些無良兼無知的老闆,漠視現實不斷催迫團隊加班趕工,倒頭來把最能幹的下屬迫走,讓專案完工更加遙遙無期。市面上專案管理書藉多如繁星,坊間更有不少證書課程,質素參差讓人無從入手。我為大家介紹這本The Mythical Man-Month,跟據非正式統計,美國高科技公司一眾CEO中,十個有九個半均看過此書,可謂專案管理中的經典。

專案管理有一詞謂之「人月」(man-month),用來計算專案所需的資源。若六個人要做十個月,那麼專案便需要六十「人月」。「人月」的計算方法有一大缺陷,就是假定了人與月是可以隨意轉換的單位。如果六個人要做十個月,那麼十個人只要六個月就完成。按照同樣道理,一個女人懷胎九個月生一個小孩,難道九個女人生一個小孩只需一個月嗎?在傳統藍領行業,每個工人的勞動力差別不大,可以隨意加減互換。創業產業是知識型經濟,生產力來自腦袋中的智識。由於每個人所知不同,人與人不能任意取代,除非發明複製腦袋的機器。追加多些人手進入團隊,新人要花一定的時間學習,而團隊因人數增加,更要付出額多的溝通,間接增加成本。所以,多加一人,實際只有少於一人的生產力。團隊太大甚至會物極必反,總生產力不升反跌。

開發軟件是無中生有的工作,將腦袋中抽像的慨念,具體化實現成可用的產品。從思想轉換成軟件的過程中,無可避免會有些邏輯錯誤。而不同人負責的部件要組合時,因溝通不協調也會引致理解錯誤。科技進步可以減少無謂的錯誤,增加工作效率,換來開發更複雜的軟件,最終人為因素產生的錯誤數目維持不變。書中詳細講解控制人為因素的不同方法,在四十年前提出時是新思維,今天已是常識,只是世上仍有很多人無視常識。一個專案若要成功,得有一個總設計師:他是專案的靈魂,確保每部份的一致性,讓整個團隊寫出來的軟件恍如出自一人之手。有效的分工與合作是專案成敗的關鍵,促進團隊之間的溝通,減少團隊資訊負荷,讓他們專心工作。更重要是挽留和培養人材,在軟件界有個共識,天材與凡人的生產力相差十倍,十個臭皮匠,勝不過一個諸葛亮。

此書75年初版,95年出新版,作者是IBM OS/360系統的經理,他總結團隊多達數千人、史上最大軟件專案的經驗,寫出這部軟件界的管理天書。當年的電腦巨如一台貨車,現今的電腦小得可以放進口袋中,硬件進步千里,但開發軟件的精髓從沒有變,專案的最大障礙始終是人為因素。書中列舉的例子當然早已過時,但貫穿整本書的管理思想,卻是恆常不變的真理。相信大家還記Nokia曾經稱霸電話的年代,早於iPhone面世前兩年,Nokia已經著手開發新一代智能電話系統,開發進度一直未如理想,只因全無對手、管理層也不太著緊,直到07年iPhone橫空出世,Nokia才驚覺要急起直追,於是大幅增加專案人手,更邀請Intel加入共同開發,結果「人月」的詛咒應驗,MeeGo系統在三年後才勉強推出市場,電話早己被iOS和Andriod瓜分天下。而Nokia錯失搶佔市場的黃金時機,從此一代電話王國踏上末路,最後賣盤給微軟結業離場。

編寫軟件可以說是第一代的創意產業,在今天創意產業作為經濟發展的重要支柱,電腦全面進佔我們的工作和生活,只要是必需要使用電腦的專案,不論是工業設計還是多媒體製作,都可以實踐和應用此書中的道理。從我在科技公司當夾心中層的實戰經驗,更加肯定書中理論經得起時間考驗。此書是知識型經濟的管理階層,或有志晉進成為管理階層的打工仔的必讀之選。

後記:Project乃洋文,大陸譯作項目,台灣譯作專案,香港或從日文譯作企画,更多時候直接用英文。我認為台譯較傳神達意,故本文從之。

作者簡介: Frederick P. Brooks, Jr. (1931-) 史上第一台商業汎用大型電腦IBM System/360之父,電腦界最高榮譽圖靈獎(Turing Award)的得獎人。北卡羅萊納大學電腦 系創辨人兼系主任。他是電腦作業係統設計的權威,及後任職美國政府國家科學委員會和國防科學委員會。

原文刊於《閱刊》七月號。

read_monthly_2015jul

The Stanley Parable

xr7m60kn

嚴格來說The Stanley Parable不是一個遊戲,儘管它使用我們熟悉的FPS遊戲介面,最早版本更只是Half-Life2的mod。本質上它更像曾經流行一時的自我冒險小說,選A翻去下一頁,選B翻去另一頁,不過選項換成了畫面外的旁白,玩家可以選擇跟從旁白指示或對著幹。這個遊戲給玩家一個嶄新體驗,把打破第四面牆玩得淋漓盡致,可以說開創互動媒體藝術的先河,遊戲只是呈現這作品最佳的形式。第四面牆在小說和電影中,是指觀眾與故事角色的間隔,當故事角色忽然發現自已身在戲中,鏡頭外有人在觀看他們,繼而與觀眾或導演互動,謂之打破第四面牆的表達手法。

主角是一個生活刻板的打工仔,每天坐辨公室對著電腦做無聊的工序。有一天在他返工時,忽然發現全公司所有人失了蹤,於是他離開坐位四處查看,熟悉的公司竟然變得很陌生,暗藏著眾多不可告人的秘密。膽小的玩家可以放心,這個遊戲不會有鬼怪彈出來,沒有武器亦沒有謎題,玩家只能控制主角四處走動。隨著玩家前進,旁白一邊敘述故事,若果跟足旁白照做,結局會發現整橦辨公室是個巨大思想控制實驗,最後玩家逃出實驗室,只是你真的逃脫了嗎?

下面內容有劇透,看你是那種人,有人看過無損玩遊戲的心情,有人看過玩時會很無癮,讀不讀下去,看倌自行決定。

第一個結局過後回到起點重新出發,遊戲才是正式開始,玩家可以盡情四處遊蕩,發掘遊戲的另類結局,兼看旁白因玩家不依劇本而抓狂。不得不佩服作者的創意,玩結局花得樣百出,從換身一變成另一個遊戲Minecraft和Protal,到充滿科幻意味的無限輪迴,到完全惡搞的噴火嬰兒爬行大賽,甚至有一間展覽credit的博物館。有的結局只是博君一笑,有的結局帶點人生哲理,讓玩家反思現實的荒謬。旁白是這套作品的精華,雖然玩家控制的角色不能出聲,但我玩時總覺得主角應該是與白旁在不停互相吐嘈。我最喜歡的結局是劇本deconstruct那條線,走到盡頭的空間還在趕工搭道具裝修,編劇對失控的角色完全投降,很有黑色幽默。每個結局需時不多,短至數分鐘長則十數分鐘,除了那個要四小時不停按鍵的變態結局,二個小時應該可以玩完所有結局。大部份結局的路線很易走,不過何時聽或不聽旁白爾。不過有幾個結局頗難搵入口,我也要上網看攻略才知道。如果懶玩的話可以索性看youtube,反正玩過幾結局後,自已玩與看別人玩無甚分別。

玩完所有結局後,回想最初結局的思想控制實驗,說起來角色根本從來沒有逃脫,整個作品就是作者與玩家的一場思想實驗,關機才是唯一的解脫。只不過電腦遊戲可以玩完不玩,但現實人生又是否另一場不可關機的遊戲?

死亡經驗

人誰無死,但沒有人經驗過死亡後,還能夠把經歷寫出來說給大家聽。死亡我當然沒有試過,(癈話,不然誰在寫這篇文),不過倒有三次與死亡的近距離接觸,經歷過一些小說或電影常見關於死亡的描述。至少我親自引證過,這三種死亡經驗並不是作家和編劇憑空杜撰出來,大慨他們真的是參考了別人的死亡經驗。

一,人死如風
有一說法,人的靈魂重廿一克,死亡時會像風一樣飄出去。那是我中學時的故事,有次因事入醫院,住了兩個星期。一間病房四個人,我睡窗邊的那張床,其他三張床的病人來來去去,大慨不是康復出院便是轉病房,除了一個老伯,就死在我隔離。老伯下午入院時,已插滿喉躺著不動。到了夜半,我給儀器的叫聲嘈醒,醫生護士人來人往,把老伯床的簾拉上,我看不到他們做什麼,聽聲也知道是在急救。雖然我十分疲倦,但又光又嘈人又多,我沒辨法完全入睡,只是閉著眼半睡半醒,不記得過了多久,聽到維生儀器長嗚,然後我感覺到一陣風,從房內吹出窗口,老伯離開人世了。時隔多年,我也不肯定是聽到長嗚先,還是感覺到有風先,也許是同時間發生吧。與其說是一陣風,不若說是一絲微風,很長很弱,但不是冷風,沒有特別溫度。我找不到什何科學理由可以解釋那陣風,那間病房是冷氣房沒有開窗,我的病床亦不在風口位,那陣風給我的感覺,亦不似是醫士護士郁動產生的氣流,唯一的解釋只剩下人死如風。

二,人生走馬燈
有說法人在面對死亡時,會看見人生走馬燈,人生中一幕幕浮現眼前。那是大學四年級,剛失戀,在朋友慫恿下,一起走去玩跳傘。不是玩有遊客常玩,求其講十幾分鐘,同個導師吊著你一起跳下去那種,而是玩要先上兩日堂,然後自已一個人跳下去那種。跳傘高度三千尺,不用自已拉開降落傘,好像看雷霆傘兵般,有條繩連著飛機,跳下去條繩放完會自動拉開個傘,太約有半秒至一秒的無重狀態。我是第一個跳,飛機門打開,半個人掛了出飛機外面,看著下方很遠地面,倒沒有害怕畏高,只是有一份違和感,正常情況腳下是不會凌空。教練說一二三跳,我想也不想便跳了出去,眼睛一直張開,但看不到天空的景色,在天旋地轉之間,腦海浮現出人生走馬燈。在那一秒半秒的時間中,從幼稚園到大學的畫面一直快速播放,有些完全遺忘了記憶與感覺,全部都很實在的湧出來,好像把人生重頭活多一遍。然後降落傘打開,把我拉回現實,腦中第一個想法是我仲未死,然後才有飛在半空的興奮。跳下去見到人生走馬燈的機會恐怕只有一次,之前我玩笨豬跳大慨不夠快沒有人生走馬燈,再跳傘有了下跌的心理準備便看不到了,

三,慢鏡重播
華dee在烈火戰車說過,在過灣時千鈞一發生死之間之際,時間會變得很緩慢,世界就好像在慢鏡重播一樣。同樣是大學四年級,係那個下大雪的晚上,那條濕滑的高速公路,那個粗心大意的司機。我坐朋友車坐車頭,車子在高速公路行中線,忽然看見外線的車子失控打滑,從開始到結束大慨不到半秒時間,但主觀感覺上過了至少十幾秒。我看見那車很慢很慢地在打轉,向著我們轉了兩圈半後,才轟一聲撞上我們的車頭。時間變慢但動作沒有變快,基本上我除了眼睛盯著著那車,身體硬直動也不能動,腦海中閃過今次死梗,然後硬食撞過來。撞擊後時間速度變回正常,回過神來第一個感覺是好臭,那是安全氣袋內化學氣體的氣味。好在有安全帶有氣袋,加上朋友開的是較硬淨的美國車,車子報銷了人倒沒有事,還可以自已走下車等警察和拖車。當晚不覺得有什麼地方痛,第二天睡醒才周身筋骨痛,胸前安全帶位置有瘀痕,醫生說是撞車的衝力拉傷了,休息一兩個星期便無事。朋友比我傷小小,駕車時手指放在軚盤上,安全氣爆出來時打斷手指骨,要打石膏。

那三次死亡經驗,嚴格來說離死亡還遠,基本上沒有生命危險。根我所知除了這三項外,還有其他不同的死亡經驗,如白光隧道,靈魂出竅,聽見耶穌佛祖聲音等等。我沒有興趣亦不希望親自去求證,如何其它朋友有試過,不妨留言分享交流一下。

物聯網IoT入門 – Arduino vs Raspberry Pi

過去兩個十年是互聯網的天下,孕育出Google,Facebook等富可敵國的科網巨頭,養活無數大小不一的網絡公司,懂網站編寫技術的人身價亦水漲船高。有預言說下個十年物聯網Internet of Things(IoT)將會取代互聯網,成為最灸手可熱的新科技藍海市場。物聯網到底是什麼樣子,目前還未有定論,大家還在探索階段。有一說法物聯網是互聯網的申延,讓互聯網走出電腦電話平板的框框,讓家居或公司任何地方的每一件物件,都擁有智能可以用電腦操控。

現在的物聯網一般統稱為Maker Movement,性質與早期的互聯網十分相似,都是一群業餘者當嗜好的玩意,geek們好玩地解決瑣碎麻煩事。偶有項目放上Kick Starter或indiegogo集資出製成品,但還未發掘出什麼賺大錢的商業模式,就好像在靜靜等待時機成熟,然後一個泡沫爆發起飛。當年互聯網起步之初,懂得HTML,CSS,PHP等技術,雖沒有贏在起跑線這回事,但也算早點拿到入場卷,至少行先別人一步。想要在下一個物聯網世紀中分一杯羹,又需要懂什麼入門技術呢?

Maker的入門技術,說難不難,說易不易,只需略懂大學一年級電子工程的知識,加上無限的創意,便可以弄出好玩又有用的東西。一台微型電腦作為核心,配上不同組合的sensors,display和motors等物理元件,讓電腦與現實世界的物件互動。可以說是弄個原始機械人,儘管不是動畫中那種機械人,只能做一些簡單事情的小機器。現今Maker可以粗略分為兩大陣,Arduino和Raspberry Pi,兩者分別是不同的開源硬件和軟件生態體系,不過它們並不是iOS和Andriod般的競爭對手,反而更像是太極陰陽般相輔相成,各有不同強項互補長短。

Raspberry Pi(RPi)是一台十分便宜的小電腦,四十美元有找,性能大約與中價手機相若。RPi運行Linux作業系統,可以完取代一般desktop。Linux更是互聯網伺服器的主要系統,不講求運算速度的話,RPi用來架網絡站也沒有問題。與電腦不同之處,是RPi有40個GPIO(General Purpose Input/Output)接點,可以讓用家連接sensor,display和motor不同部件,用家與RPi的互動不再限於鍵盤和屏幕。例如你可以把RPi連上motion sensor和冷氣機的電源開關,讓冷氣機見到有人入屋時自動開著,更可以把RPi連上網,讓你遙控家中的冷氣機。當然這個點子那樣行貨,Nest早已經造了出來,還給Google重金收購了,現在才跟風去做太遲了。不過重點是RPi潛在的無限個可能性。

Arduino嚴格來說不是電腦,而是microcontroller微處理器。電腦作汎用運算,可以執行不同程式,微處理器則只可行單一程式。若果拆開家庭電器如電飯煲,入面的控制晶片就是微處理器而不是電腦。Arduino的性能比RPi差一百倍,只及當年286的速度,記憶體更是小得可憐,只有Apple IIe的一半。價錢比RPi更便宜,原裝正版十美元,不介意大陸翻版的話,上淘寶三美元有交易。不要以性能弱就小看它,其實大部IoT的應用根本不需強大的運算能力,夠用就行了。Arduino有不同大小的版本,各有不同數目的GPIO。最微型的只有一個硬幣的大小,加上耗電量小可用計算機鈕型電池,很多舞台服飾上都是用它控制LED效果。Arduino比RPi的GPIO更易用好用,RPi的GPIO是純數碼(digital),只能有零或一的數值,但Arduino有模拟(analog)的GPIO,可以直接作voltage的輸入或驅動,不要額外的模拟轉數碼晶片。另外Arduino的GPIO電路比較堅固,RPi的GPIO如果駁錯線超出電量負荷,很容易把成塊晶片燒壞,所以初學者用Arduino比較適合。

Raspberry Pi和Arduino代表著IoT的兩種不同哲學,RPi是從上而下以傳統電腦為先,Arduino則是從下而上以方便控制優先。市面上有不少現成的擴充板,去增加兩者缺少的功能。如要播音樂,RPi執行內建音樂播放器便可以,但Arduino則要加裝mp3音效板。兩者沒有絕對的優劣高低,只因應不同需要,在系統上作出不同的取捨。又或可以者索性兩者一齊用,RPi做總指揮執行運算和網絡工作,Arduino則專門操制物理元件。除了這兩個主要的入門系統外,市面上還有很多其他IoT系統,如Intel的Edison,Galileo,其他廠的Beaglebone,LinkIt ONE,CHIP等。它們不外是在這兩個設計哲學的基礎上,找出不同性能和價格的平衡點,如速度快些慢些,記憶體或接點多些少些,體積或耗電量不同,加放其他晶片如GPS,LTE在底板上。

學習IoT最有效最直接的方法,莫過於自已來動手玩。可以上網買RPi或Arduino的starter-kit,價格豐儉由人從十多元到百多元也有,看你想套裝內附送多少物理元件。跟從套裝內的說明書,從控制一顆LED閃下閃下開始,一步步把不同元件裝組成有趣小玩意。不過套裝的說明書一般過份精簡,要把小玩意做出來不難,但要明白如何寫程式去操作那些元件,連我這個讀電子出身也看不明白,要另外看入門書藉。在此我推介兩套入門書,一套是Maker Media出版的Make Series,內容十分淺白易明,寫給沒有寫程式經驗的人看,用來打好基礎知識,不過有經驗的人會覺的長氣。另一套是電腦書出版老大哥O’Reilly的Cookbook Series,沒有電腦人未看過O’Reilly的書,不用多作介紹。

玩starter-kit踏出第一步後,進階可以多看Maker雜誌和網站,參加當地舉辨的Maker Faire,與其他maker交流心得刺激思維,難保有一天靈光乍現,天時地利人和加點運氣,從此搖身一變成物聯網科技大享。痴人說夢完,其實我只是maker初哥,玩RPi和Arduino才個多月,剛剛完成starter-kit的習作,上網再買多些物理元件回來,弄些有趣的無聊小玩意。我的第一個成品是LED紅綠燈,按鈕會轉燈,給兒子與他的玩具車一起玩。第二個成品是摩斯電碼機,長短嘟嘟嘟聲來打字很慢但很型。第三個作品還在製作中,重製兒時很流行的計數機消數目字遊戲。IoT很好玩,就算發達不成,也不失為一個有用嗜好。至少兒子入學讀書後,學校要交什麼科學創意習作,怪獸家長出動IoT技術幫拖,肯定比其他只懂繪畫做剪貼勞作的同學仔高分。

Fate Stay Night Unlimited Blade Works

fsn-2014-poster

我沒有玩過Fate的遊戲,所以我其實不懂欣賞這作品。除了打鬥場面精美,角色(特別是Saber)賣萌討好外,單以動畫而論,我實在想不到Fate有什麼特出。第一次動畫版作畫太差,我實在沒法看下去。Fate Zero故事完整,戰鬥緊張刺激,我倒看得很開心。這次看UBW版我做了功課,上網讀了不少補完資料,知道原作遊戲有三條線,故事在平衡世界發展,但要三條線跑完才知事件的全部。UBW線講述Archer和士郎身世之謎,凜榮升女主角,Saber降級變回僕人,不計打鬥場面,戲份大減,有點失望。

聖杯戰爭的大橋本身很公式化,七個主人加七個僕人互相廝殺,爭奪萬能願望機。好人士郎誤打誤撞當上主人,召喚出最強僕人Saber,然後心軟不肯對同學凜下手,於是兩人索性結成同盟。當然孤男寡女自然萌生愛意,可憐Saber當了電燈膽。士郎和凜聯手打Caster那段最好看,Caster算是個描寫得好的悲劇角色。Rider出場不久就領便當,那個變態諧角主人很煩人,早知一早順手把他殺了,便省卻後來的聖杯暴走。Bersker和伊莉亞出場不多,死戰下壯烈犧牲,除了殺死一組參賽者外,好像沒有特別的意義。我還以為士郎會收白髮蘿莉當後宮,怎料打不到兩集便掛掉。

若果聖杯戰爭只是純鬥智鬥力對打過招,我不會看得這麼噢惱。那一大堆超展開陰謀和謎題,我完全看不明白故事到底在講什麼。不過死忠大慨認為那些過度複雜的劇情才是最主要賣點,我看不明白只是因為我程度不夠。謎題一:Archer身世之謎,Archer竟然是未來的士郎,我想破腦袋也想不通這個時間悖論。為什麼Archer要殺死士郎,殺死過去的自已,就可以從永續輪迴中解脫了嗎?雖然想不通,但至少知道編劇想表達什麼,這道謎題算是有交帶了。謎題二:金閃閃從那兒彈出來?明明是上次聖杯戰爭的僕人,今集無拉拉變了最後大佬。謎題三:偽神父到底做什麼,他是裁判,還是參賽者。這樣不公平的聖杯戰爭,完全推倒之前說好了的規則。那還爭什麼聖杯,你玩晒啦。謎題四:什麼大小聖杯?看得我一塌胡塗。到底聖杯是什麼東西?反正從來沒有人拿過聖杯,拿到手除了用來毀滅世界外,又不見得有什麼實際用途。其實不用打生打死,大家猜包剪揼來決定誰贏聖杯好了。

劇聞會開拍HF線,希望看完HF線後,能夠弄清楚到底聖杯戰爭在搞乜鬼。