前言
昨天在刷朋友圈,看到深圳一名24歲的程式設計師小哥,在週六加班時起身因為過度疲勞而摔倒,幸好沒有什麼健康危險。但這件事也引起了我深深的反思,因為身邊很多人在網際網路行業或者就是在做程式設計師,所以覺得很有必要給大家分享一些自己的建議。
加班文化
在很多網際網路科技公司或者BAT等一線公司裡,加班變成一種常態。995,996變成了大家的潛意識,甚至於很多中小公司和BAT網易去對比,說人家加班都到晚上十點十一點,我們九點已經很好了。也有公司領導把加班的人,加班越狠的人作為重點鼓吹的物件,提倡大家加班。
這裡加班是好還是壞,聽我娓娓道來。
加班在做什麼
趕需求
有絕大部分原因是因為趕需求,那麼為什麼需求在正常的節點不能完成呢?一定要加班去做呢?大家看下自己的公司對號入座。
- 客戶緊急需求,我就是需要什麼時間上什麼功能啊
- 市場需求,競品公司都在開發這個功能,我們提前做完,哪怕是提前一個月就能爭取到優勢
- 公司想最大可能的榨取你的剩餘價值,眾所周知,加班一般沒有任何加班費的,好一點的公司給點加班餐,再好的公司給你報銷叫車回家的費用,再好的公司允許你第二天上班晚一點來。看看自己公司做到了什麼程度吧。
- KPI,大部分部門都會有KPI作為部門考核的指標,而如何體現自己部門厲害呢?那還用說,當然是上線了更多功能。自己有發現有相當一部分公司在定自己季度計劃的時候,其實就是按照加班才能做完制定的,不知道有沒有和自己的團隊商量過呢。
- 獎懲措施。其實我覺得偶爾加班也是允許的,但是加班過後還是加班,沒有任何過度,大家白白加班了,沒有任何獎勵,哪怕是口頭的或者簡簡單單吃頓飯,上班時間裡團建個一兩天。
需求合理麼
大部分的需求都是合理的,產品提的都是合理的,公司領導或者產品經理肯定會這樣講。我只是提下想法,看看是否存在以下需求場景導致不必要的加班。
- 客戶或者產品經理反覆沒有原則沒有限制的修改
- 不斷的深入的需求細化
- 單位時期內需求總數不定,不斷累加
- 過高的單方面預估需求研發能力,過低估計專案需要的時間成本和人力成本
- 快、好、省在中小公司不可能同時達到的噩夢。現在很多問題就是因為前期做的不細緻,後期一系列的債務,影響了正常的開發進度
- 團隊體制和流程不合理,對需求提交方式,消化的方式讓整個過程沒有任何控制,沒有節點概念
保證“程式碼”質量
其實和其他職能一樣,程式設計師需要保證自己的工作質量,也就是程式碼質量,還有就是自己的交付。
舉例說明:如果自己的估期是兩天完成一個功能,那麼就要自己實際的完成,並且負責其後的維護和優化工作。這是毫無疑問的,如果因為自己的原因,無論是能力還是其他,要保證自己的這個功能點如期交付。當然最直接的方式就是自己加班完成需求、加班進行功能維護,這是你的事情,責無旁貸。
如果在我工期內完成了負責的事情,其他的需求或者臨時任務,還沒有下班,我也有義務接,但如果已經下班了,其實我們可以選擇拒絕。前提是這個點不是緊急到必須馬上改,馬上釋出的。
那麼為什麼會有緊急bug或者需求呢?追根溯源下:
緊急需求或者bug(短期)
一般情況下可能有以下的幾種原因:(不考慮完整需求)
- 之前的邏輯不夠完善嚴謹,產品細節不夠
- 之前的測試不夠完整,沒有進行完整的線上環境的驗證和迴歸
- 不同開發環境和線上的差異
- 技術角度,技術選型,技術設計的失敗或者漏洞
- 對產品迭代概念不清晰,總是每次迭代要求的是完美產品,其實每次上線的保證應該是產品範圍內正常使用的功能即可
- 沒有預留足夠的測試時間,沒有科學嚴謹的單元測試和測試用例
綜上:緊急需要改的小需求或者bug是無法完全避免的,但研發團隊應該注意到從源頭減少這種可能性。讓大家更多的投入到完整的科學的研發中。
加班費
談了這麼多,講下個人對加班費的看法。其實偶爾加班到九點,我自己個人覺得無可厚非。畢竟是這個行業職業的特徵,但我堅決不支援995,996這種。那麼我分幾種情況說明吧。
1 沒有任何需求,公司也要求到995,996,提倡加班文化,趁早考慮
2 有做不完的需求,對自己的技術成長沒有任何幫助,一年前進去什麼樣,一年後還是什麼樣,趁早考慮
3 按照真實需求的優先順序,需求總量,規律性的加班,可以接受。可以適度的建議,學習或者就是回家
如果我加班了,該不該給加班費或者相關的補貼,給的這個錢能彌補我自己的健康或者是值得麼、
我只是一名員工
加班沒有任何補貼的就不要考慮了,還有部分夥伴可能公司離家很遠,如果這時候公司不給你報銷回家車費,自己這方面一個是比較扎心,一個是經濟支出上多了很大一筆。當然這是從“打工”角度考慮的。
如果有一定的加班費或者專案費或者補貼了,這部分能和正常下班做其他的事情等值麼。對於剛畢業的學生,我個人建議是稍微辛苦一點很必要的,因為職業技能和職場規則很多不清楚,剛從學校畢業很多習慣都來不及改善,經過職場一點加班文化的薰陶和強度的工作鍛鍊,未嘗不是一件好事。但如果你已經工作四五年,甚至更久了,你還需要通過無節制沒有任何意義的加班來提高自己麼?
當我只是一名員工的時候。看不到需求背後的意義,如果這部分有了對應的榮耀,也非常難能落實到我個人頭上。更多時候,上級是把完成這部分需求的優秀能力認定給了tl。很多時候,tl的確能力還不錯的話,可以帶領任何一個還不錯的團隊加班完成需求。這讓我想起來一句古詩“一將功成萬骨枯”,我們雖然沒有那麼慘,但是你透支的身體遲早會告訴你的。
如果我是認可公司的tl
其實對於認可公司的管理者來言,沒有什麼加班不加班之說,只有做事情,這件事值得我做麼,值得我怎樣做,做完之後是否能得到公司的認可,自己在職業路上有多大的後續可能。
對於這部分人,我自己也是想成為這樣的人。我只建議,大家拼可以,注意身體,注意公司是什麼樣的,你的領導能否認可你的付出,能否認可你的管理,能不能給你許可權。很多時候管理會反過來講,你做的足夠好,做到無可替代就自然得到認可、得到權利了。這其實有點虛的吧,對於大部分進階管理的人,其實其前方都是迷茫的,如果我做過總經理當然知道總經理的能力應該如何發揮出來,但我是在去總經理的路上,怎麼知道公司給了我一條這樣的路,又該如何一步步的走向這樣的路,直接上級是怎樣的直接關係到了這點。
公司是什麼樣的也很重要,包括高管所奠定的公司文化。之前聽廣播的時候,聽到一個為公司服務了24年的高管,得重病的時候,公司馬上把他的工資降到了最低標準。客觀的人會說,公司不養閒人。但24年那已經不是一份工作了,而是一個家。如果你將要付出的是這樣一個冷血無情的“家”,趁早對自己的小家好一點,早點下班,你的老婆孩子,你未來的女朋友更需要你。
投資自己
與其讓誰誰為自己買單,還不如自己投資自己,這才是理性的自己,感性的自己。作為一名技術人員,除了本身的技術水平,自己的管理水平,情商,家庭美滿幸福,自己身心愉悅也都是不可缺失的閉環。如果你的加班讓進丟失了這些,想下是否值得,真的值得麼?
投資給健康
正常的生物鐘,早睡早起,每天至少8小時的睡眠,中午最好午休下。
這裡我強烈建議大家番茄工作法瞭解一下,每個小時給自己的身體精神放鬆調節一下,對自己的持續工作會更好。更多的番茄工作法實踐,請加我微信或者查閱我的部落格(達摩兵的空間),百度第一條就是哦。
投資給技術
如果你的需求完成了,已經下班時間了,學習下最新的技術,做下自己的工作總結,技術提升,對自己的持續職業發展有很大的裨益。
如果公司已經有對應的技術週會,或者培訓學習機會,那更好了,自己好好把握。
當你如果面試或者跳槽的時候,就知道這份能力才是真正有用的,能讓自己拿更多錢,去做自己想做的事情的基本前提。
投資給管理
如果你的職業發展路線是後續管理,因為大部分程式設計師不會一直做底層的技術,無論你後續是技術管理還是專案管理或者業務管理,必要的管理技能是無論如何不能一點不懂的。
對於管理是很多公司基本不會給任何培訓或者學習的,如何在這方面有較完整的認知,來讓自己在有機會的時候正常上位,管理方面的知識包括技術和人際交往能力非常必要。
投資給社交
職業發展中,經常會提到,二十歲靠奮鬥,三十歲靠管理,四十歲靠社交。不是沒有任何道理的。
當你專業能力和管理能力達到一定等級的時候,自己的社交對自己的發展是最大價值的。因為自己越來越多的事情需要給其他人做,越來越多的資源或者幫助是求助於自己的社交圈的。
投資給家庭
家庭是我們真正的家,有太多人因為事業疏忽了家庭,甚至於家庭破裂。很多人會說,有了事業才能有家庭,但這不是二選一的問題,至少我認為不是,我們應該抽取一定的時間投資給家庭,一起看電視、逛超市、出去旅遊、做飯等等。
至於事業,那是一輩子的事情,但自己年輕的時間只有這麼一次。應該沒有人真的願意把自己睜眼的時間全交給程式碼吧。