開發者的困境

在使用現有服務或平台與構建自己的服務之間做出決定

我現在遇到一個大問題。

我正在嘗試各種平台,以查看它們是否適合將來成為我舉辦課程的地方。

我現在使用的平台基於一個靜態站點,該站點使用自定義集成和無代碼工具(如Airtable)進行交互。付款和課程註冊使用Node.js服務進行管理。你可以叫它JAMstack無服務器,或任何今天流行的時髦名詞。

實際上,我的每門課程都有幾個SAAS平台,所有平台都相似。我喜歡讓事情簡單明了。剛開始的時候,我是一個課程的網站。

然後,當需要製作另一門課程時,我只是複制了該網站,並對其做了另一個“版本”。

現在,課程數量躍升至7,並且是時候重新審視我使用的總體基礎結構了。

我的第一個想法是使用一個我可以使用的平台,該平台可以用作課程資料的集中式樞紐,並提供不需要自己構建的功能。

因此,我出去嘗試了一些受歡迎的服務,包括Teachable,Podia和許多其他服務。

但是我遇到了所謂的開發者困境。

乍一看,這些平台很棒。精心設計,界面精巧,行銷光芒四射,看起來確實很棒。

然後我開始使用它們。

我開始增加挫敗感。

  1. “看起來很棒”
  2. “我總體上喜歡它,但是那件事可能會有所不同”
  3. “編輯很爛”
  4. “我希望我可以使用降價促銷”
  5. “有一個錯誤,我怎麼可能是唯一一個遇到這個錯誤的錯誤?”
  6. “嘿,支持我遇到了這個問題”-“我們已經將其提交給工程團隊,我們將及時通知您”
  7. “天哪,我已經為此花了很多時間”

我是一個懶惰的開發人員。我認為這是我最好的技術能力。

當您是懶惰的開發人員時,過度設計的軟件不是問題。它永遠不會發生。我只是編寫執行任務所需的最少代碼。

我抗拒複雜性。

為什麼這麼好?您無法預見明天的需求,明天的問題。隨著時間的流逝,我學到了這一點。

作為承包商,我在非常複雜的代碼庫上工作,以至於我想哭泣,並且我盡可能在過於復雜的情況下過分簡化。

作為一個懶惰的開發人員,也使我在編寫軟件之前要想很多。

因為編寫軟件是一種責任。

您正在編寫將來要承受的重量。

假設繼續我上面關於選擇課程平台的內容,我決定編寫自己的課程平台。

這意味著我必須先對其進行編碼。

我需要做決定。可能正確的決定,可能錯誤的決定。

在構建出我夢about以求的軟件之後,我需要在將來維護代碼。我對此負責。不再有“詢問支持”按鈕。

作為開發人員,我們具有創建所需工具的強大能力。但是以責任為代價。

但這也是所有權難題。在接下來的5到10年內,我是否希望依靠此特定平台?如果他們做出的決定與我的決定不符怎麼辦?如果他們提高價格怎麼辦?我可以輕鬆擺脫它嗎?

在理想情況下,我將始終選擇自己的平台,而不是由其他人管理的平台。但我也會始終選擇最簡單的路線。

對我來說,最大,最寶貴的資源就是時間。通過選擇一個現有的解決方案,我可以有更多的時間。

我應該花一個月的時間編寫自己的課程平台嗎?

那就是我面臨的開發者困境的當前實例。

我嘗試了所有可能的預製解決方案。

他們都未能以一種或另一種方式履行自己的諾言(或我心中對他們的印象)。

我決定要編寫自己的解決方案。當然,最簡單的解決方案。


更多實驗教程: