設計的設計
軟件工程經典作品《人月神話》的作者 Federick Brooks 的新作《Design of Design》談的是「設計」這回事是怎樣的?是偶發靈感一觸?還是有一些規則可以依偱?這些規則、條件又是甚麼?「設計」的設計是甚麼?
說到這,當然不能不提那惡名昭彰的瀑布式開發,就是將需求、設計、實作、測試、驗收等不同階段用直線連起來。瀑布式開發過於理想,以為東西都可以在起始時候定好。而事實是,需求並不是那麼容易定得好,是會錯,是要修正,是會變化演化的。瀑布式開發容錯度很低,問題越後發現則成本越大。
比較接近現實的當然是迭代式 (iterative) 開發,經過反覆設計與用戶回應,來貼近需求。迭代式運用原型 (prototype) 與用戶溝通,設計用例 (use cases),甚至到用戶實際工作環境取得資料,而非閉門造車。
另外一種模式是開源式 (open source),通過互聯網,與世界各地的開發者合作開發。不過此一種模式其實還是有某些人會執行設計決定。
而當設計時,我們要留意各種目標、條件、假設,然後反覆針對這些資訊進行考察。作者在書中以不同實例,來說明這各種東西如何互相影響和演變。而其實這只是大概的框架,各個例子還是會出現不同情況。
作者還看古時,我們有很多很出名的設計師:莎士比亞、莫扎特、米高安哲羅等等,都是出於一人之手,但現在幾乎都沒有了,設計都是由團隊做出來的。作者認為那是因為我現在的科技越來越複雜,各小部分都需要專家,但很難有一個人能夠全盤皆懂了。而且歸因於通訊科技的發達,組合各種專家成為合作團隊也非難事了。
而問題是,古時設計好,因為有一個人能夠控制全局,保持設計概念的完整性 (conceptual integrity),這是好設計裏最重要的事。現在團隊式面對最大的挑戰,是每個合作成員,能否對於整體設計概念有統一的認識,並有良好的溝通。
一個好的設計,除了概念完整,保持一致外,還有統一風格,正確功能,有優雅的架構,處處散發令人讚嘆的美感。
而設計師是如何煉成的呢?作者提到現在教育缺乏對設計過程的訓練,多是在課堂講理論,而少實戰經驗,也缺少批判。而其實只有經過連續的實戰和批判,才會培養出好的設計師。比較好的模式有學徒制。
不過當然,偉大設計是來自設計師,而非偉大的設計過程。
Tags: book, design, review, software