|
我已經在加利福尼亞科學院工作有5個月了。我正在開發一個由國家科學基金會支持的螞蟻分類學網站:antcat.org。
這是我25年的程序員工作中最好的一個。
有好些理由:我工作在一個博物館里,每天我可以四處走走觀賞奇異的魚,蜥蜴,和蝴蝶。這是一個用柵欄圍住的綠區,老板聰明和善,用戶都是科學家。博物館就在金門海峽公園,距我居住的地方只有10分鐘的路程。我的年薪“只有”1百萬,比我好些年前的薪水都少。但他們給我醫療保險,每周我還可以去幾次tidepool展覽會。
但這最重要的原因是我喜歡獨自編程。
我并沒有覺得獨自編程有什么特別好的。其實我喜歡工作在一個有活力和創新精神的團隊里—甚至結對編程。但我沒有選擇這樣。
原因非常的簡單,現在的工作我可以按我想要的方式進行。也就是95%的測試驅動開發。也就是敏捷開發—用最簡單的方式完成工作。也就是我可以按照我自己的意愿在項目里使用Solr。也就是我可以真正的開始學習Javascript。也就是我可以把這些年在這個領域里積累下來的知識和經驗完全應用到工程里。同時也就是我做這些事情時不需要和別爭論這些事情。
也許是我一直不太走運,在lean開發,敏捷開發,OOP,數據庫設計,或甚至結構化編程上,我從沒有遇到與我有共同思想的人。我的觀念都學自于閱讀Martin Fowler 和 Kent Beck等人的文章。很顯然,有些理論都是這些人想當然出來的,例如避免過度優化,或遵循單一責任原則。
所以在跟我的同事的接觸中總是為這些事情爭論不休。這么多年來我的脾氣已經變得圓滑和禮貌的多了,而且在某些觀點上愿意采取一種讓步的態度(畢竟,也許我的觀點是錯誤的)。可是慢慢的你會有時候厭倦了做OOP“純粹主義者”(我不是)。有時候你只是想把事情做“好”。
現在,我十分的清楚當你一個人工作的時候你失去的是什么。我做的事情常是錯誤的。其實有很多其它的我應該知道的方法但我一個人無從得知。毫無疑問我寫出來很多bug。有時候我弄出的錯誤的設計浪費了我很多的時間。如果我工作在一個團隊中,或者結對編程,這些全都可以避免或減少。談到結對編程,有一個事實,我現在的工作效率沒有我在Pivotal公司里結對編程時的效率高。當時我們的成績是如此的顯著,解決任務是過關斬將。唯一的問題是我不喜歡這種方式。
我也知道我在贊成一種“牛仔編程者”風格的開發,這種風格的人在團隊合作中確實令人頭痛。但在沒有團隊的情況下呢?
我知道人們從我們這代人中能更多的聽到這種聲音。這是相對于年輕的伴隨著敏捷開發方法長大的年輕一代是這樣的。我要說的是我在努力擁抱那些前沿的思想方法——1989年誕生的OOP,2000年誕生的TDD,現在的lean。這也導致了我更多的對這些東西產生了不同的觀點。
當然,歸根結底,我深信唯一明智的判斷一種行為方式的標準是看它是否能使你快樂。一個人選擇去做某種事情的唯一理由是它能使你快樂(從長遠的視角看)。
對于我來說快樂是我的底線。
[英文出處]:Why I love solo programming (and why I hated working for Pivotal)
it知識庫:我為什么喜歡獨自編程,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。