在2017的頭幾天,我開始研究我最新的開源項目。它的設計和構建,是用來解決我的一個業務問題。該項目被稱為bootparts,它的用途是簡化網站建設的過程。
這不是我第一次進入編碼世界。這些年來,我以不同的方式為不同的項目做出了貢獻。然而,這一次我負責一切事情。這給了我額外的壓力,我不喜歡壓力。但是與其簡單地忽略它,我決定以健康的態度去管理和處理壓力,下面是我的方法:
(1)我決定什么時候開始這個項目
我從開源社區聽到最大的抱怨之一是人們既期望維護人員夜以繼日地工作。同時人們又對為了修復bug和極端情況下長時間的無薪工作行為感到羞愧。這容易造成工作倦怠并且傷害到整個團隊的積極性。
從第一天開始,我決定只在我想要的時候做這個項目。如果有人需要添加一些東西到項目里可以組隊自己添加或付錢給我(Yelluw)來添加。我不反對個性需求,我反對的是所有開源工作都是免費的(如啤酒)。我通過限制什么時候在項目工作,來減少壓力的量。任何外來者的無理期望都是被這個規則簡單處理掉的。
(2)休息
休息很重要。當你在一個項目上工作時,更是如此。我知道這對有些人來說是很難,但是工作過多會降低產量和質量。休息讓我考慮實施并提出更好的解決方案。這也可以讓我的思緒自由發散地去想想其他的代碼。過分集中于一個代碼往往是很累人的。
我的經驗法則是,每兩個星期的工作,我休息時間不少于連續三天。休息期間不寫代碼。
(3)提早設定期望
從一開始就設定期望,人們就不能讓你做你不想做的事情。對我來說,期望很簡單:
我不會提供支持。
我只會修復提出來的重要錯誤代碼(他們影響我或我的付費客戶)。
我不會接受貢獻。
我不會接受捐款。
這四個明確的期望趕走了人們。我確實失去了一些善意的開發商的興趣,但這是付出代價的安心。
(4)從一開始就寫文檔
這很簡單,但是有效。我寫項目文檔,來減少問題的數量和支持的要求。這一課是多年前學的。沒有寫文檔的代碼意味著其他開發者會在工作期間打擾我問我一些愚蠢的問題。原來他們不是愚蠢的,我才是愚蠢的那一個:沒有記錄代碼使實施變得簡單。現在我從一開始就記錄,并確保得到反饋的文件。
(5)迅速關閉問題
如果我不打算處理這些問題,就沒有意義了。眼不見心不煩。
(6)不接受大家的捐款
并不是每個人都適合這個項目。我們可能無法合作。人們往往認為項目維護者都張開雙臂迎接他們的貢獻。不,一點也不。由我來決定你的貢獻是否符合一般的項目路線圖。不添加任何額外的工作開銷,正確記錄。這似乎太苛刻了嗎?是的,這是嚴酷的。但它對我有用,我不想花我的時間處理BS。我就想寫代碼,然后得到報酬而已。
(7)不接受每個人的反饋
原來有大量的不良反饋。人們傾向于給予反饋但又不需要花時間去理解項目的背景。然而,每個項目都有它開發的上下文。沒有它的反饋(建議)是垃圾。曾經有人告訴我,我應該解決這個問題,因為它使項目無法使用(雖然我自己在生產中就使用它)。有些意見就像混蛋,你會經常會遇到一些。學會恰當地處理它們吧。
(8)定義成功
這就是一些人失去動力的所在。擁有一個人們認為成功的項目需要花費大量的時間和精力。我不在乎人們是否認為這個項目是成功的,因為我定義了成功意味著什么。這個項目成功嗎?對!它已經節省了我的時間和精力。但這不是巧合,該項目的成功是從一開始就定義為:如果我能減少我為客戶在網站上工作的時間,這個項目將是成功的。成功不是建立在一些虛榮的基礎上,就像它變得多么受歡迎一樣。它是基于它對我日常生活的影響。成功的定義是什么,你永遠不要讓任何人說服你。
(9)我玩得很開心
我認為編碼是有趣的(在大多數情況下)。有樂趣意味著我喜歡工作。即使我不太喜歡這樣做的想法。
(10)收獲
我們都會犯錯。我發出的第一個版本有一個大錯誤!但我發現它并從錯誤中學習。學習也意味著我不會為錯誤而感到羞愧。不,這意味著我會把錯誤當作生命的方式來指明我下一步需要學的東西。
結論
開源項目的工作是非常有意義的,它也是非常緊張。我知道這里有些事情看起來有點過分,但我很重視我的健康。我希望你看完這些方法后會讓你重新思考你的工作,你的開源項目,你如何維護。我們都是熱愛科技的人。