Anyview,絕對堪稱國內移動開發界的一個傳奇。龐大的用戶裝機量,定位于非智能操作系統,為其贏得了不少的喝彩,而時至今日,它仍是張劍一個人在默默支撐、維護、更新。個人開發者在這個時代是弱勢,本文作者即Anyview閱讀器的作者張劍,試圖通過通俗易懂的語言,平易近人的文風,為大家還原一個個人開發者的傳奇故事。
仔細算來,我做Anyview也有好幾年了,在非智能手機平臺上,Anyview算是一款大家比較喜歡的閱讀軟件。

萌生做Anyview的想法
最早接觸手機上的閱讀軟件是在西門子6688上,jar的電子書,雖然屏幕非常小,并且每次看書需要自己制作,但是,有總比沒有強,而且,6688上看書其實并不差。在入手QD后,接觸了掌上書院,就非常喜歡在手機上看書了,可以利用非常零散的時間來閱讀。等再換E680后,卻發現沒有掌上書院可以使用,由于E680本身設計上的問題,jar電子書雖然可以使用,但是字體是極其難看,如此優秀的硬件,卻無法享受等同的閱讀體驗,簡直是糟糕透了。憑著自己對j2me的一點了解,再利用UCDOS的字庫文件,終于可以讓E680的在看書時的字體不受系統影響了。早期把這個程序扔到移動天使的論壇上,也讓其它無法忍受丑陋字體的人可以不再難受,慢慢有用戶使用,不斷提出新的意見和想法,終于,讓我有了做Anyview的想法。
最開始做Anyview,只是覺得E680上應該有一款稱手的看書軟件,本身我自己也是一個手機閱讀的重度用戶,在這種想法下,慢慢將 Anyview做成了E680上最好的閱讀軟件之一。甚至于后來用戶換手機后,也希望能繼續使用Anyview,在用戶的不斷支持與鼓勵下,一直將 Anyview做到了今天。另一個原因是,我曾由C語言入門進入了開發領域,卻在Windows平臺卻終始無法轉向C++,嘗試過數次,都失敗了,因此我選擇了Java,并且也想通過Anyview來證明Java可以做得和C一樣好。下面是我做Anyview的一些心得。
成為自己軟件的用戶
如果需要讓用戶喜歡你的產品,首先自己得喜歡自己的軟件。我是Anyview的用戶之一,在07年之前,我每天使用Anyview的時間接近2 小時,在高強度的使用下,不斷發現缺點、問題以及可改進的地方,讓軟件不斷完善。在Anyview中,技術門檻并不太高,我花在代碼上的時間,遠不如我思考的時間多。另一方面,我又是一名開發人員,如果用戶不喜歡我的作品,他們可以選擇其它軟件,而我的選擇只能是做得好或者更好。
在每一款手機上,我都會充分感受其上邊的Anyview產品,不單是去看每一個功能有沒有,能不能用,而是,這個功能是否好用,是否方便。
了解各種手機的特性
由于手機平臺的多樣性,不同的用戶群體需求不一樣,一方面通過與用戶交流得了解他們的需求和想法,但另一方面,用戶有時候無法明確的表達出來,這時候,自己的使用體驗顯得非常重要。最開始在航海家工作,讓我能接觸到很多不同型號的手機,基本上每一款手機,我都會盡量深入使用。無論手機多么難用,都強迫自己使用。因為對于普通用戶來說,他們很有可能在1、2年內無法更換新的手機。到后來離開航海家,自己也買了十幾部手機,直到今天,每周仍然會抽一天時間將其中一款作為主力手機使用。
與用戶充分交流
一個人所能做的,所能想的,始終有限,因此,需要聽取別人的意見。我與用戶的交流主要來自于郵件,算下來,我已經回復過用戶上萬封郵件,回復率接近90%。有些用戶非常熱心,通常會寫幾千字,列舉1234567條,面對這樣的郵件,我從來不敷衍,這樣的好處很明顯,用戶會對有異意的地方再次回復,也會想盡辦法提供截圖、視頻等。
同時也是通過這種機制,讓我從用戶中那獲得了非常多的用戶習慣數據,以及用戶對產品、對功能的認知度、理解度。相對于用戶來說,我是專業的開發人員。但是,在交流的過程中,我沒有試圖讓用戶站在自己的高度看問題,而是需要將自己降低到用戶的層次去看問題。一些看起來很可笑的觀點,站在用戶的角度,就變得很自然。交流的另一個好處就是:由于某些原因,軟件不能滿足用戶,但人能獲得用戶的尊重。
裁剪和挖掘用戶需求
用戶有非常多的需求,不可能完全滿足,這時候,就需要對用戶的需求適當的裁剪。需求從用戶角度來說,可以分為小眾需求或大眾需求;從開發人員角度來說,可以分為短期開發需求和長期開發需求。對于短期開發需求,即使是小眾需求,只要不會對其它用戶產生影響,是可以全力滿足。對于需要長期開發的需求來說,只能盡量滿足大眾需求。
用戶的需求不一定描述準確,需要找到需求背后的東西。比如說,早期的時候,有用戶希望能夠自己改程序的名字,這樣,他就可以裝兩個Anyview了。經過了解,發現用戶是希望白天用一個,晚上用一個,每個配置不同,這種需求的背后,就是需要多種配置來解決。
Java客戶端有一個非常明顯的特點,就是機型太多,需要適配。但是對于個人而言,適配是基本不可能的,因此,一方面是通過技術手段保證更多的通用性,另一方面,放棄一些功能,會更有利于軟件的穩定性。
Anyview最多的時候,有多達50多項設置,如此多的設置,雖然有很高的可定制性,但是讓用戶覺得眼花繚亂無從下手,一方面需要將設置歸類,方便查找。另一方面,減少一些設置,并不會讓軟件的可定制性減少多少。
主動尋找問題
用戶不會反饋所有的問題,如果用戶通過郵件、QQ來反饋問題,這是一件非常值得高興的事情,但很多用戶不會知道軟件的網站,不會知道反饋問題的郵件,也不會知道你的其它聯系方式,甚至于他們在遇到挫折后,會立刻放棄,尋找其它軟件。
對于這類用戶的意見,是非常難以獲得的,這時候,需要自己主動尋找。我會經常通過搜索引擎來搜索“Anyview 不好用”“Anyview 怎么用”“Anyview 垃圾”這樣的關鍵字去查找答案,也會去論壇搜索關鍵字Anyview來尋找用戶對Anyview的負面評價,通過這些,可以知道自己有哪些方面需要改進,即使不是自己的錯,也可以知道用戶會遇到什么樣的困難,該如何去引導用戶。
參考其它軟件
每個手機上都有很多受用戶歡迎的各類軟件,通常我也會去研究和使用這類軟件,在使用過程中,一方面可以了解其它軟件的優點,另一方面也可以了解該軟件受用戶喜愛的原因。所謂取長補短是也。
最后,我的總結,從產品層面來說,一定要把自己放到用戶的層面上看問題,而不是希望用戶能站在自己的高度去看待問題,去使用軟件。另外,用戶體驗也是可以量化的,比如說完成一個功能,需要幾次按鍵,需要手指移動多少距離,這些都是可以量化的。
個人開發者在這個時代還是相對弱勢的群體,我希望我在Anyview的開發心得能夠帶給大家更多的分享。
