一名開發者從做技工的父親那裡學到的5堂課

發表於2012-03-28

英文原文:How lessons from a tradesman can help out a techie,翻譯:iteye

所謂“隔行如隔山”,其實不然,在工作和生活中,大部分的知識和技能都是相通的。學會舉一反三,對於技能的提升有很大幫助。本文是一名軟體開發者從做技工的父親身上學到的一些經驗,而這些經驗使他最終成為了開發者中的佼佼者。

以下為文章全文:

我的父親是一名工程師 —— 是機械工程師,不是軟體工程師。在他成為機械工程師之前,他也做過技工和木工。他很聰明,同時在建築和維修方面也很有天賦(只要不涉及到電氣即可,不過那 就是另外一回事了)。他甚至在60歲時依然能做圍牆、工棚和甲板之類的工作。當我和我的兄弟還小的時候,他就開始讓我們接觸一些他工作用的工具,因此,當 我們發現需要修復或製作一些東西時,我們有能力做好它。好吧,雖然他在我身上的教育幾乎失敗,但一路走來,我還是學到了很多重要的東西,而且,不管你信不 信,這些我學到的東西,在我成為一名優秀的開發者和企業家的路上,讓我受益良多。

下面就是我從他那裡學到的知識。

一名開發者從做技工的父親那裡學到的5堂課

第一課:三思而後行

砍柴是一個一次性的工作。只要樹木被砍掉,它就不可能再保持原樣。因此,很重要的一件事就是確保你每一次的刪除操作是無誤的。甚至即使你確定你 的做法是正確的,也請你無論如何再做一次評估。重新檢查你的評估,確保它正確無誤,這樣你就可以避免犯一些本可以規避掉的錯誤,付出的代價也要小的多。

開發產品也是同樣的道理。如果事先不測量書架要佔用的空間的大小,你怎能做出與之大小相適合的書架?如果事先不知道使用者的需要,你又何必去開發 一個無用的產品?這個道理已經提過很多次了,我在這裡略過。但有個不被經常提及的事情是你的產品是一組功能的集合體,就像書架是一堆貨架的集合體一樣。每 一個功能都應該被認真對待,細心評估,以確保它適用於受眾人群。重要的是不僅僅在專案開始就收集反饋,在整個專案的開發階段,我們都要重視反饋,而不是等 到結束了,才想起還有一些不錯的創意沒有實現。

第二課:粉刷一座建造好的涼亭會很困難

有一次,幾個工人在家裡修涼亭,他們在涼亭建好後才開始粉刷。爸爸看到後指出,如果這些工人能在這些木頭放在地面上就開始粉刷的話,他們就能節 約1/10的時間,而且效果也會更好。粉刷之後只需做一些連線工作就可以很快的建造起這座涼亭。粉刷已經建造好的涼亭不僅又慢又不方便,而且還可能導致出 現一些不易刷到的地方,最糟糕的是,如果不幸的話,還會把這一切弄得一團糟。

在產品的開發過程中,很容易忘記設計和UI,但這些很重要。以使用者為中心的設計就是在設計頁面時,以服務使用者為第一要務,然後再開發相應的應用 來支援這一設計。而以軟體開發為優先並把設計放到最後,你將做更多的工作,產品也會存在潛在的缺點。UX應該是一個持續不斷的過程,不是某個可以隨意丟棄 的東西。

第三課:讓你的專案和工作空間始終保持整潔

在一個雜亂的環境中工作一定會讓你的專案結果變得一團糟。如果碎木屑到處都是,你就不可能粉刷好;如果你的工具都滿覆油汙,你就不可能把拆散的 發動機零件再組裝到一起;如果你用完工具後不蒐集整理好,你可能永遠都找不到你想要的螺絲刀。任何一個機修工都會告訴你工作在一個整潔的環境中有多麼重 要。糟糕的不止是你將花更多的時間用於尋找放錯位置的工具,還會導致更多的損失。

每一個開發者的程式碼中都可能會有一些bug。很多開發者都知道“程式碼債務”這個名詞,它實際上只是從開發者的角度來看待這一塊工作混亂的區域。 如果你在源頭埋下隱患,所造成的後果不僅僅是更難發現bug,而且在將來會更容易造成更多的混亂。最終你將不得不清理它們(特別是在你開始你自己的工作 前,你將不得不去清理其他人留下的這些bug!)。想必每一個開發者都知道修改別人程式碼時那種恐怖的感覺,並會意識到他們留下了一堆麻煩等著你去解決。現 在花一點時間去整理你的工作空間,將來你會節約更多的時間。

第四課:始終使用正確的工具(而且在你的工具上別吝嗇)

搞砸工作的一個主要原因就是使用了不恰當的工具。這雖然顯而易見,但很多人就是意識不到這一點。用錯了工具後的下場通常是一個災難。別心疼錢,工作一展開就應該找到合適的工具。

工具選用不當雖然通常都是管理層犯下的錯誤,但我們開發者也要為此事負責。毫無疑問,一個用了6年的筆記本執行起來肯定會很慢。即便為一款文字 編輯器花了10美元,但卻選用了最蹩腳的一款,也不會有助你的工作。節省的這幾塊錢不會幫你贏得客戶的心。最糟的是,利用盜版軟體幫你賺錢,這是完全錯誤 的做法。今天你可能覺得你節省了一些,但在以後的運營中一定會花掉你更多的錢。找出最適合你專案的開發工具,然後花一些錢(除非它是開源的!)。當專案開 始後,節約會特別具有挑戰性。除非你需要,否則別亂花錢,但如果有些工具需要花錢才能使用,那就要選最好的。

第五課:如果方法都不奏效,那麼去找一個更大的錘子

有時候你卡住了,這意味著你碰到了難題。有時候不管你多麼用力,都無法將螺栓擰入螺孔中。有時候不管你多麼用力敲打,釘子都不會被敲入。這時候你僅僅需要一把更大、更合適的錘子。

作為BugHerd的創始人之一,我過去常碰到一些本該尋求幫助的情況。但我掙扎著,我通讀手冊,看視訊錄影並參閱部落格文章。然後我清醒了,並 意識到無論我做什麼,肯定有其他人在這方面做得比我好。目前,我們有2位精通JS的同事,他們做的工作,比我們任何時候做的都要好。有很多為遠端團隊協作 而準備的優秀的工具,因此,不要找藉口說沒有合適的同事和你一起工作。有時候,你僅僅需要接受現實,並找到相應的解決辦法。

作為一個活躍在專業開發設計社群裡的創業者,我常感到像活在培養皿裡。偶爾停下來,觀察一些較為傳統的行業,看看我們能從那些做出卓越貢獻的前 輩那裡學到什麼,這也是一個不錯的做法。無論我們認為我們有多聰明,也不論他們有哪方面的優點,我們總是能從這些前輩這裡學到很多。

 

相關文章