誰應該用流程設計器
在業(yè)務的梳理和設計階段都有可能用到流程設計器,這里提到的流程設計器是指有圖形界面,可以通過拖拽圖形設計流程圖的設計器,而不是說一個開發(fā)者專用的XML編輯器。
既然涉及了圖形化,就可以實現(xiàn)通過流程圖與最終用戶進行交互,對實際業(yè)務進行梳理和重組。圖形比文字更容易讓雙方理解,這一點應該不會有什么反對意見吧?
下面就引出我們這次討論的問題:“那么這個流程設計器到底是應該面向程序開發(fā)人員使用,還是面向最終用戶使用呢?”
這個問題會衍生出多種不同的推斷,討論的焦點基本是圍繞在:“是否要放權給客戶進行設計工作呢?”
對
于這個問題大部分程序員都能及時給予否定的答案:“怎么能讓不懂技術的人去負責設計工作呢?他們設計出來的東西要是用程序無法實現(xiàn)該怎么辦?”社區(qū)中力挺
這種觀點的人不在少數(shù),比如OSWorkFlow就建議開發(fā)者通過直接編輯流程定義XML的方式設計流程,它們認為流程設計完全屬于開發(fā)范疇,不需要也不
應該由最終用戶介入。
但是,從最終客戶方面又常常傳來:“需要對業(yè)務進行定制調(diào)整”的聲音,于是迫于市場和客戶方面的壓力,開發(fā)設計人員又開始研究如何讓最終用戶可以在應用層面對業(yè)務實現(xiàn)進行干預,于是出現(xiàn)了關于自動建表,定制表字段,自動生成表單等等相關的技術。
面對如此浪潮蜂擁,諸如MDA體系架構也開始蠢蠢欲動,想當初多少人怒吼著:“讓開發(fā)人員失業(yè),零編碼實現(xiàn)業(yè)務系統(tǒng)。”那時的開發(fā)人員真是岌岌可危啊,總是擔心害怕自己哪一天就被某個程序給替代了??蓪嶋H上過了這些年,也沒看到開發(fā)人員集體失業(yè)的情況。
難
道是客戶方面定制業(yè)務的需求減少了嗎?好像不是因為這個原因,還是有很多客戶抱怨市場瞬息萬變,應用系統(tǒng)不好支持多邊的市場風向。既然不是客戶的需求減
少,而實際開發(fā)人員又沒有被諸多的業(yè)務定制系統(tǒng)擠掉工作,那只能說明之前烽火連天的業(yè)務定制系統(tǒng)還無法完全滿足客戶的需求,客戶依然需要通過開發(fā)人員才能
實現(xiàn)自身特定的業(yè)務需求。
現(xiàn)在我們依然需要面對的問題是:“客戶需要隨著市場的變動對業(yè)務作出調(diào)整和變化。”這個需求是現(xiàn)實存在的,既然市場提出了需求,勢必會導致我們聯(lián)想到是否可以將圖形化的流程設計器直接提供給最終用戶實現(xiàn),以便用戶對業(yè)務進行修改呢?
必須事先了解一點:“最終客戶不是開發(fā)人員”,
他們不可能像程序開發(fā)設計人員那樣信手拈來的編寫代碼,對業(yè)務模塊進行調(diào)用,這一點就決定了我們最終提供給業(yè)務人員的設計器必定是功能受限的,不能把所有
功能都對其開發(fā),而是應該限制他們的操作范圍,讓他們的操作保持在可控范圍內(nèi),避免出現(xiàn)業(yè)務人員設計出一個完全不可能運行的流程圖來,同時又要加強用戶交
互的易用性,從這些方面來看,不論對設計和開發(fā)方面對我們提出了不小的挑戰(zhàn)——如何幫助用戶在不犯錯的情況下,很容易設計出一個業(yè)務流程呢?
我們可以看到,如果要滿足客戶定制的需求,就需要提供兩套流程設計器,開發(fā)版流程設計器需要提供各種接口方便開發(fā)擴展調(diào)試,最好還能和實際開發(fā)的環(huán)境集成。業(yè)務版流程設計器就要更加強調(diào)易用性,在功能方面進行限制,豐富校驗和提示方面的信息。