每個程式設計者都需要、也渴求成長的空間,不論是基於對自我成長的期許,或者是為了職場上升遷的現實考量。

或許有少數的程式設計者傾向於安定的工作生活,他們可能期待自己每天可以做著類似的事,不需要學習新的技術、只要能夠把現有的技能熟練,然後安安穩穩地處理掉自己所負責的開發工作就好了。他們一來對於自己的技能提升沒有要求,二來也不求在職場上持續升遷,只要能忠實的扮演好既定的角色就好了。這當然是個人價值觀的問題,沒有任何的對錯,每個人對於人生、工作,都可以有自己的選擇。

不過,有趣的是,會選擇從事程式設計工作的人,在個性上大多都不是屬於這一類的傾向。喜歡程式設計工作的人,大多喜歡讓自己在專業領域上不斷的有所進展,他們樂於學習新的技術、接觸新的觀念,接受新的挑戰,讓自己持續的精進。這固然有一部份是為了在職場上求得更好的待遇、更佳的發展,但也有另一部份其實是基於程式設計者先天的性格本質使然。

對程式設計者而言,不斷的學習、不斷的成長,根本就可以算是基本的職業權利了。

為何工作總是落在有經驗的人頭上?
如果你是一名程式設計者,雖然有很多學習的途徑和管道。不過,所有學習,最終都要回到開發實戰才有意義,不然最後都只會淪為紙上談兵。當然,在正職工作之外,程式設計者可以自己另外開闢戰場,設定有趣的題目來做為實戰的操演。但是,最有效果的實戰戰場,還是在自身的正職工作中。正職工作一方面工作時間長且固定,二來工作的完成都有期限,能提供一些正面的壓力。

然而並不是每個程式設計者,都足夠幸運到可以在工作過程中獲得不斷學習成長的機會,畢竟工作的安排上,大多數情況都不是由程式設計者自身來決定的。

有一些程式設計者,因為在工作上的某個特殊應用領域中,對於特定的技術表現卓越,被視為是具有經驗的老手,所以一旦專案中有需要這個特定的技術時,技術團隊的管理者總是將這樣子的工作分派給他。這樣的選擇對單一的專案來說,可以說是風險較低的選項。例如,在一個開發專案中,倘若需要一些產生報表的功能,而團隊中恰好有撰寫報表功能經驗十分豐富的開發者,選擇讓那些已經十分熟悉報表相關功能開發的程式設計者來負責這樣子的工作,對專案的負責人來說,可以減少許多不確定的因素,提高專案的成功機會。

從專案的局部最佳值來思考這個問題,當然很容易得到這個答案。不過,從團隊或團隊成員的發展的全域最佳解來思考,就不見得會這樣做決定了。

應避免熟手對重複工作感到厭倦,而新人始終承擔不了重任
倘若你是一名程式設計者,只是因為你熟悉某一項技術或應用領域,結果就使得你在各種大大小小的專案中,每次都被指派到同樣的工作,你自己會覺得十分樂意嗎?或許有些人會吧,因為這麼一來,每次都能做自己最有把握的工作,對內容也大多駕輕就熟。

但是,對那些喜歡挑戰自己、希望自己總是能夠保持進步的程式設計者而言,這樣子的工作方式,可以說是十分沉悶又無聊的。又有多少程式設計者會希望,自己每天的工作內容,只不過是不斷在重複類似的事情,而自己又無法從中得到什麼領悟或成長呢?

如果你是一名團隊的管理者,而你總是因為考慮每個個別專案最大的成功機會,而如此安排成員們的工作,那麼漸漸的,你可能會發現,有些成員會因為在團隊中是總是反覆的在從事類似的工作而沒有太多成長的空間,最後選擇離開團隊。而繼續留在團隊之中的成員,也會因為發展有限,成為所謂「有多年資歷的菜鳥」。

我記得近來看到一句話,是這麼說的:「你說你有十年的年資,不過我覺得你只有一年的年資,然後剩下九年都在重複相同的事。」這就是在描述所謂「有多年資歷菜鳥」的現象。

有些程式設計者,雖然表面上看起來工作年資十分的久,但是,因為長期都是在做著類似的工作和任務,使得他本身所具備的技術實力,和工作年資相較,不成正比。

因此,身為一個團隊的管理者,其任務除了要讓每個專案都盡量獲得成功之外,還有責任讓每個成員都能在一次又一次的專案開發過程中,不斷的進步。協助他們不斷的進步,不單只是出自於人性的基本關懷,另一方面,也能幫助團隊變得更強大。當你的團隊成員不會受限在特定的領域,而能持續擴展技術廣度時,他所能應付的工作類型就會愈來愈多樣化,這使得你在工作安排、人員的調度上,能夠更有彈性,不會發生特定的工作只有特定的人選可以勝任的情況。

即使有人員流動的情況,也會因為成員彼此間技能能夠相互重疊,所以,很容易可以找到替補支援的人員,來彌補人員流失所造成的問題。此外,你的團隊成員也不會因為找不到更上層樓的機會,而選擇掛冠求去。大家都知道,團隊成員的流失對任何一個團隊來說都是莫大的傷害。

適度的試著讓每個成員都有機會在專案中得到成長的空間和機會,我認為是團隊管理者,在安排專案成員工作時,需要特別考量的。

或許對特定應用領域或技術經驗不是那麼老道的成員,去擔綱特定的工作,會增加專案的風險,但是,在可允許的風險範圍內下(例如,較為寬鬆的時程條件下),以及成員已經對某些其他技術足夠純熟的情況下,讓他們接觸不同的技術或應用領域。時常在寫報表計算程式的程式設計者,也可以讓他有機會寫寫前端的使用者操作介面;而那些已經對Web應用程式開發十分熟悉的開發者,也可以請他們轉戰手機應用程式開發。雖然,在這個上手的過程中,可能需要付出一些時間做為代價,但是日後卻有可能因此而省下更多的時間。

活化既有工作氣氛,增加任務調派的彈性
大多數的程式設計者都喜歡接觸新鮮的事物,這樣的安排,優點是可以讓他們在工作中將新技術、新觀念運用於實戰之中,對自我的提升幫助很大。愈能建立一個讓程式設計者能不斷成長的環境,就愈能吸引他們增加對團隊的向心力,因而更願意留在團隊之中。

此外,因為成員都能透過「做中學」來強化自己的技術及觀念,所以也會因為個人的強化,而使整個團隊一同強化。而在開發工作的調派上,專案管理者也可因此獲得更多的彈性,因為每一項工作,都有多個人選可以選擇,而各種工作的負擔也不致於集中於少數特定人之上,使這些人可以免除背負專案成敗的重責大任,也避免他們成為專案時程的瓶頸所在。

程式設計者期待能夠持續精進,而團隊管理者的目標則是希望專案成功、團隊成員工作愉快、願意與團隊一同奮鬥努力、團隊實力愈來愈強。希望同時滿足這些目標及期待,我建議,團隊管理者在決定工作的指派上,可以提供讓各個成員有磨練新技術、新領域,以及新觀念的機會,讓個人、專案及整個團隊都能夠因此達到平衡也取得成功。

專欄作者

熱門新聞

Advertisement