2009年12月12日 星期六

Q39: Schedule 是用來 Delay 的

Schedule 是用來 delay 的。

出處: 工作時有感而發

作者: 曾暘展

感想: 計畫永遠趕不上變化,Schedule永遠都是變動的,參加過的專案沒有一個不DELAY,衛星發射會DELAY,系統安裝會DELAY,連參加過的國外專案進度也DELAY

      DELAY輕則半年,重則二年以上,已經到了 Schedule 是參考用的,如果客戶再來個需求變更,那真的只有DELAY到天荒地老。

2009年10月28日 星期三

Q38: 你愈急著開始,你的路愈長。Fred Brooks

The sooner you start, the longer it takes. - Fred Books

這是Brooks在1975出版的『The Mythical Man Month』裡的一句雋語,強調軟體專案的充分準備不致於浪費,如果你跳過需求蒐集,你設計的東西就非客戶所需,如果你的設計不佳,你將會發展一些無意義的程式。以今日的軟體發展法來看,這句格言(dictum)似乎理所當然,而且已歷經三十幾年,其間軟體發展方法也多所改變,但是至今仍然有用,Brooks這句格言是在提醒,從事好的設計仍然是軟體發展的重要過程。

2009年10月16日 星期五

Q37: 除三個錯就會冒出一個錯。這稱為bug的無窮迴圈。

除三個錯就會冒出一個錯。這稱為bug的無窮迴圈。


2009年10月14日 星期三

Q36: 沒有對或錯的模式,只是對手邊的工作是否有大用處。Martin Fowler (1997)

There is no right or wrong model, merely one that is more useful for the job at hand. - Martin Fowler (1997)

這句諺語是 Martin Fowler在解釋『觀念模式』(conceptual model)時所提出的模式塑造原則。軟體發展者因對於許多企業的基本需求往往不完全了解,所以要建立所謂觀念模式,以便能夠了解並簡化問題,這種模式有時稱為範疇模式(domain model),而是一種人工產品(human artifact),雖然非軟體本身,但其部分可轉換成實作。

2009年10月1日 星期四

Q35: 為何有些軟體工程師與電腦科學家能夠產生清楚而且優美的設計與程式,但其他人卻不能?關鍵在於抽象觀念。Jeff Kramer

Why is it that some software engineers and computer scientists are able to produce clear, elegant desings and programs, while others cannot? Critical to these questions is the notion of abstraction. Jeff Kramer (CACM 50(4), 2007, pp.36-42).



諺語提供:黃為德教授

2009年9月28日 星期一

Q34. 簡化(處理)變更比企圖防備它更有效,學習相信你對不可預期事故的反應能力,比相信對規劃如何(處理)災難的能力更重要- Martin Fowler and Jim Highsmith

Facilitating change is more effective than attempting to prevent it. Learn to trust in your ability to respond to unpredictable events. It’s more important than trusting in your ability to plan for disaster. Martin Fowler and Jim Highsmith
諺語提供:黃為德教授

2009年6月22日 星期一

Q33: 我總是發現計畫沒什麼用,但計畫的過程是不可避免的。Dwight Eisenhower

I have always found that plans are useless, but planning is indispensable. Dwight Eisenhower.

Q32: 除錯的難度幾乎是寫該程式碼的兩倍。因此,如果你把程式寫的太精巧,那們,你大概不足夠聰明到可以解決你程式的錯誤。B.W. Kernighan

Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it. B.W. Kernighan.

2009年4月22日 星期三

Q31: 不懂電腦的操作者是發現 bug 的天才

不懂電腦的操作者是發現 bug 的天才

2009年4月9日 星期四

Q30: 找程式的臭蟲真的是有夠難的 -- 特別當你認為你的程式沒有錯的時候 - Steve McConnell.


It's hard enough to find an error in your code when you're looking for it; it's even harder when you've assumed your code is error-free. - Steve McConnell.

2009年4月3日 星期五

Q29: 好好的訓練工程師然後擔心他們離開,總比什麼都不做而擔心他們賴著不走來得好。

Better train people and risk they leave - than do nothing and risk they stay. 

Q28: 為何我們沒有時間把系統做對,卻有時間做一些根本不需要的功能?

Why do we never have time to do it right, but always have time to do it over? - Anonymous

2009年3月27日 星期五

Q27: 何時該使用反覆式的開發方式?當你想要你的專案成功時. - Martin Fowler

When to use iterative development? You should use iterative development only on projects that you want to succeed. - Martin Fowler.

2009年3月21日 星期六

Q26: 正確的的判斷來自於經驗; 而經驗來自於失敗的判斷 - Frederick P. Brooks.


Good judgment comes from experience, and experience comes from bad judgment. - Frederick P. Brooks.

2009年3月12日 星期四

Q25: 有兩種體設計的方式。一種是設計的很簡單讓它很明顯的沒有錯誤,另一種是設計的很詳細讓它沒有明顯的錯誤。第一種相較之下更為困難。

There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult. -- C.A.R. Hoare.
 

2009年2月27日 星期五

Q24: 等一個有效能的程式設計師有空,要比等一個有空的設計師有效能要好的多 - Steve McConnel


It's better to wait for a productive programmer to become available than it is to wait for the first available programmer to become productive - Steve McConnell.

2009年2月20日 星期五

2009年2月13日 星期五

Q22: 軟體工程教育的一個基本問題是,在他們相信一個新的方法行得通以前,他們不會採用它。而更重要的是,在他們親身驗證這些方法以前,他們不會相信這些方法--W.S. Humphrey


One principle problem of educating software engineers is that they will not use a new method until they believe it works and, more importantly, that they will not believe the method will work until they see it for themselves. - W.S. Humphrey, "The Personal Software Process".


2009年2月6日 星期五

Q21: 設計一個物件導向的系統並不容易; 設計一個可重用的物件導向系統就更難了 -- Erich Gamma。


Developing an object-oriented system is not easy, developing a reusable object-oriented system is much more difficult. - Erich Gamma.

2009年1月30日 星期五

Q20: 好的程式本身就是最好的註解。加程式註解前想想:如何改善程式碼讓我不需要加這個註解?改善程式碼並加上註解讓你的程式更清楚 - Steve McConnell.


Good code is its own best documentation. As you're about to add a comment, ask yourself, "How can I improve the code so that this comment isn't needed? Improve the code and then document it to make it even clearer. - Steve McConnell.


2009年1月23日 星期五

Q19: 測試程式只能證明錯誤的存在,無法證明程式的正確-Edsger Dijkstra


Program testing can be used to show the presence of bugs, but never to show their absence! -Edsger Dijkstra
(image license)

2009年1月15日 星期四

Q18: 隨便找個傻瓜都能寫出電腦能懂的程式碼。好的程式設計師寫人能看得懂的程式碼 - Martin Fowler.


Any fool can write code that a computer can understand. Good programmers write code that humans can understand. - Martin Fowler.

2009年1月9日 星期五

Q17: 臭蟲總是潛伏在角落,並聚集在邊界 - Boris Beize

Bugs lurk in corners and congregate at boundaries- Boris Beizer

2009年1月2日 星期五

Q16: KISS Principle: Keep It Simple, Stupid.

KISS Principle: Keep It Simple, Stupid - P.J. Plauger
內容可以參考 黃為德教授 的文章『漫談 Agile modeling』。

Q15: 程式不會照自己所想的跑。只會照所寫的跑。

程式不會照自己所想的跑。只會照所寫的跑。


相信所有的程式設計師都有所感。

追蹤者