2009年1月26日

[讀書筆記] The Pragmatic Programmer (Chapter 7)

Chapter 7 - Before the Project


Section 36: The Requirements Pit

Perfection is achieved, not when there is nothing left to add, but when there is nothing left to take away.
--Antoine de St. Exupery, Wind, Sand, and Stars, 1939

需求不是架構 / 設計 / UI。Requirements are need,是對某件需要完成的事的陳敘。

Don't gather requirements—dig for them. 瞭解需求背後的原因而不僅僅是方式。

Work with a user to think like a user. 切身瞭解客戶需求,共創和諧社會。對專案建立詞彙表,確保所想的和客戶所講的是同一樣東西。

使用簡單準確的敘述來描述需求,避免規定過度。Abstractions live longer than details.


Section 37: Solving Impossible Puzzles

難題給出約束,並限制自由度,局限、誤導思考方向。Don't think outside the box—find the box. 確定了真正的約束之後,才能証明某些解法確實無用。否則就只是畫地自限,親手扼殺了正確解法。

有些時候,對需求的重新詮釋能讓整個問題蒸發--它並沒有真的那麼難。


Section 38: Not Until You're Ready

He who hesitates is sometimes saved.
--James Thurber, The Glass in the Field

相信自己累積的經驗與智慧。當感到疑慮時,用 prototype 來驗證它;結果或許可為團隊節省可觀的時間與精力。Start when you're ready.


Section 39: The Specification Trap

Some things are better done than described.


Section 40: Circles and Arrows

Don't be a slave to formal methods. 要記得誰才是主人,從中提煉出更寬廣的世界邊界。

沒有留言:

張貼留言