今天我們採訪到的獨立開發者是齊上凱,來自美麗的濱海城市廈門。他是一名從事軟體開發20多年的“老兵”,成為獨立開發者之前是一名技術管理者。從業20年見證並經歷了國內移動端發展的全過程(WINCE -> Windows mobile -> Android -> Hybird App -> 微信小程式)。
至於如何成為了一名獨立開發者,他表示在經歷過軟體工程師、團隊Leader、專案經理、產品經理、產品運維多個崗位的“磨練”後,深感研發效能及軟體工程實踐在產品開發中的重大作用。但前公司組織架構複雜,很多研發效能的理念,當遇到跨部門情況時就無法實際落地,產品從規劃到開發、測試、釋出再到運維,無法實現全程貫通。
利用自己掌握的研發效能技術,通過軟體工程實踐,快速將idea轉變為產品,以實現“順暢、高質量地交付的有效價值”的想法在他腦海裡徘徊已久,權衡利弊後,他離開了就職9年的公司,踏上從”0“開始的道路。
班車精靈
專案背景:
這個想法來源於自己乘坐班車的經歷。因為路況原因,我一直是乘坐公司班車通勤的。而我所在的這條線路,正好經過廈門的主幹道,交通很擁堵,導致班車的到達時間無法確定。公司也使用了車長“人肉報站”,微信共享位置等報站方式,但感覺都不是很友好,還是經常錯過班車。在和同事吃午飯的時候,經常吐槽班車這個事情,逐漸就產生了做一個班車報站小程式的想法。小程式“用完即走”的特性,很適合這種輕量級,但又每天必用的場景。
專案簡介
“班車精靈”是一款“無需安裝,用完即走”的小程式產品,它能夠將班車和乘客連線在一起:司機通過它“一鍵報站”,乘客通過它知道“班車到哪了”,為企業員工提供更優質的班車通勤服務。
1、專案開發的過程中遇到過哪些問題?如何解決的?
(1)研發基礎設施搭建
雖然是獨立開發,但產品的需求更新,持續迭代及質量保障,都需要有一套小而美的研發基礎設施作支撐。這時沒有工具搭建團隊,只有你一個人,工具選型,搭建中遇到的各種問題,都需要自己去解決。
(2)挖掘使用者痛點
班車精靈提供的是班車報站服務,要讓服務真正落地,需要解決兩個問題:一報站的源頭在司機,需要將互動做到極簡,一鍵啟動,讓司機願意使用;二對於乘客,則是報站要準確,能夠自動處理各種異常情況。
在小程式開發過程中,我進行了一週的跟車測試,瞭解司機和乘客的痛點,並測試報站準確性。小程式第一版釋出後,我僅開通了一條線路,又進行了20天(4周)的跟車測試,司機在使用過程中會提出他們的建議,遇到的問題在現場基本就能定位,並儘量當天解決。經過這20天的測試,很多原先未想到的的異常情況,都得到了相應的處理,為“班車精靈”正式上線的穩定性,打下了堅實的基礎。
2、是否關注使用者的評價反饋,如何與使用者交流?
我發現使用者基本不會通過小程式的“反饋”渠道提出建議。試用期間,我拉了一個試用群,都是原先熟悉的同事,他們在使用過程中會提出一些反饋。其次,隔一段時間,我也會去乘坐一次班車,現場體驗一下班車精靈的使用情況,並在班車上跟乘客作一些溝通交流。另外,在開通新線路時,車長需要採集站點,也是第一個使用者,他們也會提出一些很好的建議。
3、運營獨立專案的過程中,遇到過哪些有趣或者覺得很有意義的事情?
這兩件事情和技術並沒有直接的關係,但卻很有意義。使我接觸到以前未曾認識的領域,而這些領域,又是獨立開發者必須面對的。
(1)市場調查
跟車測試時,與司機混熟了,他直接把我拉到班車停車場,去做市場調查。這次市場調查,好的一面是讓我看到廈門大量的公司都提供班車服務,而且基本沒有使用這種班車報站軟體;不好的一面,是司機對使用這種軟體的意願度並不高,他們認為把乘客送到終點站即可,至於檢視班車位置 這個事情留給乘客自己解決就好了。
(2)產品定價價和商務談判
產品定價是一個很艱難的過程,沒有任何可以借鑑的經驗,我試著作為需求方,到外包公司提需求,從而獲得參考報價,以此為基礎制定適合獨立開發者的產品定價。
但到了商務談判,又是另一種情況。客戶基本把價格放在第一位,要求價格便宜,功能還要齊全,產品還要很完善。
在客戶對產品的選擇方面,班車精靈這種SAAS服務型的產品,需要直接面對外包公司的挑戰,有些外包公司甚至願意用極其低廉的價格(有時甚至達不到成本價),去
促成一個外包專案(提供版權和原始碼)。對於我這種ToB產品的獨立開發者而言,如何實現產品商業化,就變成一個重大的挑戰。
關於獨立開發者
1、如何定義獨立開發者?
我理解的獨立開發者是指一個人或2-3個人的團隊,他們從產品規劃開始,獨立完成設計,開發,測試,釋出,運維,推廣,直至商業化或開源等各個環節,從而打造出一款小而美的產品或框架。
2、獨立開發者的產品和外包公司的專案有什麼區別?
外包公司做專案只需要做好一次或者很少的幾次交付就可以了。而產品,則是要傾注心血於它的整個生命週期。做專案需要更多傾聽使用者需求,但是做產品更注重思考,思考使用者的痛點和產品的定位遠重於傾聽使用者表述,要把更多的精力花在產品定義、設計,思考怎樣把技術、業務落地到產品實現上。在釋出以後,如果幸運的話,產品會有一個漫長的迭代和維護週期,Ops 工作也很可能成為你的重心,你會把主要的時間都投入到這裡。
3、獨立開發者和在企業中從事技術工作有哪些異同?面臨的最大的挑戰是什麼?
在企業從事技術工作只要將所有精力投入技術攻堅即可,開發者需要不斷學習新的技術並用於產品中,和他們打交道的主要也是和技術相關的人員。
獨立開發者是一個綜合性的職業,首先他需要開發出產品,肯定需要懂技術。但有技術遠遠不夠,或者說技術僅是其中的一小部分。因為獨立開發者需要懂產品規劃,懂
專案管理,懂測試和運維,甚至還要知道如何營銷和推廣,他面對的人群是各式各樣的並且往往不是技術出身。
單從技術角度而言,獨立開發者需要面對資源極度匱乏的現實(人員的匱乏,資金的匱乏),因此在技術選型上,也需要量身定製 —— 需要找最合適的,而不是最新最酷的技術。另外,需要更重視研發效能,以此來彌補人員上的匱乏 —— 能自動化的儘量自動化,讓計算機代替人做更多的研發工作。
面臨的最大挑戰還是產品推廣和商業化。可能一個產品的MVP版本比較成功,但有了一定使用者基數後,如何引流就是一個大問題。另外,產品需要有收益,也就是商業化:To C產品很容易就被抄襲;而To B產品面臨著中小公司的挑戰。在商務談判方面,獨立開發者還是比較吃虧的。
4、 如何看待目前國內獨立開發者的生存環境?和幾年前相比有哪些好/壞的變化?
國內獨立開發者的生存環境,確實比較艱難,這個從思否的獨立開發者調查報告就可以可以看出來:主要還是推廣難,商業化方面缺乏有效的指導,產品無法變現導致收入不穩定。這些都不是軟體開發者擅長的方向。另外獨立開發者的線下交流圈子太小了,除了一線城市外,其他地方鮮有獨立開發者的交流圈子。
好的方面:近幾年,雲原生和開源催生了大量的免費工具及雲服務平臺,這些工具大幅降低了前後端開發門檻,讓開發者無需掌握大量的前後端開發技能,就能夠進行產品和業務開發。各大廠商都在雲原生這一新興平臺上發力,雲平臺的服務成本已
經相當低了,而且還支援彈性擴容,這些對與資金緊張的開發者,都是一個好訊息。
壞的方面:經過幾年的快速發展,C端市場已基本飽和;而B端市場,存在眾多中小公司的價格競爭,雖說獨立開發者的產品相對比較專注,可能在迭代速度和質量上,也有一定的優勢。但一談到報價,軟體公司能夠不計成本的談下一單,而獨立開發者,則沒有這樣的資源。
5、 給獨立開發者們或者想要成為獨立開發者的朋友一些建議吧
1、性格:要先了解自己的性格,軟體開發者一般比較悶,如果不喜歡和非技術人溝通,最好還是選擇一個合適的公司,在技術領域深耕;如果你比較愛嘗試一些新領域,並從中能獲取到價值感,也許合適做獨立開發者;
2、全面性:如果想成為獨立開發者,需要在職場上多讓自己嘗試各個崗位的工作,比如產品經理,專案經理,團隊Leader,測試或運維,這些都是獨立開發者需要具備的技能;
3、時間管理和自律性:缺乏了公司的約束,需要自己管自己,這時不僅是興趣驅動,更重要的是自律:有規律的生活作息,合理的產品開發計劃,精確到每日,每週的工作計劃,並定期覆盤總結。
4、身體健康:身體是一切的本錢,找到合適自己的運動方式,並能堅持下來。
個人相關問題
1、個人主頁
2、生活照
3、分享一下您的工作流
每個產品迭代的工作流如下:
(1)迭代開始前,會從TAPD需求池中選出參與此次迭代的使用者故事和研發任務,一個迭代的研發週期,一般是一至兩週;
(2)評估每個任務的優先順序及預計完成時間;
(3)如果需要UI互動,則先在“即時原型”平臺上完成互動稿;
(4)拉出開發分支,根據任務優先順序進行開發,開發過程中會邊寫程式碼,邊完成單元測試,每隔1-2個小時,就會提交一次程式碼。持續整合平臺,會監控程式碼提交,並自動對程式碼進行質量審查和測試,確保每次提交的質量,一旦構建失敗,需要第一時間解決;
(5)每天開發完成後,會使用體驗版測試一下當天實現的功能點;
(6)迭代中的使用者故事完成後,會編寫或更新UI自動化測試用例,用來進行新功能的冒煙測試;
(7)當迭代看板中的任務完成,並通過持續整合平臺檢查,開始合併分支;
(8)分支合併後,會自動進行一次完整構建,包括靜態程式碼檢查,單元測試,UI自動化測試測試,如果全部通過,就會上傳到小程式平臺作為體驗版;
(9)如果有需要,對體驗版進行實地場測,通過後,提交小程式平臺稽核,最後釋出;
(10)如果該迭代版本的UI互動有變更,軟體釋出後,同步更新快速使用指南。
4、下一款產品打算做什麼?現有專案有哪些計劃中的迭代方向?
目前還沒有下一款產品的計劃。“班車精靈”計劃在明年上硬體方案,目前實現了人知道“車在哪裡”,解決了乘客的痛點;而硬體方案,則實現了車知道“誰上了車”,解決企業管理班車的痛點,簡化班車遲到的考勤流程,真正的實現人和班車的互聯互通。
5、平常會通過哪些方式/渠道提升自己的技術能力?
技術方面,主要是通過訂閱“極客時間”的課程;研發效能方面,主要還是通過看紙質書,最近在看的一本《軟體研發效能提升之美》。
6、開發之外的時間會做什麼?
開發之外的時間都在帶娃(做飯,輔導作業,和娃一起運動),感覺比以前上班還忙。娃上四年級,正是培養學習習慣,鍛鍊好身體的時機。
如果還有空餘時間,會將自己的經歷寫成技術分享,放在個人公眾號“淘淘的小屋”上。
5、 您的座右銘或者個人信條是什麼?如何解讀?
個人信條是選擇比努力更重要,觀念比選擇更重要。
從張一鳴的部落格中看到的,選擇源於觀念,觀念決定選擇。如果觀念不更新,永遠看不到更遠的風景,也很難找到自己的職業方向,而一旦選擇,就是去做,並堅持去做。