軟體外包有前途嗎?

本人軟體專業畢業,剛畢業就在一家軟體公司做人力外包,在客戶公司做軟體操作,事都是我們干,但卻不把我們當人看,這樣下去有前景可言嗎,工資和開發的同學比算中等水平,應該辭職嗎


作者:jason rock

鏈接:在外包軟體公司工作是什麼體驗? - jason rock 的回答

來源:知乎

著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。

本人曾在一家軟體外包公司幹了六年,從程序員干到技術經理再到事業部經理,然後跳槽到現在的互聯網公司做產品線負責人,談談自己在外包公司的經歷和感受。

我大學是非計算機專業,對計算機網路編程特別感興趣,然後大學四年一直廢寢忘食的自學,為了鍛煉自己的實操水平,免費幫大學信息中心老師做網站做B/S軟體,自己也去做一些練手的項目,畢業以後最想做的工作就是到軟體公司做軟體,那時還不知道軟體外包公司和軟體產品公司有啥區別,只要能讓我寫代碼就行了,然後畢業後迷迷糊糊的就進了四川XXX網路科技有限公司。

該公司主要是做政府業務的,政府的網站呀、業務系統呀、集成什麼的都做。我進去時應聘的是互聯網工程師(聽起還蠻高大上的),進去後就立馬開始工作,做的是些啥項目呢,網站,投票系統,報名系統,OA業務工作系統等等,反正有啥做啥,而且時間壓縮得比較緊,加班加點那是常有的事,因為跟客戶簽定的合同都是有期限的,到期完不成,不僅整個項目的利潤要受影響,一堆子人的獎金都要受影響,開發線上的人壓力都是蠻大的,當時我們基本上都是一個項目做完馬上做下一個項目,想重構一下代碼,想整理下工具類,想總結一下業務知識和項目經驗,根本不會給你時間。這不能怪公司,因為外包公司的盈利模式就是得靠不停接項目才能生存,項目越多,利潤才會多,壓縮開發周期才能使利潤最大化,至於軟體質量,我知道的就是能用,能滿足功能,至於好不好用,代碼好不好維護、規不規範,軟體性能之類的,用大腦想一想就知道了,這得額外設多少個崗位,增加多少時間呀,甲方沒有獨立的第三方公司幫忙評估和驗收的話,誰願意花這錢?

軟體外包公司和軟體產品公司如何區分呢?主要是看該公司有沒有核心產品,開發人員的主要精力是在升級完善產品,還是在接各種項目,盈利模式是靠不停的接活還是靠賣軟體賺錢,當然有基於核心產品做一些定製開發的公司,這種公司我願意稱之為軟體產品公司。

那麼軟體外包公司能不能學到技術和經驗呢?以我之前所在的公司為例,剛畢業的底子好的同學可以獨立實操一些小項目,這些項目的難度都不大,能收穫的東西也就是鞏固下語法,找找各種業務場景的資料庫設計和代碼操作的感覺,在界面上呈現數據,提交表單,做JS驗證之類的,至於GOF設計模式,領域驅動設計、面向對象設計、面向介面編程、AOP、IOC、多層架構這些東西即使你聽說過,你也很難理為什麼要用,也很少有機會用。因為外包開發的軟體的生命周期對公司來說,交付客戶就結束了,不像產品一樣需要不停的升級和迭代,所以你很難體會到大牛們所說的擴展呀,靈活呀之類的好處了,況且要設計一個擴展性且架構良好的面向對象系統,花費的時間和精力都是巨大的,而且好的架構都是演化和重構而來的,你從事的工種決定了你很難有機會經歷系統的演化,入駐甲方一起辦公的,別人會有核心的框架,即使框架再強大,你乾的也只是臟活累活,更不用說接觸到互聯網行業裏海量高並發處理的技術了,這也就是很多做互聯網的攻城獅看不起外包公司技術人員的原因。而且你就算有那個能力,公司也很難會認可(公司需要的是開發速度快),你的客戶更不會認可(客戶需要的是按時交付他要的軟體),你很難只靠工作時間來提升你的技術水平和技術修養。我個人的建議,如果的公司沒有設立核心技術小團隊的話,你又不善於溝通,不喜歡寫方案,不適合走管理路線的話,你要麼在外派甲方時就給對方留下好印象,積極爭取留在甲方的機會;要麼頂多操練兩年就去軟體產品公司或互聯網公司,跳槽之前,建議去網上找幾個代碼質量比較高的開源系統看一看,不管有多難,都要啃下來,絕對會進步飛速,讓面試官刮目相看,不會因為你軟體外包公司的出身就嫌棄你,否則只是做一般的技術人員待下去很容易浪費青春,以後外包公司沒那麼多項目了,再出去做技術,你會的太淺,又不甘心跟剛畢業兩三年的拿一樣工資,別人精力比你旺盛,能加的班比你多;做領域專家吧,你接觸過的業務雖多,但是不精。

接下來談一談軟體外包公司的薪資待遇。據我了解的大多數軟體外包公司的薪資結構都是由基本工資+項目獎金構成。我在成都這邊,09年入職時工資是3000元,然後加上項目獎金的話,大約一個月能拿到4K多接近5K的樣子,今年4月面試過一個外包公司跳槽來的哥們,他是一般開發人員,各種收入加完能拿到7K左右,他們公司是四川某上市軟體公司下面的子公司,另一外包公司的項目經理大約能拿到10K左右,外包公司的項目獎金會有很大的風險性,得等項目回全款時才會發,如果項目沒有做完或未回款時就離職,這個獎金基本上就是打水漂,很多公司都會找理由不給,一個項目的總獎金會由多個人來分(項目經理、設計師、開發和測試等等),很容易產生矛盾。就一般的軟體外包公司來說,漲薪空間不大,薪水也不具備想像空間,因為業務模式決定了他不能像軟體產品一樣具備可複製性,也不能像互聯網平台一樣具備海量用戶,有多種變現渠道,公司想賺更多的錢就得接更多的項目,接更多的項目,就需要招更多的人,沒有更的利潤來漲薪,而且老闆也會覺得性價比不划算,所以我在之前待得最久的公司做到了事業部經理時還是離職了,離職後接到國內某大型外包公司成都分公司的電話(某軟國際),讓我去面試技術總監,他們薪水能給到15K以上,回顧了下30歲前的職業生涯,實在不想再忍受很多軟體明明有優化空間,卻只能束之高閣,很多工位干幾個月就換面孔了,然後斷然拒絕了,一入外包深似海,只剩兩行淚,勸君三思。


建議在被不當人看的階段,自己修鍊內功,然後技術基礎紮實了,跳槽到有前途的公司會好點。你這種屬於人力外包,很容易隨著項目跳來跳去,且你做的事情可能難以使你形成自己的核心競爭力。


在中國,世人已習慣於把金錢與聲譽賦予,販賣工程師所創造產品的,商人;商人建造一部部商業機器,為追求最大利益,降低風險,他們把程序員變成流水線上的苦力;甚至有些可笑的商人,認為用許多平庸的程序員,就可以取代優秀的程序員;他們認為程序員最好不要有太多的想法和創造力,程序員唯一的職責就是將產品規格如實地翻譯成代碼,而不是設計軟體。總之,在中國程序員被大規模代碼工人化,程序員們被戲稱為碼農或IT民工。

這就是外包,普遍存在於行業軟體中,如ERP實施,銀行/製造業/能源/醫藥等企業的IT部門,一般採取外包。

http://www.7yes.com / 職業社交,公司內幕第一站


軟體外包嚴格來說屬於服務性質行業,無論是從前期的產品梳理,功能描述,編程代碼及後續維護,甚至到培訓,一系列的流程拆分出來都可以單獨成為一項服務。由於很多人認知的不足,對軟體開發的不理解,只是簡單的站在使用者的角度去考慮所需要的功能,往往忽略了背後的邏輯和演算法。因此,甲方總是會搬出「這麼簡單的功能要這麼貴」的說辭,從而影響到工資水平。

另外,軟體外包作為服務業,往往會被要求顧客皆是上帝,想怎麼來就怎麼來(近兩年有所改善),但反過來,客戶提出的要求,也總是對我們開發人員是一次次的考驗。試過想想,若開發自己的產品,沒有外界的壓力,反而更容易滋長慵懶、隨意的心態。

作為正在這個行業努力的人,對於這個行業,看好還是有一定的前景的。雖然在這個行業魚龍混雜,有點劣幣驅逐良幣的感覺,但隨著互聯網信息的發展,企業的認知也會不斷提高,會有好的一天的。


推薦閱讀:

軟體外包騙子太多,怎麼防止浪費自己的時間?
做IT外包有前途沒?
一個移動應用idea,由外包公司實施與自建團隊實施各有什麼優略勢?
解放號上面的包怎麼樣?安全性高嗎?

TAG:外包 | 軟體實施工程師 |