大多數軟體產品是憑藉著少數、甚至只有一兩項的功能吸引使用者,若是用一個流行已久的名詞來說,那就是「擊中甜蜜點(Sweet Point)」的功能。

如果你的產品剛好有一個特色,擊中了使用者的甜蜜點,而這個特色又是其他產品所沒有的,那麼使用者就會深深的被這個特色所吸引,因而「黏」在你的產品上,持續使用無法棄離。

創造出一個具備甜蜜點的產品,是絕大多數產品規畫者都想要追求的事情。因為只有具備這種特質的產品,才能真正在你的產品和使用者之間,建立強固的連結關係,使得他們的生活中,難以缺少這個產品。

真正能讓人決定產品存廢與否的,往往就是有沒有這種擊中甜蜜點的特色,而非其他的附屬性功能及特質。

我們常常可以看到一些產品,它們提供了深度吸引使用者的功能,使得他們無法離開這個產品,即使這個產品還有一些其他的問題,像是效能不夠好、或是品質仍然有問題。因為這樣的產品有著關鍵的功能,所以即使產品有所缺陷,使用者還是會繼續忍受,除非該缺陷大到無法忍受。

比解決程式問題更重要的事──黏住使用者
就像Facebook之前在智慧型手機上運行的App版本,一直都有效能的問題,反應遲鈍不說,甚至還時常崩潰,但是,使用者都被Facebook的服務給黏住了,所以他們在生活中難以自拔,即使Facebook App用起來很慢、常常還會意外的異常終止,但他們還是會用、還是得用。

在效能上的缺點、在穩定度上的缺點,都沒有到影響使用者持續使用的意願,因為還有個更強大的吸力,使得他們會繼續「黏」在這個App上。除了這個App之外,沒有其他的途徑使得他們可以在手機上連向Facebook上的世界,跟Facebook上的朋友們互動、了解他們的動態。

我曾經向一個開發手機App的朋友回報了一個他們產品上的臭蟲,沒想到他的回應是「噢,真的嗎?不過那並不要緊 ……」不過我隨即明白他的意思,相較於產品有沒有極具吸引力的功能,對他而言,遠比解決一兩個無關緊要的臭蟲來得重要許多,尤其是那種不常發生的臭蟲。

無論是產品或服務都一樣,大多數其實不是靠完美無瑕的品質來吸引使用者,而是憑藉著關鍵、具吸引力的功能來讓使用者愛用,後者才是重點。這並不是說品質不重要,而是說,品質總是要有一定水準,但真正決定成敗的因素,還是擊中甜蜜點的功能。

有些人會在這中間迷惑了方向,他們花太多時間在不能影響大局的事情,例如,對無關緊要的臭蟲追根究底,耗費了大量時間探尋原因試圖解決,但是,並不願意好好想想,現在是否擊中了使用者的甜蜜點,或者需要做什麼功能上的改變、擴充,才能修正方向,以擊中使用者的甜蜜點。

當你的產品的確擊中了使用者的甜蜜點,那麼就很容易、快速累積喜愛使用的使用者,在這種情況下,改善品質、增加效能,可以幫助持續鞏固現有使用者。

是否具備「甜蜜點」,也影響程式語言發展的興衰

另一方面,談到程式語言的興衰,以及佔有率的高低起伏,也和上述的情況有點類似。最近一些稍有年歲的程式語言,持續在增進語言特色,像是C++以及Java,而有時候,我也會被問到,對於這些語言特色的改進,對於未來語言生態的衝擊以及變化究竟有多少。尤其像C++這樣曾經有著高佔有率,但現在佔有率持續沒有明顯提升,最近新標準的制定及推出、各家編譯器的支援,是否能夠重振江山?

對於程式語言的興衰及佔有率變化,我的看法是,和產品能否受到使用者歡迎的程度接近。程式語言就像是個產品,能否受到程式設計者的青睞,也和能否擊中程式設計者的甜蜜點息息相關,一旦程式語言的某些特質,擊中了程式設計者的甜蜜點,即使該語言存在一些缺陷,程式設計者也不會介意,還是會繼續使用。

就像早期Java的興起,是因為它可以被用來撰寫網頁上的小程式,在平淡的HTML網頁之外,可以製造一些複雜的動態效果,因此吸引了一些程式設計者。漸漸地,程式設計者發現Java在開發上的一些好處,除了平臺的可攜性之外,更重要的是它的確可以提供更好的開發生產力。

可以撰寫Java Applet,也就是網頁上的小程式,是Java可以在眾多強敵中嶄露頭角的原因,但真的使得Java大幅增加佔有率的原因,恐怕還是它的可攜性,以及好的生產力(尤其是後者)。這才是Java程式語言真正的甜蜜點。即使當時的Java受限在虛擬機器的效能,時常受到在效能表現上的抨擊,但因為它的甜蜜點太吸引人了,以致於這樣的缺點(如果構成缺點的話)仍然無法阻擋Java在程式語言生態系中的佔有率節節爬升。

C++程式語言也是一樣,儘管當年許多人批評C++不是那麼純粹的物件導向,但是,有著和C語言十分接近的運行效率,再加上支援重要的物件導向特性,這就足以構成吸引程式設計者的甜蜜點,奠定了C++在整個程式語言生態系中的地位。C++當然有其缺陷,但是在當時的時空環境之下,一樣不會阻礙程式設計者對它的趨之若騖。

曾經是或正是現任主流程式語言的語言,之所以能夠成為主流的程式語言,都是因為它們擊中了程式設計者的甜蜜點,即使它們各自有所缺憾,也動搖不了它們成為主流語言的地位。

只不過,江山代有才人出,一代新人換舊人,新的語言不斷推陳出新,雖說對新程式語言而言,要脫穎而出,成為主流語言,是難上加難,但是一旦新語言擊中了程式設計者的甜蜜點之後,就會快速崛起。而且,有新的語言崛起,就會產生排擠的效應,勢必有其他的語言會在佔有率上受到影響。C++的問世影響到C,Java的流行衝擊到C++,這都是難以避免的現實。

從最近某些程式語言的改進方向來看,其實大多看不出它們在現有甜蜜點上的突破,也就是說,它們沒有創造出新的甜蜜點,它們大多只是在一些小處做了修正或加強,像是,加了一些編譯器蜜糖(compiler sugar),讓程式設計者在撰寫程式時更方便或更直觀。

會不會有幫助?會。有沒有變得更好?有。但是,我認為這都不會改變整個大局。在程式語言還沒有創造出新的甜蜜點的情況下,雖然,這些後續的特色有所加強,只有盡可能留住現有使用者、不使其流失的作用。

在一個語言成型之際的特質,幾乎就決定了它的吸引力。除非,外在環境的條件改變,製造出新的甜蜜點,這樣的甜蜜點不是來自於語言本身,而是來自於語言的應用環境及條件。

就像是Objective-C其實被發明問世許久了,但是一直沒有很高的佔有率,直到iPhone的高度普及,為了開發iPhone之上的應用程式,程式設計者只能選擇Objective-C來開發,這才使得Objective-C流行起來,而且因為iPhone及後繼iOS的影響力大增,也大大的幫助了Objective-C的佔有率。

程式語言生態系競爭激烈,想要脫穎而出固然難,想要永保江山不墜也難。成敗關鍵就在吸引程式設計者難以自拔的甜蜜點,而無關甜蜜點者,能創造的是改善,而不是改變。

專欄作者

熱門新聞

Advertisement