2007年12月29日 星期六

人月神話

最近因為計畫結案,有一筆買書的錢可以用,在不用白不用
的心態下就往重慶南路跑了兩趟,買了一些有興趣,但是不
知道何時會看完的書,照pplong學長的說法就是「你對它的愛
不夠阿!」(指),不管如何,在這些書當中,由於剛做完計畫的
關係,「人月神話」這本由Frederick P. Brooks, Jr所寫關於
軟體專案管理的書吸引了我的目光,作者以在IBM擔任 System/360、
OS/360軟體專案經理的經驗寫下這本探討軟體專案管理的書,
如果你跟我一樣,覺得以後在就業時非常有機會靠寫程式混口飯吃,
或許你會對這本「人月神話」有興趣。




人月(man-month or person month)指的是「一個人要花幾個月」
才能完成軟體開發的單位,通常用來評估一件軟體專案的大小,
也是目前許多外包軟體的計價方式,包括軟體協會所提的軟體計價
方式在內,都是用「人月」計算的。不過這種計算方式太過粗略,
事實上,就我的經驗和書上所提的,並不是愈多人投入東西會愈快
做出來,一來要看任務能不能切割成各自獨立的模組,二來人愈多
溝通的成本會更多,同時還要再看你跟什麼人溝通,如果他無法理解
你的想法,很多時候再花更多時間跟他解釋只是徒勞而已....

書上每一章節都是由短文所構成,作者的文筆很不錯,大部分的時候,
能夠用簡單的文句解釋複雜的東西,基本上這本書並不談怎麼寫又快又好
的程式,大部分都在討論一些管理上的議題以及人性,每章的開頭都附有
一句寓意深遠的古老格言,以下就摘錄一些我覺得不錯的以及作者的主張:

  • 對航海的人來說,擱淺的船就是燈塔。
  • 研究顯示,高手與庸手的表現有極大的差異,而且往往是一個數量級的差異。
  • 練習就是最好的教練。
  • 沒有人會給報壞消息的人好臉色看。
  • 實務上看起來更糟的是:你得先把工作做成功,才會得到愈多實質上的權力。
  • 由別人來設定目標,必須依賴無法由自己支配的事物(特別是別人的程式)來做事:權力與責任並不相稱
  • 軟體專案進行不順利的原因或許很多,但絕大部分都是肇因於缺乏良好的時程規劃所致。
  • 關於時程預估,我的經驗法則是1/3規劃、1/6寫程式、1/4組件測試、1/4系統測試
就我來說最有感觸的大概就是時程規劃這個部分,大四的專題跟這次的計畫,
到了最後都是急就章用暴力法把他完成,之前花了太多的時間在survey一些
架構上的問題,有些問題其實到後來根本就無關痛癢,換句話說就是這些survey,
除了讓我看了很多spec之外好像並沒有實質上的幫助,舉例來說,要怎麼用
ESB(Enterprise Service Bus)的Mediation Module?該繼續用NIST還是CISCO
的SIP proxy?很多時候我做這些survey並沒有規劃好該何時採煞車,該換條路
走了,以致於浪費了很多寶貴的時間,事實告訴我們,先用目前的知識把東西
做出來,之後再慢慢修比較實際,簡單的來說就是先求有再求好,時程的掌握
比什麼都重要阿!


[+/-] 深入閱讀

2007年12月18日 星期二

筷子餐廳

筷子餐廳位於羅斯福路上,台大尊賢會館旁邊在
今天去吃之前就有聽學長說過這家餐廳不錯,
今天趁著最後一場demo結束,大家趁這個時候一起
去吃一頓,於是就選了「筷子」,很不幸的,這次我
忘了拿相機..........


這家餐廳賣的是江浙的合菜,雖說是江浙菜不過做法
上為了迎合台灣人的口味,做了一些調整,不過,幾乎
每道菜都有辣椒提味是怎樣,這家餐廳上菜的速度非常快,
不過也可能是我們是上班日中午時刻去的關係,店裡沒有什
麼其他的客人,所以廚子可以直接做我們的菜吧!服務態度
非常不錯,幾乎一招手服務生就會過來幫你解決問題,滿足
你的需求,真的有當大爺的感覺,哈~ 菜色方面,我們點了
大概八道菜有吧,雖然辣是辣了點,不過味道真的不錯!
非常可惜的是,剛好碰到我感冒,實在沒什麼食慾,所以也沒
有吃很多,印象最深刻的是他煮的蓮藕茶,據學姐說可以退火,
一開始我還以為是枸杞茶,味道相當特別,我也不知道該怎麼
形容,除了甜之外,大概就是他還保留了原來蓮藕的味道吧。

不過說到吃,有些年紀的人包括學姐、老師都有一些研究和心得,
總是可以說出一些我這種不太懂得吃的宅宅不知道的東西,例如:
麻辣鍋之所以吃了會麻是因為加了罌粟,如果有辦某某信用卡去哪
幾間餐廳吃就可以兩人同行一人免費、京采與上闔屋這些有buffect
形式的餐廳怎麼消費才划算等等,蠻有趣的,人生的閱歷
除了工作之外休閒也是很重要的阿!科科~


[+/-] 深入閱讀

2007年12月16日 星期日

流浪到淡水

星期六因為計畫剛結案,得以享受週末不用加班的清閒,
下午買完平安夜那天實驗室要玩的交換禮物後,(禮物
暫時保密XD)由於不想做正事,想找個地方放空吹吹風
就往淡水去了。


非常幸運的在公館站就找到了可以坐的位置,讓我
可以一路打瞌睡打到淡水,好久不見的淡水,這是第
幾次來我已經忘記了,第一次印象最為深刻,是大一的
時候偷偷跑來見網友,恩....詳細內容已經忘了,最近
一次是跟猴長官去淡江中學看「不能說的秘密」拍片現場,
還順便到八里去吃了孔雀蛤還有玩壘球九宮格(說來慚愧,
我丟的超級不準 唉~)到達的時候已經是五點半,夜幕已經
低垂,來不及看夕陽了....囧,用我的 Fuji F40夜景模式下
拍的效果似乎不是很好,不過可以看到星芒,像是這樣

漁人碼頭的步道


又或是說這種模式應該要有人當主體,光線當背景才是。
手動模式的效果比較優,像是這樣:


遠眺斜張橋
在老街吃了一些小吃當晚餐之後就搭著紅26公車往碼頭而去,非常幸運的是
這邊剛好有在辦演唱會,主持人有小鬼、圓圓(他是誰?)也有最近以背叛
走紅的曹格、台科資管畢業的言若藍、麻吉,不過我覺得曹格的現場功力普普,
他們好像不怕冷,

怕冷的我今天好像已經感冒了.....囧


[+/-] 深入閱讀

2007年12月15日 星期六

國防部一日遊

2007年12月13號星期四,歷時半年的國防部計畫終於到了
結案demo成果的時候,當天起了一個大早,穿起好久沒穿
的特勤服裝(沒錯~以前當兵出特勤保護機歪阿扁時都要穿成這樣
只差沒有領帶XD)


去實驗室跟學長還有組員會合,印個簡報紙本、做個陽春的三角立牌、
rehearsal一遍等東拖拖西拖拖就到了10點半,接著就把電腦搬上車往
大直的國防部整合評估室出發,圖中在麥當勞買了簡單的簡單的中餐,
經過復北地下道、大直橋就到了目的地,這邊的門口站哨憲兵感覺很爽,
上哨只要帶電擊棒、交接時也沒有一個機動班長下口令嚴謹的交接,不過
在門口並沒有遇到太多的刁難,倒是進到整評室樓下會客室換證時耽擱了
很久,因為我們有帶電腦、手機等設備,在目前國軍強調通資安全的大旗
下沒有放行條是不能進去的,這邊要偷偷砍普練一下承辦參謀,明明知道
我們要來,為什麼這種事沒有事先做好,不過我也偷帶了數位相機還有手
機進去,不像老師還有乖乖把手機交出來,算是扯平了,哈哈~


經過會客室的蹉跎,到了五樓軍政推演室,趕緊把等一下demo的場地、電腦
架一架,準備好等一下展示我們搞出來的模擬系統,布置完的場地如下圖。





原本預計簡報的時間是下午兩點半,但是因為主持會議的主任遲到的
關係,拖到兩點半才開始,學長不愧是海軍上校退伍,國防部的官員們
好像都被他唬的一愣一愣的,對他也都很客氣,學長簡報完就輪到我們
上場,還好有背之前寫好的講稿,沒有出什麼大包,吃螺絲的情況不是
很嚴重,好險、好險,這種事情還是要多練習為佳(這讓我想起第一次
背值星,出來喊口令的菜樣)其他組員們表現也很棒,整個demo算是還蠻
順利,對方也沒問什麼太過刁難的問題,現場可以說是一團和氣、順順利利
哈哈~

這場demo結束完,還有下禮拜一、二再去國防大學桃園八德校本部展示
兩遍,再燒個結案光碟,就結束了,我好想休息阿~~~~



PS: 在國防部的官員裡,有一個姓諸葛的人,真的有人姓諸葛阿,
好新鮮~

[+/-] 深入閱讀

2007年12月13日 星期四

文字的力量(下)

上一篇說到中英文寫法的差異,並不是我崇洋媚外、
數典忘祖,而是就文章敘述的清晰度來說好像英文的
用字遣詞真的比較明確,再舉個例子,英文的complicate、
complex都翻譯做「複雜」但是complex的意思是某個物件,
像是引擎的內部結構零件非常的多而繁瑣,但complicate指
的是這個物、觀念件太複雜而無法理解,一樣翻譯成複雜,
但是到底指的是哪一種,中文讀者就需要自己體會。

說了這麼多,其實我只是想抱怨每次交文件稿給學長總是
會被打槍,學長總是認為我寫的東西敘述的邏輯不夠清楚,
沒有完整的來龍去脈,總是理所當然的認為這樣寫讀者一定會懂,
所以很多事情省略不講,雖然自己讀過一遍總是覺得還算清晰,
但是如果要寫一份給外行人看的研究報告,他們一定覺得太過艱澀
而失去閱讀的興趣,實際上我猜測他們大概也不會細看,但是為了
基本的寫作道德良知,也為了鍛鍊以後論文寫作的文筆,似乎咬著牙
寫一寫長遠來看應該會有幫助,雖然被打槍我也覺得是必然發生
之事,不過還是有時會覺得不以為然,印象中我寫東西給長輩看被打槍
打最兇的應該是我的第二任連長,超級囉唆,每次進連長室大概沒有半
小時是出不來(雖然有時候 是去夾卵蛋挨罵@@||),舉個例子來說,
我有一陣子管過連上的放假,照以往慣例,總是會上個簽呈給連長讓退伍
弟兄在最後一個月有兩天的榮譽假可以放,我就抄抄舊文檔,把人員姓名、
人數改一下就上簽呈了,寫著:

主旨:檢呈一兵 張德功等五員榮譽假事宜,請核示!
說明:查本連一兵張德功等五員擔任連上通保廠業務,服役期間盡心盡力
完成上級交付之任務 ,實為單位人員之表率,敦請,鈞長予以榮譽假兩天
以資鼓勵。
擬辦:奉核後公布
敬會:副連長、輔導長

蓋上我的職官章後滿以為就可以交差了事,不過這位連長總是會要求必須具體
寫出服役期間內所謂「盡心盡力」的事蹟,沒有實際的內容就不給過,這有一
部份跟這位連長的領導風格有關,他總是會在壓榨完你的功用之後才會給一些
福利,不像前一位連長在你為他做一些額外、非例行性的事後會很阿殺力的把
福利給你(有空我應該來寫寫 我遇過的長官才是),當然要求簽呈內容與格式的事
不只這些,每次都要拿個紅筆把簽呈改個兩三次他才滿意,有些忘了詳細內容也
就不提了。

這次計畫的期末報告被修改的次數、內容也不少,雖然後來因為結案在即有些
東西急就章,趕鴨子上架的情況下品質不是很好,不過我想有了這次的經驗對
以後寫論文應該會有一些幫助,總之,習慣寫寫東西文筆才會進步阿!

[+/-] 深入閱讀

2007年12月6日 星期四

文字的力量(上)

有一句話說讀過諸葛亮出師表不哭者不忠,
讀李密陳情表不哭者不孝,文字真的這麼有力量嗎?

最近接的國防部整合評估室計畫要結案了,
在眾人的努力下上禮拜終於可以開始跑模擬數據,
雖然跑一千次模擬就要花六小時四十分鐘,不過
總算是有些東西可以demo交差,因此,最近開始
著手寫計畫的研究報告,到底報告該怎麼寫才能
博得國防部高(狗)官們的青睞,最近讓我傷透了腦筋。

拜義務教育之賜,大家國中小時應該都上過作文課,
應該都寫過一些文章,書信的應用文、記事的記敘文、
說理的論說文都寫過一些,文章所謂的起、承、轉、
合理論人人都琅琅上口,但是文章寫的好不好就見仁
見智,什麼是起?什麼是承?什麼是轉?什麼是合?
這些國文老師好像都講過,只是該怎麼運用在文章上
我好像從來沒仔細想過這個問題,印象中作文課總是
老師訂個題目,想到什麼就寫什麼,寫完就交差了事,
要是對題目方向中所接觸過的生活經驗、素材不夠多,
這篇文章大概就會鳥掉,好比今天老師訂了一個題目叫做
「我最常看的電視劇」該死,要是我家剛好沒電視怎麼辦!

雖然,現代人幾乎家家都有電視,不過我偏偏還是有碰過
家裡沒電視的人,這時候大概會走上跟老師橋、換題目一途,
話說回來就算有了素材之後,該怎麼動筆?文章段落的規劃,
哪一段該寫什麼?這些老師好像都沒怎麼說過,當然可能因
為我上課太混的關係,反正我印象中沒受過這樣的訓練,到
了高中念三類的二類(三類的唸書風氣真的有比二類好嗎?)
開始接受自然科學的洗禮,但在填鴨式教育的方式下往往直接
先告訴你結論,搞不懂沒關係先記起來反正以後就懂了,讓
我對所謂邏輯推演好像更模糊了,到了大學,念了計算機科學
後因為常整天面對電腦,我變的愈來愈沈默寡言,工程師訓練
下的思維方式也習慣跳躍性思考,直接切入結論,不喜歡多說廢
話,所謂我手寫我口,要是有一天面對領域不同或是專業素養
比較不夠的人,必須講述事情的完整來龍去脈,就造成了溝通
的困難,好比就網路服務(Web Service)所提供的遠端程序呼叫
(RMI或者叫RPC)這對學過或考過計概的人並不陌生,但是如果要
寫給國防部官員們看,他們大概會完全看不懂,這時,就必須從
分散式計算、CORBA等等Web Service的前世今生開始講起,拖的
又臭又長......

那麼,為什麼一定要寫的那麼白話來折磨自己呢?這又牽涉到
中、英文寫作風格的問題,中文為 reader responsible,相反的
英文為writer responsible,簡單的講對中文來說,文章看不懂
是讀者的程度太差,不是作者的努力不夠,好比古代的文言文、
詩所表達的意境要由讀者自己去體會,作者不會負起解釋的責任,
但是英文就不同了............


好累....剩下的改天再寫

[+/-] 深入閱讀