管理軟體公司與網際網路公司的區別

JamesLi2015發表於2016-12-31

  筆者是一個老程式設計師,自2002年進入.NET開發領域,一直未曾放棄。期間經歷過管理軟體公司,網際網路公司,有國內企業和外資企業,深感其中的差異,撰寫文分析兩者的聯絡和區別,供讀者朋友參考。

  技術

  1 管理軟體公司用的技術一般是老的,穩定的,成熟的技術。比如.NET Remoting,Windows Forms,Web Forms,而網際網路公司一般會追求新的技術,比如Redis,微服務,Hadoop等。管理軟體公司會使用SQL Server Analysis Services作OLAP分析工具,而新的網際網路公司會採用Spark,Hadoop等大資料技術來實現。在喜歡搞技術創新的管理軟體公司做事,常常會活的比較痛苦。如Linq to SQL出了沒多久,Entity Framework出現,Silverlight,WPF後來也是逐漸從公眾視野中消失。ASP.NET MVC的出現,大批Web Forms程式設計師找工作變難了。現在ASP.NET Core 的出現,不曉得會不會導致ASP.NET MVC程式設計師的失落。

  2 管理軟體公司側重於業務實現,網際網路公司側重於高併發,高可用,使用者體驗等。管理軟體的使用者一般是工廠各部門文職人員,一個大公司也不過100來號人員同時線上,對業務的實現相對要求高,這樣可以節省人力,節約成本,而不是增加成本。有的管理軟體提供了大量的批核功能,每走一個流程,每確認一個步驟(下訂單,發貨,產生髮票,收款)都要批核,我個人認為這樣的管理軟體是增加使用者成本,降低效率。把工廠當成一個合作的整體存在,銷售部負責下訂單,生產部負責在規定的時間完成訂單生產,採購負責及時的購買所需要的生產物料,這是一個密不可分的整體化運作,任何一個環節卡住會造成資訊不流暢,甚至會導致生產停滯。多年以前,我們在網上註冊一個帳號,輸入使用者名稱,密碼等資訊,提交時提示電子郵件必須輸入,這時我們輸入的密碼也會被清空,重於使用者體驗的網際網路公司,會考慮到這種情況,幫忙我們記住之前輸入的密碼,這時只需要輸入電子郵件即可再次提交。再比如我們出門叫車,遇到路遠了或是路偏了,叫車師傅可以拒載。這是非常不友好的使用者體驗。我們是客戶,的士師傅是應用提供商,得罪客戶的事,就是跟錢過不去。新興的網際網路公司(滴滴和優步)改善使用者體驗,不僅比原來的的士價格便宜,還提供隨叫隨到的服務。想像一下,在大城市,一個女孩子拎著重重的行李箱,到處找車,是多麼糟糕的使用者體驗。而網際網路公司將改善此體驗,只需要站在原地,司機師傅主動來找你,完全體驗到叫車是一種服務。我個人認為,即使滴滴和優步減少補貼,甚至停止補貼,在同等的價格下,滴滴和優步仍舊有生存的空間,因為他們改善了叫車服務體驗,也就是使用者體驗。

  3 管理軟體公司的技術升級常常來源於程式設計師,網際網路公司的技術變更多的來源於業務需求。所謂成也蕭何,敗也蕭何。處於軟體行業頂端的軟體公司創造技術解決問題,提供開發工具維持企業利潤,中小公司則應用技術解決業務問題。軟體業相當頻繁的技術更新,造成了大批老技術程式設計師失業,從而進一步增加了軟體公司的生存成本。現在市場上幾乎找不到或是很少能找到Delphi程式設計師,還有一些我們沒有聽說過的技術(他們的確存在於現實的公司中),Delphi程式設計師要麼失業,要麼轉型。那軟體公司呢,大量的用Delphi開發的,非常優秀的Delphi程式還是需要人員維護,軟體公司面臨兩個選擇:要麼用新技術重寫,要麼養幾個老技術程式設計師一直做維護。軟體公司的老闆都是人精,不可能將公司的未來受一兩個程式設計師控制,所以就用前一種方案,用新技術改寫,這樣的目的主要是好招人,老程式設計師離職了再招新程式設計師,努力將公司的命運控制在自己手中。我們公司的C/S(Windows Forms)程式設計師常常會擔憂以後找不到工作,當他們的上司,常常需要體會他們的這種壓力。技術上要將一些通用的重要的技術方案交給他們做,讓他們建立信心,同時也給他們安排一些熱門技術的培訓,作為管理人員,也需要對他們的未來負責,對他們的績效給予一定的相對優質的評定。網際網路公司的技術變更,比如大資料的需求,資料的來源形式和格式多種多樣,原有資料探勘方案解決不了,迫切需要做技術變更以適應這種變化。於是就有對Hadoop,Spark這種大資料技術的需求,更厲害的網際網路公司甚至於重建一套大資料平臺,以保證處於行業領先地位。

  團隊和企業文化

  1  管理軟體公司的同事頭腦相對固化,網際網路公司則靈活一些,它們存在的理由是創新。管理軟體作為一種管理思想的軟體實現,應該是一種管理模式,方法和思路的固化,不允許或是少量允許變化。試想一下,規定的流程不跑,資料沒經過運算,自然沒有想要的結果。舉例說明,大部分的ERP軟體約定的流程,客戶下訂單,物控部跑MRP計劃,產生物料採購需求和半成品的加工需求,最後成品完成入庫,向客戶發貨,財務結算等。這是製造業ERP的基本流程,不過貿易公司的ERP則可以不這樣跑,可以直接向供應商下訂單,然後發貨到客戶,自己甚至都不用租賃倉庫,直接提供供應商到使用者的端到端(直運業務)業務模式。這些思路決定了管理軟體不需要創新,按照約定俗成的或是上司規定的流程完成即可。常此在這樣的思路下工作,人會失去創新血液。管理軟體的員工常常會被產品設計人員的思路導向,創新會自食惡果。網際網路公司則充滿著創新。正如馬雲所說的,銀行不努力,成就了支付寶,郵局不努力,成就了順豐,通訊不努力,成就了微信。後者甚至產生了顛覆的力量。當初專為大學生準備的大眾卡套餐動感地帶,10元包300條簡訊息,被微信徹底顛覆。

  2 (中小公司模式)管理軟體公司是人才培養的搖籃,是產生高階工程師的地方。網際網路公司因為業務變更頻繁,技術更新快,不適合純技術人員生存,常常是技術人員走管理,轉銷售的地方。管理軟體公司有明確的人才培養方案,一個老程式設計師帶幾個年輕程式設計師,像老母雞帶小雞一樣,一步步教導這個怎麼實現,那個如何設計會更有效率一些,直到新人變老手,初級程式設計師變中級工程師。比如我們在管理軟體公司學到的,藉助於快取可以提高效率,改善效能,用反射技術可以做成外掛式系統,用動態語言可以把系統做成可擴充套件的,這些技術隨著程式設計師年歲的增長,慢慢學會並靈活應用。網際網路公司因為技術變更快,Web 2.0,雲端計算,網際網路+,大資料,技術更新非常頻繁,只有達到壟斷級別的公司才可以生存。我們都是凡人,能進入各個領域的壟斷級別的公司都非常不容易,即使進入,專案迭代週期短,KPI壓力大。(我這裡說的適合於中小公司,大公司不適合於此小節描述。)

  3  管理軟體公司適合純技術人員生存,網際網路公司則相對重運維+技術。比如上一節我提到的快取技術,網際網路公司將此發揚光大,提供一整套的分步式解決方案(Redis,MongoDB)。程式設計師不僅僅要會呼叫API,還需要部署伺服器,理解它們的運作機制。在管理軟體公司,為了增加產品的高可用性,我們提供叢集,映象,資料庫複製,資料庫日誌等技術,保證系統7*24不間斷運作。而網際網路公司對此要求更高,他們還要求高併發。我們知道資料存在磁碟上,讀取資料或儲存資料是一個很合理的操作,管理軟體增刪查改都是這樣模式,但網際網路公司對此還不滿意,因為多人併發的存在,資料需要儲存在記憶體中才能滿足高併發的需求。還有高可擴充套件性,為了升級管理軟體,我們停止伺服器程式,或者重啟下機器是很常見的操作,但網際網路公司對此零容忍,他們要求更新系統時,不能停止服務,或是非常短暫(秒級)的停止服務。後者要求系統可以做到熱插撥,這跟USB介面做到熱插撥併成為業界標準是同一個趨勢,我們知道Oracle升級補丁包時,可以不用停止資料引擎服務,這個特性對網際網路公司非常重要(SQL Server用映象技術也可以達到此目的)。總體來說,管理軟體公司只需要把技術做好,而網際網路公司要求在技術之外,還需要了解運維層面的知識。

  員工發展

  1 管理軟體公司的大部分員工發展前途光明,網際網路公司適合明星員工創業。在網際網路公司做事的員工,技術常常非常專業,也就是一種商業模式下的技術實現,因為網際網路公司需要使用者,需要流量,需要變現,他們的創業壓力非常大。傳統的管理軟體公司,搞好了客戶關係,拉到幾個訂單,買幾部電腦,招二個程式設計師就開始幹活了,是個人走向創業的快速路徑。做得一般的管理軟體,實現客戶要求的單據,流程和報表,相當於一個資料庫的增刪改查程式,做的好一點的管理軟體,融合了一些管理理念,加入了部分行業需要的特性,是一個軟體+理念(思想)的載體。做的更優秀的管理軟體,成為行業的標杆,幾乎成為行業的代名詞(模仿了網際網路公司,比如團購就是美團和大眾點評,看電影就是貓眼)。比如我們說ERP,大家就會想到SAP,Oracle,Sage,Epicor,Dynamics等。這些管理軟體成為其它軟體廠商抄襲模仿的典範,促進了大量的中小企業的誕生。我們知道,網際網路公司只會讓競爭者失敗出局,或是以收購結束,而管理軟體公司不僅不會吞併小公司,還會為小公司的發展指明瞭技術方向。

  2 (大公司模式) 網際網路公司的技術相對完善,分工明確,程式設計師可以在一個領域或數個領域成為專家。管理軟體公司由於已經走到行業頂端,技術人員常常需要轉銷售,轉銷前,轉二次開發。處於食物鏈頂端的軟體公司,比如雲端計算(Azure,AWS),資料庫(SQL Server,Oracle,MySQL),ERP(SAP,Oracle,Epicor,Dynamics),他們的研發中心常常會控制保留在本國,很少或是根本不會讓國外團隊或分公司參與開發核心技術。這就導致了我們常常是做他們的二次開發工具。成為一個行業的專家,有時候會有高處不勝寒的感覺,也意味著對其它領域的選擇更少。精通於一門技術,成為公司運作上的一個零件,只有在特定的環境(大公司)才有用處。就好比濃縮鈾只能用於造核武器,而菲利浦的白熾燈卻能走進千家萬戶。

  市場與銷售

  1  網際網路公司相對容易產出新概念,新名詞以吸引大眾眼球,以此創造概念經濟。管理軟體公司墨守成規。比如筆者在2006年所經歷的Web 2.0,那時滿大街的都是這種宣傳材料,沒過多久這種概念就過時了。正如現在全民創業,雲端計算,網際網路+,大資料等,相信不久也會從我們的公眾視野中消失,取而代之的是大批的網際網路公司消亡。管理軟體公司則很少會這樣,MRP,ERP還是上世紀90年代的概念,現在仍然適合於企業管理軟體的設計思路。儘管ERP之後還有產生ERP II概念,不過也不怎麼流行。管理軟體公司相對務實,能把物料需求計劃(MRP)跑流暢,基本上公司的資訊化水平就上了一個大臺階,也不會再去追求管理創新。金融也是一個不適合創新的領域,記得 一個經濟學家說過,我們應該將所有的經濟學家從社會上去除,因為金融改革就是擾亂社會秩序。國際金融炒家索羅斯的至理名言也曾表述,我們就是為了創造一種假象,然後在人們認識到真相前提前退出遊戲。

  2 管理軟體公司人員缺少銷售觀念,網際網路公司員工更多的會關注到到商機,常常會考慮把技術轉化為價值。我們這裡不討論阿里員工搶月餅的是非,單從市場角度來看,我是挺佩服這幾個程式設計師。他們學以致用,將技術轉化為對自己的福利。管理軟體公司的員工則比較缺乏市場情結。他們還在研究新版本的開發工具有哪些產品特性,期待以拖放的方式就能設計出工作流的軟體廠商。如果能把幾年工作的成果抽象提煉出來,形成一些公共的開發類庫,方便以後的開發,這是一個小小的進步。進一步的,能把管理軟體中相同的操作介面和模式總結出來,做出一些相對通用的介面和控制元件,比如資料輸入Entry,資料查詢Enquiry,資料列表List,報表Report,資料查詢Lookup,自定義查詢Query等,初步形成一個開發框架。再進一步,我們用自己提煉的開發框架,用自己參與和理解的技術理念,做出一套產品,這也算是一個小小的進步。技術進步的每一個階段都可以為你的職業發展帶來無窮的好處。熟練的程式設計師再也不擔心找工作沒人要。成為一個領域的資深開發人員,可以為自己贏取技術主管或經理的職位。做出一個領域或行業的產品,如果在合適的時機碰上會做市場的銷售人員,創業也是非常有可能的。馬雲說過,夢想是要有的,萬一實現了呢。

相關文章