起因
這是我無意中在篩選簡歷時,看到一位朋友發布的求職說明中,明確指出,外包勿擾,並給出了他做出這個決定的理由:
過去若干年間,他一直在中軟國際從事.NET方向的軟件研發,雖然工作了很多年,但是做的項目類型特別多,總感覺沒什么積累,而且工作很累,經常要加班,壓力很大。不僅如此,由於外包類型的項目,往往需要駐場開發,一旦在客戶現場進行開發,其實都會成為封閉式開發,每天投入工作的工時往往會超過十幾個小時。而且在客戶現場的開發時,有時候就是低等公民,得承受來自各方的壓力。
前不久也剛剛看到一位來自西安軟通動力的資深Java工程師,由於長時間加班后引發身體疾病,並最終猝死,還得不到工傷補償的新聞也觸動了我們的心。
這邊的互聯網公司從業人員還可以吐槽每天996,讓自己成為被公司圈養的小綿羊,更是讓自己的家庭生活都受到了無窮影響;那邊的外包公司從業人員們顯然沒有互聯網公司這么多的露臉機會,哪里有時間運營自己的公眾號啊,每天都被客戶壓榨得死死的,還得跪下來對客戶說:爸爸,再愛我一次!
當然,坦率而言,現在國內的IT行業現狀其實壓力都很大,無論是外包公司、還是互聯網公司,如果是幾年前大環境還好的時候,或許大家壓力大點,至少不會餓肚子,現在冬天來了,不僅壓力大,而且還吃不飽穿不暖,一旦遇到公司困境,還得面臨被裁員的后果。
好吧,在這篇文章中,我還是不輸出焦慮了,只單純的討論一下這個問題。
在外包公司做增刪改查有前途么?
有沒有感覺,這是一個通用的句式:干xxx有前途么?
例如,在百度里面輸入,“干程序”,首先會自動提示的就是“干程序員有沒有前景”?好吧,有沒有前途我也說不准,我就單純的探討幾個問題,什么叫有前途;在外包公司有前途么;做增刪改查有前途么?
什么叫做有前途?
世俗的說,金錢、名譽和地位大概就是許多人在追求的前途。而在IT領域,由於無法與從事公務員和經商的其他同齡人相比,往往會用待遇和崗位來形容。例如有時候總會以為技術總監一定是值得追求的前途;或者為了更高的收入,會選擇一些特定的行業。例如這幾年相繼爆雷的P2P行業,在這些行業中的開發者的工資往往都非常高。
然而,當公司的套路被人揭穿之后,無數投資人的巨額投資化作一堆廢紙,這些P2P企業公司的開發者們在這段時間從公司獲得的所有收入都會被列入非法所得,必須上繳給公安機關,以便清償債務。
不僅如此,有時候還不能過度的宣傳自己在這些行業的職場工作經驗,不然可能會被下家認為心術不正。
愛因斯坦說:我堅信,世界上的財富無法促進人類發展,即使它掌握在哪些仍想達到此目標的人手中也無濟於事。金錢只能滋生人們的自私自利,並使其不能自持地加以濫用。
當今時代終究是個世俗的世界。但追求金錢和Title所謂的看似有前途的工作,還是得建立道德和法律的基礎上。
在外包公司有前途么?
外包公司的主要盈利點,其實是軟件研發過程管理或者軟件項目管理能力,一套優秀的軟件項目管理流程體系,往往能夠實現軟件開發過程中的生產力最大化,進而為企業的發展帶來巨大的利潤。
在外包公司,主要的收入其實是來源於項目參與人員的人工費用,一般會采用“工料合同”的形式。這種合同又稱為單價合同,一般會根據產品在研發過程中的實際投入或服務來計算合同總價。
當然,其實許多外包公司會采用這種方式來進行工作量的評估,然后再用總價合同的形式來簽訂合同,畢竟“工料合同”其實浮動空間很大,容易造成甲方的成本超支嚴重,而使用總價合同就可以將風險轉嫁給乙方,對於甲方來說自然而然就實現了利益最大化了。
而總價合同的特點是應該明確設定需求、對功能的工作量評估都應該盡可能的科學,問題是,客戶明白他想要什么么?大概率客戶並不懂他想要什么,或者他以為他懂他想要什么,而且你以為你也懂他想要什么。於是陷入雙方需求的拉鋸戰,軟件的風險急劇提高,讓苦逼的乙方程序員們成為砧板上的肉,被迫每天犧牲自己的時間,拿有限的生命投入到無窮無盡的需求大坑中。
而且有時候由於行業不同,還會陷入需求陷阱中,各行如隔山,客戶想要的,往往與你能提供的,存在很大的差異。例如,連微軟都會被武漢上訴,要求賠償其在智慧城市項目中造成的大幾千萬損失,一般般的外包公司就更不用說了。
如果遇到這種情況,請勇敢的選擇拒絕,或者使自己成為更專業的人。努力花更多的時間學習行業知識,然后用數據或階段性成果讓客戶盡可能的無話可說吧。
當然並非所有的外包公司都是這種情況,例如像SAP或者Thoughtworks,其實也可以被世俗的理解為外包公司,他們也是為客戶提供外包服務,但是由於他們是行業內的領先者,能夠為客戶需求提供更加專業的建議,所以他們有資格找客戶簽署“工料合同”。
例如一個SAP的服務工程師,從上飛機起就開始計算工時費用,每天動輒萬元的服務費,服務工程師的工資自然而然也低不到哪里去了。我一位同事他哥哥就是從事SAP的外包服務,他說他哥哥每年只上半年班,工資超過3萬一個月。。。嗯,好吧,這種外包就等同於有前途。
依然有許多公司會走在簽署總價合同的外包公司的道路上,畢竟企業生存是第一要務,萬一哪天接到一個合適的項目,讓公司能夠順利的擺脫外包公司的這塊皮,進入細分市場,獲得進一步的生機呢?
不過大部分外包公司或許其實並沒有那么好的命,而且還會由於內卷化(指優秀員工逐漸流失,而新人難以加入,最后被中庸的老員工主宰企業的命運)最終越來越喪失競爭力,並最終只能涼涼。而且缺乏核心主業的外包公司確實很難獲得技能上的積累,這需要開發者能夠提高自己的技術學習能力,努力使自己成為最專業的工程師。
做增刪改查有前途么?
許多開發者都吐槽,每天的工作都是CRUD,也有許多開發者經常吐槽身邊的那些開發者沒前途,只會增刪改查。
怎么覺得這個問題為啥這么魔性呢?難道你和他們不是同一撥人么?
有時候還會看到有人吐槽,說每天都在做CRUD的業務開發,感覺自己人都要玩廢了。還問我怎么想。
我個人認為CRUD才是公司業務的常態,只有能夠把CRUD玩得非常好,公司業務才能獲得更快的發展。從表面上看,CRUD工程師的主要職責就是建表、封裝接口、然后讓接口輸出數據符合客戶端需求。實際上這里面依然牽涉到許多充滿技術含量的東西。
例如,該如何建表呢?從海量的用戶需求中,分析出與系統息息相關的核心部分,並分析出符合用戶需求的核心領域,這種業務分析與設計能力是一位軟件工程師非常重要的核心技能。
例如,以前都是擼sql,現在都用orm了,是不是覺得很香?增刪改查一樣也充滿了期待啊。
該怎么建表,也並非想象中那么簡單。例如主鍵是用自增序列,還是用UUID,該怎么設計索引,如何設計緩存,如何運用分表分庫策略?這些看起來很簡單的東西,往往並不簡單。
除此之外,代碼的質量本身,也是一件值得深入鑽研的方面,例如《代碼整潔之道》和《重構改善既有代碼的藝術》這兩本書就專門介紹了如何寫代碼和如何把代碼寫好。這也是一件看起來簡單,卻並不簡單的事情。
除此之外,溝通技能、架構能力、風險意識,也都會在這些CRUD的開發過程中得以體現。
為什么總是會認為CRUD毫無挑戰呢。如果你已經成為軟件開發領域的大牛,請收下我的膝蓋,否則大概率是因為你已經走在了雲程序員的路上,把一切問題都想象得太簡單了吧。
突然想起之前看的的一張段子,說火箭其實沒什么技術含量,因為中國古時候早就有了。還有之前看的郭德綱的段子,他說:如果我跟一位火箭工程師討論火箭的燃料不應該用氫氧,應該燒煤,對方正眼看了我一眼,那就是我輸。
嗯,雲程序員們,咱們離專業開發者還有不少差距啊!
# 總結
回到主題:在外包公司做增刪改查有前途么?
- 在外包公司也好,非外包公司也好,努力使自己成為專業的人,都會有前途。
- 不管在哪家公司,如果你覺得不開心可以離去;但是如果留下來了,請珍惜每一段時光,上帝既會給你關門,也往往會給你開一扇窗戶,只要用心去發現,你總會有所收獲。
- 其實認真干好每一件事情,都會充滿前途。如果過於敏感,總覺得干這個沒前途,干那個沒前途,那大概你應該去選擇創業。那里你可以找到屬於你的好歸宿。
- IT的職場的時光說漫長也漫長,說短暫也短暫。干得好就是四十年,干得不好,就是五年。
- 或許每個人都有機會花五年時間成為技術總監,但是卻只有少數人,能夠成為真正合格的工程師。