豐富的設計技能勝過特定於平臺的知識

agile_boy發表於2009-03-11

組織團隊通常都是一項需要慎之又慎的任務,因為想要找到一位滿足所有理想候選人條件的成員,幾乎是不可能的。因此不可避免要進行各種取捨和權衡。在這樣一個事實面前,一定要確定出哪些條件更加重要。而Martin Fowler真正看重的,是豐富的技能,而且這種技能並不僅僅侷限於軟體設計的範疇。

他在最近的一篇文章中表達了這個觀點。假如有兩個人,第一個人非常瞭解所使用的平臺,但對於設計的知識知之甚少;另一個人擁有非常豐富的設計技能, 但是對於即將用於專案中的特定技術卻瞭解非常有限。如果必須在這兩人中做出選擇,他會選擇後者。Martin解釋說,儘管設計技能的確不能完全從一種技術 移植到另一種技術上,更不能盲目地複製,但是其中很大的一部分都可以照搬過來,不僅有那些類似的技術之間的轉移,還包括從Curly-brace語言到 Ruby。按照Fowler的觀點,擁有豐富設計技能的人,可以快速地在一個不同的平臺上交付價值,並且可以“比那些缺少設計技能的平臺專家們更具有生產 力”:

一個非常熟悉某一特定平臺的專家如果想寫出可維護的程式碼,他還必須學習更多的設計技能。有一點很重要應該記住,學習如何設 計並不一定比了解一種平臺更困難,而且它是更通用的知識。對於一位主動且經驗豐富的設計者而言,我非常確信他可以很快地掌握某個平臺的特定知識。但是反過 來就不一定了。有些人非常熱衷於學習一個平臺的細節,卻從來不反思如何寫出清晰的程式碼來。

同樣的道理也適用於非技術領域。有些人並不瞭解特定的業務領域,但他們可以參考其他的領域,然後通過與領域專家合作、與客戶交流,進而快速地獲得必要的知識。

因此,按照Martin Fowler的觀點,要想為軟體帶來更好的質量並向客戶交付價值,團隊成員應該擁有豐富的技能,這是最基本的保證。儘管在最初會缺少特定領域和特定技術和經驗也沒有關係。

儘管如此,除了擁有豐富的技能外,要想讓程式設計師能夠足夠快速有效地獲取必要的經驗,還需要滿足很多其他的條件。首先,團隊中有必要安排一位領域和/ 或平臺專家,他可以與團隊分享他的經驗。另外很明顯地,開發者的主動性、他快速學習的能力以及與其他團隊成員合作的態度,這些也都是非常關鍵的技能。

哪些是你所關注的?哪些會影響到你僱傭員工時的選擇?

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14639675/viewspace-566788/,如需轉載,請註明出處,否則將追究法律責任。

相關文章