TOC致力于找出管理鏈條中的薄弱環(huán)節(jié),然后通過(guò)各種手段加強(qiáng)它,當(dāng)它不再是最弱的一環(huán)時(shí),再去尋找新的薄弱環(huán)節(jié),如此往復(fù),整個(gè)管理鏈條都得以加強(qiáng)了。TOC(Theory Of Constraints)是高德拉特(Eliyahu M.Tolerate)創(chuàng)立的“制約法”,是一套獨(dú)特的管理方法論,將之應(yīng)用到軟件項(xiàng)目管理中也一樣適用。
M項(xiàng)目自實(shí)施以來(lái)已經(jīng)過(guò)去了1個(gè)半月,目前該項(xiàng)目還在;試用-修改-再試用-再修改”的泥沼中苦苦掙扎,4名開發(fā)人員已經(jīng)人困馬乏,疲于應(yīng)付,但系統(tǒng)的問(wèn)題清單仍然越來(lái)越長(zhǎng),似乎沒(méi)有盡頭。這個(gè)項(xiàng)目是為生產(chǎn)部門開發(fā)的生產(chǎn)線的管理系統(tǒng)。去年,由于生產(chǎn)工藝和流程變化,已經(jīng)使用了幾年的管理系統(tǒng)無(wú)法繼續(xù)使用了,因此生產(chǎn)部門購(gòu)買了一套外國(guó)公司的生產(chǎn)管理軟件,花費(fèi)不菲,試運(yùn)行的時(shí)候卻發(fā)現(xiàn)系統(tǒng)響應(yīng)速度非常慢,幾乎造成5條生產(chǎn)線全部停工,無(wú)奈之下只好提前結(jié)束合同,當(dāng)然,首付款也打了水漂。
目前,生產(chǎn)線完全依靠人工管理,生產(chǎn)效率低下,生產(chǎn)部門迫切希望于信息部門能夠盡快開發(fā)出新系統(tǒng),以緩解生產(chǎn)制造的混亂局面。系統(tǒng)的上線時(shí)間,生產(chǎn)部門的要求近乎苛刻,信息部在接到任務(wù)后,只好將項(xiàng)目計(jì)劃緊縮、再緊縮。開發(fā)部的工程師非常努力,只用了3個(gè)月就完成了需求調(diào)研和代碼開發(fā),并于1個(gè)半月前開始試運(yùn)行。但是問(wèn)題很快出現(xiàn)了,本來(lái)預(yù)計(jì)只要2周的系統(tǒng)實(shí)施階段一拖再拖,問(wèn)題不斷,眼看三個(gè)2周都過(guò)去了,距正式上線仍遙遙無(wú)期,對(duì)此各方面都非常著急,卻搞不清楚為何如此。
一、原因何在?
實(shí)施受阻,原因何在?信息部為了按時(shí)交付系統(tǒng),不得不一再的壓縮開發(fā)和測(cè)試的時(shí)間,軟件質(zhì)量因此大打折扣。在開發(fā)過(guò)程中,系統(tǒng)集成測(cè)試基本屬于奢望,開發(fā)人員甚至沒(méi)有時(shí)間對(duì)自己的代碼做充分的單元測(cè)試,就匆忙發(fā)布了,這種做法大大降低了軟件的質(zhì)量,也正是不斷降低的質(zhì)量標(biāo)準(zhǔn)導(dǎo)致了試運(yùn)行時(shí)鋪天蓋地的錯(cuò)誤和缺陷。更麻煩的是,由于不斷的對(duì)軟件功能進(jìn)行修改,只好不斷的對(duì)修改的代碼進(jìn)行測(cè)試,不斷的對(duì)修改過(guò)的功能進(jìn)行用戶培訓(xùn),造成實(shí)施時(shí)間一延再延。
“實(shí)施階段”指的是指軟件拿到用戶的實(shí)際工作場(chǎng)所進(jìn)行部屬和使用的階段。一般來(lái)說(shuō),系統(tǒng)實(shí)施要經(jīng)過(guò)“軟件交付——〉發(fā)布——〉用戶培訓(xùn)——〉用戶試用——〉發(fā)現(xiàn)問(wèn)題——〉軟件修改——〉軟件測(cè)試——〉重新發(fā)布”這樣一個(gè)螺旋式前進(jìn)的過(guò)程,這個(gè)過(guò)程將不斷的重復(fù),直到系統(tǒng)沒(méi)有問(wèn)題或者存在的問(wèn)題用戶可以接受為止。不要懷疑這個(gè)過(guò)程的復(fù)雜和繁瑣,因?yàn)檫@才是事實(shí),像那種理想化的、一帆風(fēng)順的實(shí)施過(guò)程通常只會(huì)在教科書上出現(xiàn),我們必須充分認(rèn)識(shí)到系統(tǒng)實(shí)施階段存在的風(fēng)險(xiǎn)。
在這樣一個(gè)循序漸進(jìn)的過(guò)程中,每個(gè)環(huán)節(jié)都可能引發(fā)混亂,造成延誤,并在各步驟間傳遞和放大這些延誤,導(dǎo)致實(shí)施階段的延期。比如:開發(fā)過(guò)程的延誤,造成交付的推遲;用戶培訓(xùn)的拖后,造成試用的推遲;問(wèn)題發(fā)現(xiàn)的緩慢,造成軟件修改的推遲;軟件修改的頻繁,造成測(cè)試的推遲;軟件測(cè)試的延誤,造成再次發(fā)布的推遲。
二、沖出泥沼
讓我們用TOC的觀點(diǎn)和方法來(lái)分析這混亂的狀況,并找出解決方法。
1、沖突
[TOC觀點(diǎn)]:發(fā)現(xiàn)沖突是解決問(wèn)題的第一步。TOC認(rèn)為,如果一個(gè)問(wèn)題未能以兩個(gè)必備條件之間的沖突來(lái)表達(dá),那么這個(gè)問(wèn)題就沒(méi)有清晰的定義。
從成本世界出發(fā),各步驟所用的時(shí)間越短越好,所進(jìn)行的循環(huán)次數(shù)越少越好;
從有效產(chǎn)出世界出發(fā),各步驟所做的準(zhǔn)備工作越充分越好,所進(jìn)行的循環(huán)次數(shù)越多,則有效產(chǎn)出的質(zhì)量和效果越好。
2、制約因素