鞋業(yè)ERP的架構(gòu),其本質(zhì)是為了在大層面大框架上保證ERP軟件在開發(fā)和維護(hù)演進(jìn)過程中一直能在機(jī)制上底層上框架上保證質(zhì)量和維護(hù)效率。沒有專門的應(yīng)用架構(gòu)和平臺架構(gòu)設(shè)計(jì),ERP軟件就成了功能實(shí)現(xiàn)代碼的堆砌,堆個(gè)五六年就藕斷絲連按下葫蘆起了瓢了,就跟打地鼠一樣,越到后來地鼠越多越神出鬼沒,后幾雙手都按不住了,Game Over了。
當(dāng)然,ERP的應(yīng)用架構(gòu)的完備性評估,ISO早就有好的標(biāo)準(zhǔn)體系,這就是標(biāo)準(zhǔn)和標(biāo)桿的威力。你還在自己苦苦追尋、琢磨、看書、動手,人家已經(jīng)有現(xiàn)成方法放那里了,所以不要亂摸索,尤其在計(jì)算機(jī)業(yè),我們國內(nèi)和外國差距少說20年,太陽底下無新鮮事,先學(xué)習(xí)人家的標(biāo)準(zhǔn),而不要自己埋頭瞎琢磨。
ISO/IEC9126是一個(gè)評估軟件質(zhì)量的通用模型,我個(gè)人也感覺是適用于ERP軟件。畢竟,ERP也只是一個(gè)軟件中的一種,它具有軟件的基本特征。
看看ISO9126怎么說:
ISO9216把軟件質(zhì)量分為六大特性27個(gè)子特性
1. 功能性
適合性suitability
準(zhǔn)確性accuracy
保密安全性security
互操作性interoperability
功能性的依從性functionality compliance
2. 可靠性
成熟性maturity
容錯(cuò)性fault tolerance
易恢復(fù)性recoverability
可靠性的依從性reliability compliance
3. 易用性
易理解性understandability
易學(xué)性learn ability
易操作性operability
吸引性attractiveness
易用性的依從性usability compliance
4. 效率
時(shí)間特性time behavīor
資源利用性resource utilization
效率的依從性efficiency compliance
5. 維護(hù)性
易分析性analyzability
易改變性changeability
穩(wěn)定性stability
易測試性testability
維護(hù)性的依從性maintainability compliance
6. 可移植性
適應(yīng)性adaptability
易安裝性install ability
共存性co-existence
易替換性replace ability
可移植的依從性portability compliance
當(dāng)然,這是全視角完備性來看。但我們可以裁減性的去重點(diǎn)關(guān)注,以及每個(gè)時(shí)期不斷演進(jìn)成熟不斷轉(zhuǎn)移關(guān)注重點(diǎn)。
一、在基礎(chǔ)層面:安全、性能、數(shù)據(jù)正確、功能正確,怎么在應(yīng)用架構(gòu)專業(yè)方法和流程職責(zé)機(jī)制上保證。不少鞋業(yè)ERP軟件目前還重點(diǎn)關(guān)注在功能是否符合客戶需要,功能是否符合設(shè)計(jì)要求。還沒有橫切面研究安全架構(gòu),也沒有研究如何在架構(gòu)方法層面保證數(shù)據(jù)正確性。要想開展研究,就得按橫切維度,如安全,就按照ERP應(yīng)用架構(gòu)一層層去分析如何在每層的框架上保證安全。當(dāng)然,深入更現(xiàn)實(shí)的一個(gè)具體的功能模塊或引擎服務(wù),也需要這個(gè)維度去定制化思考與設(shè)計(jì)。
還有一個(gè)維度也是基礎(chǔ)層面,但很多人容易忽略它。那就是可測試。業(yè)務(wù)邏輯層怎么測、UI層怎么測、數(shù)據(jù)層怎么測。
二、做到了基礎(chǔ)層面,就進(jìn)入了軟件的持續(xù)維護(hù)改進(jìn)階段??沙掷m(xù)改進(jìn)維護(hù)、可移植、可向下兼容、可對內(nèi)對外集成是關(guān)鍵切面了。這也是需要應(yīng)用架構(gòu)層面專項(xiàng)切面來研究的。研究方法一樣,仍然是按照軟件分層來層層有專門的架構(gòu)設(shè)計(jì)。
可持續(xù)改進(jìn)維護(hù),有兩個(gè)小分支,一個(gè)是產(chǎn)品功能和業(yè)務(wù)模型不斷演進(jìn),需要代碼可持續(xù)改進(jìn)維護(hù)。如何在架構(gòu)層面保證。一個(gè)是客戶定制代碼可持續(xù)改進(jìn)維護(hù)。尤其是客戶定制代碼和產(chǎn)品代碼之間的解耦離合關(guān)系,以及客戶定制代碼升級與產(chǎn)品代碼升級的相互影響關(guān)系,這兩個(gè)關(guān)系需要巧妙的應(yīng)用架構(gòu)設(shè)計(jì)和實(shí)現(xiàn)設(shè)計(jì)。
可移植,一說是跨平臺的移植,如跨UI技術(shù)、跨業(yè)務(wù)邏輯開發(fā)語言技術(shù)、跨數(shù)據(jù)庫技術(shù)、跨硬件設(shè)備。二說是一個(gè)功能模塊如何可移植到其他版本或特定客戶。這也需要應(yīng)用架構(gòu)研究。
可向下兼容,我們經(jīng)常會遇到業(yè)務(wù)模型本身就不兼容了,我們的代碼如何大化的保證向下兼容,這樣代碼維護(hù)質(zhì)量和效率就高。在中國現(xiàn)狀,業(yè)務(wù)模型本身不兼容是一件比較常見的事,畢竟在快速受到各方面各路子方法或思想的沖擊,過去積累少,一下來的太多,選擇的方法和自己的現(xiàn)狀問題不匹配是很正常的。
集成,有對內(nèi)集成,如自己產(chǎn)品線的各個(gè)模塊;有對外的集成,要把其他系統(tǒng)的功能、引擎、流程、數(shù)據(jù)集成進(jìn)來或輸出接口API,這也需要考究的應(yīng)用架構(gòu)。
三、做完這些基礎(chǔ)層和高級層,我們就需要關(guān)注到整個(gè)協(xié)作鏈條上的關(guān)注點(diǎn)了。
那就是可升級,可安裝、可實(shí)施、易用性、可運(yùn)維。
可升級,有四個(gè)分支:整體升級、子系統(tǒng)模塊升級、定制開發(fā)專項(xiàng)升級、BUG補(bǔ)丁升級。
可安裝,也有五個(gè)分支:演示環(huán)境安裝、測試環(huán)境安裝、生產(chǎn)環(huán)境安裝、重新安裝、災(zāi)難恢復(fù)。
可實(shí)施。實(shí)施人員往往配置業(yè)務(wù)參數(shù)、初始化數(shù)據(jù)\導(dǎo)入數(shù)據(jù)、配置流程、配置報(bào)表和查詢。這些實(shí)施工具需要涵蓋考慮。
易用性是相對客戶而言的。很多人說ERP很復(fù)雜。但其實(shí)本質(zhì)上并不是。因?yàn)楹芏嗥髽I(yè)主對自己上ERP到底需要明確解決哪幾個(gè)問題,沒有顯性化的清單。對IT技術(shù)實(shí)現(xiàn)的軟件的擅長面和不擅長面更是不了解,要么把ERP當(dāng)做先進(jìn)管理制度的顯性產(chǎn)物來高捧看來,要么把鞋業(yè)ERP系統(tǒng)當(dāng)做EXCEL或強(qiáng)大計(jì)算器在用。而且很多企業(yè)沒有細(xì)致的顯性化的組織崗位職責(zé)、流程、表單、報(bào)表、考核,即使有,也是現(xiàn)實(shí)和制度兩張皮。這是企業(yè)方的問題,另外在ERP開發(fā)方,也沒有按照業(yè)務(wù)場景來設(shè)計(jì)ERP,而是把各種業(yè)務(wù)場景都分析完然后整合成幾個(gè)功能模塊給客戶,就如同一把刀做N種菜,當(dāng)然高不成低不就,不易用就產(chǎn)生了。對于易用性的橫切面研究,也需要一層層的按照架構(gòu)來研究,而不是只局限關(guān)注在每個(gè)具體功能的易用性。要靠架構(gòu)在框架上保證易用性,而不是在每個(gè)具體點(diǎn)保證易用性。這是關(guān)鍵出路。
可運(yùn)維。你的軟件安裝到了客戶處,你對你的軟件使用情況和軟件運(yùn)行情況了解不?這就是可運(yùn)維。需要在應(yīng)用架構(gòu)層面一層層考慮如何在各層增強(qiáng)可運(yùn)維,提供可運(yùn)維需要的功能和數(shù)據(jù)信息。
知道了這么多橫切面維度,我們就需要按維度和軟件分層做個(gè)二維表,看看每個(gè)維度每一層需要做些什么事,我們已經(jīng)做了哪些事,哪些事還是一片空白,哪些事還需要改進(jìn)。有這樣一個(gè)大完備性清單了,我們就可以根據(jù)優(yōu)先級來分步研究、落地了。