相關閱讀 |
>>> 技術話題—商業文明的嶄新時代 >>> | 簡體 傳統 |
英文原文:Why I love solo programming
大約是一年前,我寫了一篇關于我為什么不喜歡結對編程的帖子。此文也是對該帖子的補充。
至今為止我已經在加利福尼亞州科學院工作 5 個月了。我創建了一個由美國國家科學基金會資助的關于螞蟻分類學的網站:antcat.org。
這是我作為一個程序員 25 年以來最棒的工作。
原因有很多:因為是在博物館寫程序,所以每天我都可以看到機靈可愛的魚兒、稀奇古怪的蜥蜴以及五彩繽紛的蝴蝶;有關于 Rails 的全新應用;老板英明又隨和;觀眾是在金門公園的科學家,距離我家只有 10 分鐘路程。雖然報酬只有 10 萬美金(編者注:只有?尼瑪),比我好幾年前拿的薪酬都低,但是有醫療保險,并且每周我只需報道兩三次就可以了。
但是這項工作最加分的地方不是別的,而正如題目而言:我可以獨自工作。
我不想自吹自擂說我有多么享受這份工作。如果我能接受一個活力又創新的團隊——即使是與他們結對,這份工作可能會更加愜意。但是我接受不了。
原因很簡單,單獨工作就可以按自己的方式編程。這意味著 95% 的測試驅動;意味著敏捷開發——因為我會想著用最簡單的方式去實現功能;意味著如果有必要我會添加 Solr;也意味著可以應用我在這個行業沉浸了四分之一個世紀的經驗;還意味著不會有任何喋喋不休的爭論。
也可能只是我的運氣不好,這么多年我共事過的這么多人中,我還沒遇到過誰能與我分享關于精益開發,敏捷方法論,面向對象編程,數據庫設計,或者甚至是結構化編程方面的想法和觀點的。一些相關的觀點我都是從都一些類似于 Martin Fowler 和 Kent Beck 這種傳奇人物的著作上學到的。不過,很多顯而易見的事情這些家伙都過于想當然了,比如避免過早的優化,還有遵循責任制原則等等。
老實說,我和我以前的同事在軟件開發時有很多的互動都是關于爭吵的。不過話又說回來,這些年來我已經變得婉轉和有禮貌多了,也會很快做出讓步(畢竟,我也可能是錯的)。但總會有厭倦這種純粹為了爭論而爭論的家伙(當然我不是)的時候。我只是想自己靜下心來以自己的方式好好寫代碼。
我很清楚因為我的選擇我錯過了什么:我的方法可能實際上并不正確,但卻沒有人來給我指出;可能一直到最后,我不知道用其他方法來解決問題;毫無疑問 bug 更多;在做設計決策時,有時候會頭腦發熱選個浪費時間和精力的,而不會有人來提醒我。以上種種如果是在一個團隊中,即使是結對編程,都是可以緩和甚至是避免的。說起結對編程,我還不得不承認,單獨編程的工作效率是比不上結對編程的。列張表格的話,結對編程或者是在團隊中工作,優勢是“罄竹難書”的。但是,唯一的問題就是,我討厭結對編程和團隊工作。
我也很清楚,我可能看上去像是在主張“cowboy coder”的開發風格。話說在團隊中的 cowboy coder 的確是個大麻煩。但是如果沒有團隊呢,這還是麻煩嗎?
比起那些伴隨著敏捷方法論長大的年輕人,關于這個問題孰是孰非的爭論更多的是出自于我這一代人之口。我想說的是,比起喋喋不休的爭執,我更愿意去學習更先進的理念,從 1989 年的 OOP(面向對象的程序設計),到 2000 年的 TDD(測試驅動開發實戰), 以及今天的精益生產。 這也是我與我曾經共事的同事造成分歧的原因。
走到人生的叉路口,我相信心之所向才是最明智的選擇。有的人做事情的唯一原因就是這事情讓他們快樂(不論時間長短)。
譯文鏈接:http://news.html5tricks.com/why-i-love-solo-programming.html
翻譯作者:IT 新聞 – 蔣麗麗
news.html5tricks.com 2015-05-19 00:30:13
稱謂:
内容: