The Design of Design
Essays from a Computer Scientist
2. 工程師怎麼看理性模型
Waterfall Model從一開始就是個錯誤
Royce 介紹瀑布模型(Waterfall Model)係把它當成稻草人一樣,乃是用來反對的靶子,只不過,很多人引用並奉行的就是這個稻草人,而不是他所提出更精巧的模型,我年輕時也犯了這個毛病,後來已公開為此承認錯誤。
11. 限制是好事 Constraints Are Friends
人們常抱怨太多限制,得不到自由發揮的機會,但作者提出了相反的意見,他認為限制是你的好友⋯⋯詳情
16. 展現設計的演進歷程和緣由
設計師若想從每次的設計經驗中學到最多,就有必要把設計形成的過寫下來:不只是設計了什麼,還包括為什麼要這樣設計。此外,對系統維護人員而言,這樣的設計緣由文件是無價的,可以防止許多因為無知而犯下的錯誤。只不過,把演進歷程和緣由寫下來,比表面上看起來要難許多。
作者選了Compendium來記錄設計軌跡,但該軟件已經不再維護。
有人設計了一個叫做ADR的文件格式負責記錄,相關的軟件:
- npryce/adr-tools: Command-line tools for working with Architecture Decision Records
- Markdown Any Decision Records - Any Decisions Records
但並沒有提供顯示設計樹的介面,可以用現在流行的Link Graph來代替吧?
設計不只是為了滿足需求,也是為了揭露需求
設計工作不只是滿足需求, 「還可誘使需求浮出檯面
設計不單是對選項的抉擇,同時也在了解有哪些選項
20. 偉大的設計師從哪裡來?
不斷地練習設計
設計師透過設計來學習設計,有些設計必須做到巨細靡遺,因為魔鬼就藏在細節裡,許多遠大的計策都敗在不起眼的小事。這方面做得最棒 的實例,當屬達文西的《Notebooks》(筆記),有抱負的年輕軟體設 計師不妨也養成做筆記的習慣,把自己遇到和發明的設計模式 (pattern)記錄下來。