完美程式設計師的10種品質

發表於2010-12-10

誰是完美程式設計師?著名部落格作家Alex Iskold在《明星軟體工程師的10種特質》一文中給出這個問題的答案:

1. 熱愛程式設計

2. 完成事情

3. 持續重構程式碼

4. 使用設計模式

5. 編寫測試

6. 善用現有程式碼

7. 專注可用性

8. 編寫可維護的程式碼

9. 能用任何語言程式設計

10. 知曉基本的電腦科學

 

這是一份合理的清單,但是這份清單側重於次要特徵,這些特徵只是更深層次品質所產生的結果,並且這是一份理想化的清單。你認為兒童網站的Flash程式設計師跟B2B財務交易服務公司的軟體工程師品質會相同嗎?那麼,我們該如何從眾多開發者中甄別出一名完美的程式設計師呢?

尋找完美程式設計師的最終標準:完美程式設計師能開發出滿足客戶期望的優秀軟體。

因此,令人震驚的事實是完美程式設計師可能只精通一種程式語言,不知道什麼是設計模式,並且不會在地下室裡夜夜程式設計去創造下一個Google。我們不能客觀地衡量程式設計師的完美程度,就像測量自己胳膊的粗細那樣。完美程式設計師的完美之處只在於他們按時開發了一個高質量、可用的並且可維護性高的軟體系統(一個優秀的系統),並且這個系統達到了使用者的要求。

綜上所述,我們可以得到如下幾個推論:

  • 1.一個完美的程式設計師應該能夠及時解決使用者的問題,或者能在一段合理的時間內解決。所有程式設計師的品質都與使用者的問題以及背景有關:
  • 有些問題需要創造力,而有些則需要具體的方向
  • 有些問題通常需要專業技術,而有些則需要高深的業務知識
  • 有些問題需要仔細分析,而有些則需要一些社會技能和直覺

 

  • 2.一個完美的程式設計師應該明白什麼是“完成”,並且關注產品質量。對於一個軟體系統,“完成”的意思遠非編碼的結束。一個完美的程式設計師會完成所有必要的步驟來開發這個系統:測試,優化程式碼以使程式碼量保持最小、高效以及可讀,使系統可用並且保證顧客和使用者能夠喜歡這個系統。

完美程式設計師的10種品質

完美程式設計師的每種品質都有一個範圍,這個範圍取決於具體的問題和背景。沒有能解決所有問題的完美程式設計師(至少在我們這個星球上),並且對於特定問題,完美程式設計師應該具有以下品質:

1. 才智非凡 – 能夠理解問題、能夠用清晰可讀的程式碼翻譯並表達想法、善於分析並且邏輯思維能力強 (範圍:用簡單方式解決複雜問題)

2. 魅力超群 – 優秀個性的結合體 ( 注重細節 VS 富有創造力、靈活多變 VS 恪守典章、善於交際 VS 特立獨行)

3. 術業專攻 – 具有一定的知識和經驗,能在特定條件下利用專業技能解決使用者問題(範圍:從一個領域內的專家,到在不同領域都有豐富經驗的程式設計師)。

4. 積極主動 – 關心工作,對程式設計表現出了很高的熱情、興致以及熱愛(範圍:從工作只為錢的人,到在業餘時間不計報酬實現有趣的想法的人)。

5. 成熟穩重 – 精通並且運用合理的軟體開發原則、敏捷方法和實踐、設計和體系結構模式、領域驅動設計、單元測試、重構(範圍:從一個充滿激情的業餘愛好者,到一名能夠不停地發明新方法的黑帶大師)。

6. 實用主義 – 明白什麼事是可能的,喜歡簡單實用並且避免過度設計;明白業務目標,貼近現實並且專注於該做的事情(範圍:從自學成才的藝術家,到自我激勵的務實的成功人士)。

7. 通力協作 – 能夠傾聽並且接受有好點子的人,毫無保留地支援團隊的目標,跟別人分享自己的想法和知識,並且願意指導別人(範圍:從異見者到一個團隊的領導)。

8.善於溝通 – 能夠高效地與別人交流和交換想法,支援那些對系統具有清楚的解釋、判斷和解答的知識和決定(範圍:從一個安靜內向的人,到一個系統解說員)。

9. 潛力無限 – 擁有職業目標、出色的技能、好奇心、較強的適應性,並且能夠不斷自省(範圍:從一個達到極限的人,到未來的程式設計之星)。

10.遠見卓識 – 擁有更高的視野,瞭解相關的背景、趨勢和人員,為達到團隊和公司的潛在目標採取行動,致力於為軟體系統建立共同願景(範圍:從對程式設計僅僅是感興趣的人,到有遠見的企業家)。

如何為特定問題找到完美的程式設計師呢?

能夠找到具有最優品質的程式設計師當然更好,但是,這些另類都身價不菲,通常可遇而不可求或者會對你的問題感到厭煩。因此,可以採取以下措施:

  • 1.在僱傭他們之前先理解問題,評估每種品質要達到的水平,並且準備好問題甚至測試。
  • 2.組建一個完美的團隊,但不一定用完美的程式設計師。只要保證團隊成員的部分品質達到了應有的水平。對每位團隊成員來說,大概只有協作才是最重要的品質。
  • 3.創造必要的環境,促使這些優秀品質能夠有效發揮作用。使用正確的領導風格,並且使程式設計師感到愉快。

擁有優秀核心品質的人會提出最優的方法,包括編寫單元測試和重構;學習設計模式,並且最重要的是:開發出眾並實用的軟體。

後話

完美程式設計師不是天生的,他們只是在解決問題時做了正確的事。如果你對完美程式設計師還有其他看法和補充,歡迎你在評論和微博中分享。

 

Via:softwarecreation 編譯:伯樂線上 敏捷翻譯組 – 朱勇

如需轉載,但請註明文章來源和超連結等版權資訊,否則視為侵權,謝謝合作!

相關文章