標籤驅動的極簡工作流系統


前言

在政府和企業信息化實施中工作流幾乎是必備的子系統。現在的主流工作流系統幾乎可以圖形化構建出能想象到的所有流程和表單,即便如此,實際項目中實施成功的卻鳳毛麟角,在企業中實施成功的例子更是少得可憐。爲什麼會造成這種情況呢?根據筆者分析,應該是下面幾個重要原因導致這些工作流系統實施的不成功。

  1. 實施成本高、難度大

雖然國際上有WfMC(工作流聯盟)提出了工作流規範和參考模型,但實際上在國內大家各幹各的,每家產品都不一樣,政府企業在用這些軟件時需要對流程配置人員進行深入培訓,對使用者進行較大規模現場培訓。

爲了能夠涵蓋可能的所有流程特例工作流系統越變越複雜,一般的政府企業內部管理人員在長時間培訓後,在實施後很長一段時間內,出了問題通常想到的還是給提供服務的公司打電話解決問題,即便如此,對於大量個性化的需求,通常還需要大量的定製開發,這也應該是市場上影響力大的OA(辦公自動化)軟件需要很多專門做定製開發的小型服務商一起實施項目的主要原因。

  1. 維護成本高

在系統實際運轉過程中,尤其是國內中小企業,其業務經常變化,同樣的業務其流程也經常是過一個月一個樣。這種情況下需要有專門的技術服務人員不斷調整流程設置,在業務變化比較大的情況下,客戶不得不考慮繼續對系統進行不斷的定製開發,通常在使用一年以後,其後期維護成本經常能超出初期成本。

  1. 對企業幫助不大

我相信大家在實施工作流系統的過程中,都有實施阻力大的感慨。在政府辦公中,這樣的阻力比企業要小一些,但在中小企業中,這樣的系統給大家帶來的好處不多,卻經常讓人感覺到增添了不少額外工作,這種情況下,實施阻力加大,成功概率進一步降低。

我們需要什麼樣的工作流?

現有工作流系統的問題顯而易見,筆者經過長期思考和實踐,認爲更加理想的工作流應該具備以下特徵:

  1. 開發成本低

一般工作流產品都不便宜,很多項目中大部分成本是工作流產品本身的授權費用,其次纔是二次開發費用。對於一般沒有成熟工作流產品的公司來說,工作流產品成爲很大成本負擔,如果能有實用的工作流設計思路還不如自己從頭開發。

  1. 易配置、易維護

縱然成熟的工作流產品都提供了圖形化的配置管理工具,在面對一些流程套流程的複雜流程時,有經驗的IT人員也會倍感壓力;在我國大部企業中,流程變化頻率非常快,且不說不斷修改多麻煩,萬一工作流產品本身有點小問題可能會造成更大困擾。

  1. 必須靈活

在我們實施的企業內部管理系統的一個真實案例中,文檔中包含了上百個字段,在此文檔中對十幾個字段選擇不同的內容,會啓動不同的任務,而且說不好什麼時候還會有變化……

我們的業務軟件必須能足夠靈活以適應這種複雜需求。

大道至簡標籤驅動的極簡工作流系統

一般中小企業的實際需求是效率第一,業務規範化第二。這種“標籤驅動的極簡工作流系統”剛好非常契合這種要求。

工作流系統的最核心功能是引導員工正確的進行業務處理,避免犯錯,提高效率,減少對新員工的培訓成本。從技術上來講,工作流實際上是驅動文檔在不同員工間流轉的大腦,是的,只要能正確的驅動文檔即可。傳統的設計思路是文檔綁定流程,根據流程的邏輯走,遇上一個文檔可能會啓動十幾個不同流程的情況,其配置和修改維護都會變得很麻煩。

wKioL1bqzj2D6q2ZAAB5EUz_VY4398.png

(圖;傳統工作流模型)

“標籤驅動的極簡工作流系統”摒棄了文檔必須通過流程(即:流程實例)驅動的思路,依據大道至簡的原則,採用更加直觀的設計理念,讓文檔來驅動任務進行業務處理。

首先,系統提供一個任務池,其中每個任務可以有自己的界面表單、自己的特殊業務邏輯;其次,文檔處理過程中可以根據業務特殊情況選擇標籤或者修改已有標籤的內容;最後,因爲每個任務都有用標籤來邏輯確定的激活條件,所以文檔中的這些標籤可以確定下一步可以執行的任務。

wKiom1bqzbyzt8QOAACQ5OLNyEU323.png

(圖:標籤驅動的工作流模型)

在文檔中添加標籤

關聯文檔和任務的最重要實體是標籤,這些標籤實際上是一些自定義字段,一般情況下,標籤按種類分爲“系統預置”和“自定義”兩種。

顧名思義,系統預置是根據業務情況預置在系統裏的,用戶直接選擇使用就可以了,這些標籤也有可能綁定了特殊邏輯,比如:選擇某個標籤時,彈出警告信息;自定義標籤是用戶隨意命名的,想加什麼加什麼。

按類型來分,標籤可以分爲單值標籤、名值對標籤。當我們把標籤添加到文檔中以後,這些標籤將成爲文檔的一部分。

單值標籤的添加方式可以做得很簡單,可以參考新浪博客的方式,如下圖:

wKioL1bqzviTHL_BAABxviSkzQA014.png

(圖:添加單值標籤示意圖)

wKiom1bqzu7D0HaYAAAdAwet-j8942.png

(圖:添加名值對標籤示意圖)

在添加單值和名值對標籤時,標籤可能是系統預置的,也可能是自定義的,在具體實現時可以進一步優化界面,方便操作。

爲任務設置標籤

爲任務設置標籤其實是設置任務的激活條件。簡單來說,一個任務主要包含了特殊的處理界面、特殊的處理邏輯,每個任務通常有責任人(可能是多人),用戶可以用不同的任務完成不同的業務操作。

任務的激活條件可能是多個標籤的與或關係。

wKioL1bqz3OAW1SSAABG3_xicvI400.png

(圖:爲任務設置標籤示意圖)

如上圖所示,可以簡化設置標籤的形式,每一個多行輸入框裏面的標籤是或的關係,兩個大的多行輸入框之間是與的關係。

特殊情況

用這種思路進行任務設置時各任務之間完全沒有耦合,在實際使用時難免發生一些問題。

未找到任何任務

文檔在提交時,根據標籤未找到任何匹配的任務,此時建議允許用戶手工搜索或者選擇一個任務執行;同時應提供一種備用任務處理以應對未曾預料到的特殊情況。

找到多個符合條件的任務

一般遇到這種情況,應該允許用戶手工選擇下一個階段要執行的任務。

實施效果

我們通過這樣的工作流已經成功爲某客戶作了業務系統的實施,達到了不購買昂貴的工作流平臺確達到了比主流工作流平臺更好的使用效果!

在整個開發和實施的過程中,我們發現這確實是一種簡單高效的方法。雖然程序員們之前沒有任何工作流系統的使用和開發經驗,但是因爲這種思路簡單直接,大家迅速就進入到了工作角色。另外,因爲這些任務幾乎沒有任何耦合,多任務可以多人並行開發,效率很高。

在實際使用的過程中,絕大部分情況下企業管理員爲任務配置的標籤都是非常簡單的,這些標籤也非常容易理解,在修改的時候也根本不用考慮流程,哪個任務出現的不合適,就配置哪個任務就可以了。

在成功實施後,使用者可以看到文檔已經流轉過的痕跡,卻不像主流的工作流平臺那樣可以“宏觀”的看到整個流程圖。不過實際上看不看得到未來的流程對絕大部分員工來講根本不重要,大家只是關注我要幹啥,我幹完以後交給誰幹:)

總結

在我們看來,對於一般應用於中小企業的管理軟件來說,做一個酷炫的流程配置並沒有什麼用,企業裏更加關注的是軟件能否爲工作提供方便,而不是增加負擔,其次纔是管理的規範性,而傳統的工作流系統把太多精力都放在了流程規範性上了。

親愛的像我們一樣奮戰在一線的碼農們,強烈建議你們再實施工作流系統時,如果客戶是很務實,那就忘掉那些複雜的工作流產品吧:)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章