軟體設計漫談之一:什麼是軟體設計?

來源:互聯網
上載者:User

              軟體設計漫談之一:什麼是軟體設計?

“哇,設計!”

每當說起這個詞,你的腦海裡是否很快閃出“天才”、“靈感”、“創意”。。。。。。等詞彙,同時閃現出一些戴著又大又圓的黑邊眼鏡,一邊踱來踱去,忽而又兩眼一亮,大叫一聲“I got it”的設計師形象?甚至想起了達芬奇、米開朗琪羅等藝術家?

如果是這樣的話,有兩個訊息要告訴你:壞訊息是你理解錯了,好訊息是本文對你有協助:)

 

“什麼是設計?”

在回答這個問題的時候,如果你想去翻開某本厚厚的XXX規範或者協議,那麼請你打消這個念頭,我們不需要去看XXX標準或者協議的!@#¥%定義,那些定義沒人看得懂,看懂了也沒有用。我們需要通俗的說法,但通俗的就可能存在瑕疵,我們需要從通俗的說法中提煉出正確的說法。

1                 “設計就是找到解決問題的方法!”

這個說法是最直接、也最容易理解的,因為不管什麼設計,當然是要最終能夠解決問題,如果問題都沒有解決,那設計本身就是錯誤的,這樣的設計當然是不可取的。

但是,解決了問題就是設計嗎?

肯定不是,舉個最簡單的例子:如果你原意(不需要你很牛),你完全可以在main函數裡面實現所有的功能,解決所有的問題,一個main函數寫上幾萬甚至幾十萬都可以,功能上實現沒有任何問題,但現實中你除了見到寫“Hello, World”外,誰會這麼做?

所以,“是否解決問題”是區分正確和錯誤的設計的標準,而不是區分好的設計和差的設計的標準。

2                 “設計就是天才的創新!”

這個是最迷惑人的一個說法,也正是這個說法,讓很多人對設計師都有一種崇拜的感覺。同時由於有這個想法,就想當然的認為自己不是天才,因此沒法做設計!

現實中有這麼多的問題需要天才才能解決嗎?其實你只要看看你周圍就知道了:你的團隊的設計師是天才嗎?你的做設計的朋友是天才嗎?如果你是設計師,你覺得你是天才嗎?

答案很簡單,你我周圍沒有那麼多的天才,但設計師卻不少;你我周圍絕大部分問題都不是需要達芬奇、米開朗琪羅、愛因斯坦才能解決的。設計不是藝術,也不是科學研究,只是一項普通的工作而已,因此,只要你努力,你也可以做設計!

當然,創新在設計中是必不可少的,沒有靈感和創新,你就沒法超越已有的設計;有了好的創新,才能夠作出好設計!蘋果公司做手機時間和諾基亞、魔頭羅拉等相比要短得多,但蘋果的Iphone卻掀起了世界手機潮流,這就是創新的力量!

所以,“天才的創新”不是設計的必要條件,但卻是優秀和偉大設計的必要條件!

3                 “設計之道就是平衡之道”

這個說法比較玄乎,但以我的經驗和理解來看,這個說法是最接近正確的說法,理解這個說法的關鍵在於這個“平衡”是什麼。

其實說穿了也沒有什麼玄乎的,“平衡”其實就是滿足需求的功能屬性的前提下,如何平衡需求的品質屬性(需求的功能屬性和品質屬性請參考我的上一篇博文《需求分析的故事——如何練就需求分析的火眼金晴?》)。

為什麼要平衡品質屬性呢?簡單來說就是因為品質屬性是互相約束的,當一個屬性變化時,必然會有另外的屬性跟著改變,設計師必須在這些屬性間進行平衡。

舉個簡單的例子:效能和成本,要想提高效能,成本就會跟著上升,可能是硬體成本(購買更好更貴的CPU),也可能是軟體成本(軟體重構、重寫)。這種情況下,設計的平衡之道就體現出來了,你不可能只要效能,不考慮成本;也不可能只考慮成本,不考慮效能;只能在兩者之間取一個完美的平衡點。即使是好評如潮蘋果的IPhone,在售價上相信也是超出了大部分人的承受能力。

但是,把設計完全等同於平衡也是不正確的,如果永遠都是在已有的東西裡面做加減乘除,那麼也就不會有創新了,只有創新才有可能解決所有的品質約束。比如:如果人類永遠只盯著如何提高馬車的速度和運力,那麼火車就不會出現。

 

4                 再談什麼是設計

相信聰明的讀者看到這裡已經能夠給出自己的答案了,我總結如下:

設計是一項創新和平衡的活動!要麼創造一個新的東西來滿足所有要求,要麼就在已有的要求之間進行平衡。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.