在使用現有服務或平台和建立自己的平台之間做出決策
我現在遇到了一個很大的問題。
我正在試用各種平台,看看它們是否適合成為我將來托管課程的地方。
我現在使用的平台是基於靜態網站的,使用自定義集成和無代碼工具(如Airtable)進行接口。付款和課程報名使用Node.js服務進行管理。你可以稱它為JAMstack,serverless,或者任何當下流行的時髦術語。
事實上,我有幾個類似的SAAS平台,供我每門課程使用。我喜歡把事情保持簡單和直接。一開始,我為一門課程制作了一個網站。
然後當我需要開設另一門課程時,我只需複製那個網站,製作另一個「版本」。
現在課程的數量增加到了7門,是時候重新檢視我使用的整體基礎設施了。
我第一個想法是使用一個我可以使用的平台,它可以作為課程材料的集中式中心,並提供我不必自己構建的功能。
所以我去試用了一些流行的服務,包括Teachable,Podia,和其他許多平台。
但我遇到了我所謂的開發者困境。
乍一看,這些平台都很棒。設計精美,界面流暢,它們的行銷也很出色,看起來很棒。
然後我開始使用它們。
我開始感到越來越沮喪。
- 「這看起來很棒」
- 「整體上我喜歡,但這個東西可以不同一點」
- 「編輯器糟糕透了」
- 「我希望我能使用 Markdown」
- 「這裡有個bug,怎麼可能只有我遇到這個問題?」
- 「嘿,支援,我遇到這個問題了」 - 「我們已經將它提交給工程團隊,我們會保持你的最新動態」
- 「我的天啊,我已經在這上面浪費了很多時間」
我是一個懶惰的開發者。我認為這是我最好的技術能力。
當你是一個懶惰的開發者時,過度設計軟體不是問題。這永遠不會發生。我只寫出執行任務所需的最小量的程式碼。
我抵制複雜性。
這有何好處?你不能預測明天的需求,明天的問題。我隨著時間的推移學到了這一點。
作為一名合約工,我曾經在非常複雜的程式碼庫上工作,讓我想哭,每當可能的時候,我都更喜歡過度簡化而不是過度複雜。
作為一個懶惰的開發者,這也使我在編寫軟體之前多思考很多。
因為編寫軟體是一種責任。
你正在寫下你未來要承擔的負擔。
假設,繼續我上面關於選擇課程平台的事情,假設我決定自己編寫我的課程平台。
這意味著我首先必須編寫它。
我需要做出決策。可能是對的,也可能是錯的。
在我建立我夢想中的軟體之後,我需要在未來維護這段程式碼。我為此負責。不再有「向支援請求」的按鈕。
作為開發者,我們有這種令人難以置信的能力創建我們需要的工具。然而,這也代表著責任。
但這也是一個擁有問題。我想依賴於這個特定平台未來的5-10年嗎?如果他們的決策與我的不一致怎麼辦?如果他們提高價格怎麼辦?我能輕易地轉移到其他平台嗎?
在理想情況下,我總是會選擇自己的平台而不是由其他人管理的平台。但我同樣也會選擇最簡單的路線。
對我來說,最大和最珍貴的資源是時間。選擇現有解決方案,我可以有更多的時間。
我應該花一個月的時間來編寫自己的課程平台嗎?
這就是我目前面臨的開發者困境。
我試用了所有可能的現成解決方案。
它們都沒有兌現其承諾(或我心中對它們的形象)的某種方式。
我決定我要寫自己的解決方案。當然,是最簡單的解決方案。