我原本今天要寫一篇關於我自己的 :電子自學學習心得回憶(五)--- 軟體篇。
但剛好在別人的FB 上看到以下這一篇文章,所以就先分享過來。
看完之後,比較訝異的是我又看到一位 Jimbo 讀者的回應,又可以連結到他們公司
blog ...有許多文章也有中文翻譯,大家或許有空可以先看看。
---
我想基本上:在台灣電子科技的老闆們,都會認為找軟體工程師寫程式是拿來幫他們
幫忙推銷硬體設備的,所以對於搞軟體的工程師們就比較沒那麼重視,也比較不會重視
軟體工程師的創意與想法...反正最後也是要靠賣一套一套硬體的東西才是真正的錢。
軟體的東西就不會想花太多心思去跟軟體工程師們互動了,甚至過去我們也曾經看到
一些台灣的電子科技公司也會把一些軟體開發工作丟給大陸部門處理...
反正能省就省吧,長期下來,台灣軟體的創意與所能創造的商機就非常有限了。
這是一件非常可惜的事!
----
讀者回應:
小弟在台灣完成學業, 也當過數年軟體工程師, 目前正在加拿大Start-up公司工作。對這種現象有深刻的體悟。在台灣時,當RD提出的IDEA總是被打槍,而DEADLINE總是比預計的短,產品的開發往往在上層的壓力下,儘快趕緊出貨,產品是能夠Work,但能否打動人心? 又是另外一回事。反觀這邊,只要你的IDEA合理,夠有說服力,老闆就說這點子很好,我們就這麼做。有足夠的空間,自然就更花時間去思考如何把產品開發更完美。就 Open minded 這點,就讓我相當驚訝,也算是讓我開了開眼界。
Ps. 有興趣了解我們公司的朋友,可以參考這篇 :團隊合作就是要這樣!
>>>>>>>>>>>>>>>>>>>>>>>
Posted by Sega Cheng (Mr. Saturday)
過去一段時間,iKala 收了很多履歷,面試了非常多的傑出人才,我發現到一個有趣的現象:「大部分的人都非常害怕公司會對他們不利。」怎麼說呢?許多面試者對於 iKala 的福利都覺得有點驚訝,因為他們之前待過的公司並沒有這樣子在照顧他們,福利內容甚至讓他們有點不安,覺得福利的背後一定隱藏著公司的陰謀,我覺得啼笑皆非。
從傳統電子公司出來的一些面試者,有這種反映出現的比率更高,我其實很好奇到底他們之前是被公司壓榨到什麼程度,以致於他們根本不相信公司會秉持著照顧和培育人才的理念在經營。員工對於企業缺乏信任,雖是全球普遍的現象,但是在台灣,這樣的情形似乎更為嚴重,許多離開工作的人,對於自己的前公司沒一句好話,不是工時長、就是老闆賤,長期下來造成他們心中對於工作型態的刻板印象,認為工作就是這個樣子。
「這群人真的受到很嚴重的心理創傷」我常常在心裡這樣想,這樣子的工作型態,在未來越來越靠腦力競爭的環境,豈能久乎?
軟體公司不能這樣經營
腦力密集的工作者型態,跟勞力密集工作者的型態完全不相同。勞力密集工作者的生產力,基本上是以工時在計算,工時越長,能組裝的零件越多,一翻兩瞪眼;腦力密集的工作者,卻沒有辦法用工時計算生產力。尤其是程式設計師,寫過 code 的人都知道,當你連續的工時拉得越長,你寫出來的 code 就越接近垃圾。等到你明天清醒了,你會很驚訝自己寫出的這堆垃圾,像是前一夜喝醉酒鬧事留下的爛攤子,然後你的隊友或是你自己,要花額外的時間把這些垃圾清掉或是重構 (refactor),結果整體的生產力,還比不上你早點去睡覺,早點起床後神智清醒的那短短幾個小時。
一個腦力密集的工作者能夠集中意志、進入「flow (心流)」狀態的時間是有限的,「flow」的概念已經反覆被討論,人一旦進入這個狀態,會發現意志極度集中、全世界與你隔絕、甚至於感受不到時間的流逝,在這段時間內,生產力達到顛峰。不過一旦脫離這個狀態,會需要花額外的一些時間才能再次進入,一天之中能維持心流狀態 8 個小時的人,已經算是超人了。開發軟體最重要的是腦袋有沒有清醒,而不是工時夠不夠長。站在經營者的角度,你要確定的是你的員工知道自己在做些什麼,而不是不讓他們回家。有些工程師喜歡晚上夜深人靜的時候拼進度 (我就是其中一個),有的人喜歡多一些面對面討論、不介意隨時被打斷。身為軟體主管,你得尊重每個人偏好的工作方式,你要做的是訂定清楚的目標和時程,然後隨時審視軟體的品質,至於工程師打算怎麼把東西生出來,是他們自己的事情。我不介意這些 code 是在上廁所的時候、還是乖乖坐在辦公桌前時寫出來的。
領導,而非管理
好的人才並不需要管理,他們需要的是領導,站在領導者的立場,最迫切的三件事情,就是給予好的人才最明確的目標、最大的彈性、和爭取最多的資源。剩下的,好的人才都會自動幫你完成。他們甚至會反過頭來告訴你,什麼是該做,什麼是不該做的。一個好的人才會幫你解決問題,一個不好的人卻會幫你製造更多的問題。如此一來一往,就決定了公司的命運,因此創業的初期,最重要的就是人,天大的 idea,如果你不能一個人完成,你需要的就是最棒的人才,組成一個真的能實現 idea 的團隊。idea 和執行力同樣重要。沒有人能保證任何 idea 一定會成功,但是如果沒把人找好,找到錯的人,失敗的機率鐵定大增。
好的人才最討厭人家管他們。他們自己有企圖心、自律、和執行力,你不用總是拉著他們的小手一同去郊遊,他們會自動把很多事情完成。
領導應該是明顯的,管理應該是隱諱的
軟體人才通常是一群很 free style 的人,但是身為領導者,應該要確實掌握住公司的方向願景,和制訂公司的發展策略,如此可以給公司員工清楚的目標,然後激勵他們,讓他們覺得自己真的是在做很棒的事情,這是領導。相較之下,軟體人才的管理應該建立在「制度」之上,而非建立在諸多「手段」之上。所以我把制度盡量簡化,並且致力於自動化重複性的管理工作,為的是盡量讓員工平常感受不到這些東西,有時間去做真正重要的事情,而非配合公司的重重規定作一些沒有生產力的事情。
「只有管不住自己的人,才需要別人管」,這也同時告訴我們,員工的自律,對於軟體公司是最重要的一個特質。
即使事實如此,很多人打從心底不相信公司可以這樣運作
Google 和許多成功的大公司,都是以這樣的一套哲學在經營公司,主管給予員工充分的自由,去完成訂定的目標。這並不代表放縱員工,而是代表員工必須有高度的「自律」,而不是「他律」去達成目標,因為公司依然存在著有效的淘汰和評量制度,能夠評判每個人的成果,目標沒有達成或是打混摸魚的人,都會攤在眾人眼前,這樣的環境,讓員工擁有高度的自由,但同樣是一個競爭激烈的環境。重要的是,這樣的環境可以讓員工充分發揮創意和獨立思考,用自己的方式去達成目標。軟體的本質本是如此,需要創意和獨立思考,才能創新和創造;也只有用這樣的方式,才能留住你的人才。
全世界都在喊著創新與創造,台灣更是不落人後,許多電子公司想要跨入軟體的領域,政府也拼命喊著文創的口號,要讓台灣成為設計島和創意國。但是這些機構和公司對於軟體公司的文化卻所知不多,也缺乏實踐,結果傳統的硬體文化和軟體文化格格不入,嚴重限制了軟體工程師能發揮的空間。造成軟體業始終沒辦法向上提升,
台灣很多公司普遍認為員工就是該被管,該被公司的重重規範用力綁住,才能為公司帶來生產力,這在軟體公司完全行不通。身為老闆,我們都有一種直覺,認為「員工工時越長,公司越划算」。但是,是時候做出違反直覺的決策了:給你的員工清楚無比的目標和設定公正有效的評量機制,剩下的,就不要管太多了吧。
真的是這樣耶,
回覆刪除可是我的flow最多只能持續8分鐘 :P
我每天在公司超過12小時,
估計只有不到2個小時是真正在輸入code,
大部分時間是在網路瀏覽發呆跟做白日夢 :D
台灣的管理者還是把軟體工程師當成生產線作業員在管理的,
如果這位軟體工程師今天能夠產生500行的code,
明天他就沒有理由只生產100行的code出來 :))
這就是80/20 理論。...往往是在 20 % 的時間內完成80%的工作。
刪除當然,也代表剩下80% 的時間效率都不到 20 % 。
---
台灣的管理是很少會去注重或著重軟體工程師的工作內容,至少以前
我自己的經驗就是如此...軟體工程師一來,老闆就交代他想要一個怎樣
的東西,然後就放牛吃草,至於您怎麼會寫軟體或是該如何寫?!
就好像不是他所關心的事,當您碰到技術上的問題時,他頂多也會幫您
到處問問有誰可以讓您問的?!對他來說:他才不會讓"猴子"跳到他身上。
您要您的老闆上司幫您看程式?!別傻了...就算您離職後,他要您把
Source Code 留下來...之後,您也有可能接到"前主管"打電話來拉關係,
之後就要您幫忙回答新來接手菜鳥工程師的種種疑問。
---
在台灣幹軟體工程師的...就算您離職後,工作有時還會陰魂不散的
跟著您一陣子...直到您不耐煩...或是那位菜鳥工程師被您數落之後,
再也不好意思打電話給您了。....
嗯,台灣軟體不被重視到連軟體本身品質如何也沒人在乎...
回覆刪除1. 版本控制-->沒有
2. bug tracking system-->沒有
3. 功能測試-->沒有
甚至不少公司的RD口耳相傳的笑話就是:"客戶就是我們的QA團隊" :))