Developers Have a Problem with Side Projects — 開發者的 Side Project 困境

Traversy Media 的 Brad 分享了開發者在 side project 上常見的困境:為什麼我們總是開始新專案卻無法完成它們。影片逐一分析了六個核心原因——點子太多、啟動成本過低、過度工程、追求完美、缺乏截止日、以及職業倦怠——並提供了實用的解決策略。核心訊息是:完成專案是一種技能,重點在於專注、動能和知道何時該宣告完成。


原影片連結:https://www.youtube.com/watch?v=Y_JQti8YLn0

影片重點

  • 開發者天生有創造力,但點子太多反而導致什麼都做不完
  • 軟體專案的低啟動成本是雙面刃,讓人太容易開始卻也太容易放棄
  • 過度工程(overengineering)是殺死最多 side project 的頭號原因
  • 「完成比完美更重要」——Progress over Perfection
  • 沒有截止日的專案注定無法完成,自律是關鍵技能
  • 職業倦怠時不要再給自己加壓,把 side project 當成健身習慣
  • 明確定義「完成」的意義:能讓人開始使用的 MVP 就是完成
  • 完成專案是一種可以培養的技能,與天賦和智商無關

詳細內容

[00:00] 開場:你也有做不完的 Side Project 嗎?

Brad 一開始就拋出一個讓所有開發者心有戚戚焉的問題:你有多少次因為一個新點子而興奮不已,開始設計 UI、建了首頁、做了登入頁面,然後就再也沒碰過那個專案了?他指出這是非常普遍的現象,你不孤單,連他自己也是如此。

這不代表你懶惰、不上進或是個差勁的開發者。接下來他將逐一分析為什麼這種情況如此常見,以及你可以怎麼做來改善。

[00:33] 原因一:點子太多,執行力不足

開發者天生就是有創造力的人,我們喜歡建造東西和解決問題。每次打開 Reddit、Product Hunt,甚至只是開車經過某個地方,都會冒出新的想法。尤其在 AI 時代,這個現象增加了十倍——Brad 坦言自己的點子多到根本追蹤不了。

問題在於我們不斷追逐新點子,而不是為當前專案建立動能。Brad 建議:把所有點子寫下來,但一次只做一個。為 MVP(最小可行產品)設定截止日,先建立動能,其他的點子隨時可以回來做——它們不會跑掉。

[01:21] 軟體專案的獨特性:啟動成本幾乎為零

Brad 提出了一個有趣的觀點:軟體開發和其他任何專案最大的不同,就是幾乎不需要什麼成本就能開始。他拿木工蓋棚子做比較——你需要花錢買工具和材料、找到場地、做實際的體力勞動,如果放棄了會損失很多。

但軟體開發只需要打開文字編輯器就能開始,除了自己的時間以外不需要投入任何東西。雖然進入生產環境需要支付基礎設施費用,但前四分之三的開發過程幾乎不花錢。這個低門檻反而造成了我們容易開始卻不容易完成的問題。

[02:17] 原因二:過度工程是 Side Project 殺手

Brad 認為過度工程殺死的 side project 比其他任何原因都多。例如你決定做一個部落格——一個相對簡單直接的東西——結果你開始建微服務架構、設定 Docker 容器、打造自訂認證系統,連首頁都還沒出來。

如果你的目標是學習這些技術,那當然沒問題。但如果你想快速完成一個部落格,就不要過度工程。他的建議是 KISS(Keep It Stupid Simple):一個 repo、一個資料庫、一個框架,先把東西做出來。你隨時可以重構和擴展——等真的有人在用的時候再說。

[03:23] 原因三:害怕不完美

我們會告訴自己:專案還沒完成、UI 還不夠精緻、程式碼可以更乾淨、配色方案不完美。然後就不斷調整、不斷修改,直到完全失去興趣。

Brad 的建議很直接:「Done is better than perfect」(完成比完美更重要)。忽略腦中那個一直告訴你「還沒準備好」的聲音。你不需要像素級完美的設計或完美的邏輯才能發布 side project,你需要的是動能。他妻子教了他一句話:「Progress over Perfection」(進展重於完美),這句話在這裡非常適用。

當然,這不是說要隨便拼湊、寫爛程式碼或讓 AI 全部生成然後不管品質,但在「隨便做」和「追求完美」之間存在一個合理的中間地帶。

[04:17] 原因四:沒有真正的截止日

做客戶案子或在公司上班時,總有壓力要完成。但個人專案很容易就放在那裡不管,因為沒有人會追究你。你需要學會對自己負責——Brad 認為這是一項技能。

他分享了自己的經驗:他已經很久沒有老闆或主管了。很多人說想自己當老闆,但你真的得「當自己的老闆」,也就是要有紀律、對自己負責。他建議建立外部問責機制:在 Twitter/X 上發文宣布「我這週五要上線」,告訴你的追蹤者、朋友、甚至告訴你的狗——讓時程變成一個真實存在的事。

[05:31] 原因五:職業倦怠

很多開發者把 side project 當成 hackathon 來做——週六連續做 14 小時,然後三週不碰。這是通往災難和精疲力竭的配方。

Brad 建議反過來,把 side project 當成健身習慣:每天 30 分鐘就好。這點時間會慢慢累積,而且能持續建立動能。如果你的正職已經讓你感到倦怠,那現在可能不是開始 side project 的好時機。等工作壓力緩解後再開始,不要在已經滿載的盤子上再加東西。

[06:18] 原因六:從未定義「完成」的意義

另一個專案殺手是你從來沒有定義什麼叫做「完成」。你不斷寫程式、調整、加 dark mode、第三次重寫認證系統——當然永遠完不成。

Brad 指出,現實中大多數軟體專案永遠不會真正「完成」到你再也不需要碰它的程度。他所謂的「完成」是指:做到能讓人開始使用的程度。把它上線,在社群媒體上展示出來——這也是流程的一部分。

他的方法是永遠以 MVP 為目標。MVP 不代表專案最終就長那樣,它可能會完全改變,但至少你有一個可以部署、可以讓人使用的東西。

[07:14] 結語:完成專案是一種技能

Brad 最後總結:完成專案是一種技能。這跟天賦無關,跟智商無關,而是關於專注力、動能,以及知道何時該宣告完成。

如果你的專案資料夾裡有十個做到一半的 app,就選一個。建立動能,不要想太多。設定截止日,然後 Ship It。

我的想法

這部影片雖然只有七分半鐘,卻精準點出了幾乎每個開發者都經歷過的痛點。Brad 的建議看似常識,但「知道」和「做到」之間的距離往往是最難跨越的。

特別值得注意的是他提到「AI 時代讓點子數量增加了十倍」這個觀察。在 AI 工具大幅降低實現門檻的今天,開始一個專案變得更容易了,但這同時也意味著「完成」的挑戰更大了——因為你隨時可以跳到下一個更有趣的點子。

他把 side project 比喻為健身習慣(每天 30 分鐘)而非 hackathon(週六 14 小時)的建議特別實用。這其實和軟體開發中持續交付(Continuous Delivery)的理念不謀而合:小步快跑、持續前進,比一次性的大爆發更能產生實際成果。

另外,「建立外部問責機制」的建議也呼應了 Build in Public 社群的核心理念——公開你的進度,讓社群的期待成為你前進的動力。這對於獨立開發者來說是一個非常值得採用的策略。

進階測驗:開發者的 Side Project 困境

測驗目標:驗證你是否能在實際開發情境中,應用影片中提到的策略來解決 side project 常見問題。
共 5 題,包含情境題與錯誤診斷題。

1. Side Project 決策:點子太多怎麼辦 情境題

情境:你是一位全端開發者,手邊同時有以下 side project 想法: – 一個 AI 驅動的食譜推薦 App – 一個開源的 Markdown 編輯器 – 一個寵物健康追蹤平台 – 一個自動化社群媒體排程工具 每個都很有吸引力,你已經為每個都建了 GitHub repo, 但都只完成了 README 和基本專案結構。
  • A. 把四個專案的 MVP 範圍都縮小,同時推進,每個每天花 30 分鐘
  • B. 選出一個最想完成的專案,設定 MVP 截止日,其他點子先記錄下來之後再做
  • C. 先做市場調查,分析哪個最有商業潛力,然後全力投入那個
  • D. 在社群媒體上做投票,讓追蹤者決定你該做哪一個

2. 技術選型:新專案的架構決策 情境題

情境:你決定用 side project 做一個個人部落格平台。 你對微服務架構很有興趣,想趁這次學習。你的規劃是: – 前端:React + Next.js – 使用者服務:Node.js 微服務 + JWT 認證 – 文章服務:另一個 Node.js 微服務 – 媒體服務:專門處理圖片上傳的微服務 – 通知服務:處理郵件通知的微服務 – 資料庫:每個微服務各自的 PostgreSQL – 容器化:Docker Compose 串接所有服務 – 部署:Kubernetes 叢集 目標是在兩個月內上線。
  • A. 這個架構很完整,兩個月內應該可以按計畫完成
  • B. 架構沒問題,但建議把時程延長到六個月比較實際
  • C. 這是典型的過度工程,應該先用一個框架、一個資料庫做出 MVP,之後再視需求擴展
  • D. 微服務的方向正確,但應該先從兩個微服務開始,逐步增加

3. 時間管理:工作倦怠時的 Side Project 策略 情境題

情境:你在公司剛結束一個為期三個月的高壓專案, 每天加班到晚上 10 點。專案終於上線了, 但你感到非常疲憊和倦怠。 恰好這時候,你有一個很棒的 side project 點子, 而且你擔心如果不趁熱度開始,以後就不會做了。 你應該怎麼做?
  • A. 趁著對點子的興奮感還在,立刻利用週末全力開始開發
  • B. 強迫自己每天花 30 分鐘做,用紀律克服倦怠
  • C. 徹底放棄這個點子,專注休息就好
  • D. 先把點子詳細記錄下來,等倦怠感緩解後再開始,點子不會跑掉

4. 診斷專案失敗:為什麼這個 Side Project 永遠做不完? 錯誤診斷

小華的 Side Project 開發日誌: 第 1 週:建立了 React 專案,完成登入頁面和首頁 第 2 週:覺得 UI 不夠好看,整個重做設計系統 第 3 週:看到新的 CSS 框架很酷,把 Tailwind 換成新框架 第 4 週:覺得配色方案不對,花整週調整顏色和動畫 第 5 週:朋友說按鈕風格不一致,開始建立元件庫 第 6 週:發現還沒寫任何後端 API⋯⋯失去動力,放棄專案
  • A. 小華的技術能力不足,無法同時處理前端和後端
  • B. 小華陷入了「追求完美」的陷阱,不斷打磨細節卻沒有推進核心功能
  • C. 小華選錯了技術棧,應該用更簡單的框架
  • D. 小華缺乏前端開發經驗,所以一直在摸索最佳方案

5. 診斷工作模式:為什麼 Side Project 進度停滯? 錯誤診斷

小明的 Side Project 工作記錄: 1月4日(週六):連續開發 12 小時,完成了使用者註冊和登入功能 1月5日~1月18日:沒碰專案 1月19日(週六):花 8 小時想回憶上次寫到哪裡,最後只修了幾個 bug 1月20日~2月1日:沒碰專案 2月2日(週六):打開專案,看著程式碼覺得陌生,關掉電腦去看 Netflix 小明的困惑:「我明明花了很多時間在上面,為什麼一直做不完?」
  • A. 小明的問題是沒有寫足夠的程式碼註解和文件,導致每次都要重新理解
  • B. 小明應該找一個合作夥伴來分擔工作量
  • C. 小明把 side project 當成 hackathon 來做,應該改為每天 30 分鐘的穩定節奏來建立持續動能
  • D. 小明每次開發時間太長導致效率低下,應該把每次開發限制在 4 小時以內
0

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *