上一回說到,洞察使用者需求是軟體成功的關鍵,這個道理淺顯易懂,但困難的是,如何找到使用者真正的需求。

事實上,我們時常苦於找不到使用者真正的需求。當我們自己設計軟體時,會試著去想像使用者可能的需求,為軟體逐一增加功能,直到我們認為使用者應該可以滿意為止。但往往就在我們筋疲力盡交出心中完美的軟體之後,才陸續發現那些根本不是使用者所在意的。

找出使用者真正需求的困難度
即便不是自己設計產品,而是承接軟體開發專案,上述的情況依然會發生。因為客戶端會代表使用者的角色,負責提出需求,由開發團隊記錄並分析,但這位代表使用者端的角色在需求訪談過程中所提供的需求,也時常不是使用者真正需要的。這才會使得日後需要再持續的變動需求,因為隨著開發工作的推展,當代表使用者的角色可以實際看到甚至是使用開發中的系統時,他們對於需求會更加得明白,同時也意識到自己在開發初期所以為的需求,其實並不是使用者真正需要的,也才會引發持續的需求變動及新增功能。

從軟體開發的角度來看,找出真正的需求很重要。若不能在規畫初期找出真正的需求,直到開發末期甚至是上線之後才發現真正的需求,不僅是難以避免人仰馬翻的局面,所做出來的軟體自始至終都不能為使用者提供助益,也就未能達到開發軟體的目的。

在開發過程中或甚至上線後才陸續發現真正的需求,而導致新增需求或變更需求,一直以來都是開發團隊的惡夢。有一句話很有名:「要殺一個程式設計師不需要刀,改三次規格就好」,由此就可以得知程式設計師有多麼的痛恨變更需求了。所以單就開發來看,不能找出真正的需求,其實會帶來很多隱藏的成本、要付出許多額外的代價。

對開發而言,不能找出真正的需求固然代價沉重,但對一個專案或產品而言,不能充分滿足使用者的需求、為他們提供應有的助益,所付出的代價也是很鉅大,因為所開發出來的軟體沒有發揮應有的用處。

對一個想要吸引使用者購買或是使用的軟體來說,不能充分滿足使用者需求,產品最後的命運時常就是乏人問津。這麼一來,不論公司是想透過銷售軟體來獲利,或藉助軟體達到商業策略或布局,終究會因為使用者不接受而敗北。無論如何,代價都會非常慘烈。

找出軟體真正需求的重要性與困難度,在CMMI軟體開發成熟度的規範中就可看出端倪。CMMI ML2 等級要求的能力是管理需求,而到了ML3等級就需要更進一步的「開發需求」。所謂開發需求,就不只是單純記錄、分析使用者所提出的需求而已,而是更進一步的協助使用者找出真正的需求。

功能多、功能強的迷思

在我過去的經驗裡,感受最深的就是誤以為使用者需要很多功能、需要很強大的功能,但最後下場卻是使用者不埋單,吃力不討好。

在規畫一個軟體時,通常會有一個設計主軸,例如要開發智慧型手機的即時通訊軟體,你會依循這個主軸繼續思考使用者操作即時傳訊時,他還會需要哪些附帶的輔助功能,使得他能在這件事上做得更好。所以很有可能會一路展開各種功能,像是表情符號、動態貼圖、傳送照片、影片、甚至像是手繪塗鴨之類的功能。無疑的,有許多功能都和即時傳訊有關,也都可以滿足使用者在做即時傳訊時一些衍生的需求。像上述的種種功能,都被驗證了的確是許多使用者相當喜歡使用。

當你開始衍生一些功能,自然會覺得你所設計的軟體更為強大了,但這卻是事情變調的開始。例如你一開始為即時傳訊軟體添加傳送照片的功能,之後就可能順道提供能夠瀏覽曾經傳送過照片的功能。若是功能規畫至此,那也算合情合理。但是,有些人可能會繼續想把這個功能做得更好,於是可能就再加上了功能強大的相片管理功能,想說這樣使用者應該會更滿意。而既然有了相片管理功能,那麼應當追上最新的水準,像是Apple的iPhoto軟體一樣,可以依照日期自動分類等等。然而,一旦這樣發展下去,就逐漸與使用者的需求背道而馳了。

表面上看起來功能越多便可以滿足更多的需求,但這正是不能滿足需求的開始。預期使用者需要更強大的功能是一個迷思。某個限度以下,使用者的確需要更厲害的功能,但是功能的強大往往與功能的複雜度是一體的兩面,也就是説,當功能的強大超過一定程度之後,隨之衍生的複雜度也會持續成長,最終超過使用者可以輕易運用的範圍。在這種情況下,反而是偏離了使用者的需求,因為簡單易用很有可能也是使用者需求的一部分。

高手、重度使用者的主觀陷阱
以前在規畫產品時,很容易設計一個功能包山包海的產品,但事實上卻不好用。這是很多 power user (高手使用者)或 heavy user (重度使用者)在規畫產品時容易遇到的陷阱。人們時常會想,如果這功能也能加進我的產品裡,那我的產品一定更厲害、一定可以吸引更多使用者的愛用。就像是一個軟體設計了二十個快速鍵,只要使用者按下任何一個快速鍵,就可以快速的對映到軟體的某個功能。功能的規畫者可能會想,「哇,這超方便的,簡單按一個鍵,就可以快速的執行某個功能」,但是萬萬沒想到,大多數的使用者可能記不得那麼多快速鍵究竟是在做什麼的。而且功能的規畫者搞不好甚至還規畫了自定快速鍵的功能,允許使用者自行設定每個鍵的快速功能對應究竟是什麼。陷入這種陷阱的設計者,心裡以為這麼強大的功能是使用者的福音,但對真正的使用者來說,搞不好是一場惡夢。

不能割捨那些你所能想到、你所能做到的事,是規畫軟體功能時不容易克服的事。尤其當你是一位優秀的程式設計師,你心裡對於透過軟體可以做到的事瞭若指掌,在這種情況下,更是難以在規畫功能的時候,斷然割捨你所能想到的強大功能。你想想看,有那麼多的快速鍵多棒啊!更別說還可以自訂功能了。

加法容易 減法難
我看過很多規畫產品功能的人都很難避免這個問題。而事實上,規畫軟體功能時,減法時常比加法重要。要在規畫時賦予軟體新的功能容易,因為你很容易天馬行空的想出各種看起來威力強大的功能,但是要割捨一個功能卻是相對困難。有人說,當你在規畫軟體的功能時,在完成一份功能完備而且強大的初版之後,可以開始將一些功能剝掉。持續的剝,直到你覺得這個軟體再也不能夠抽離任何功能為止。

這樣的做法當然不見得放諸四海皆準,但也說明了有些人對拿掉不必要的功能的重視程度。

另一方面,加入越多的功能,越有可能使你的產品失焦,就像在你的手機即時通訊軟體裡放了一個功能強力的相片管理模組一樣。使用者會分不清楚你的軟體究竟是一個手機即時傳訊軟體,或者是一個相片管理軟體。在使用者的心目中難以留下一個明確的印象,也就無從定位你的產品。

所以說在規畫產品的功能時,設定你的目標對象(target audience)很重要,有了明確的target audience之後,你會更清楚知道加法該怎麼做,減法該怎麼做。你會知道功能的強大程度和複雜程度應該要控制在哪一個點上。

延伸閱讀
 使用者真正需求的弔詭

專欄作者

熱門新聞

Advertisement