你的軟件仍然不受用戶歡迎的11個原因
林肯是否說過我們至少有些時候會討厭所有軟件,以及始終都討厭某些軟件?他應該說過。幸虧,我們沒有一直討厭所有軟件,因為我們偶然會發現,在正確點擊鼠標和按下鍵盤之后,大多數軟件都可以做一些神奇的事情。糟糕的是,在獲得這些結果的過程中通常摻雜著咒罵和憤怒,尤其是當代碼是由自己公司編寫的時候。
即使我們討厭在使用主流產品、應用程序和網站過程中的這一體驗,但軟件開發生態系統往往不適合于處理那些企業有特殊要求的定制項目。畢竟,有成百上千的開發人員在為消費者日常生活所依賴的主流軟件和服務進行工作。而且有數個團隊專門負責信用卡帳單工作,同時有整棟樓的員工負責解決如何使人們多點擊1%的問題。但是,很難避免以這些程序員團隊制定的標準來評判較小的內部項目。
許多企業只有少數幾個開發人員,或者只有一個疲憊的開發人員,他兼職從事一個軟件項目,同時兼顧其他幾個項目。該公司的最終用戶,剛剛點擊一個主流的零售網站,或者剛剛為社交媒體想出一個好主意,然后切換標簽頁,并期望他們桌面上運行的內部會計軟件也能達到相同的完美程度。
開發軟件非常不容易,但是當你的客戶來到大廳里,并且在同一家餐廳就餐時,這就更加困難了。當他們討厭你的代碼時,你內心深處會感受到。如果在公司的工作環境中沒有人說出這一糟糕的錯誤,則你的情緒能夠更容易地從該錯誤中恢復。
以下將介紹你的軟件不受用戶歡迎的11個原因。有些原因很容易解決。許多原因只是由于規模化產生的結果。較大型團隊能夠開發出更簡單的產品,并能花時間進行優化。
用戶影響力過大
你想和自己的小學伙伴聊天,或是想閱讀有關孩子學校足球比賽的最新消息嗎?那么你別無選擇,只能選擇登錄一個主流的社交媒體網站,并按照它們的規則操作。如果你擔心自己的隱私,同時想表達比點贊更復雜的情緒,或者想上傳一段其他格式的長視頻,則你就不會那么順利了。主流平臺會設定其條款,而用戶則必須遵守。
較小的企業項目沒有這種能力。他們的用戶不會因使用軟件而被迫接受服務條款。團隊主管會聽從于大領導,當在發放獎金時,層級制度可能會施加壓力。當用戶不是必須要接受自己所得到的東西,而且要去尋找一種喜歡它的方式時,這一切就構成了一種非常不同的力量動態。當大型社交平臺制定規則時,用戶必須接受,但在使用本地軟件時,他們可以有效地反擊。如果他們能夠反擊,那么他們就會開始關注于細節。
運行速度慢
并非所有的企業軟件都運行緩慢。實際上,一些舊東西很難在新硬件上運行,因為開發團隊尚未為新硬件添加功能。但當新功能推出時,一切都陷入困境的情況就很常見。
速度只是開發人員必須權衡的一個方面,而當對功能的需求增長時,往往響應能力和性能會受到影響。大型團隊可以在工作過程中進行重新設計,但小型團隊則不能。
唯一的解決方案是推遲一些會影響用戶體驗的功能請求。如果新的SQL查詢將使用一些復雜的JOIN語句,那么推出一些更簡單的功能。如果一個更智能的新按鈕需要一連串緩慢的AJAX調用,那就不要推出。時間是我們無法更多使用的一個東西。
外觀陳舊
老計算機程序員經常喜歡光顧那些從綠色屏幕時代以來就未更新過結帳軟件的商店,因為這是一次懷舊之旅。沒有動畫圖形,實際上也沒有任何顏色。屏幕是一個25x80網格中的等寬字符矩陣。另外,響應時間極快,因為網絡不會因超酷的圖標和啟動畫面而阻塞。
但這仍是一個綠色屏幕。老板們可能會喜歡它,因為這無需大筆投資即可正常工作。精打細算的人也可能會喜歡它,因為開發成本已在幾年前就已經收回了。但是用戶卻一直生活在上世紀60年代,而且有些人會抱怨。當然,高級用戶可以記住各個屏幕上閃爍的所有功能鍵,但如果那里顯示的正方形實際上是一個菜單,其余的人卻不知道如何打開下拉菜單。
如果老板不想處理那些沒有故障的東西,而且還不斷告訴用戶,這個東西運行非常高效。同時打印一些速查表,以幫助那些忘記如何使用功能鍵的人。另一種解決方案是設計一個外觀漂亮的圖形,但除了生成要發送到綠色屏幕中隱藏會話的命令外,什么也不做。該方案增加了一個漂亮的外觀,而沒有改變內容。而且,如果有些人只是喜歡老式的綠色屏幕,那么他們也可以繼續使用。
安全措施過多
一些本地項目由于安全措施過少而出現問題,但問題常常是安全措施過多。如果一家公司的規模不大,因此無法組建一個完整的老虎團隊,這樣他們就非常謹慎。也許有人曾經插入了一個帶有病毒的優盤,從而剝奪了所有人都可使用的這一功能。現在,USB端口已被鎖死。曾經有人下載了病毒,因此現在永久禁止一切下載操作。許多小型團隊的做法就像一個“只會說不的醫生”,拒絕各種請求,僅支持那些最安全的功能。
不存在什么簡單的解決方案。用戶會討厭被苛刻的規則所束縛,但如果員工的信息泄露出去,他們將是第一個感到緊張的人。最好的做法就是將敏感數據集中存放在更安全的系統中,這樣你就可以為用戶提供一定的靈活性。
沒有進行內部測試
測試企業軟件始終是一項挑戰,當開發人員與其他人很少共享一些技能時,則測試軟件的復雜性就會增加。也許你的業務是插花,磨制斧頭或屠宰肉類以制作狗糧。設計調度軟件或內部數據庫的人員很可能對其他人所做的工作一無所知。
一種解決方案是讓開發人員調換到不同的崗位來熟悉一周時間,但是當某些工作涉及一些很嚴肅的技能(如長途卡車駕駛或飛機維修等)時,這種解決方案就不可行。有時跟隨一同工作就足夠了。有時,一些聰明的員工可以很好地編寫規范。
然而,開發人員將需要去接觸和溝通。他們將需要傾聽用戶的意見,讓用戶告訴他們如何去除工具中的不完善之處和不良的工作流程。改善這些渠道至關重要。如果開發人員不會被迫使用自己的代碼,那么他們就需要與那些被迫使用這些代碼的人進行交流。
變更業務代價高昂
你可以變更業務以適應某個軟件,或者編寫軟件以適應某一業務。通常,第一種情況需要對數千人進行再培訓,而且要對數十年來形成的許多奇怪而神秘的工作流程進行重新設計。因此,管理人員通常會嘗試購買新軟件以適應其原有的業務,這意味著其業務具有多年來發展形成的復雜性。有時,當人們抱怨某一軟件時,實際上他們是在抱怨始于幾十年前的一些奇怪做法,而如今這些做法已在軟件中永久存在。
除非你認識到某一軟件可能確實揭示了業務中的不良或過于奇怪的做法,否則沒有其他解決方案。如果你的用戶因為軟件某個部分太復雜而討厭使用該軟件,則可能是因為該業務過于復雜。將用戶的厭惡情緒作為開展更大變革的一個信號。
更少的重寫周期
許多程序可以通過完全重寫得以改進。我知道某一團隊會在每年1月1日開始編寫一個新版本,然后每年形成一個全新的版本。這項工作雖然代價昂貴,但可以解決一些冗余和令人討厭的問題。
大多數公司無法進行這項工作,即使可以的話,他們往往也會把錢投資到其他地方。因此,軟件變得越來越老。沒有其他解決方案,除非有足夠的預算支持進行全面重建。在此之前,用戶只能接受這一無法重建的軟件。
框架老化
從前,當還是一個全新的軟件時,開發人員會為新代碼選擇一個框架。當時這是明智的選擇,但后來失去了動力。或許該框架公司被一個并不關注這方面工作的公司所收購?;蛟S是因為該框架公司管理層去歐洲旅行揮霍而導致公司破產?或許開源社區被一些懷恨在心的人所毒害。
當你的團隊決定將公司的未來押注在這個框架上時,因為該框架非常好,因而這是一個明智的決定。但如今,該框架與一些誘人的信息和數據捆綁在一起,而黑客們則在夜里對此虎視眈眈,尋找那些脆弱的安全漏洞。
要解決這樣的陳舊性錯誤,我們幾乎無能為力。你可以通過選擇更大規模的和能更好地提供支持的公司或選擇可獲得各方面支持的開源項目,以嘗試提前為未來做好規劃,但是預測未來也是有局限的。你所能做的就是考慮重寫代碼。幸運的話,你可以節省許多業務邏輯。
額外功能
構建基本框架的公司會將其能想到的每一功能都設計出來,以滿足數百家公司的需求。盡管你的公司并不使用其中的大多數功能,但這些功能卻在菜單上積滿灰塵,更糟糕的是,這會讓一些新用戶感到困惑,他們總是問為什么會存在這些功能。你可能擁有了過多的好東西。
有時,可以將這些功能編輯掉或將其完美地移到看不到的子菜單中。重寫業務邏輯可能并不劃算,但通??梢郧謇碓摬藛螛浜蛣h減一些普通用戶可看到的選項。
錯誤處理
異常和錯誤總會潛入到工作流程中。有時,與密鑰數據庫的鏈接會中斷。有時,表單中包含不一致的數值。給予用戶理解、應對和解決問題的能力是關鍵。
較小的項目會缺少調試周期以標記所有可能的錯誤,和無法確保具有一個恰當的彌補方式。很難了解到更糟的情況,因為不會提供任何錯誤消息,或只有一個含有奇怪數字的含糊信息。
時間是進行測試和調試的重要元素。最好的解決方案是建立一個良好的錯誤報告框架,以鼓勵用戶來上報他們的問題。認真進行跟蹤和存檔是修復這些錯誤的第一步。
降低預算
即使是最成功的企業也無法給開發人員提供充足的時間來開發與服務全球近一半地區的眾多消費品類似的產品。按照任何人的標準來衡量,大型銀行、跨國貿易集團和制藥企業都財力雄厚,但它們都沒有足夠的閑置資金來支持真正的開發工作。
有時,只需要提醒用戶一下,讓他們了解這些工具是用很少的預算開發出來的。如果利潤合理且獎金豐厚的話,也許軟件的價格會很高。