2019-03-25 10:28:51分類:軟件開發(fā)8483
工業(yè)軟件是相對(duì)比較寬泛的一個(gè)概念,從研發(fā)、生產(chǎn)、倉儲(chǔ)到管理等都是工業(yè)軟件的組成部分。同時(shí)工業(yè)軟件也是客戶個(gè)性化需求較高的軟件,會(huì)因?yàn)槭褂谜叩哪J?、特征、甚至是產(chǎn)品品類不同具有巨大的差異。例如:汽車制造的MES系統(tǒng)和服裝個(gè)性化定制的MES系統(tǒng)具有天壤之別。
由于工業(yè)軟件的特點(diǎn)決定了工業(yè)軟件的開發(fā)、交付與實(shí)施都周期比較長,成本比較高。并且造成很多失敗的案例。
那么,作為當(dāng)今智能制造升級(jí)核心的工業(yè)軟件如何開發(fā)才能走出作坊的誤區(qū),并且能夠做到在保證軟件質(zhì)量的前提下進(jìn)行高效交付呢?作為最早從事服裝個(gè)性化定制MES系統(tǒng)的開發(fā)者,昱辰泰克十多年來總結(jié)出一套軟件系統(tǒng)開發(fā)的方法論。簡單來說就是三個(gè)化:共性平臺(tái)化、知識(shí)模塊化、個(gè)性客戶化。
首先,工業(yè)軟件是典型的2B市場,對(duì)于2B市場面對(duì)的企業(yè)來說,需求的差異造成無法形成標(biāo)準(zhǔn)的軟件產(chǎn)品進(jìn)行銷售(CAD等工具軟件除外),特別是像MES這樣的軟件,由于直接參與到企業(yè)的管理流程、工藝流程和生產(chǎn)流程之中,所以可以說沒有任何一套軟件可以在不同的企業(yè)間使用。這就要求軟件架構(gòu)師在規(guī)劃產(chǎn)品時(shí)給客戶化留出空間。我們要承認(rèn)差異化的存在,并且要用架構(gòu)來應(yīng)對(duì)客戶的差異化,絕對(duì)不能掩耳盜鈴地認(rèn)為自己可以開發(fā)出一套放之四海而皆可應(yīng)用的工業(yè)軟件系統(tǒng)。
其次,我們承認(rèn)不同企業(yè)對(duì)工業(yè)軟件(我們以MES為例)的訴求不同,那么我們就需要為專門的客戶進(jìn)行軟件的客戶化,軟件的客戶化分為兩個(gè)層級(jí),淺層的客戶化是進(jìn)行功能配置,深層次的客戶化是進(jìn)行功能開發(fā)。這樣我們把我們的MES軟件系統(tǒng)分解為可客戶化的功能和需要專門開發(fā)的功能。
第三,由于昱辰泰克僅開發(fā)時(shí)尚行業(yè)的MES系統(tǒng),借用行業(yè)的約束條件,我們的行業(yè)專家就可以抽象不同類型的企業(yè)特征,把這些行業(yè)特征定義為知識(shí),通過軟件開發(fā)把抽象出來的知識(shí)進(jìn)行模塊化,之所以把知識(shí)進(jìn)行模塊化的最核心的原因是有些知識(shí)具有互斥性,也就是說,使用了知識(shí)A就不能使用知識(shí)B,所以需要把知識(shí)模塊化有利于后期的配置,在具體實(shí)施的時(shí)候使能某些知識(shí),更好地為具體的客戶服務(wù)。
第四,行業(yè)中具有的共性屬性,例如服裝智能制造中所需要的靈活的流程、訂單到裁單的歸集與分解、工藝流程與生產(chǎn)流程的匹配等都屬于共性的內(nèi)容,這些內(nèi)容所有企業(yè)都需要,差別僅僅是復(fù)雜度的不同,那么這些功能我們定義為平臺(tái)屬性,通過軟件的靈活性實(shí)現(xiàn),例如:通過BPM系統(tǒng)實(shí)現(xiàn)流程的可定義等。
最后,當(dāng)我們把工業(yè)軟件的共性部分進(jìn)行平臺(tái)化,知識(shí)部分進(jìn)行模塊化,并且個(gè)性部分通過客戶化進(jìn)行交付后,我們會(huì)遇到很多個(gè)性化的要求,我們?cè)僭谶@些個(gè)性化的要求中尋找共性或知識(shí),通過PDCA流程,把可以抽象到平臺(tái)的功能加入到平臺(tái),把可以抽象為知識(shí)的開發(fā)為知識(shí)模塊,并且所有的平臺(tái)功能和知識(shí)模塊都使用微服務(wù)的原則開發(fā)。這樣的一個(gè)迭代流程會(huì)使產(chǎn)品越來越適合更多用戶的需求。按照我們?cè)诜b智能制造十年的研發(fā)經(jīng)驗(yàn),大概三到五年需要一次重構(gòu)(我們十年時(shí)間已經(jīng)重構(gòu)過三次,現(xiàn)在我們服裝智能制造MES系統(tǒng)的主線版本是4.3),重構(gòu)需要特別注意的是對(duì)兼容的甄別,例如我們?cè)诎姹?中為了更好地支持客戶體驗(yàn),用戶界面全部使用HTML5的特征,就會(huì)造成對(duì)以前使用老版本的Windows系統(tǒng)不兼容,實(shí)踐證明,這個(gè)取舍是值得的,因?yàn)殡S著客戶的要求越來越高,重視客戶體驗(yàn)一定會(huì)成為未來的趨勢。
通過站在不同的抽象層級(jí)把工業(yè)軟件分解為平臺(tái)、模塊和客戶化,既滿足了客戶價(jià)值的體現(xiàn),又能降低我們的交付難度,并且隨著時(shí)間的推移,能夠讓自己的產(chǎn)品不停地進(jìn)化,從而提升產(chǎn)品在市場上的競爭力。我們稱之為工業(yè)軟件開發(fā)的方法論。