設計模式奏鳴曲(九):軟體設計者的自身修養
來自專欄業餘程序員的個人修養13 人贊了文章
1. 用戶
房間里的大象(elephant in the room)是一個英語熟語,
用來隱喻某件雖然明顯卻被集體視而不見、不做討論的事情或者叫風險,抑或是一種不敢反抗爭辯某些明顯的問題的集體迷思。在軟體設計領域有哪些集體迷思呢?
我想其中之一應該是,
人們會經常性的忽視軟體方案的使用成本。大多數軟體開發人員,賣的是開發軟體這項服務,
所以,通常我們不是在為自己解決問題,而是為用戶。可是,一旦我們自己不使用它,就不知道多麼難用了。我們一定見識過那些體驗較差的軟體,
深知研究正確的使用方式,是一件令人沮喪的事情,簡直是在浪費生命。不幸的是,我們的用戶也這麼認為。
究其根本,是因為人們總是習慣性的認為,
教會用戶如何使用軟體,是別人的事情,而鑽研怎樣把功能實現好,才是工程師分內之事。這樣精益求精的態度值得讚賞。
2. 預期
英國作家威·赫茲里特說,偏見是無知的產物。
人們之所以容易產生偏見,主要原因還是對其他事物不夠了解,
在鎚子眼裡,所有問題都是釘子。這種拿著方案去匹配可解問題的方法,很容易產生偏見。
在採取行動說服別人接受我們的方案之前,必須問自己一個非常重要的問題。
我們是在解決問題,還是在推行方案?
方案和問題是不同的,問題是目的,方案是手段。
長視者把目的當手段,短視者把手段當目的。
不同的人區分目標和手段的方式,也是不同的,因為每個人的預期不一樣。
所謂問題,就是應有的景象與現狀之間的落差,
所謂解決方案就是填補落差的處方簽。
建立正確的預期,才能解決正確的問題。
在方案上產生衝突的根本原因是,不明白別人的預期。3. 修身
為了消除偏見,我們就得想盡辦法掌握最先進的文明,
Any sufficiently advanced technology is indistinguishable from magic.
學習那些先進的解決問題的方式。
此外,軟體作品還表現了作者的做事方式。
軟體如何關愛用戶,如何與其他系統交互,如何運營如何發展,正是作者自身處世方式的寫照。
作者的設計哲學,藉由作品淋漓盡致的體現出來。
古之欲明明德於天下者,先治其國;欲治其國者,先齊其家;欲齊其家者,先修其身;欲修其身者,先正其心;欲正其心者,先誠其意;欲誠其意者,先致其知,致知在格物。物格而後知至,知至而後意誠,意誠而後心正,心正而後身修,身修而後家齊,家齊而後國治,國治而後天下平。
—— 《禮記·大學》
只有自身有修養,才能堅持做正確的事情。
如果你在意誰得到了賞識,你就永遠不能完成任何事。
4. 文化
如果在團隊文化上,不想看到壞事發生,
那麼他們所設計出來的軟體,在遇到異常情況時,就不會報錯。如果在團隊文化上,過分注重結果而不在乎過程,
那麼突發的未料到的事情,就會多出來很多,他們設計出來的軟體系統就總會無端的發生故障。如果在團隊文化上,互相推卸責任人人自危,
那麼與其他系統進行交互時,團隊設計出來的系統也將只求自保。總之,團隊設計出來的軟體,在整個軟體生態中,
表現出了團隊文化所擁有的那些特徵。這正是作品表現作者做事方式的另一個例子。
結語
為了設計出一個好的系統,我們得在內心深處樂於助人,堅持做正確的事情,
必須學會建立合適的預期,掌握最先進的技術文明。這些精神財富,都會在我們的設計中體現出來。
Your biggest hurdle isnt your opponent, its yourself.
有時候不用過分糾結做事方式,只是品味不同而已。
參考
數學·計算·邏輯
設計心理學
烏合之眾大癲狂你的燈亮著嗎發現問題的思考術營銷的16個關鍵詞佈道之道軟技能:代碼之外的生存指南Expert C Programming諮詢的奧秘克拉克基本定律
房間里的大象推薦閱讀: