Joel on software (Part3:29~35)

繼續節錄一些重點跟心得… ^^ 

29.”如果你想要在軟體業成功,必須有一個完全瞭解並熱愛程式設計的管理團隊。”

30.”在電腦業界中,吃自己的狗食是個怪名稱,表示真正使用自己產品的程序。”當開發人員開始自己使用自己開發的產品的時候,往往就會發現一些使用上的問題。

拿我們公司為例子吧~直到前幾天我才把我們公司的網站換成RSS 2.0的新版本,才一換上我就發現少了最新文章一覽的功能實在太不方便了… :p

32. “在微軟事情都是由最底層完成,大多數經理的工作好像只是到處閒逛,把傢俱搬開不要擋到路,好讓大家可以專心工作。” 這篇談到應該要讓員工有各自的責任區跟足夠的授權,而不是讓管理人員干預每件能插手的大小事。聽說台灣有不少惡老闆顯然都是這種類型啦~ 員工雞毛蒜皮的小事都要囉囉嗦嗦。

34. Nothing is as Simple as it Seems. 你必須先做設計再去實作。雖然現在流行少設計的說法,但是重點是避免無謂的設計,尤其是軟體規模大的時候。

35. 作者談到 Not-Invented-Here 症(如果不是自己發明的就不使用)。當然每個人應該都使用要善用別人的成果,所以如果都外包或使用別人的東西了,你就沒有自己的競爭優勢了。所以這個界線應該訂在 “如果是核心的事業功能,不管是什麼都要自己來做。”

Joel on software (Part2)

選幾篇做個閱讀紀錄…文章在這裡都找的到… :)

22.每兩個程式設計師應該搭配測試員,畢竟測試員比程式設計師便宜多了 :p

23. 絕對不要讓人同時做一件以上的事,因為程式設計的工作就是需要很長的切換時間。

24. Netscape 犯了一個嚴重錯誤,他們在改版的時候決定把程式從頭重寫過,結果隔了太久沒有推出東西,市佔率都被人佔走了。在要從頭重新開始時,完全沒有理由相信這次會做得比第一次好。

25. 冰山的秘密,非技術人員總是比較看重介面外觀,但是其實那只佔 programming 的一小部份。文章中的五個推論都很有意思,其中推論四告訴我 :可以拿些無關緊要的家家酒內容讓客戶選,讓他們覺得自己很重要。哈哈~

26. “所有重大的抽象機制在某種程式上都是有漏洞的。下雨天時開車沒辦法開得和平常一樣快,雖然車上有擋風玻璃雨刷有頭燈有車頂還有暖氣,這些裝備應該是讓你可以忽略下雨這個事實(他們把天氣抽象化了),不過看吧,你還是得擔心天雨路滑,有時候雨甚至會大到你看不遠,所以在只好慢慢地開,因為天氣永遠不能完全被抽象化,因為抽象滲漏法則。

而唯一能適當處理漏洞的方法,就是弄懂該抽象原理以及所隱藏的東西。所以抽象機制雖然替我們節省了工作的時間,不過學習的時間是省不掉的。而這一切都似非而是地表示,即使我們擁有愈來愈高階的程式設計工具,抽象化也做得愈來愈好,要成為一個純熟的程式師卻是愈來愈難了。”

這一篇真是悲觀呀… ^^||

27. “有漏洞的抽象表示我們面對一個直線上升的學習曲線:你可以用一星期學到每天工作所需知識的90%。不過其他10%可能得要好幾年才能補齊。有些人會說:「不管你要我做什麼,我都可以拿本書來就學會了。」真正有經驗的程式師超越這種人的地方就在這裡。如果你正在建立一個團隊,當然可以找一堆經驗較少的程式師用抽象工具製作出一大堆程式碼,不過如果少了經驗老到的人去做真正困難的事情,這個團隊是做不起來的。”

“只認識一個世界的人是很討人厭的。他們每次聽到其他世界的複雜狀況時,就會覺得自己的世界沒那麼複雜。” 作者用來諷刺有些 unix 程式設計師老是喜歡嘲笑 windows 世界的複雜。

28.上有政策下有對策,如果你想根據什麼測量指標來獎勵員工,那有人一定心裡只想著那個測量系統,完全不顧工作的實際價值或品質。更何況連測量績效本身都有困難。

我覺得按照作者的想法豈不是任何獎賞都沒有作用??這好像有違一般常理 ^^|| 我覺得是有點因噎廢食,不能因為少數員工會鑽漏洞,而讓大多數的人拿不到獎勵,重點應該要放在如何讓獎勵機制公正吧。

Joel on software (16~18章)

16. writing code 不是生產,而是 design ,某方面看則像 craftsmanship。craftsmanship 讓你會花500%的努力在1%的地方(修某個UI之類的)。完美的 craftsmanship 是非常昂貴的,只有大量的使用者能夠分攤成本。這也提供了其他公司更多的競爭點。

17.糾正三個CS觀念 : a.搜尋的重點不是找到夠多的資料,而是將這些資料排序。b.不要濫用 Antialiased Text (平滑字?)的顯示效果,因為其實不適合閱讀。c.小心”網路軟體應該要讓資源如同本機資源一樣”的論點,畢竟還是有 availability,latency,reliability 的差異。作者舉個例,在網路上傳檔案,是用FTP,而不是用copy file function,因為copy太簡單了無法應付網路太慢的情況。所以下次有人跟你推銷這個,請想想看如果是網路很慢的情況會怎樣。

18.文化差異 : Unix的核心價值是製作有助於其他程式師的東西,而Windows則把製作有助於老百姓的事視作核心價值。造成文化差異的原因出自各自歷史與背景因素的不同,而 unix 程式師有時弱勢的傲慢嘲笑 windows,但是事實是 windows 的世界比較實務… :p

— 

發現有中文翻譯了…. XD

local.joelonsoftware.com/mediawiki/index.php/%E9%A6%96%E9%A0%81

www.csie.ntu.edu.tw/~p92005/Joel/index.html

週末電影

 

空中危機

我覺得蠻不錯的耶,雖然之前一直聽說不合理。整個前半很玄疑有點冷,害我一直期待茱迪佛絲特什麼時候開始惡搞飛機 :p 後來的劇情發展大出乎我意料之外,編劇實在是很厲害… ^^

最好的時光

張震跟舒淇主演,故事由三段不同的時光組成 : 第一段戀愛夢,很清純的1966,不愛講話的張震追撞球妹舒淇。第二段自由夢,1911 報社主筆張震跟藝旦舒淇(這一段完全沒有說話聲音,都是BMG)。第三段青春夢,2005台北,由患有癲癇的雙性戀舒淇帶來三角關係。

引述侯導演的話 : 生命中有許多吉光片羽,無從名之,難以歸類,也不能構成什麼重要意義,但它們就是在我心中縈繞不去。而最好,不是因為最好所以我們眷念不已,而是倒過來,是因為永遠失落了,我們只能用懷念召喚它們,所以才成為最好。

軟體預先架構 Prefactoring

 

蔡學庸學長有篇介紹了,可以先參考看看。我是看歐萊禮剛出的中文版啦 :p

書的介紹寫說介於「設計模式」和「重構」之間,我本來以為是一本還蠻理論的著作。不過拿到書之後,發現整本書透過一個開發租借CD軟體的情境來當作範例跟引子,依序講解開發過程中的可以思考的地方跟建議。基本上各個方針都很實際,有些出自 design pattern 的技巧,像是書中的委代機制 ( strategy 模式 ),代理人 proxy 模式,Factory 工場模式等。有些出自重構技巧,像是 Replace Type Code with class 用 ADT 類別取代基本型別等。而開發的流程基本上走 agile process,但是作者也只有第一章提了一下這個名詞而已。

作者擷取各家絕招成各項方針,這本書是本還不錯的小精華集。如果你之前不知道設計樣式跟重構,建議你可以看看不用怕,不知不覺學到的方針就是了。如果你之前就會了,那這本書也可以帶你示範如何應用這些技巧。

不過老實說取這個驚死人的書名實在是有點誇張 :p 真正熟讀重構的人,已經把重構變成每天的麵包與黃油,變成團隊的空氣跟水,早在一開始就不知不覺融入開發的過程啦,又何需預構呢。

by the way… 中文完整書名: 軟體預先架構之美學 : 極致抽象化、區隔化、可讀化。…… 天殺的哪裡來的美學兩個字… .XD

工作 DNA

 從博客來逛了逛,買了這本小書。想增加自己對於工作上的一些體認,當然我本來是期待一本實用的書,看完之後發現是一本較形而上的工作(哲學?)概念書。似乎對我現在不是很受用 :p  anyway… 我想比較適合工作更久一點的人,應該可以帶給你一些內心的思考。