――不能配合手邊的硬件
有些程序被鎖定針對了特定的輸入輸出程序。升級或更換了設備的用戶可能就無法使用這些功能了。這是令人遺憾的。同時,也會讓用戶覺得是否是一種商業捆綁的模式而拒絕使用此產品。盡量讓開發人員編寫通用的硬件接口代碼以適應大部分通用的硬件設備。
――不能改變設備初始化
一個應用程序應該能夠發送用戶定義的初始狀態,或者至少應該讓它保持現狀。每次啟動都需要重新配置將會是很煩人的工作。假定你想要向一個打印機發送 控制代碼,以轉換到壓縮字符,如果打印數據的程序不讓你初始化打印機,你就不得不從設備來改變打印機的模式和狀態,然后重新運行程序。如果程序阻撓了你的 打印機設置,那就是一個設計錯誤。
――不能關閉自動保存
自動保存是件好事,不過無事生非也是一件糟糕的事情。過于頻繁的自動保存可能會讓用戶覺得程序不可靠。所以還是老老實實加上關閉自動保存的選項吧。
――不能改變滾動速度
嚴格來說,這不是一個很嚴重的問題。目前很多的設備驅動中已經提供了此類選項。
――不能重復上次的操作
這樣的例子比如Word軟件中的Redo。
――無法找到你上次完成的內容
此類問題對數據編輯特別是文本編輯類的程序較為常見。應當提供保存的文件列表,除非用戶禁止了它。
――無法執行一個定制的命令
在程序選項中,一旦對其更改,應該立即生效,不需要再次重新啟動程序進行加載――特殊情況除外(如果你無法避免)。
――無法保存定制的命令
你不應該只告訴程序此次運行關閉了警告聲,而是應該讓程序永遠可以關閉這些――只要設置沒有發生變化。
――特征更改的副作用
這種情況較常見,修改了某一個特征,相關的特征也會改變。如果確實存在副作用,應當在手冊和屏幕中提供詳實的文檔證明和提示。
――無限可調整性
開發人員可以改變某些程序的方方面面。但是在開篇時說過,提供了太多靈活性的程序并非一直都是一件好事。好好斟酌再做決定要比草率地修改來得更好。
2)控制方式
有些程序很“霸道”。它們的錯誤信息和幫助消息自認為高人一等,它們的風格不可原諒的不便――你甚至無法放棄命令或者在輸入數據后進行更改。程序應該使你覺得能更容易,更愜意地完成一個任務。至少,它不應該浪費你的時間。
――一個概念風格的不必要和不合理要求
有些程序要求你以某種順序輸入數據,或要求你在進行下一步之前先完成某項任務,再要么就要求你再考慮它們的潛在后果之前做出決定。例如:
當設計一種數據錄入格式時,為何你必須再屏幕顯示之前確定一個數據錄入域的名稱,類型,寬度或者計算順序?當你察覺不同的域放在一起看起來有神么不 妥的時候,你是否會更改某些域,把它們的位置換來換去,甚至去掉少數域?你可能不得不在使用該格式之前輸入域的規格說明,但是在該約束條件下,你應該決定 何時填充細節。
當向一個項目管理系統描述任務時,為何你必須首先列出所有的任務,然后列出說有可用的人員,接著在為下一項工作輸入任何數據之前就把分配給某個人的工作完全對應?既然你可能試著決定什么工作分配給什么人,那么你不想看到結果后再更改這些數據么?
限制的數量如此多,是因為有些開發人員認為,人們應該以某種方式組織它們的工作。但是他們所想的最佳途徑未必都是最佳的。我們應該更清醒地意識到,除了業務流程上的禁錮,不需要再對用戶在風格上多加任何的限制――當然,如果用戶需要的話。
――對新手友好,但是對老手并不一定友好
為初學者設計的進行過優化的過程可能為他們掌握系統會有幫助,但是同時會令一些有經驗的老手帶來煩惱。他們更希望能自由地使用軟件;其中一個解決辦法就是提供兩條以上地路徑實現對不同層次用戶的需求。
――人工智能與自動化
有些更智能和更便利的程序會猜測你的下一步動作,并枉加執行這些猜測;自動糾錯的程序的確很好,除非它“糾正”了正確的數據。而有時候,用戶并不一定希望這樣做。提供可用的選項可以緩沖一下這方面的矛盾。
原文轉自:http://www.uml.org.cn/Test/200711195.asp