自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何讓你的程序員不要厭倦工作?

移動開發(fā)
在團隊的幫助下,我們設(shè)計了一整套策略去幫助程序員們對抗工作中產(chǎn)生的厭煩情緒,并將這些策略運用到了公司的實踐當中。距今為止這套方法還是挺管用的,因此我想要和大家分享一下。

作為一個程序員,我從來沒有在同一家公司工作超過兩年。每換一份新工作都是一次很好的職業(yè)變動,在這個行業(yè)里跳槽如同家常便飯。但是我的前東家們對我的離去并不開心,他們其中一些人花了很大力氣想要挽留我,但是我已經(jīng)對一成不變的工作感到厭倦了,真的不想在同一家公司再待下去。

[[158532]]

( 免責聲明:我很幸運地生活在一個程序員工作崗位供大于求的地方,所以對我來說在換工作永遠不止一個選擇。)

如今我成為了 Enki 公司的合伙人與 CTO,同時我還要負責在公司里面打造工程師文化。我工作內(nèi)容的一部分就是確保我們的程序員不要對工作感到厭倦,就像我過去那樣。

在團隊的幫助下,我們設(shè)計了一整套策略去幫助程序員們對抗工作中產(chǎn)生的厭煩情緒,并將這些策略運用到了公司的實踐當中。距今為止這套方法還是挺管用的,因此我想要和大家分享一下。

在 Enki 我們的程序員很幸運地一直從事著具有挑戰(zhàn)性的工作。我們有很多有趣的事情需要去編碼,還有大量有意思的問題亟待解決。因此如何解決「無聊」這件事情對我們來說并不很緊急。但是所有的工作都不會一開始就讓你感覺厭煩,無聊這種情緒是隨著時間推移蔓延開來的,并且會在最糟糕的時刻爆發(fā)出來。

這就是為什么我們從公司成立之初就開始著手預(yù)防這類問題,并依靠建立起一種企業(yè)文化去幫助我們的程序員克服工作中產(chǎn)生的無聊情緒(真心祈禱這套東西管用吧)。

下面就讓我們總結(jié)一下為什么程序員會感覺工作無聊,以及如何避免發(fā)生這些狀況吧。

[[158533]]

1、項目時間延續(xù)太長,學(xué)不到新東西

引發(fā)程序員無聊情緒最常見也最明顯的原因就是一個開發(fā)項目拖得時間太長。

我在自己的***份工作中就充分體驗到了項目時間過長帶來的無聊感。我的團隊要做的是通過一個通用 API 去處理金融數(shù)據(jù)。一開始這項工作確實令人興奮,因為這些數(shù)據(jù)十分復(fù)雜且規(guī)模龐大,很有挑戰(zhàn)性。我從這項工作學(xué)習到了如何高效分析數(shù)據(jù)以及 API 接口設(shè)計。但是在一年之后,我們依然在針對相同的數(shù)據(jù)庫工作,使用的也是同樣的技術(shù)。我在這一針對性很強的領(lǐng)域已經(jīng)成為一個專家了,在這項工作中再也沒有什么新東西可以讓我學(xué)習。

我不可能再去別的團隊或者項目,因為公司感覺把我留在這個項目里才是最合適的。我明白在這個項目中現(xiàn)有的數(shù)據(jù)與技術(shù)已經(jīng)用的太順手,所以不可能被替換。我無法說服公司僅僅為了讓項目組成員學(xué)習新知而改變原本使用的技術(shù)。我向公司表達了自己的這種厭倦情緒與沮喪心情,但是無濟于事,那么我只好換一份有奔頭的新工作了。

如何阻止無聊情緒的產(chǎn)生?

在我們的團隊里會試著避免讓任何一個程序員接觸相同的代碼、產(chǎn)品或者數(shù)據(jù)庫超過三個月的時間。將時間設(shè)定為三個月也許比較武斷,對于大公司來說這段時間可能也太短了。但是我們相信讓程序員在不同項目中快速輪轉(zhuǎn)是正確的。

為了實現(xiàn)這一設(shè)計,我們在公司里提倡一種全棧文化,團隊里的每一個程序員都能夠承擔任一部分的編碼工作(或者是能夠快速學(xué)會操作)。

預(yù)防無聊情緒滋生的另一個方法就是開誠布公地討論這個話題。我們每周都會進行一次直接、開放的一對一談話。如果一個程序員在工作中已經(jīng)感到太過舒服沒有挑戰(zhàn),或者是已經(jīng)在這一方面過于專精,那么就是時候讓他輪轉(zhuǎn)到另一個項目當中去了。

2、維護代碼這種遺留問題讓人感覺太無聊

[[158534]]

你能夠很清楚地分辨出何時項目就開始進入了維護模式,不論是從正式的渠道還是別的途徑,只要當你的程序員花上了 90% 的時間去修補 BUG 而不是開發(fā)新功能,那就代表著他們已經(jīng)進入了代碼維護期。有人會說維護代碼是一項不可避免的工作,老舊的代碼需要不斷得到支持。開發(fā)軟件就像造房子,你總是需要維護和翻新房子的,不是嗎?

既是,也不是。這項工作確實需要有人去做,但是問題通常會出在工作態(tài)度上。

我曾經(jīng)的一位職場前輩對于維護代碼具有強烈的抵觸情緒,他理所當然地認為維護代碼這種事情根本沒有什么好做的,軟件開發(fā)完畢之后就讓它們自己去運行好了。生活簡直糟透了,你還不得不適應(yīng)它。

如何緩解這種抵觸情緒呢?

項目開發(fā)工作進入無聊的維護模式有時候是由于糟糕的技術(shù)決策與缺乏勇氣的雙重作用。

一個擁有著復(fù)雜的依賴關(guān)系的龐大整體代碼庫需要額外的付出時間去做維護工作,于此相反的是,一個架構(gòu)良好的微服務(wù)基礎(chǔ)設(shè)施擁有更強的靈活性。當一個微服務(wù)架構(gòu)出現(xiàn)缺陷時,你可以立即采取措施去修復(fù)。你可以重新寫一遍代碼,使用不同的編程語言或技術(shù)。通過這種方式,你會學(xué)習到新的東西而不是僅僅在遺留下來的代碼上修修補補。如果你的架構(gòu)不允許你重新來過,你還可以采取別的措施來改善,并且在這個過程中學(xué)到一些 DevOps 的技巧(譯者注:DevOps 就是開發(fā)(Development)和運維(Operations)這兩個領(lǐng)域的合并,可將原本笨重的開發(fā)與運維之間的工作移交過程變得流暢無礙)。

想要解決程序員在維護代碼中產(chǎn)生的無聊情緒有很多種方法可供選擇,公司采用微服務(wù)戰(zhàn)略只是其中一種可行方式。還有別的公司會通過打造智能工具去讓代碼維護工作變得更有效率也更有意思。一個比較極端的例子就是 Facebook 對他們的海量 PHP 代碼庫所做的工作。Facebook 開發(fā)了他們自己的編譯器以及帶有 Facebook 風格的語言(Hack),這使得他們的 PHP 代碼庫不僅便于維護,也改善了程序員的工作體驗。我猜想這種方式并不能完全解決代碼維護的遺留問題,但是它確實讓這個工作聽上去更有趣了。

3、工作只剩下復(fù)制 / 粘貼這種小兒科的東西

程序員所做的工作就是不停寫代碼。

我在之前的工作崗位上曾經(jīng)產(chǎn)出了大量沒有什么意義的代碼。比如說我曾經(jīng)為數(shù)據(jù)集成而編寫了 Groovy 與 Python 腳本。這些數(shù)據(jù)相當復(fù)雜,包含了許多不一致的數(shù)據(jù)庫對象集合,因此也不能夠自動化運行。鑒于此我不得不編寫大量代碼,我的同事都猜想我肯定從中學(xué)習收獲了很多。

然而并沒有,為什么會這樣呢?

因為 50% 的代碼(這是夸張的描寫手法?。┦俏抑苯訌?Stack Overflow 復(fù)制粘貼過來的。還有 40% 的代碼是從其他腳本中復(fù)制過來的,有一些來自我同事的代碼,還有一些是我之前寫過的。工作變成了一種重復(fù)勞動,其中沒有一點創(chuàng)造性與學(xué)習長進可言。

我們?nèi)绾伪苊膺@種情況?

作為一個團隊,我們都會花時間去了解團隊其他成員寫了哪些類型的代碼。我們在代碼審查、同步以及工作回顧的時候去完成這件事情。如果一個人花了一星期時間卻只寫出了毫無創(chuàng)造性的代碼,我們就會試圖去弄明白在他身上到底發(fā)生了什么。

[[158535]]

有時候問題的根源來源于你所用的技術(shù)。我們可能使用了過多的腳本,或者是做了許多本不應(yīng)該做的配置工作。如果是這種情況,我們就會添加更多的自動化設(shè)置。有些時候我們進行代碼的復(fù)制粘貼是事出有因的,在這種情況下大家就會一起分擔這項不得不完成的無聊工作。

4、只能使用內(nèi)部工具也太沒勁了

作為一個程序員,我們喜歡打造一個自定義的內(nèi)部工具來解決某些特定問題,因為動手創(chuàng)造是一件令人興奮的事情。而且,構(gòu)建一個定制化的解決方案通常要比找出一個現(xiàn)有的方案進行再利用要好得多。

然而相比于學(xué)習一門時下流行的開源技術(shù),學(xué)習一個內(nèi)部專有工具的趣味性只有前者的十分之一。 這到底是為什么呢?

因為它不能成為你和朋友聊天時的談資,你也不能到處吹噓,你不會在 Hacker News 上讀到關(guān)于它的新聞,你也不可以在編程馬拉松(hackathons)活動中使用它,當然了你也不能將其用到自己秘密開發(fā)的副業(yè)項目中。

很多公司都跌入了打造內(nèi)部工具的陷阱當中,因為它隨之而來的就是給程序員帶來更多的無聊情緒。換句話說:你為了解決一個短期問題所開發(fā)的內(nèi)部工具反而帶來了更多后患無窮的長期問題。

在我的上一份工作中就對于這個問題有著切身體會。我被限制只能使用公司自己開發(fā)的針對大規(guī)模數(shù)據(jù)集成的 DSL 語言,而我此前一直學(xué)習的完全是另一種 SQL 語言。我更希望能夠用上哪怕是 Spark 這樣開放程度沒那么高的語言。如果不使用內(nèi)部工具,我將會 10 倍投入工作,寫出的代碼也會 2 倍優(yōu)于現(xiàn)有的水平,還會讓我的生產(chǎn)力提高 5 倍(不要糾結(jié)于其中的倍數(shù)是否有數(shù)學(xué)邏輯,你只要體會我的心情就行了?。?。

什么樣的企業(yè)文化能夠避免這一困境?

在我們公司中不會對開源技術(shù)抱有偏見。如果能夠重新利用相關(guān)開源技術(shù),我們當然很樂意去做。我們不會回避前沿技術(shù),一旦開源技術(shù)變得足夠成熟能夠取代我們現(xiàn)行的專用語言,我們就會立馬拋棄原有的定制化代碼投向開源技術(shù)的懷抱中。在我們自己開發(fā)的定制化代碼變得足夠通用之時,我們就會將其開源。

這么做也偶爾會犯錯。比如說我們曾經(jīng)使用過一段時間 agenda.js 去安排我們的后端工作,因為感覺這種技術(shù)既***又令人興奮。但是不久之后它就變得太過復(fù)雜了,我們只好重新用回了之前老舊但是可靠性更高的技術(shù)。即便如此,我們依然不后悔曾經(jīng)嘗試過,因為這也是一種寶貴的學(xué)習經(jīng)驗。

5、如果不知道自己為何寫代碼,必然厭倦工作

糟糕的人力管理也是造成程序員對工作心生厭倦的常見原因。更具體地說就是:針對程序員的自上而下的獨裁式管理會讓他們產(chǎn)生抵觸情緒。

心懷良好意圖的管理者經(jīng)常在不知不覺中就使用了這種獨裁式工作方法。尤其在一個開發(fā)項目進行的不是那么順利或者是截止日期臨近之時,這種管理方法就更為常見了。在巨大的項目壓力下,管理者很自然地就會縮短團隊討論時間,減少頭腦風暴,直接命令程序員去寫代碼,卻不解釋為何這么做,也不接受任何爭辯。而管理者通常這么做的出發(fā)點就是想要節(jié)省時間,盡快完成工作。

如果這種管理方法能夠被理解,也不是每一次都會招致厭煩;事實上,有一些人還挺能接受你簡單直接地告訴他應(yīng)該做什么。當然了,這也是建立在你的說話語氣是能被對方接受的基礎(chǔ)上。

使用這種獨裁式管理方法也有隱藏的成本。通常程序員在明確知道寫什么代碼之前,需要有一個將智力與創(chuàng)造性進行轉(zhuǎn)換的固有思考過程。換句話說,如果你不讓他想明白其中的關(guān)鍵,只是一味地命令他去編碼,他就會變成一只會寫代碼不會思考的猿猴。

[[158536]]

更重要的是,你應(yīng)該鼓勵程序員去追問「為什么」,這樣他們能夠更加投入到自己所做的工作中去。除非你們現(xiàn)在所做的是一個劍走偏鋒的極端玩意,或者是一個臨時補丁,不然的話都應(yīng)該和程序員交代清楚。如果一個程序員不再關(guān)心與項目有關(guān)的重要決定,也不再思考這些決定背后的邏輯,那么他應(yīng)該是已經(jīng)準備跳槽了。

如何防范這一問題?

想要解決這一問題最需要的就是在企業(yè)文化中建立起公開討論問題的機制。要留出固定的討論時間,讓整個團隊都參與討論接下來該做些什么、如何計劃。想要保持這種開放討論的企業(yè)文化,每個人都要對獨裁式的管理方式保持警覺。

尤其是在團隊遭遇困難的時刻(或者是截止日期臨近的時候),團隊成員需要更大聲地表達出自己的意見,而管理者則更需要小心謹慎地聆聽大家的心聲。

6、日復(fù)一日的工作總會不可避免地走向無聊

還有一點不得不提的是:在一個封閉的工作環(huán)境里長時間工作絕對會扼殺人感知生活的樂趣。這一點不僅僅是針對科技行業(yè)工作者或者是程序員崗位,放諸于其他行業(yè)也是一樣的。這一條幾乎適用于任何一個后臺操作崗位,每一天在相同的辦公室里,見著同樣一幫人,做著一成不變的工作,也沒有什么不同文化的碰撞。即便是在一個快速增長的企業(yè)環(huán)境中,縱然所有的事情從客觀角度看都在「良好」運行著,人們也會感覺自己有資格去尋找一些樂趣,并且會從不那么好的事情中感到沮喪。

如何與日常工作中滋生的無聊情緒做斗爭?

解決這一問題的關(guān)鍵就是盡力創(chuàng)造多樣化:招聘擁有不同背景以及來自不同國家的員工(比如我們的團隊現(xiàn)有的 6 個成員就分別來自英國、法國、俄羅斯和希臘)。如果你每天看到的同樣一幫人能夠給你帶來不同文化的沖擊,那么上班這件事肯定會更有趣一些。

同時,我們會積極地創(chuàng)造一些走出常規(guī)工作環(huán)境的機會。

例如我們會一起去參加一些行業(yè)聚會以及編程馬拉松活動。我們還會一起打造工作之外的副業(yè),共同研究我們喜歡的開源工具。除此之外我們還會不時地幫助其他團隊完成一些不那么技術(shù)性的工作(包括招聘、市場和分銷)。這么做并非因為我們都擅長這些工作,只是為了在日常工作中尋求改變。

[[158537]]

我們還會組織一些團隊活動(比如一起看一場秘密電影),我們每周還有一個固定的不需要事先預(yù)設(shè)主題的團隊活動時間。在這個自主活動時間里,有時候我們會一起專研技術(shù),有時候會頭腦風暴出一個新點子,有時候僅僅是聚在一起玩 LOL,或者是約好一同去泡吧。這個自由活動的美好之處就在于當我們坐下來討論該該去玩啥的時候,不到***一分鐘根本就不知道要去干什么。

給生活增添這一小小的未知數(shù)成為了我們對抗無聊的***一招。就像其他對抗無聊的方法一樣,這也不會是非常***的解決之道。我們要做的就是在原有基礎(chǔ)上不斷調(diào)整,找出一些新招數(shù),并且將其不斷地運用到對抗無聊的戰(zhàn)斗中。

責任編輯:倪明 來源: php新手
相關(guān)推薦

2015-12-07 11:44:31

程序員厭倦工作

2014-12-05 10:06:44

程序員

2014-10-13 13:40:07

程序員

2014-10-13 09:47:22

程序員工作

2015-04-17 09:46:53

程序員工作辛苦

2015-10-27 13:07:07

程序員壞建議

2013-12-24 09:59:48

程序員管理

2015-07-28 09:54:43

2011-11-16 16:18:38

程序員

2015-06-18 05:57:42

程序員適應(yīng)新工作

2009-04-07 11:17:48

程序員高薪求職

2009-05-21 15:58:12

程序員工作經(jīng)驗職場

2020-11-16 09:19:10

程序員IT互聯(lián)網(wǎng)

2011-11-02 09:57:28

程序員

2020-06-05 07:52:25

程序員離職編碼

2015-02-13 10:52:48

Java程序員

2015-03-23 09:57:48

程序員

2023-07-17 10:28:00

C/C++編程接口

2011-04-26 10:00:23

C語言程序員

2013-06-17 11:01:49

程序員離職
點贊
收藏

51CTO技術(shù)棧公眾號