天天看點

為什麼程式員的開發項目總是半途而廢?

很多程式員的項目常常半途而廢。他們有那麼多的好點子,但是很多都流于空想。幾乎每一個軟體開發者都有一個這樣的檔案夾,裡面很多都是些還沒完工的項目,而這些程式裡有不少在它誕生初期真心是個超棒的點子。和這些人一樣,我也有很多好主意,有的甚至就是現在有些企業在用的。比如正決定着在eBay上還是在Amazon上做電子商務獲利、做一個以業務為基礎的社交網絡(水管業、電子行業、軟體開發等)、比特币搜尋引擎、開發一個CSS架構來取代Bootstrap、從Instagram上找出最有魅力的那些人、開發一個實時通路統計引擎,這樣的例子舉不勝舉。幾乎每一個項目我都着手去做了,但是沒見到一個是完工了的。當我和我的同僚朋友聊起這個話題的時候,他們也普遍反映,他們也是如此。很多很多的好點子都夭折在他們的檔案夾裡。為什麼會這樣?

因為成功是以缺乏動力

首先要談談我們的職業,擁有着讓人眼紅的高就業率。用事實說話,全國的失業率約為6.7%,而WEB開發員的失業率還不到1%。而且我們的工資水準也比平均值高。2012年軟體開發員的平均年收入就已經超過9萬美元。當然現在你要是足夠優秀,完全可以遠遠超過這個數。看着跟着我學習的新手菜鳥成為入門級程式員,心中有一種莫大的個人成就感。而這個職業的薪酬也讓他們很滿意:起薪4萬5千美元到7萬美元。

是以,和其他大多數人相比,特别是那些在工作崗位上碌碌無為做一天和尚撞一天鐘的,因為崗位薪資不高而不斷跳槽的,軟體開發員還是比較成功的。這裡請允許我冒昧的做一個概括,如有雷同純屬巧合。可以說,半路出家的程式員相對于這些人是比較成功的了。也就是這種成功的優越感麻痹了我們的神經,使得我們缺少了完成目标的動力。

知識範疇不同

我們知識廣博。對于幾個城市之間旅行怎樣便捷,我們可以侃侃而談。我們知道怎樣把一個複雜問題分解成一個個小的子問題逐個擊破。我們是真正的“世界通”,因為我們可以用任意一種語言說“Hello World”,面對即使需要成千上萬的計算,我們也不皺眉頭,因為我們懂得遞推的方法。我們知道的很多,但是又是否足夠多呢?偉大的科學家愛因斯坦曾經說過:

淺學誤人,是以危險;博學自負,更加危險。

牛頓,大家都知道,譽為那個時代最聰明的人之一,可以準确預測離我們上百萬千米遠的天體的運動。他說,他是站在巨人的肩膀上才能看的更遠。而實體學并不是他唯一的興趣,他還給我們留下了微積分學等等寶貴的知識财富。由此思彼,那麼他應該也對資本和市場運作很了解咯?

為什麼程式員的開發項目總是半途而廢?

哈哈,那你就大錯特錯了!在1720年南海股票泡沫的高峰期,他投入的所有現金化為烏有,然後破産了。因為他不了解市場,是以即使他知識再多再淵博,也幫不了他一點忙。因為他的知識領域是獨立的,不相關的——他發現了物體運動的規律,但是這些規律對他掌握投資者心理毫無幫助。我們也是這樣的情況。我們可以花一整天時間去解釋算法,研究資料結構,但是我們卻不懂得使用者想要什麼。當twitters剛出現的時候,我想當然的認為不過是個昙花一現的流行事物。事實證明我錯了。當我們在解決問題的時候,往往隻追求解決方案是否吸引人,卻忽略了聯系這個問題的世俗看法。

不斷跳槽

我敢保證,其他任何一個主要城市都是這樣的,但是在這裡,我僅代表我自己和我的同僚朋友們在紐約工作時的經驗。我們不斷跳槽。但是也不是每個人都是這樣。我在網上一篇文章的評論上看到有的人已經在同一個崗位上幹了19年。我也發現了,那些很容易被别的項目所吸引的人,往往不會停留在同一個崗位上太久。就是因為這個原因導緻很多項目不得不中斷。

中斷項目有很多原因。比如,剛進入新工作,并且需要專心緻志做那裡的項目,就不得不把原來的先擱置一邊。又比如,因為做的這個項目和我們以前做過的可能差不多,于是頓時失去了興趣。距離也是原因之一,特别是如果你隔個幾年就要跳槽的話,堅持就愈加困難了。在這裡,我需要提一提,轉變心态很重要。如果你打算在三年後辭職,那麼為什麼不不能在3個月裡搞定你的項目?如果你能保持着這種激情,當你在項目上一籌莫展的時候,靈機一現,好點子就來了。

賦予夭折的項目新生

因為這樣那樣的原因,我沒有讓我的好點子“出世”。首先我們承認了這點,然後我們找出了原因。現在第三步就是要修複它們了。這不是一朝一夕就能完事的,而且可能我的很多項目仍然會是這種半死不活的狀态,然後我思索許久,終于想出了一些步驟,可以避免這些項目永遠成了檔案夾裡的擺設。

你最棒

首先,要明白每一個項目都能讓你稍微——或者在某些情況下是大幅度——成長為一個更佳的開發人員。技術需要靠時間的積累,是以你開發的項目越多,你就越棒。以學習新技術,新的程式設計語言,新的架構為動力去開發一個項目,那麼即使你完不成,也能學到不少知識。而且如果你有其他要事要辦,你可以立即暫停這個項目。

建構項目元件

你開發了很多項目,變得越來越熟練,不知道你是否知道這個小竅門——複用代碼?構模組化塊和庫,而不是每次需要使用的時候都去重新寫一次。假如你現在在做的項目不是最後一個,那麼我勸你最好建構一些項目元件,而不是光寫那些隻能用在這個項目裡的代碼。在文檔裡給自己寫點注釋,這樣下次要用在下一個項目中就友善了。

和大家協作

現在我們已經有了能讓那些夭折的項目重生的好方法,是不是蠢蠢欲動,躍躍欲試了?你的點子可能精妙無比,就像你的孩子一樣寶貝,也或許價值數十億美元,但是到目前為止——它一文不值。你需要和其他人分享你的點子,并且越多越好。這種自然而然的興奮能促使你不斷緻力于這個項目,推動它的發展。甚至你可以開源,邀請大家參與進來。這種互相協作的方式會讓你有種使命感,專注于此,不輕易放棄。

解決你手上的問題

不要好高骛遠,也不要眼高手低,試着去做一些對你真正有用的東西。如果你是程式開發員,那解決程式問題,如果你在公司工作,那制作那個公司需要使用的程式什麼的,即使是你個人方面,也一定會有一些可以用技術解決的問題。那麼為什麼不先下手為強呢?不要等到問題積累起來了再去解決,一步一個腳印,同時你還可以得到一些有用的程式什麼的,何樂而不為?

勿以事小而不為

有句俗話,不要想着去創立需要時限8個月才能辦起來的公司,把時間放在可以在4周内甚至更少就能做好的事情上。無論多麼簡單,每個月固定日子釋出你的最新成果。這樣做會有很強的心理暗示,能激勵你的工作。相反,如果你坐在筆記本前搗鼓了8個月想幹件驚天動地的大事,但是卻毫無進展,有多麼沮喪是可想而知的。量變會導緻質變,一件件小事辦好了可能會有大大的成功。因為人生的旅途是一場馬拉松,而不是短跑。

吹牛也是項技術活

社會壓力是真實存在的,與其偷偷摸摸工作,還不如告訴大家你的工作内容。你得到的回報有可能會有助你改進産品。或許你擔心别人會把你的點子占為己有,但是我可以保證,絕對不會有這種事發生。因為即使是很簡單的想法别人想要去執行,也是很困難的一件事。是以沒必要諱莫如深。說出來,你還可以從大家提出的建議中提煉出有意義的加以改進自己,而更加重要的是,這樣做會促使你不得不去實作它。不然牛皮吹破面子就不知道放哪裡了,哈哈。

寫到這裡,要告一段落了,不知道你有沒有學到什麼訣竅能對你的項目有所幫助?記得:行動最重要。

繼續閱讀