一直以來我都期許自己跟member們,在職場上,我們要做一個解決方案提供者,而不要只是做一個會寫code的人(be a solution provider, not just a coder),所謂的coder,我的定義是這樣的,如果老闆要你做什麼,你就是只會照著做,而沒有去思考過老闆要你這樣做的原因,那你就只是一個coder,因為你是個只能受指令做事的人,沒有指令你就不知該做些什麼事,而solution provider呢?我對他的定義就是你是個能提供解決方案的人,你可以告訴主管我們碰到了什麼問題,也提告訴主管我們該做些什麼,連怎麼做都想好了,這兩種人的價值差異顯而易見。
如果你是那個人家跟你說:「把那塊拼圖搬過去放到缺口裡。」然後你只能照著做,但你自己並無法找出那塊拼圖,並將它放到對應的缺口中,如果今天你是主管,給你選擇夥伴,你會選擇誰?我相信絕大多數人會選擇能找出拼圖,並將它放到對應的缺口中的人,跟這種人共事,我們不用時時擔心他做錯事,也不用時時擔心他沒有指令動作會停滯,因為他是個能自我驅動的人。
了解事情背後的目的
「不要只想著如何寫出這段code,試著去思考這段code是在解決什麼樣的問題」,這句話是我時刻在提醒member的,寫code是你的技能,那是達成目標的工具與手段,但你還是必須要清楚,你寫code的目的是什麼,可能是解決問題、提昇效率,也可能是創造營收、提昇滿意度,這些才是我們寫的code存在的目的,當你寫的code能對目標有更大的助益,例如因為你寫的系統,讓大家的生產效率提高了30%,或者因此創造了10%的營收,那就變成了你的價值。真正的價值是達成目標
每個需求都是有目的的,你的老闆不會問:「你寫出了什麼code?」,他只會問你:「你寫的code對我們有什麼幫助?幫我們解決了什麼問題?」,你的老闆不會在意「你的程式碼測試覆蓋度有多高」,他只會在意「產品品質是否足夠好」,對產品的品質要求是目的,而提高測試覆蓋度是你的手段,你不該以手段來論述自己的價值,而該以達成目的的解決方案來論述它,所以你可以說:「我可以提高產品的品質,從每週20個bugs降到5個bugs以下。」,但你不用說:「我把測試涵蓋度從60%提高到90%了」,這兩者最後的結果可能是一樣的,但看事情的角度是不同的。其實除了寫code之外,每一項技能都只是工具跟手段,你愈熟悉這些技能,你就能更好、更快的達成目標。不要只在旁邊等著別人給你指令,除了好好的鍛鍊自己的能力外,也該關注每件工作背後的目的,並提出你的解決方案,當個能解決問題的人,不要當個只會做事的人。
Source