離職總結:大公司與小公司的個人體驗

CSDN學院發表於2020-04-04

離職在即,在準備下一個工作環境的這段時間,忽然有一陣感慨,工作近五年,在這段時間中,體驗了兩種不同的工作環境:一個規模很大,各種開發體系完備的大公司,另一個(也是目前的)是一個規模 100 人左右的小公司。目前正在準備離職中,對於兩種不同的環境,很想評論一些什麼,但是由於目前工作年限較低,也沒什麼資格作什麼評論,在這個時間,在這樣一個心態下,就給自己留點什麼,對於今後彷徨時,給自己一個參考(不說誰好誰壞)。



很多人在買車時擔心,車子是好是壞,總是會參考各種論壇的各種評論,近來我也在逛論壇,也在參考其他人的評論,但是好壞參半,究竟如何選擇仍然拿不定主意,但是,其中的一條吸引了我的目光:汽車就像是一段路,而大家的口碑就是地圖,地圖只是一個參考,路好不好走還是要自己走走才知道。


在離職的時候彷徨過,走了之後要找一個怎樣的工作,要去一個怎樣的公司,要走一個怎樣的方向,記得當時很流行的就是去一個小公司拼幾年,沒有那麼多文件,沒有那麼多流程,你只要編碼就好,而且錢多多。


當時真的就覺得,小公司沒有這些流程,效率一定會高很多,卻不甘心由一個那麼大的公司跳到一個只有一間小辦公室這樣的公司。拿不定主意的時候又想到了北漂,多麼流行的一個就業方向,雖然嚮往,卻沒有向北京投出一個簡歷。


後來有一個外企的機會,藉著這個機會,也去一趟首都,總不至於在中國這麼久卻沒去過首都,太說不過去了,但是,當我真正坐在會議室裡,看著面試官很悠閒的聽完我所做過的專案,就結束了面試後,開始感覺到現實的殘酷和自身的不足了,北漂適合我麼?當我在遊北京看到每天的地鐵二號線的人山人海時,我放棄了,這裡不適合我。是啊,適不適合,不是別人一句話說的算的,還是要親自體驗才能知道是否合適。



流程控制,大公司講流程,全程 QA 跟隨,每一個環節都有很正式的「小儀式」。參與過的一定都很痛苦,QA 怎麼那麼煩啊,什麼事都管,每天的例會,每週的早會,都會有 QA 嘮嘮叨叨……


而小公司,流程上沒那麼複雜,開發人員結束開發後,直接用下 U 盤將程式拷過去安裝和除錯就 OK 了。沒有那麼多流程上的東西真的很輕鬆,換來的是我對自己開發的程式沒有底。就像我原來的部門朋友在一次聊天時和我感慨道,原來的公司的體系真健全,我現在的公司都沒有什麼流程上的控制,我做出來的東西都不敢往外發。


是啊,當自己做的軟體人命關天時,都會有這種感覺,當然了,我也感覺到了,所以現在我認識到流程的重要性,也在公司沒人在意的情況下堅持有流程上的記錄,堅持按照以前公司的流程來進行開發(雖然只是有模有樣的參考)。流程還是有必要的。


客戶源的不同,很隨便的做事風格就會有很隨便的客戶。所以,大公司一般接到的專案都是一些成熟的企業的專案,小公司的客戶一般就很隨便了。最直接的體會就是,我的第一個專案,在給客戶釋出版本的時候,Release Note 中的釋出程式的格式錯誤了,每一次釋出都應該是單獨的,而我將所有的程式版本累計加到了表格中,在連續三個版本後,客戶那邊就來確認這是怎麼回事。而目前給我的感覺就是,我們和客戶交流,隨便說說,做做,沒問題就 OK 了。


以前和客戶的溝通是郵件,而每一次的問題都會有郵件伴隨確認,而目前呢,只需要 QQ 就 OK 了。一個電話打完也就 OK 了。你隨便,客戶也就隨便了,什麼事都沒有很好的依據了,想修改什麼,就修改什麼了,也沒辦法,我們服務於客戶了,我們就是在要飯吃,但是,如果我們太隨便,那就真的是要飯的了,在專案上,如果單靠嘴來確定什麼,將來是很吃虧的……你都隨便了,客戶當然更隨便了。



開發習慣上的不同,來到小公司最開心的一件事是什麼,我寫程式碼不用去管編碼規範了。什麼控制程式碼行啊,什麼格式啊,統統甩一邊。說實在的,原來在大公司裡,要完成一個功能很不容易了,更何況還要參照編碼規範。但是究竟從什麼時候開始關注編碼規範的呢,應該是我在看到了一段又 700 多行一個函式的時候吧,沒錯,700~1000 行的一個函式,去掉註釋應該有 700 行左右吧。


當然這一定有他的道理的,開發時間短。當然每個人的開發習慣不同,導致開發習慣不同,能寫出 700 行的一個函式應該算是高手了。但是對我可能不太習慣,在今後的開發,無論條件多麼寬鬆,都應該嚴格要求,不是因為程式碼多好看,而是今後的維護成本。


如果可以,別在新進入一個公司就承擔這個公司的基於 base 的優化與重構。基於此,我比較贊同大公司的經驗豐富的熟悉系統的人來帶領較聰明或較勤懇地新人來做。而如果讓新人趕鴨子上架的方式單獨進行這方面的開發,就有點得不償失了。


如果是從 0 開始開發也許還不錯,但是如果基於 base 的,熟悉原始碼是一方面,另一方面修改與除錯也是一項耗費成本的因素,修改的程式碼是否能夠讓老程式碼正常工作,不是一個小時的除錯能檢測出來的。


當然,無論大公司還是小公司,研發工作都是一個費力不討好的工作,你的成績永遠蓋不過你的過失。在大公司,我可以用兩週的時間去除錯別人四周未出結果的研發工作,卻在後來因為領導實在等不下去的時候以這麼長時間沒弄出來而告終,當然,科技這東西就是要短時間出成果的,沒有實力就不要隨便去擔任研發工作。


而基於 base 的小公司式優化與重構,在時間週期短的情況下最好不要去嘗試,當然,如果你有足夠的實力和足夠聰明的腦子,還是要嘗試的,出於時間的考慮,boss 一定會希望你在短期熟悉系統,並進行重構和優化,boss 永遠是 boss,員工永遠要去完成 boss 的命令,這是必然的,無論對錯,在短時間的開發週期中,你要靈活……



總結我的這次重構上的失敗,完全出於自大,開始有模有樣的設計出了一套框架,對於熟悉的部分,當然是重構的有模有樣,但是在專案的後期,由於時間的關係,沒有時間去熟悉其他部分的功能,得到的命令是把原來的東西拿來用吧,但是你懂的,很隨便的程式開發出來,有很多東西是可以通過全域性變數來解決的,但是你設計的各種模組對於把老程式碼整合進來還是有挺大困難……也許是我太笨(就是太笨)。沒辦法將這樣的系統整合在一起,但是我的想法中,如果真的整合在一起,這樣似模組又毫無模組可言的東西……真的不如沒有。


其實無所謂好與不好,每個人根據自己的工作個性,來尋找適合自己的工作環境。就像在正常情況下,測試和開發是有點敵對的,但是作為體驗了測試和開發的工作之後,在測試時我理解開發的固執,在做開發時我也能理解測試的找茬,這樣就很好了。都是為了專案能做好,只是出發點不同。


其實僅僅工作了五年就來談大小公司的區別,只是個人的淺見,離職之際,給自己的五年工作經歷作一個總結,沒有貶低小公司讚美大公司的意思,也沒有諷刺大公司歌頌小公司的意思。就像買車,試駕過多個車型之後,才知道自己到底喜歡什麼車,而不是通過論壇的評論就決定的。



總結一下,無論下一次的工作是什麼樣的環境,都要將經歷中的好的方面作參考,不好的方面作警示:

1. 與客戶要做到涉及專案要正規,凡是專案上的東西有理有據,一定要有確認。


2. 遵守流程,無論大小專案,有流程上的確認才會有底,流程上別含糊,你含糊的不是客戶,含糊的其實是自己。 


3. 程式設計師更要有文件,你根本不知道你留下的程式碼會被多少人罵,你也不一定會記得一年前你寫的一個函式是什麼意思(老掉牙的建議)


4. 不要輕易接受一個研發的專案或者重構的專案,尤其是單兵作戰的時候,更何況沒實力呢,不要認為自己在一個公司裡有了一點實力就很強大了,也不要被領導的信任衝昏了頭腦。


一則通知


CSDN學院成立了技術實訓營,目的在於培養更多優秀的工程師,如果你近期考慮學習以下方向,歡迎聯絡我們的課程老師哦~


  • 人工智慧工程師                         

  •  Python全棧工程師              

  • WEB全棧工程師                         

  • PHP全棧工程師

  • UI/UE全棧工程師                         


不妨和老師聊一聊

相關文章