為什麼我喜歡單獨程式設計
大約是一年前,我寫了一篇關於我為什麼不喜歡結對程式設計的帖子。此文也是對該帖子的補充。
至今為止我已經在加利福尼亞州科學院工作 5 個月了。我建立了一個由美國國家科學基金會資助的關於螞蟻分類學的網站:antcat.org。
這是我作為一個程式設計師 25 年以來最棒的工作。
原因有很多:因為是在博物館寫程式,所以每天我都可以看到機靈可愛的魚兒、稀奇古怪的蜥蜴以及五彩繽紛的蝴蝶;有關於 Rails 的全新應用;老闆英明又隨和;觀眾是在金門公園的科學家,距離我家只有 10 分鐘路程。雖然報酬只有 10 萬美金(編者注:只有?尼瑪),比我好幾年前拿的薪酬都低,但是有醫療保險,並且每週我只需報導兩三次就可以了。
但是這項工作最加分的地方不是別的,而正如題目而言:我可以獨自工作。
我不想自吹自擂說我有多麼享受這份工作。如果我能接受一個活力又創新的團隊——即使是與他們結對,這份工作可能會更加愜意。但是我接受不了。
原因很簡單,單獨工作就可以按自己的方式程式設計。這意味著 95% 的測試驅動;意味著敏捷開發——因為我會想著用最簡單的方式去實現功能;意味著如果有必要我會新增 Solr;也意味著可以應用我在這個行業沉浸了四分之一個世紀的經驗;還意味著不會有任何喋喋不休的爭論。
也可能只是我的運氣不好,這麼多年我共事過的這麼多人中,我還沒遇到過誰能與我分享關於精益開發,敏捷方法論,物件導向程式設計,資料庫設計,或者 甚至是結構化程式設計方面的想法和觀點的。一些相關的觀點我都是從都一些類似於 Martin Fowler 和 Kent Beck 這種傳奇人物的著作上學到的。不過,很多顯而易見的事情這些傢伙都過於想當然了,比如避免過早的優化,還有遵循責任制原則等等。
老實說,我和我以前的同事在軟體開發時有很多的互動都是關於爭吵的。不過話又說回來,這些年來我已經變得婉轉和有禮貌多了,也會很快做出讓步 (畢竟,我也可能是錯的)。但總會有厭倦這種純粹為了爭論而爭論的傢伙(當然我不是)的時候。我只是想自己靜下心來以自己的方式好好寫程式碼。
我很清楚因為我的選擇我錯過了什麼:我的方法可能實際上並不正確,但卻沒有人來給我指出;可能一直到最後,我不知道用其他方法來解決問題;毫無 疑問 bug 更多;在做設計決策時,有時候會頭腦發熱選個浪費時間和精力的,而不會有人來提醒我。以上種種如果是在一個團隊中,即使是結對程式設計,都是可以緩和甚至是避 免的。說起結對程式設計,我還不得不承認,單獨程式設計的工作效率是比不上結對程式設計的。列張表格的話,結對程式設計或者是在團隊中工作,優勢是“罄竹難書”的。但是, 唯一的問題就是,我討厭結對程式設計和團隊工作。
我也很清楚,我可能看上去像是在主張“cowboy coder”的開發風格。話說在團隊中的 cowboy coder 的確是個大麻煩。但是如果沒有團隊呢,這還是麻煩嗎?
比起那些伴隨著敏捷方法論長大的年輕人,關於這個問題孰是孰非的爭論更多的是出自於我這一代人之口。我想說的是,比起喋喋不休的爭執,我更願意 去學習更先進的理念,從 1989 年的 OOP(物件導向的程式設計),到 2000 年的 TDD(測試驅動開發實戰), 以及今天的精益生產。 這也是我與我曾經共事的同事造成分歧的原因。
走到人生的叉路口,我相信心之所向才是最明智的選擇。有的人做事情的唯一原因就是這事情讓他們快樂(不論時間長短)。
相關文章
- 我為什麼喜歡程式設計程式設計
- 為什麼我喜歡程式設計 程式設計充滿了樂趣程式設計
- 為什麼我喜歡JavaJava
- 為什麼程式設計師喜歡在深夜程式設計?程式設計師
- 為什麼我喜歡 Lisp 程式語言Lisp
- 程式設計師為什麼喜歡程式設計這項工作?程式設計師
- 程式設計師為什麼喜歡夜間工作?程式設計師
- 為什麼程式設計師喜歡熬夜工作?程式設計師
- 我為什麼不喜歡框架框架
- 為什麼程式設計師喜歡在半夜寫程式碼?程式設計師
- 程式設計師為什麼喜歡在晚上編碼程式設計師
- 為什麼程式設計師喜歡深更半夜寫程式碼程式設計師
- 為什麼優秀的程式設計師喜歡命令列?程式設計師命令列
- 為什麼很多人都不喜歡做程式設計師?程式設計師
- 程式老鳥:我為什麼喜歡敏捷開發框架敏捷框架
- 我為什麼會從程式不喜歡加{}到加{}
- 為什麼我最喜歡的程式語言是 GoGo
- 趣文:為什麼有些程式設計師特別喜歡貓?程式設計師
- 為什麼我喜歡JavaScript的Optional ChainingJavaScriptAI
- 我們為什麼會喜歡挖礦遊戲?遊戲
- 程式設計師週末都喜歡做什麼?程式設計師
- 為什麼我喜歡富於表達性的程式語言
- 我喜歡程式設計師這份差事!程式設計師
- 4.我為什麼喜歡用Dart中的字串?Dart字串
- 為什麼我們喜歡看別人在遊戲裡受苦遊戲
- 為啥程式設計師喜歡Android?程式設計師Android
- 程式設計師喜歡什麼樣的產品經理?程式設計師
- 為什麼開發人員喜歡低程式碼?
- 程式猿為什麼不招妹子喜歡的原因
- 為什麼我們越來越不喜歡用網站?網站
- [譯] 為什麼我更喜歡物件而不是switch語句物件
- 為什麼我們不喜歡IT行業的7個原因行業
- 評: 為什麼我不喜歡Go語言式的介面Go
- 我最喜歡的10條程式設計語錄程式設計
- 為什麼說你不要獨自程式設計程式設計
- 我為什麼是程式設計師?程式設計師
- 我為什麼痴迷於程式設計?程式設計
- 為什麼我還在程式設計程式設計