saas漸進(jìn)式設(shè)計。
1. 模塊化設(shè)計
所謂模塊化是指降低業(yè)務(wù)間的耦合。低耦合、高內(nèi)聚是技術(shù)架構(gòu)的重要設(shè)計原則,在產(chǎn)品端也非常值得借鑒。
模塊式化設(shè)計對于系統(tǒng)建模、技術(shù)實現(xiàn)、升級迭代、業(yè)務(wù)推廣都有很多幫助。模塊化設(shè)計也是對最小化場景(MVP)的一種有效支撐。
SaaS產(chǎn)品隨著公司的發(fā)展,業(yè)務(wù)范圍、功能都會越來越大,而客戶可能僅需要部分能力,如果功能間耦合太多,對客戶的功能選擇會增加限制;銷售政策制定起也會受到掣肘,無法靈活組合產(chǎn)品進(jìn)行銷售,對業(yè)務(wù)推廣產(chǎn)生一定影響。
如何做好模塊化設(shè)計?
模塊化設(shè)計針對有獨立性、可復(fù)用的業(yè)務(wù)或功能進(jìn)行抽取,包裝功能集合構(gòu)成產(chǎn)品進(jìn)行推廣使用,方便客戶根據(jù)需要進(jìn)行產(chǎn)品組合,模塊化設(shè)計在傳統(tǒng)軟件中也非常重要。
(1)歸類與抽象
需要對相似的功能或者場景進(jìn)行歸類然后抽象出來進(jìn)行設(shè)計。在軟件設(shè)計領(lǐng)域,越是底層的東西越容易復(fù)用,越是偏向應(yīng)用端的東西,越難以復(fù)用。比如構(gòu)成一套軟件服務(wù),可以有服務(wù)器硬件、應(yīng)用服務(wù)中間件(比如數(shù)據(jù)庫等)、各種微服務(wù)、業(yè)務(wù)流程、外部入口等,這套軟件架構(gòu)中,服務(wù)器硬件是處于架構(gòu)底層,比較基礎(chǔ)且通用性很強;應(yīng)用入口處于架構(gòu)高層級,形式相對靈活,復(fù)用性較低。在產(chǎn)品端也是同理,基礎(chǔ)信息如人員、機構(gòu)等屬于基礎(chǔ)信息,同一組織在不同系統(tǒng)中的結(jié)構(gòu)大體一樣,復(fù)用性強,其次是各類業(yè)務(wù)流程,再其次是業(yè)務(wù)表單。
我們要做的產(chǎn)品模塊化設(shè)計,是針對不同用戶的需求,將完成某項業(yè)務(wù)的場景進(jìn)行分析、歸類、抽象,抽取共性部分,做成可實現(xiàn)多種組合的產(chǎn)品形態(tài)。
(2)數(shù)據(jù)接口
系統(tǒng)一般由邏輯(算法)和信息兩部分構(gòu)成,信息又分為內(nèi)容和數(shù)據(jù);邏輯是構(gòu)建軟件功能的骨架,內(nèi)容和數(shù)據(jù)是血肉,其中以數(shù)據(jù)尤為重要。
假如要實現(xiàn)軟件模塊化且模塊之間相互獨立,必須要先拋棄邏輯(實現(xiàn)方法),因為有邏輯就代表這兩個模塊誰也離不開誰,就不能稱之為獨立。
如果這兩個模塊必須要關(guān)聯(lián)在一起,但又不允許它們在邏輯上互相干涉,那么最好的辦法就是為它們內(nèi)部包含的數(shù)據(jù)進(jìn)行抽象化,形成標(biāo)準(zhǔn)化接口,以數(shù)據(jù)調(diào)用的形式實現(xiàn)兩個模塊間的互相協(xié)作。
模塊化的一個特征是復(fù)用,在產(chǎn)品設(shè)計上復(fù)用意味著需要多種場景的結(jié)合,如果只有一個場景,就不是復(fù)用,在多個場景都需要使用的情況下,會有數(shù)據(jù)交互的需要,模塊化設(shè)計就是要把共性的東西抽取出來后,提供標(biāo)準(zhǔn)接口,進(jìn)行數(shù)據(jù)交互,這個共性的東西,可以是字段,也可以是規(guī)則。
大家通常理解的SDK,也是模塊化設(shè)計的一種體現(xiàn)。模塊化的產(chǎn)品可以是一個界面、也可以是一個功能,還可以是一個子系統(tǒng)。
2. 漸進(jìn)式設(shè)計
SaaS產(chǎn)品是逐步迭代的,產(chǎn)品設(shè)計也不是一蹴而就的,需要有一個不斷前進(jìn)的過程,漸進(jìn)式設(shè)計非常契合SaaS產(chǎn)品。比如我們公司的產(chǎn)品,有企業(yè)客戶、集團(tuán)客戶、代理商、平臺運營人員、售后人員等參與,在設(shè)計系統(tǒng)的過程中,并不是一上來就把所有的工作全部做完, 這樣周期太長,也不利于快速驗證產(chǎn)品和市場的匹配,所以產(chǎn)品架構(gòu)自然而然也變成了一種漸進(jìn)的設(shè)計過程。
漸進(jìn)式設(shè)計需要盡量考慮未來產(chǎn)品的全局,以滿足后續(xù)產(chǎn)品擴展需要。