Archive

Archive for April, 2006

魔法帳棚

Friday, April 21, 2006 2 comments

Blog1.gif在軟體開發的生命週期當中,總會有一個時期,是所有人拼命的趕工補足未完成的項目,或者是修補產品漏洞,希望能夠順利趕上截止日。但不知是否因為這種令人焦頭爛額的非常時期,盲目了大家看事情的能力。輕重緩急、優先次要,全都亂成一團。很多情況下,產品的功能 (Features) 和有限的時間(Due Date)就如同魚與熊掌,不可兼得,適當的折衷方案需要被擬定。

大頭們其實很瞭解這類 『需要擬定折衷方案』 的情況,只是很多時候,這些方案有著令人意想不到的 『驚奇』 。

※ ※ ※ ※ ※ ※ ※ ※

會議室裏,大頭一號召集所有 System Side 的中高級幹部共聚一堂,氣氛凝重。

大頭一號語重心長的說道:「各位同仁,眼看果園管理系統的內部截止日就剩兩個星期,產品小組的白課長已經告訴我,我們大約還有幾十個功能(Features)未完成,加上一籮筐的 Bugs ,現在是公司總動員,全力救火的關鍵時刻了!我想聽聽大家有沒有什麼好的方案可以幫助我們度過這個危機?」

靜坐一旁的古專員心裡想著:「兩個星期還有一堆 Features 和 Bugs ?全力救火?別到時候葬身火窟……」想的同時,狠狠瞪了白課長一眼,可惜白課長裝作沒看見。

平時很少說話的溫專員,這時竟率先說道:「眼看時間很緊湊,我建議我們應該先全力修 Bugs ,讓產品穩定下來,同時間,仔細審核未完成的功能,或許有些可以延到下一個版本。」

古專員心想溫專員也受不了了,大聲附和道:「我完全贊成溫專員的意見。我認為 Customers 寧可要一個穩定但功能少一些的系統,而不要一大堆功能卻錯誤百出的系統。另外,幾十個功能一定有些可以刪除或延期,除非截止日可以延…… 」說著微微把頭轉向大頭一號。

大頭一號果決的說道:「為了公司的名譽,我們要堅守截止日期。白課長,那幾十個功能可以延到下一個版本嗎?」

白課長嘟囔說道:「可是有些功能,偶們已經答應 Customers 會給他們了……能不能第一個星期做完所有未完成的功能,第二個星期再全力修 Bugs?」

古專員像是看到了外星人降落地球,一副不可思議地看著白課長:「一個星期全力修 Bugs?你以為是用殺蟲劑修 Bugs嗎?還有,只用一個星期做完的幾十個功能,我看全都會變成第二個星期要修的 Bugs !」說著火氣又上來了。

溫專員也緩緩搖頭:「白課長,事情不能這樣做!」

大伙兒僵持不下的情況下,大頭一號突然開口:「我看在截止日期不改而且功能不減少的情況下,公司需要買幾頂帳棚,大家做到晚上累了,可以直接在公司露營,醒過來可以繼續……」

還沒等大頭一號把話說完,古專員再度不支倒地。

昏迷之中,古專員似乎看到那幾頂帳棚活動了起來,幫著大家寫程式,修 Bugs,如同到了『哈利波特』中的魔法世界……

※ ※ ※ ※ ※ ※ ※ ※

Joel On Software 在他的 Painless Software Schedules Blog 提過:「計畫 (Schedule) 就像是木塊,截止日 (Due Date) 就像是木箱。當所有的木塊無法裝進木箱的時候,你只有兩種選擇:一種是少裝一些木塊 (減少計畫的項目) ,或者是找更大的木箱 (延期交貨),而不是說『一定有辦法』這類自欺欺人的話。」當然這是金錢和資源有限的前提之下。

想靠幾頂帳棚就可以完成這艱鉅的任務?那必定是充滿神奇力量的魔法帳棚!

Categories: 【奇譚篇】

肯湊包

Friday, April 14, 2006 Leave a comment

Blog33.gif對於有多項軟體產品的公司而言,應用程式的開發,除了會分成不同小組專精於不同層面(Layer)的開發之外,為了避免各產品之間重複投入相同的人力,大 都會設立一個核心小組,開發一些公司內部共用的類別庫和架構(Reusable Class Libraries and Framework)供各產品使用,減少開發資源(Resource)的浪費。

正因為如此,核心小組的立場必須中立,只應該把各產品之間的 『共通點』 納入考量,而不應該把各產品特有的屬性歸入類別庫。不過,產品開發小組和核心小組時常會有不同觀點,而有責任區分的討論與紛爭。

※ ※ ※ ※ ※ ※ ※ ※

會議室內,大頭一號召集白課長和古專員共商產品大事。

大頭一號開場說道:「我想大家已經大略讀過果園管理系統的 規格(Specification)了,今天我們要討論一下這套系統設計以及權責區分。我們希望藉由這個系統,順便分析並建立公司內部共用的類別庫和架構,讓所有產品將來可以分享。這些類 別庫和架構一定要夠動態、夠彈性,更要有擴充性與前瞻性,而且也要簡單好用,能讓 Developers 能夠在一兩天內就輕鬆上手。之前已經和大家說明分組上的變動了,白課長將帶領產品開發小組,古專員則負責核心小組的工作,全力支援白課長。好的,開始討論 吧!」說完便靠到會議室角落,開始啜茶。

白課長搶先說道:「偶看果園管理系統裡面有不少的媽九(Module)都蠻有共通性的,應該很多都可以晃路(放入)核心類別庫哦……」

古 專員還正在從大頭一號遙不可及的軟體烏托邦甦醒當中,聽了白課長的建言當場清醒:「呃……白課長,利用這套產品來分析公司內部共用的類別庫和架構 固有其必要性,不過我們要謹慎審核,以免產品的特有邏輯不小心滲入核心類別庫,使得類別庫不夠獨立性。我已經大約分析了一下,這些算是比較通用的控制元件 (Controls)……」一面說一面將手中的說明文件遞出去,「我們可以先 Review 一下是不是有過之或不及。」

白課長才瞄了不到五秒鐘,立刻說道:「怎麼有些媽九都沒提到,『產量昏析』和『人員管理』都可以晃進氣核心類別庫啊!」

古專員有著對牛彈琴的無奈:「有部分『產量分析』的計算和『人員管理』的核心都已經納入核心類別庫,你只需要組合一下,應該就可以得到結果了……」

白課長似懂非懂答道:「喔……那『採收』和『維護』的媽九呢,你有肯湊(Control)浪偶們使用嗎?」

古專員已經有些不耐煩了:「『採收』和『維護』算是產品比較特別的 Modules,雖然共通的部分已經納入核心小組的考量,不過你們還是需要做一些產品專有的 Controls ……」

白課長不等古專員把話說完:「那你有肯湊可以浪偶們很快的做『播種』和『施肥』的媽九嗎?」

古專員的火氣已經上來:「白課長,核心類別庫和架構並不是依照果園系統架構走的,我們只是把共通的部分抽離出來,有些工作還是開發小組要自行設計的!」

白課長以耍賴的口吻回答道:「你就幫幫偶們把肯湊包一包,浪偶們傳參數(Parameters)就可以得到結果嘛……」

古專員終於氣不住說:「你要不要我寫一個慌選(Function)給你,讓你傳進 『專案名』 ,我就幫你把整個專案做好啊?」

白課長拍手說道:「好啊,好啊!」

大頭一號突然開口:「嗯,這是今天 Meeting 最好的提案,就這們辦吧!」

古專員再度暈厥,不支倒地。

※ ※ ※ ※ ※ ※ ※ ※

軟體開發的過程當中,有不少好的想法和建議,總會因為許多『不可抗拒』的因素而無法順利執行,只是這些『不可抗拒』因素是否真的不可抗拒,評斷自在人心了。

知識應該有幫助吧……

Categories: 【奇譚篇】

Who comes the supper

Sunday, April 9, 2006 Leave a comment

最近把 Blog 介紹給朋友的時候,發現一個有趣的現象。由於這個朋友比較習慣讀英文,便把我的文章輸入線上的翻譯程式,結果令人捧腹大笑。貼出來讓大家笑笑。

======== 原文 ========

『責 任制』的工作態度,已成為大多數科技公司,或者說是大多數公司,運作的模式。工作時數的延長,已成為日常生活的一部份。如果沒人加班,大頭們似乎會覺得公 司營運一定出了什麼問題, 可能快要見不到明天的太陽了。當然,要人留下來超過吃晚飯的時間,一定要準備些塞嘴的東西,吃人嘴軟嘛!至於超時的補償(加班費)呢……就多吃點 兒吧!(全文網址

======== 譯文 ========

"Responsibility system" the work manner, has become the majority science and technology company, or said is the majority company, the operation pattern. Work 時數 lengthening, has become the daily life a part. If nobody working overtime, the big end can think as if company transport business certainly had any problem, possibly soon will see tomorrow the sun. Certainly, the important person stays behind surpasses eats the dinner the time, certainly must prepare a plug cock the thing, eats the person to have one's speech softened! Compensates (overtime pay) as for the overtime….. Eats! (By http://www.systranbox.com/)

[P.S. Funny that "塞嘴" becomes "plug cock"……]

======== 譯文轉回原文 ========

「責 任系統」工作方式,適合多數人科學和技術公司,或者說是多數人公司,操作樣式。 工作時數加長,成為了日常生活每part。 如果超時工作的沒人,大端能認為,好像公司運輸事務一定有所有問題,明天很快可能將看星期日。 一定,留下來超過的重要人物吃晚餐時間,必須一定準備塞嘴事,吃人安排一.的講話變柔和! 補償(加班費)作為對超時….. 吃!

********

上面的例子讓我回想起許多彆扭不通的翻譯小說,It all makes sense to me now……

Categories: 【雜記篇】

UI 好書

Wednesday, April 5, 2006 Leave a comment

做 Web Applications UI 有一陣子,看了不少好(原文)書。最近在逛 博客來 的時候,發現其中一本自己覺得不錯的書『 Don't make me think 』有了中譯本。不過對於翻譯書總是一則以喜,一則以憂,在它親近另一群讀者的同時,總害怕翻譯失了真。其實有機會的話,讀讀原文書也是不錯的。

另外有一本還沒看見被翻譯的書(或許比較厚),也順便推薦一下:『 The Design of Sites: Patterns, Principles, and Processes for Crafting a Customer-Centered Web Experience 』。做 Application UI 的朋友絕對不能沒有。

Categories: 【好書篇】