如果國內公司拿到了行業標桿工業軟件(工業軟件主要是設計仿真CAD/CAE/EDA/CFD/TCAD等軟件)的源代碼或者收購了國外的工業軟件公司,作用和意義有多大?多大程度上能解決或者緩解國內市場被國外軟件壟斷的局面?
說實話,這個內容比較敏感,但筆者仍然還是從技術角度和客觀事實來進行分析。
1、什么才算工業軟件公司
一家軟件公司的業務,銷售,市場都是以自家軟件產品和軟件服務為基礎,否則不能稱之為軟件公司,比如代理賣軟件的,把別的產品包裝一下,或者順便做點研發,還有做類似信息系統,管理系統的,都算不上工業軟件公司。國內對企業有“雙軟認證”,即指軟件產品評估和軟件企業評估,具體內容可以百度,可以作為基本參考
2、源代碼在產品中的地位
“源代碼”是一家軟件公司的核心資產,或者基礎資產,簡單一張圖說明源代碼在整個產品框架中的地位,第一層是基礎,依次往上。
3、“源代碼”引起的法律問題
源代碼是一類特殊的資產,最大的特點在于:簡單拷貝一份,就很容易造出新的產品。國外大廠因為源碼引起的糾紛也不少,筆者了解的至少就有三起大家耳熟能詳的國外產品之間的源碼糾紛,只不過大家都更愿意低調走法律流程,也很看重聲譽,一般都花錢息事寧人。需要說明的是:未經公司允許售賣源代碼,是違法行為,影響較大的可以作為刑事案件。特別是剛進入職場的同學,一定不要以為是件小事,因小失大。
4、大型工業軟件的源代碼存在的問題
工業軟件行業的代碼,短的有三五年,長則幾十年,規模龐大,系統復雜,比如開源RADIOSS,Code_Aster,OpenFOAM。對于一個從來沒有過行業經歷的,哪怕是熟手程序員,基本上也是看“天書”,而且是上百萬行代碼的天書(百萬行代碼的概念是一天看500行,看一遍就需要7年,一天看懂500行已經是很厲害的水平)。如果要在代碼上做改進或加新功能,需要花相當長時間和精力;對于很多業務邏輯和算法,只有當時的開發人員才能理解,也就是常常說的“s山”代碼;而框架性或者底層的設計基本上是無法改動的,就像是蓋房子的地基,一旦定了就無法動了。
所以可以看到軟件行業,競爭對手之間往往都是挖人,而不是代碼;而軟件大廠收購,其看重的首先是市場和人才,源代碼其次。有些代碼歷史悠久,版本更新困難,所以后期更新也有相當大的工作量;有些新技術的引入,導致軟硬件不兼容,也會帶來維護開發困難。
5、出售“源代碼”
源代碼作為資產,無論從商務上,還是法律上“出售”都沒問題。問題的關鍵是雙方需要根據實際業務,考慮到所有可能出現的情況,比如:
①A委托B開發程序,需要明確程序的IP歸哪方,是否需要源代碼
②B有源代碼出售,出售之后的用途,限制,比如是否能再次出售和分發,是否能開源,和B有競爭如何處理,時間限制,地域限制等要明確說明
③B有源代碼出售,比如同時出售給C和D,C和D產生競爭,B的責任要明確說明
④B售出的源碼中,其依賴的第三方庫如何處理,是需要C額外購買,還是直接使用B的
⑤B出售源代碼,其源代碼包含的具體內容需要明確說明,比如有些仿真軟件積累了相當多的測試用例,用戶案例,模板庫,開發測試工具等,其作用和功能可能比源代碼更有價值。
6、低代碼暫時不適合目前工業軟件行業
目前很多出售源代碼的情形發生在互聯網Web,App等領域,因為大家業務需求不一樣,購買源代碼的目的在于快速搭建自己的程序或系統供自己使用,比如Saas等,也催生了低代碼的興起。但是低代碼和工業軟件目前業務模式并不匹配,至少目前還無法大規模應用起來。
7、軟件需要更新
根據以往歷史經驗和筆者經歷,一套業內領先產品的代碼,如果三年不維護,不做新的開發,基本上就被淘汰了,而且這個時間周期還在縮短。
以蓋房子為例,一般流程:
①提出需求
②設計
③畫圖紙
④準備施工原材料,設備,人工
⑤打地基
⑥蓋樓房
⑦裝修
⑧交付
購買源代碼,相當是購買了以上內容中的第三項和最后樓房。對于設計師的水平,原材料,工人水平,設備,管理水平等可能會有影響,需要具體問題具體分析。
算是回答了文章開頭的問題。
最后,對于收購國外的工業軟件公司,國內企業也在努力,不過近幾年好幾起都沒成功,有些是被收購方要求特別苛刻,有些是直接被公司所在國家否定,可見并不太容易。
作者:鄧子平