長時間獨立開發讓人容易進入心流,也容易走向習慣性思維的誤區。
想起過去創業的時候,總是一個人寫程式碼,自測,merge程式碼,分佈上線,反饋之後再調整。整個過程全靠自己去思考並完成,在一些不復雜的情形下算是最簡最快的方案。但當自己融入到一個大的團隊和專案中,合作分工成為了主流,而不是單打獨鬥。
最近做的一個新專案,我和B大哥一起協作開發,學習了很多不錯的思路,收穫很大。
- 自測出所有可能性
自測非常重要,無數次提測之後發現bug的慘痛經歷,必須警醒我們認真對待TC和自測。在一個成熟工作流的公司裡面,如果把bug控制在自測階段,對研發團隊來說是成本最小的。而且沒有bug,也應該是每一個成熟工程師最基本的要求。
2. 多次最佳化比一步到位更好
我的經驗是:做好規劃,進行技術設計討論,形成方案。先實現這個方案,在過程中交叉審查程式碼,如果有更好的實現方式可以公開討論,再選擇調整。實現是最優先,好的演算法往往都不是一次性寫好的,而是多次迭代的結果。
3. 做一個可以拿主意的人
如果是做需求確定的功能都還能找產品經理,但遇到需求比較模糊的,那麼就需要工程師根據經驗去實現一版看看效果。很多人是很難拿定主意的,做決定是要背責任的,也是需要綜合考慮的。我想說的不光是做技術,做任何事情都需要拿主意。小到明天中午吃什麼,大到世界該怎麼發展。我們最終都要拿主意,做一個勇敢堅毅的人。
4. 承認侷限,接受新觀點
在某個領域鑽研時間越長,多多少少會帶一些慣性思維和所謂直覺。當我們遇到一些特殊的問題的時候,這些經驗可能變成了一葉障目。保持謙虛,承認自己看到的也是侷限的,多聽聽別人的建議,集思廣益,也許能發現新大陸。
5. 多思考擴充套件性
作為一個優秀的工程師,需要更多去思考一個功能(或者系統模組)的擴充套件性,不能只是簡單的實現功能本身。因為功能和系統都是快速發展的,不要讓程式碼過於耦合,好的實現是能擁抱變化的。
6. 不死磕,儘快結對
給自己足夠獨立思考時間後,如果還是得不到一個解決辦法,趕緊結對研究吧。死磕是對時間的浪費,看起來很偉大,其實是思維上的懶惰。
行動起來吧,少年們!