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