軟件開發領域的第三次革命 -- 改變糟糕的軟件現狀 Alan Cooper

   建議初學者閱讀“編程規則”,資深者閱讀“軟件之道

  

     最近看了《軟件觀念革命—交互設計精髓》這本書,作者(美)Alan Cooper,是一位有25年IT經驗,10年交互設計諮詢經驗的卓越權威。

該書提到軟件開發領域的三次革命:

    1. 高級語言  20世紀50年代,使軟件開發從機器語言的束縛中解放出來。

    2. 軟件工程  20世紀70年代,使軟件開發的注意力從語言拓展到開發過程。

    3. 人機交互  20世紀90年代,人機交互理論改變了一般商用軟件的設計開發流程和方式

     人機交互(Computer – Human Interaction)設計被作爲軟件開發的第三次革命提了出來。

     我覺得這本書寫的很好,但本書內容繁多(500多頁),涉及各種軟件類型,就企業應用軟件而言,如下內容最爲關鍵:

     作者認爲目前的軟件糟透了!主要原因就在於軟件的交互界面設計的太糟糕了,這些界面都是技術人員設計的,他們更習慣於和CPU打交道,而不善於與人交流,這些界面往往糾纏於技術實現,而忽略的軟件的最終目標—爲人服務。

      交互設計要面向用戶使用目標,而不要糾纏與技術和功能,用戶目標是穩定和清晰的,功能僅是爲了實現目標,萬不可本末倒置,如果你能夠用最少、最簡潔的功能實現用戶目標,就是好的設計。記住UI設計要目標導向。

      作者提出了附加工作的概念,非常有啓發性。並舉了一個例子,說明什麼是附加工作:

      你開車去上班,需要開車門、發動汽車、掛檔……等,這些動作相對你上班的目標而言,都是附加工作,如果“大黃蜂”把你抱入汽車送達辦公室,就更好地完成了你的目標。

      當我們以用戶目標爲導向思考和設計界面時,會發現過去的許多界面設計都是複雜、累贅和彆彆扭扭的,我們會對UI設計上升到一個新的層次。

      軟件要讓用戶使用的過程流暢,不要經常打斷用戶,例如彈出窗口,要求用戶對他的行爲進行確認或者報告程序的錯誤或狀態。這裏作者也列舉了實際生活中的例子:

      當你在超市出口結賬時,如果結賬員喋喋不休地問:這瓶可樂你確認要買嗎?這塊臘肉你確定要買嗎?你一定火冒三丈了;當你發動汽車時,汽車的導航屏幕上提示:您確實要發動汽車嗎[Yes,No]?,(你關的時候它也會問:你真的要關嗎?)你可能揮拳砸向你的愛車!但我們的軟件卻自以爲是地這樣做着。你可能會問:如果用戶誤操作了怎麼辦?可以撤銷嗎!不要把用戶當傻瓜(他們都非常聰明,但很忙),他們能夠對其行爲負責,但是軟件要體貼,當用戶不慎做錯了什麼,你要能夠幫助他挽回損失,這纔是軟件應該做的。

      另外,作者提出了軟件應該是體貼的,並給出了體貼軟件的特徵:

    1) 體貼的軟件對用戶感興趣

    要記住用戶的工作習慣和行爲方式,幫助你的用戶記住一些輔助信息,以方便他以後的使用,記憶本身就是計算機的長項,努力讓用戶感覺到你是他忠實的勤奮的祕書。記錄他全部的操作過程。記住那些可以記住並在下次使用時自動帶入。

    2) 體貼的軟件是恭順的

    軟件要努力按人的意願去做,而不是相反。

    3) 體貼的軟件是樂於助人的

    軟件不僅可以執行或回答用戶的指令,而且在必要的時候恰當地給出更多有價值的信息。

    4) 體貼的軟件具有常識的

    要知道有關的業務常識,比如不要打印金額爲0的支票。

    5) 體貼的軟件預見需求

    用戶做了某件事情,要預測他可能需要其它什麼,抽空提示一下。

    6) 體貼的軟件是盡職盡責的

    比方說在寫一個新文件時,你要先檢查是否存在同名的文件,如果存在,你或者將新文件加上新的日期,或者提醒用戶重命名。

    打印輸出時能夠立刻終止打印,而不是響應了“打印已經終止”,但打印機還在瘋狂輸出!。

    7) 體貼的軟件不會因爲它自己的問題增加你的負擔

    服務行業的規則是不提客戶的問題(過失),而只關心和解決客戶的問題。同樣體貼的軟件也要遵守這樣的原則,不要用錯誤信息抱怨用戶,不要用確認對話框打斷用戶,不要用一下不必要的通知來向用戶誇耀(文件保存成功!上傳成功!等等)

    8) 體貼的軟件會及時通知我們

    雖然我們不希望軟件因爲它的小恐懼和小成功不斷糾纏我們,但是卻希望它能對關係我們的事時及時通知。比方對重要的動態信息在顯眼的地方顯示,對客戶某項錯誤的選擇及時提示,而不是等到提交時再抱怨,當然如果讓客戶不會做出錯誤選擇,是更好的辦法。

    9)體貼的軟件有理解力的

  10)體貼的軟件是自信的

    不要什麼事都要用戶確認,你點擊打印一份文檔後,就去喝咖啡,但當你回來時,看到的是一個“你真的想打印它嗎?”

  11)體貼的軟件不問許多問題

    不要讓用戶感到被審問或被脅迫

  12)體貼的軟件失敗也不失風度

       總之,爲了讓用戶使用方便舒適,軟件可以(在背後)多做些事情,因爲你只是費一次力氣,而用戶卻要長時間使用啊!

      希望我們都努力做出體貼的軟件,爲人類更好的服務。

 

    請關注:

《人件》 精華版 爲軟件企業指明成功之路 爲開發人員伸張權益 

 編程規則 - 1 概述 -- 幫助你成長爲優秀的程序員 傑出的軟件工程師、設計師、分析師和架構師

另外,感謝CSDN開通博客專欄, “老子軟件之道” 和 “金融應用軟件架構”,希望大家關注和參與討論,謝謝!

   建議初學者閱讀“編程規則”,資深者閱讀“軟件之道

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章