2008年12月19日 星期五

S19 讓流程中蘊藏彈性的思考

即使在軟體架構上使用了最靈活的設計,但是由於架構僅是靜態佈置的框架,實作的功能劇本仍然靠流程設計來達成;功能流程的設計的正確性與成熟度就得看是誰來設計的。如果動態的流程設計僵化而難以變動,不管放到多麼有彈性的軟體結構裡都完全不會有絲毫改善。

在流程設計過程中面對所有的動作時,可以思考是否符合這幾個原則:

整合與拆解:做一件事所需的動作拆解的步驟單位大小。切得太大步驟難以再細分、切得太小控制會太瑣碎,最理想的還是依現有層級的最適大小。分解步驟的恰當將會使得流程更容易設計,較不容易有盲點,也容易作不同方式的組合。

抽取與分派:某些不適合自己處理的步驟交由其他負責單位進行,將工作分派出去會讓自身的工作內容單純易管理;不過遇到別人的工作內容與自身的類似時就要考慮將工作抽取到同一個地方進行,以免造成多頭馬車的現象。

單一與重覆:一件事即使可以處理妥當,有時會需要處理集合內的多數相同事情;相對地也有可能將循環處理的事切分出可以單獨來做的。設計時若遇到有迴圈的地方,都盡可能把迴圈中的動作拉出為可以獨立呼叫的方法。

拆解與變動基本有三種不同的方向,但是其根本的原則還是在於把過程分解為一個個獨立無依賴關係的分解動作,再將各個動作放置到它應該存在的結構位置。只是憑個人去設計所有流程動作總會存在死角,藉由其他人的review與回饋才更能補齊各種可能的思緒。

沒有留言:

張貼留言