Dec 22nd, 2013 by Mr. DueDay
Posted by Mr. DueDay
在公司裡當個寫程式的工程師,是穩當的工作,在現代工商社會裡面,念理工科的畢業生,比其他科系有更多工作機會。在每年的徵才網站年度報告新聞稿裡,資訊科技產業的薪資與機會,經常在前三名內。看國外,美國與中國的白領工作裡,軟體工程師屬於高薪一群,在矽谷平均拿著八到十萬美金年薪,在北京上海杭州平均拿著一萬二萬人民幣月薪。看國內,政府現在要成立雲端,要成立手機APP創新產業,不管是政府年度發展的產業園區,或是硬體大廠拼轉型成立新事業,職缺開出來是一百個兩百個工程師地找。景氣不好時,咬著牙也能比別人好過些;景氣好時,國內外廠商與政府都持續投資,招募人才,寫程式的,前途一片光明!
但是,在公司裡當個寫程式的工程師,每天面對被取代的危機。看職業補教產業裡,或是進修再造專業書籍裡,資訊補習班或教你學會寫程式類書籍,總是持續熱門暢銷,主打看本書、報個名,就能轉換跑道進入這個產業。每年畢業季到,又許多新鮮的肝,加入這個產業。看著自己,日復一日,陷在一成不變的上班打卡制,下班責任制,只能爆著肝,追逐一個又一個規格改了再改的專案。夜深人靜解bug時, 腦海就是會浮現這句話,「程式寫得好,要飯要到老」。年紀越大,望著鏡中自己發白的頭髮,感慨油然而生,寫程式的,前途崎嶇暗淡!
在公司裡面當個寫程式的工程師,為什麼會面臨到前途光明,卻又前途暗淡的矛盾中呢?最早的程式設計師目前普遍認為是19世紀的 Ada Lovelace女士,針對當時發明的計算機器在書上寫下第一個電腦程式。嚴格說,到20世紀才開始有用電力驅動的計算機器,那麼在人類千年歷史上,寫程式只是最近幾十年的人類行為。不像傳統士農工商三百六十行,已是發展成熟的行業,儘管人類文明有東西方之分,有過去現代的進步演變,但這些行業都可追溯到數百上千年前的淵源。寫程式卻是全新的體驗。阿基米德說只要一個支點就能撐起地球,是在象徵科學的力量;現在寫程式,只要一台電腦,卻是能真實影響整個地球上人們的生活。加入寫程式的行列,未來會發生什麼事,真難預測。就連程式語言的發展,程式技術的演變方向,沒有人能說得準確。
但是,在公司裡當個寫程式的工程師,並不是單純地寫程式的人,因為在公司裡面,是在一個框架裡面。在框架裡面做事,雖然受到框架的限制,承受框架的優點與缺點,卻也能依循框架,有明確的目標發展茁壯。公司法第一條:本法所稱公司,謂以營利為目的。公司追求營利成長,公司裡寫程式的人就以協助公司發展的方向跟著成長。我們便以公司裡的活動,試擬出寫程式的人發展方向。
在公司裡當個寫程式的工程師,首先要能做到如下事項:用其專業知識,開發與設計新功能與產品;計劃、設計、撰寫與測試軟體系統,能符合需求;參與團隊開發專案,符合時程;維護既有產品;提出建議,改善既有流程;能解決煩雜的問題;在專案團隊裡,支持與協助新想法的實做與推廣;可以學習快速,在有限的時程完成重要的任務指派;能規劃工作的先後順序;能順暢地與無技術背景的人員溝通;在自己參與開發的產品上,可以預測並避免將發生的商業問題。在公司裡當個寫程式的工程師,想被公司當作不可替代的人,作為公司維護營運的要件,以上是基本要求。
在公司裡當個寫程式的工程師,如果想成為公司的成長引擎,便要走向下個階段:擔任主要貢獻者,開發獨特的元件;開發新的概念、方法與技術,能激發新產品功能發展;在自己所處的專案團隊外,還能對所屬的事業單位、所屬的產品服務平台發揮影響;能規劃所需要的資源,與根據重要性排出工作先後順序,完成產品開發;能不斷嘗試新創意、採用新技術,用於產品開發與流程,達到公司目標;參與對消費者端的簡報,能檢討產品設計優缺點,能針對目標作技術評估;能預測產品需要做哪些改變,才能在市場上保持競爭力;負責評估新解決方案的可用性、彈性,與價值;能在公司內與多個團隊工作;與專案經理、產品經理、業務單位等一起找出新的產品想法;能在軟體技術上帶領、支援團隊裡專案工作的發展方向;引導、訓練其他工程師;定期與管理層報告;從技術角度,實質影響管理層做決策,發展影響公司未來的具體計劃與目標;在技術社群中,能提供經驗分享與顧問協助;能打破公司組織界線,協調部門,達成公司目標;建立人際網路關係,橫跨各個團隊。想以寫程式的專長,不斷貢獻公司成長,就需要做到以上的要求。
在公司裡當個寫程式的工程師,貢獻公司成長多年後,如果沒有換到管理職,還想走在技術的道路上,想以技術的極限改變遊戲規則,便只有朝向終級工程師階段,完成下列的事項:具體影響了新產品的發展,新技術的發展,與新事業單位的發展;扮演主要策略規劃者,發展最領先的技術,在公司內,甚至產業裡尋找新的市場機會;能把技術用的出神入化,比產業裡其他人都好;有多個具體的成果,證明自己發展的新技術給公司或產業帶來改變;帶給公司及產業新的概念、新的理論,促進了發展;對其他人的工作,給予關鍵的貢獻,被採用;在公司內外都是知名的領域專家;成為技術社群的知名經營者,帶領與茁壯該社群;影響政府或相關發展組織的政策制定;能建議最正確的技術投資;成為公司技術代言人;維護與發展工程準則,持續提供可行的實務經驗,判斷正確的技術架構走向。一旦到達這個境界,就有機會跳出公司的框架,成為在公司外的寫程式的工程師,不受到公司的約束與影響。而有機會,為寫程式的行為,做出歷史定義,成為典範。
作為一個寫程式的人,經歷的生命是人類歷史上的特殊經驗。我們好難回顧過去找出一樣的模式,模仿學習。該如何發展,該怎麼發展,一切都是進行式。從產業現況,以公司為出發點,找出一些脈絡,去研究如何做好一個在公司裡寫程式的工程師,進而替寫程式的人,投石問路。
本文出處:http://mmdays.com/2013/12/22/be_a_programmer_in_company/