程式設計師做自己的產品 “線上客服系統” 之:種子使用者的重要性

曹旭升(sheng.c) 發表於 2021-10-19
程式設計師

本系列文章詳細介紹使用 .net core 和 WPF 開發 升訊威線上客服與營銷系統 的過程。本產品已經成熟穩定並投入商用。

免費使用 & 私有化部署免費下載:https://docs.shengxunwei.com/Post/f7bc8496-14ee-4a53-07b4-08d8e3da6269

視訊實拍:演示升訊威線上客服系統在網路中斷,直接禁用網路卡,拔掉網線的情況下,也不丟訊息,不出異常。
https://blog.shengxunwei.com/Home/Post/fe432a51-337c-4558-b9e8-347b58cbcd53


本文開個小差,不談技術話題,談一談在做產品過程中,種子使用者的重要性以及如何對待你的種子使用者。

我開發線上客服系統,經歷了兩個階段,在我之前的部落格中有提及,開始著手做這款產品大約在2015年,堅持了2年之後換了方向,直到2020年,我重新撿起這塊工作,做了大的重構,完成了這個產品。

本文對2020年開始繼續這款產品的開發至今,對我有過重大幫助的種子使用者進行了記錄,並詳細說明了我是如何與寶貴的種子使用者溝通交流,共同完善產品的。

在這裡我首先感謝下文中提到的 A 、B、C 三個種子使用者。
沒有這幾個種子使用者,產品的完成、完善、穩定可能還會走很多彎路,花費很長時間。
特別是在這期間,也有過幾個使用者試用後因為出現故障直接放棄的,相比之下,三個種子使用者的包容與耐心更加彌足珍貴。


種子使用者A:

催生產品的重要使用者。

2020 年我剛撿起這塊工作繼續開始做沒多久,就有朋友尋著我 2015 年發的部落格找到了我,詢問這款產品的開發情況,我如實相告剛剛開始著手重構,準備徹底完成然後發新版本。A 朋友仔細閱讀了解了我之前的部落格,經過持續的溝通和深入的瞭解,在我還沒有完成時,就果斷預定了產品。

我在開始線上客服系統的繼續開發時,對是不是能夠堅持做完,做完善,心裡並沒有多少底,也沒有計劃,只是業餘只要有空閒,就開啟電腦開始做,做多少算多少。

可以說正是因為有了 A 使用者的堅定支援,以及三不五時的“催更”。才讓這件事情有了比較嚴謹的計劃性,以及對功能範圍的清晰定義。包括當時的一個重要指導思路:先完成核心功能,使之穩定可靠,不重要的外圍功能和細節先放一放,留在以後通過熱更新的方式逐步完善。

大約 2020 年 11 月左右,終於完成了第一個版本,簡單測試之後上線了。

沒有意外,接下來的一段時間,各種救火……

  1. 問題一:客服網路線路不好,容易掉線
    在最初的設計中,客服端與伺服器建立基於 TCP/IP 的長連線,只要網路中斷,則認為客服下線或掉線,退出重新登入,當時認為這個邏輯沒問題。
    A 使用者實際使用時,客服辦公室網路到伺服器之間的連線很不穩定,斷線比較頻繁,基本都是閃斷,估計持續時間不超過幾秒鐘,但只要閃斷,程式就認為客服下線,走下線流程,對客服的實際使用有比較大的影響。
    網路問題是客觀存在的,只能從軟體層面去優化適配,我花了大力氣實現了斷點續傳,使得客服在網路閃斷時,軟體不再退出,資料也不再釋放,程式自動恢復連線之後完成資料同步。
    這個過程很不容易,具體的實現方案也幾經變更,最終完美解決,我錄製了視訊演示了這個機制作用的效果。
    https://blog.shengxunwei.com/Home/Post/fe432a51-337c-4558-b9e8-347b58cbcd53

  2. 問題二:不可避免的小 BUG
    畢竟產品初步完成,沒有嚴謹的測試流程,一些小 BUG 不可避免,正是因為有了 A 使用者,才使得產品在正式釋出之前能夠在實際場景下驗證,一點一點修復掉這些問題。在使用過程中反饋的意見,使用者體驗問題,我都特別重視,能優化的都會優化掉。
    做產品和做專案有很大的不同,做專案一般功能完成和 BUG 修復之後,就得驗收結款了。做產品時就不是這個流程,對使用者的反饋,使用者的意見,都會非常重視。特別是種子使用者,絕對的尊重和感謝的態度來處理他們的意見。

種子使用者 B:

產品能夠完美支援 Linux + MySQL 平臺的重要幫助者。

雖然伺服器端是 .net core 平臺,但在產品釋出時,我只測試了 Windows 平臺,資料庫也只支援 SQL Server ,B 使用者將其部署在了 CentOS 上,隨後熱心的聯絡我,向我反饋了部署在 CentOS 上出現的問題,甚至幫我提出瞭解決的方案。隨後堅定的支援我實現對 MySQL 資料庫的支援,並給予了熱心的幫助。

種子使用者 C:

大客戶,使產品真正實現了企業級的業務承載能力。

如果說是 A 使用者催生了產品的誕生,達到能夠投入使用的水平,那麼 C 使用者則真正幫助我把產品做到了企業級的水準。

在 C 使用者上線使用時,我信心滿滿,畢竟已經有一些朋友都在使用我的升訊威線上客服系統了。而現實卻與料想的情況完全不一樣。 C 使用者的同時線上客服數量超過 20 人,最高同時線上訪客超過 1000 人,日均聊天訊息超過 20000 條。系統第一次面臨這樣的大考,在很長一段時間裡,又是各種救火……

C 使用者在完全投產前,也測試了一段時間,但隨著切換過來的客服越來越多,訪客越來越多,出現了一些奇怪且嚴重的故障。導致經常性需要手工重啟服務才可解決,而我本機開發環境基本不能重現故障。
在這種情況下 C 使用者與 A 使用者一樣,給予了極大的包容與耐心,一方面安撫客服,一方面全力協助我排查故障。這其中除了系統自身的問題,還有 APP 整合的問題、與 A 使用者一樣的網路不穩定問題等等。其中艱難略過不細說,最終使系統能夠在高壓力高併發環境下穩定執行,前後花了好幾個月的時間。

如果沒有 C 使用者在這過程中的支援,我的線上客服系統很難有機會在這樣真實的環境中得到驗證,並解決問題,涅槃重生。

現在完全可以說,即使再有更多的客服線上,更多的訪客,系統也可以從容應對。


最後安利一下我這個程式設計師業餘肝出來的產品,線上使用和完整下載私有化部署都是免費的。

私有化版下載地址與版本說明:
https://docs.shengxunwei.com/Post/f7bc8496-14ee-4a53-07b4-08d8e3da6269/553293a8-dfa1-4282-bc3f-96c6c623fc9a

程式設計師做自己的產品 “線上客服系統” 之:種子使用者的重要性

程式設計師做自己的產品 “線上客服系統” 之:種子使用者的重要性


支援請點個贊吧~ 謝謝!