你睡得那麽晚,一定是程序員吧
十年生死兩茫茫,寫程序,到天亮;
千行代碼,Bug何處藏;
縱使上線又怎樣,朝令改,夕斷腸;
領導每天新想法,天天改,日日忙;
相顧無言,惟有淚千行。
——程序員的真實寫照
在北上廣深一線城市,程序員的平均工資遠高於其他大部分行業,不得不承認,程序員這條道路比起其他大部分工作,收入更高,誘惑力更大。因此,大部分人都選擇從事程序開發;但高收入必然伴隨著高風險和高負荷,加班熬夜趕進度是再平常不過的事情。
用程序員自己的話說,那就是——幹得比驢累,吃得比豬差,起得比雞早,睡得比狗晚,看上去比誰都好,五年後比誰都老。他們長期超負荷的精神壓力,不良的生活方式,再加上城市環境的汙染,使得健康問題蓄積已久,最終導致不可逆的病變甚至死亡。
2015年3月24日,深圳36歲的IT男張斌被發現猝死在公司租住的酒店馬桶上面,當日淩晨1點他還發出了最後一封工作郵件。
2015年12月13日,騰訊技術研發中心語音引擎組副組長李俊明,在陪懷孕的妻子散步時猝死。雖然他的死亡並非發生在加班過程中,但不少騰訊員工認為是長期加班造成的。
2016年6月23日,阿裏數據技術及產品部總監歐吉良打羽毛球猝死,IT人的健康再次引發關註。
一個農民工猝死了,人們會懷疑和土地有關。一個官員猝死了,人們會懷疑和貪汙有關。一個程序員猝死了,那他就真的是猝死了。因為有的人靠體力工作,有的人靠腦力工作,程序員是靠腦力、體力和精力工作……
我們為逝去的人感到惋惜,那麽怎樣才能避免加班熬夜?怎樣才能高效的進行程序開發呢?
我們調查了近十位研發經驗在5年以上的富有經驗的技術管理者,看他們會給出怎樣的建議:
1.要想避免熬夜加班,首先公司體制上就需要改善,大部分公司設定的研發節奏快,研發人員少,那麽就不得不占用開發人員的休息時間來趕工作進度,延長項目周期,適當補充研發人員數量,可以有效解決熬夜加班問題;
2.開發模式的轉變,在傳統的瀑布開發過程中,需求文檔的設計、分析占用了太多的時間,等到開發完成後,市場需求早已變更,有些需求又不得不重新返工進行開發,建議采用敏捷開發的模式,以人為中心,每一小個叠代快速交付出獨立的產品,快速應對市場變化;
3.善於使用自動化工具(當然是在公司允許的情況下),持續集成、自動化代碼檢查、測試、運維等工具,提升效率,減少重復的工作量。現在很多大企業都不斷推出各種開發工具,雲計算和雲平臺的發展日新月異,比如華為軟件開發雲、阿裏雲、騰訊雲等等。
4.提高代碼編寫質量,如:在編寫代碼時需要寫好註釋說明,盡量編寫不言自明的代碼,這樣可以方便後續人員維護;在代碼中盡量不要使用純數字,因其他人無法理解它代表什麽含義,一定要用一個命名常量來代表你想表達的數字,即使它在代碼中只出現一次;再如:常用的模塊、函數,最好能夠封裝成常用插件,這樣每次使用直接調用插件而不是浪費時間重新編寫;平時多總結日常經驗,代碼質量才會逐步提升;
5.學會團隊配合,一個研發團隊中存在的不同角色和不同責任,各個角色之間緊密銜接,多交流溝通,避免出現“分幫結夥、各幹各的”現象,團隊leader不僅要從產品上把控進度,更要承擔起團隊建設的責任,成為團隊強有力的粘合劑;
6.學會重構代碼,修正錯誤的過程,需要不斷的重構。除了讓程序結構保持清晰,重構還有一個好處是會促使程序員去思考。修正錯誤時的思考仍然處於一個非常重要的地位。如果在修正錯誤的時候只看到了眼前的錯誤,那很危險,因為你不知道你所做的事情,到底是改正錯誤,還是隱藏錯誤。所以改錯之前,必須思考,必須對錯誤反復慎密地邏輯推敲,必要的時候甚至要從整體框架去探尋錯誤的原因。
你睡得那麽晚,一定是程序員吧