念念不忘,必有echo )))) ——講述一個Typecho開源部落格程式堅持 15 年的故事

sluke發表於2021-10-31
這是在開源社2021年活動上的分享ppt及文稿

封面P1:
大家好,我是Typecho開發團隊的 sluke,感謝大家線上上線下聽我分享
我給大家分享的,是一個小故事,一個開源部落格程式堅持 15 年的故事,是這個團隊的一點點啟發和心得

P2:
介紹一下Typecho這個產品,這是一個 PHP 寫的輕量級部落格程式,前身是誕生於 2006 年底的個人專案 Magike 部落格,在 2008 年升級成為 Typecho,經歷了很多很多個版本,中間有很多次重構,在 2014 年釋出了 1.0 正式版,到 2021 年,釋出到 1.2 版本,所以,這真的是一個堅持了 15 年的專案。

P3:
typecho程式碼最早是託管在 Google code,後來放在 GitHub,各位開發者抬愛,目前的表現是這樣,8.3K個star,1.7K個fork,勉強算是一個老牌的開源專案

P4:
Typecho 是一個組合詞,由Type和echo構成
Type,有打字的意思,部落格這個東西,正是一個讓我們通過打字,在網路上表達自己的平臺。
Echo,意思是回聲、反饋、共鳴,也是 PHP 裡最常見、最簡單的函式,相信大部分 PHP 愛好者都是從 echo 'Hello,world!'; 開始自己的 PHP 程式設計之路的。
我們選擇這樣一個專案名字,也是希望 typecho 能成為我們在開源世界表達自己的一種方式。

P5:
介紹一下 typecho 團隊,
主力組,Joyqi 和 Fen,typecho 99%的程式碼,是由他倆完成的;剩下這些不配擁有姓名的人是氣氛組,大概完成了 1% 的程式碼;整個隊伍大概相當於 RPG 遊戲裡,聖騎士 Joyqi 和法師 Fen,帶著我們幾個路人。

P6:
介紹一下我自己,
我是 Typecho 專職催更師、第一個產品運營、第一個文案策劃,本身呢,是一個產品經理,現在是一個幫助專案融資的FA,可以通過 GitHub 找到我

P7:
這個長達 15 年的故事,要從一個叫做 exblog 的開源程式開始,當年,joyqi 還是一個年輕小夥,還在上大學,給 exblog 開發了幾款受歡迎的皮膚,被吸納進入了 exblog 的開發團隊,exblog 就是 joyqi 同學的啟蒙之光,後來這個專案因為種種原因停更了,很可惜。2006 年末,從北京實習結束的 joyqi 回到學校,開發開發自己主導的 Magike 專案,在後來才有了 typecho。

P8:
從這個故事的開頭看,typecho 實際上是 joyqi 和後來加入的我們對開源世界一種回饋,我們都從開源世界裡獲得了很多,這裡不完整列舉了一些我們參考研究過的部落格程式,有幾個算是 CMS,感謝這些開源作者。

P9:
說完了開始,接下來說說堅持,我嘗試著總結一個非盈利開源專案能堅持下來的模型,也許能給在聽分享的開源愛好者一點啟發。

P10:
想找到堅持的理由,就需要回到遙遠的起點,那是 2007 的 wordcamp beijing 活動,這是 wordpress 愛好者的聚會,第一次遇到那麼多獨立部落格博主和知名網紅,Typecho 團隊第一真正意義上的聚會也是相約在這個活動上,總之,我們在這個活動裡聊得很開心,感受到了開源社群的魅力,之後我還參加過很多次 wordcamp。

P11:
後來,typecho 有了自己的社群,有了自己的聚會,我們逐漸認識到想要堅持下來,社群承載的“關係”是最重要的動力。

P12:
人,是堅持的路由,開源專案以熱情開始,以關係維持,從 2007 年到現在,typecho開發者之間,開發者與使用者之間,保持著良好穩定的關係。
穩定的關係,為開發者帶來的穩定的價值感,也帶來了堅持的核心開發者和外部開發者;
穩定的關係,為使用者帶來確定感和歸屬感,也帶來了對產品的容忍和愛護
穩定的關係,為社群帶來細水長流,也形成了typecho的文化

P13:
想要穩定的關係被固化下來,就需要一個持續的行為,總結起來一句話,就是鎖定一群人,用新玩意兒,不停滿足少量固定的需求,對於typecho來說,細化下來就是鎖定 獨立部落格使用者群 ,用新技術和新工具,迭代開發一個部落格程式,不停滿足使用者群通過部落格網站本身和內容,來表達自己的需求。

P14:
這裡包含了兩個對立統一的意思,
使用者群和需求,是固定下來的,不輕易變動的,獨立部落格使用者這個人群,是很小的一個人群,甚至是更新越來越少的一個人群,非常穩定,從“表達”這個特定需要來看,也是穩定的,只是其中有細節上的變化,比如在不同的終端,用不同的語法,使用不同的編輯器來寫內容,因此,對使用者群和需求固定相對的,是技術和產品功能的流動

P15:
做個類比會更加清楚,我們來看非主流音樂,或者是一些小眾的樂隊
音樂跟部落格內容一樣,是個人表達的一種載體;
專輯和部落格程式一樣,是儲存內容的容器;
非主流音樂是少數人的玩具,樂隊或歌手選擇一個小眾的音樂風格,實際上是主動放棄了很多受眾,這使得小眾音樂跟主流流行音樂走上了不同的道路。
流行音樂欣賞門檻低,學習成本低,受眾廣,是快消品
小眾音樂欣賞門檻高,學習成本高,因為需要了解很多背景知識甚至是欣賞技巧,受眾窄,是耐用品
這樣,小眾音樂就變成了具備明顯的差異化的內容,小眾樂隊的樂趣,就變成了需要很長時間才能慢慢釋放出來的樂趣。

P16:
於是,我們就同樣得到了一組對立統一的固定和流動。
小眾樂迷和他們欣賞的音樂風格是相對固定的,也就是個人想表達的東西不變
而音樂的編曲和樂隊的表演,是流動的,不固定的,也就是表達的細節是變化的
同時,就像樂隊要經常演出一樣,一個開源程式,也要經常發版本來面對使用者

P17:
回到“關係”這個關鍵詞,能讓一個小眾音樂或者小眾樂隊走得遠的,樂隊和樂迷可能形成的就是一種“養成系”的關係,一起走過很多很多年,想一想,一些城市的球隊,甚至是現在熱門的德雲社和脫口秀,是不是也很像這種“養成系”的關係。

P18:
找到了“關係”這個關鍵詞,接下來就是分享一點點維持“關係”的心得,未必會適合所有的開源專案,心得有三點

P19:
第一點心得:資源有限,需要取捨
我們的時間有限,資源有限,需要勇氣和智慧主動放棄很多東西,才能具備堅持下來的條件
這涉及到開發者對自己的定位、對專案的定位、對取捨標準的定義

P20:
首先,開源專案如果不是你的收入來源的話,不要影響養家餬口,面對時間和資源衝突的時候,以主業為重,不要想兼顧,而是想先顧主業,後顧開源

P21:
說來很有趣,typecho的開發團隊,都是愛折騰的人,都跟創業有關
joyqi&fen&sunny,是segmentfault思否的創始人,這是最好的中文開發者社群之一
我曾經是pmcaff產品經理社群的聯合創始人COO,這是最老牌的產品經理交流社群,現在是一個幫助創業企業,開源專案融資的FA
其他人不是正在創業就是創業成功
主業上有保障,我們才能持續探索和回饋社群,才不會耽誤我們更新typecho

P22:
Typecho 這個產品,有自己的人設,就是 輕量級 部落格程式,所以在開發的時候,我們可以根據這個人設,取捨很多東西
比如強調國際化支援;強調靈活的外掛API;強調極少量的資料庫表;
比如不做靜態快取機制;早期沒有編輯器,僅支援手寫markdown;沒有官方的備份外掛;
我們就是想讓 typecho 成為一個簡約的容器,真正的主角是博主寫的內容,取捨,讓 typecho 不會向著一個複雜的CMS發展,而是保持部落格程式這個形態,這樣對開發團隊的時間要求更低,更容易堅持開發。

P23:
簡單說,產品理念會讓產品自己選擇使用者群,從而留下“臭味相投”那些人;而產品的人設,實際上就是使用者對自己的人設。Typecho 的簡約定位,也要求使用者做出取捨,選擇 typecho,就意味著有一定的使用門檻,甚至是不便,就像是開手動擋的汽車一般樂趣和痛苦並存。

P24:
用什麼評價我們的取捨是否正確呢?那就是使用 typecho 的使用者,是不是主動發朋友圈,主動安利這個小程式,是不是以使用一個簡約取向的部落格程式而強化了對自己的認同。

P25:
第二點心得:熱情有限,需要關係,需要真實的關係

P26:
時間寶貴,熱情容易消逝,尤其是容易消逝在無窮無盡的討論中,這個像 typecho 這樣的專案能否堅持,很大程度上取決的核心成員的熱情,取決於他們寫程式碼是不是上頭。因此,要讓極少數人作為核心團隊,去決定第一點所講的取捨。
讓多數人提isssue,跟少數人討論,讓極少數人做決定

P27:
核心的開發者,一定要有機會就見面,以前joyqi和fen在杭州,我去杭州出差的時候就會去他們辦公室拜訪,他們在北京辦活動的時候我也會參加,現在好很多了,思否在北京有辦公室

P28:
第三點心得:能力有限,需要社群
這不只是說開源專案需要其他開發者貢獻程式碼,而是開源社群才是“關係”的真正載體,是專案活躍和存續的基石。

P29:
首先,工具和技術要時尚,保持工具的更新,借力工具來刺激社群使用者和開發者,熱情的開發者總會使用新的工具
開源專案首先要是玩具,常玩常新的玩具才有意思,被打上“過氣”標籤的技術,就算在穩定完善,也很容易被開發者拋棄。

P30:
所以 typecho 在選擇支援新技術和新架構方面,是相對激進的,比如放棄對PHP5的支援,開發官方容器化指令碼等

P31:
其次,社群要有梗,甚至基於產品理念和現狀造梗,很幸運,typecho 社群使用者就挺能自己吐槽的

P32:
比如,日誌沒幾篇,皮膚換挺快

P33:
比如,更新沒幾行,關issues挺多

P34:
Joyqi 自己也是一個有梗的人,社群的 KOL 如果有專屬於自己的梗,會讓這個 KOL 顯得更鮮活,跟使用者的關係也更近

P35:
比如,Joyqi 總是年度總結要更新 typecho ,但是總跳票的梗
比如,Joyqi 步步高昇的髮際線

P36:
總結一下 typecho 堅持下來的幾個關鍵點
做準一點,有產品定位,不偏離
做少一點,懂得取捨,才能在某些心血來潮的時刻裡更新
做個人,保持熱情,保持互動,保持關係

P37:
最後,借用 Joyqi 部落格裡的一句話,說明 Typecho 這個專案最底層的價值
個人部落格就像大海中的小島,在資訊海浪中顯得那麼不起眼,但它的存在本身就彰顯了一種意義。

P38:
我的分享就到這裡,希望能跟熱愛開源的各位有更多交流,可以是開源專案運營,可以是開源專案融資,也可以是產品諮詢建議
都通過這個郵件可以聯絡到我

相關文章