我發現很多公司在招聘Ruby on Rails程式員時,往往注重開發人員的三個主要特徵:足夠聰明、大技術社區中的知名度、深厚的Ruby開發技能。其實這些考察點並不正確。雖然這三大特性很重要,但他們卻忽略了一名出色開發人員所應具有的首要特徵:判斷力。
關於Jack和Dianne的故事
Jack是一個搖滾巨星。Jack喜歡談論世界上最酷會議中提到的最新發展趨勢。他很重視在一個新項目中使用三種以上的新技術。當請他做一個基於互連網的控制後台,用於將烹飪方法與廚具進行匹配。他投入很大的精力開始做此事。最終該後台中用到了Google Protocol Buffers、node.js,具有可擴充性,卻很難維護。
Dianne是一個優秀的程式員。最初Dianne是一個Unix 管理員,兩年前才開始做Ruby開發。當被要求開發一個同樣的系統時,她首先問了以下幾個問題:
“預期會有多少廚具?”
“我們希望12個月內賣出500套廚具。”
“需要多長時間出一份報告?”
“大概一小時一次。”
“這網路的可靠性如何?”
“使用WiFi,它很穩定。”
Dianne使用MySQL資料庫寫了一個RESTful API結點。PostgreSQL可能更適合,但她只懂MySQL。
Dianne採用的這個解決方案可以擴充到1萬個使用者嗎?不能,但這個系統並不需要這樣做。Dianne的解決方案很簡單、容易理解,具有更好的維護性。Dianne知道它並不是最簡潔的解決方案,但她卻知道任何更複雜的事都會超出她現在的能力。
判斷力很重要
當給定一個很有趣的“問題”時,沒有判斷力的開發人員就會陷入精心設計最簡潔解決方案的陷阱中。他們總會有一種很自然的慾望而導致過度設計該解決方案,要麼追求複雜度、速度和功能性,要麼很簡單地找機會演練一下他們所掌握的新技術。他們需要時常被檢查,以確保不會在半路掉進“兔子洞”裡。
更遭的是,他們並不知道什麼時候才超出他們的能力,所以他們總會在整個項目中留下代碼炸彈。
僱傭有判斷力的員工
我會讓我的團隊判斷應聘者是否聰明,是否適合我們的文化。而我負責判斷他是不是有很好的判斷能力。為了做到這一點,我會帶他出去喝啤酒,並問兩個主要的問題:
1.對於Ruby和 Ruby on Rails架構,你最不喜歡他們的哪一部分?為什嗎?
2.請告訴我你最後一次使用的很有趣的技術?你從中學到了什嗎?
這些問題可以很好地協助你,讓一個開發人員充滿熱情地談論他們在什麼時候充滿激情,在什麼地方情緒低落。從中你可以瞭解到很多,他們是怎樣的人,他們來自哪裡。他們是否喜歡NoSQL這種資料庫?他們是否瞭解什麼時候不能使用它們?他們是否瞭解多線程編程中最痛點?他們是否喜歡使用函數式編程、雜湊函數,原因是什嗎?
原文連結:The Number One Trait of a Great Developer