新聞搞懂開發者經驗,創造「有意思」的工作
什麼是「有意思」的工作?每個人對它有不同的想像,但如果不能在管理者與工作者間取得共識,將會造成營運管理的難題。專注在使用者經驗和視覺方面的工程設計的美國軟體公司Target Process執行長杜巴夫(Michael Dubakov), 認為,其中的共同因素值得提出來討論,其中有兩項最為明顯與重要:
有意思的工作是具有挑戰性的,它幾乎要超出挑戰者的能力範圍,但仍看似可以被解決,而目的地卻如海市蜃般樓讓人捉摸不透。
有意思的工作可以賦予新知識,當工作者解決一項任務並從中學習新知,那麼在結束時,將會得到雙倍的滿足感。
所以,有意思的工作是既富有挑戰性又具有啟發性的。現在來談另一件事:開發者的經驗。
初級開發人員:第一次真好
初級開發人員幾乎都在從事有意思的工作,因為任何事對他們來說都是既有挑戰性又値得學習。這就是為什麼初級開發員總是快樂地微笑著。他們每天都在學習,第一次使用軟體架構模式(Model-View-Controller, MVC)?好興奮呀!第一次發現Javascript裡的原型繼承(prototype inheritance)?太酷了!解決網頁IE 8的呈現錯誤?這需要好好思考…
有經驗的開發人員:換職位,不然就換工作吧!
最初的熱情已然消退,而僅存的樂趣一天比一天還少。當有趣的程度降到臨界點時,麻煩來了,那意味著工作者學不到任何新東西了。漸漸地,他會變成一個「殭屍開發者」,日復一日地解決相同的作業問題。然而,真正的殭屍開發者甚至不喜歡有意思的工作,他們挑選能以不費吹灰之力完成的類似工作,難度則是越低越好。
有一天,當「我已經幾週沒有做過有意思的工作了」的想法浮現腦海時,這是個嚴重的警戒,而且必須盡快解除它。最好能和管理者協調,看是換職位或是換公司。每份工作都應該要能平衡有意思的工作和日常例行的工作。
沙場老將:挑戰個人極限
可以增加三層企業的解決方案嗎?好。可以建另一個社群網絡嗎?好。殭屍開發者等級:80。經過10年專業的程式訓練,老將們已有充裕的知識和經驗做為後盾,甚至能精闢地挖苦、吐槽工作內容。事實上,已經沒什麼事情能激起他們的興趣了。
有些人說:「我們是專業人士,我們解決問題不為樂趣,而是實現造福他人的價值,這就是為什麼我們還在這個行業。」他們試著把修復程式的問題昇華為理想層面的問題,這個方法只有部分時間行得通,這些人通常並不快樂。沒人指望能看見他們的熱情、初衷和勇氣。
有些人則在本身領域內持續精進,不斷摸索更好的程式設計方法。例如,研究編譯器長達20年,一路上必須堅持、有耐心和冷靜,很少人能堅決地走完這趟荊棘之路。有些人則試著尋找挑戰個人極限的工作,他們換工作、換國家、換工作領域、換科技行業。他們解決各種各樣的問題,並且累積範圍驚人的技術能力。最終,他們將無法在各個領域學有專精,不過,卻能以令人意想不到的角度看待事情、解決問題。
公司該怎麼辦?
好的公司應能提供足夠數量的有意思的工作。有件事是很荒唐的,那就是認為每位員工能以相同的熱情執行每項作業。只有當有意思的工作和無趣的工作達成平衡,熱情才能持續燃燒。
最理想的情況是,公司讓初級開發者快樂地完成那些老將們認為瑣碎的任務;有經驗的開發者完成那些老將們認為一般的任務;而老將們則對真正艱困的任務進行腦力激盪(要找到這些任務或許不容易)。
X軸為開發者的專業知識,Y軸為開發者的數量。圖左上為產品開發;左下為外包作業;右上為目標進程;右下為科研項目。目標進程小組與科研項目的弧線相似。
至於初級、有經驗和資深人員的比例該如何安排?以Target Process來說,有25位初級人員、19位有經驗的人士和6位資深的開發員,換算成百分比則是0-75-25%。不過,更健康的比例是25-50-25%。
若認為一間公司不需要初級開發者,那就大錯特錯了。當老將們必須經常修理一些細碎不堪的問題,他們的熱情會冷卻、生產力會下降,而失去有力人才的機會就增加了。總結來說,管理者必須思考以下幾點:
幾乎每項任務對初級開發者來說都是有意思的。
有經驗的開發者應該著重於平衡有意思的、一般的任務。
老將級的開發者則有兩條路:持續專研技能或者涉獵新領域,以變成通曉各方面的多功能人士。
公司應該重視「有趣程度」,並且妥善安排不同專業程度的人員比例,讓其解決相對難度的任務。
【資料來源:數位時代/撰文者:呂欣】