一次處理多個(gè)項(xiàng)目是很難取得實(shí)質(zhì)性的進(jìn)展的。如果我們根據(jù)價(jià)值流進(jìn)行組織,那么我們就可以幫助工作流貫穿系統(tǒng)。
尋找流
當(dāng)你在做某事或做活動(dòng)時(shí)感覺(jué)到時(shí)光飛逝,而工作正在進(jìn)行。每個(gè)人都想實(shí)現(xiàn)它。我們之所以能實(shí)現(xiàn)生產(chǎn)力,并不是因?yàn)檫@很容易,而是因?yàn)樗械南到y(tǒng)都可以協(xié)同工作。但是流量不僅僅針對(duì)個(gè)人。它是針對(duì)團(tuán)隊(duì)和組織的,并且是開(kāi)發(fā)運(yùn)維的第一個(gè)核心目標(biāo)之一,它借鑒了精益(Lean)的思想。
管理流
在所有工作系統(tǒng)中,我們都致力于優(yōu)化流程。這個(gè)概念得到很多人的推廣,包括EliyahuGoldratt博士,他在《目標(biāo)(Goal)》一書(shū)中描述了約束理論(Theory of Constraints)。該理論指出,任何系統(tǒng)都存在瓶頸,這個(gè)瓶頸導(dǎo)致系統(tǒng)之前的工作堆積如山,而系統(tǒng)之后的下游工作站無(wú)活可干。分析工作流程就是為了提高和減輕約束,從而使工作可以更快地通過(guò)系統(tǒng)。在我們的業(yè)務(wù)中,我們常常將這種工作流稱(chēng)為價(jià)值流。
將價(jià)值流可視化的最佳方法之一是“價(jià)值流映射”,這在制造業(yè)中得到了廣泛的應(yīng)用,但這也可以在其他過(guò)程中使用,例如軟件交付。另一種方法在軟件交付中則更加普遍了:敏捷板(Agile board)。無(wú)論我們使用Scrum還是看板,我們幾乎都可以實(shí)時(shí)地查看工作在白板上從左向右流動(dòng)的情況。我們還可以看到瓶頸。為什么那個(gè)用戶(hù)故事在同一“等待”欄中停留了3周?為什么這個(gè)故事說(shuō)這是目前分配給在哥倫比亞度假的某個(gè)人?
敏捷板使我們可以將各種瓶頸可視化,但是如果未將敏捷板實(shí)施成貫穿于系統(tǒng)的慎密的策略的一部分,則工作可視化本身就是瓶頸!
工單系統(tǒng)
我們中有許多人都與大型IT組織打過(guò)交道。通常,如果你想完成某件事,答案就是“提交工單”。你需要新手機(jī)嗎?提交工單吧。想要?jiǎng)?chuàng)建一個(gè)新的電子郵件群?jiǎn)?提交工單吧。想要了解生產(chǎn)情況?提交工單吧。這往往會(huì)產(chǎn)生一個(gè)冗長(zhǎng)而反復(fù)的工單提交周期,如被要求對(duì)工單做出澄清,檢查工單狀態(tài),而且你往往還要忍受更長(zhǎng)的等待時(shí)間,最后才能得到解決。
工作是在人與人之間遞交的,因此工單實(shí)際上就是交接的任務(wù)。在精益思想中,交接以及由此而來(lái)的等待被認(rèn)為是浪費(fèi)。如果我們根據(jù)工單系統(tǒng)中的交接來(lái)設(shè)計(jì)工作流,那么我們就是在設(shè)計(jì)時(shí)將浪費(fèi)也帶進(jìn)來(lái)了,這將減慢我們的流程,因而減少了價(jià)值流中的工作流程。
工單是有意使我們的過(guò)程中斷的。在軟件開(kāi)發(fā)中,我們會(huì)遇到某一類(lèi)名為例外情況的錯(cuò)誤。一種例外情況的意思是軟件不知如何是好而故意中斷,因?yàn)樗枰藖?lái)解決問(wèn)題。這也許是由文件丟失,權(quán)限錯(cuò)誤或一些可怕的東西引起的。我們的工單系統(tǒng)旨在創(chuàng)建例外!這實(shí)際上就是異常行為,或者非程序(在軟件中)或流程(在價(jià)值流中)的正常組成部分。創(chuàng)建工單后,系統(tǒng)將停止并等人來(lái)解決問(wèn)題。
通常,我們?cè)诠蜗到y(tǒng)中看到的工作類(lèi)型是重復(fù)且簡(jiǎn)單的。在站點(diǎn)可靠性工程(SRE)中,我們稱(chēng)其為:“勞碌”。在《站點(diǎn)可靠性手冊(cè)》中,Vivek Rau將工作定義為:“這是這樣一種工作,它往往是手動(dòng)的,重復(fù)的,可自動(dòng)化的,戰(zhàn)術(shù)性的,沒(méi)有持久價(jià)值并且隨著服務(wù)的增長(zhǎng)呈線(xiàn)性增長(zhǎng)”。如果工單系統(tǒng)用于IT部門(mén),則可能是有人需要新的鼠標(biāo)或電話(huà)。如果用于生產(chǎn)運(yùn)營(yíng)部門(mén),則可能是將數(shù)據(jù)從一個(gè)地方復(fù)制到另一個(gè)地方,或者針對(duì)數(shù)據(jù)倉(cāng)庫(kù)運(yùn)行數(shù)據(jù)報(bào)送。
但是,所有這些活動(dòng)的共同點(diǎn)是辛勞。這種辛勞成為系統(tǒng)中的瓶頸,并阻礙了價(jià)值流的流動(dòng)。作為領(lǐng)導(dǎo)者,我們的工作是減少繁重的工作,將人們解放出來(lái),從事“不乏持久價(jià)值”的工作。在臉書(shū)或Salesforce,如果你需要新的鼠標(biāo)或更多的內(nèi)存,那么你可以使用你的工牌在自動(dòng)售貨機(jī)中獲取。使生產(chǎn)操作工作自動(dòng)化的這樣一條原則是Amazon Web Services(AWS)API概念的核心。過(guò)去,如果你想要一臺(tái)新服務(wù)器,那么你需要提交工單并等待。有了AWS,你則可以通過(guò)軟件或通過(guò)單擊Web控制臺(tái)進(jìn)行API調(diào)用,幾分鐘后,你將獲得一臺(tái)服務(wù)器!
故事流
盡量減少工單系統(tǒng)中的工作量并不意味著我們不需要跟蹤工作。任何采用敏捷方法的公司都將在Jira這樣的工作跟蹤系統(tǒng)中管理項(xiàng)目工作。不幸的是,很多工程師不喜歡項(xiàng)目跟蹤軟件,正如他們不喜歡開(kāi)會(huì)一樣!
為了確保最大程度地使用跟蹤系統(tǒng),最好使其變得盡可能簡(jiǎn)單(但不要太簡(jiǎn)單)。從根本上講,這是一個(gè)用戶(hù)體驗(yàn)問(wèn)題。如果人們?cè)谂c系統(tǒng)交互時(shí)不能獲得良好的體驗(yàn),那么沒(méi)有人會(huì)樂(lè)此不彼地使用這樣的系統(tǒng)。我發(fā)現(xiàn),許多熱心的項(xiàng)目經(jīng)理在系統(tǒng)中設(shè)計(jì)復(fù)雜的工作流,其中包含許多必填字段,這些字段對(duì)工程師沒(méi)有任何意義。如果工作流程過(guò)于緊湊且缺乏靈活性,那么系統(tǒng)將無(wú)法得到使用。如果字段和必填的復(fù)選框太多,系統(tǒng)也同樣無(wú)法得到使用。
通常,在嘗試收集大量要報(bào)送給高級(jí)管理層的優(yōu)質(zhì)數(shù)據(jù)的過(guò)程中,我們最終得到了一個(gè)系統(tǒng),這個(gè)系統(tǒng)收集的高質(zhì)量數(shù)據(jù)要遠(yuǎn)遠(yuǎn)少于當(dāng)它以更簡(jiǎn)單的形式實(shí)施時(shí)所收集的高質(zhì)量數(shù)據(jù)。我們的目的是使工作可見(jiàn),以便我們可以查找流程中的瓶頸并確保系統(tǒng)按預(yù)期工作。如果我們有優(yōu)質(zhì)的數(shù)據(jù),我們就知道怎么報(bào)送才算好。就像在機(jī)器學(xué)習(xí)中一樣,如果我們有不良數(shù)據(jù)或干脆沒(méi)有數(shù)據(jù),那么我們期望的結(jié)果的質(zhì)量會(huì)很差。
我們需要根據(jù)“敏捷的豬(而不是雞)”的形式來(lái)組織系統(tǒng)的效用,以最大化該工具的效用。既然工程師們必須通過(guò)編寫(xiě)代碼為業(yè)務(wù)創(chuàng)造價(jià)值,那么我們就不應(yīng)該讓他們?yōu)榱烁呒?jí)管理層而花很多額外的時(shí)間來(lái)解決問(wèn)題。
按產(chǎn)品而非項(xiàng)目進(jìn)行組織
一旦我們完成了這兩件事——不斷消除工單系統(tǒng)中的辛勞并確保我們的工作跟蹤系統(tǒng)不會(huì)帶來(lái)過(guò)多負(fù)擔(dān),我們接下來(lái)如何組織工作?
MikKersten博士在其著作《從產(chǎn)品到項(xiàng)目(Product to Project)》中討論了圍繞產(chǎn)品組織的工作與圍繞項(xiàng)目組織的工作之間的區(qū)別。在項(xiàng)目模型中,人員被分配到工作中,工作完成后,他們將被分配到其它的工作中。在產(chǎn)品模型中,工作被帶給了人們,并且有這樣一層理解,即我們永遠(yuǎn)也“完成”不了交付品,因?yàn)榻桓镀繁旧砭褪钱a(chǎn)品。
例如,如果我們要完成一個(gè)修補(bǔ)服務(wù)器漏洞的項(xiàng)目,那么我們將組建一個(gè)團(tuán)隊(duì),這個(gè)團(tuán)隊(duì)將展開(kāi)分工并修補(bǔ)所有服務(wù)器,這很有可能涉及大量相關(guān)工作。但是,下次需要修補(bǔ)服務(wù)器時(shí)會(huì)發(fā)生什么?我們是否重新組建團(tuán)隊(duì),讓這個(gè)團(tuán)隊(duì)像以前一樣重做一切?那再下次呢?下次再下次呢?
相反,如果我們將圍繞如何為服務(wù)器修補(bǔ)漏洞而打造(或購(gòu)買(mǎi))一個(gè)產(chǎn)品。我們會(huì)分配一個(gè)團(tuán)隊(duì),該團(tuán)隊(duì)的其中一個(gè)職責(zé)的就是修補(bǔ)服務(wù)器。剛開(kāi)始的一兩次嘗試,他們也許會(huì)像以前做項(xiàng)目的方式一樣來(lái)完成工作。但是到了第三或第四或第十次嘗試時(shí),他們可能會(huì)投入大量的工程時(shí)間和精力來(lái)使修補(bǔ)服務(wù)器的工作盡可能快速而輕松。他們希望努力消除辛勞,使工作更輕松,而非重復(fù)機(jī)械運(yùn)動(dòng)。
這是一個(gè)很好的例子,這說(shuō)明了即使是運(yùn)營(yíng)團(tuán)隊(duì)也可以交付產(chǎn)品。在修補(bǔ)(或監(jiān)視或部署)產(chǎn)品的例子中,該產(chǎn)品的客戶(hù)恰好是內(nèi)部客戶(hù),這與我們所面向的普通客戶(hù)不同。
一種產(chǎn)品
就這些產(chǎn)品而言,我們要這樣組織工作,即便于專(zhuān)門(mén)交付該產(chǎn)品所需的一切東西能在同樣的空間中得到跟蹤,這很重要。工作不應(yīng)分散在同一工作跟蹤系統(tǒng)中的多個(gè)不同空間中,而應(yīng)分布在同一空間中。這是我們從跨職能團(tuán)隊(duì)那里學(xué)到的經(jīng)驗(yàn)教訓(xùn):當(dāng)交付產(chǎn)品的所需的所有功能都具備時(shí),而我們不必等工單系統(tǒng)交接工作。
產(chǎn)品交付中涉及的每個(gè)人都應(yīng)有權(quán)使用有關(guān)交付產(chǎn)品所需數(shù)據(jù)的數(shù)據(jù)。每當(dāng)我與客戶(hù)合作時(shí),運(yùn)營(yíng)團(tuán)隊(duì)會(huì)說(shuō):“我們盡了自己的職責(zé),這就是開(kāi)發(fā)團(tuán)隊(duì)的責(zé)任。”我解釋說(shuō)只有一種產(chǎn)品!產(chǎn)品不分開(kāi)發(fā)與運(yùn)維,只有一種產(chǎn)品。我們的客戶(hù)不在乎開(kāi)發(fā)團(tuán)隊(duì)是否履行了職責(zé)。工程負(fù)責(zé)人不在乎運(yùn)維團(tuán)隊(duì)是否完成了任務(wù)。這些客戶(hù)關(guān)心產(chǎn)品是否按時(shí)高質(zhì)量交付給客戶(hù)。兩個(gè)團(tuán)隊(duì)都有責(zé)任齊心協(xié)力,以確保實(shí)現(xiàn)那些業(yè)務(wù)目標(biāo),毫無(wú)疑問(wèn),這才叫開(kāi)發(fā)運(yùn)維。
因此,所有工作都必須在與產(chǎn)品相關(guān)的同一空間中得到跟蹤,包括修復(fù)工作。我發(fā)現(xiàn)有很多團(tuán)隊(duì)在發(fā)生事故后進(jìn)行事后評(píng)估或?qū)W習(xí)各種評(píng)估,然后才提出一些要完成的修復(fù)項(xiàng)目,以防止下次中斷。但是這些項(xiàng)目是單獨(dú)跟蹤的,而非常規(guī)工作跟蹤系統(tǒng)的一部分,因?yàn)樗鼈兪?ldquo;特殊”項(xiàng)目。問(wèn)題是,它們并不特殊。Kersten博士告訴我們有四種要應(yīng)對(duì)的工作類(lèi)型:
功能
缺陷
風(fēng)險(xiǎn)
債務(wù)
應(yīng)對(duì)風(fēng)險(xiǎn)只是他所謂的“流程項(xiàng)目”之一。簡(jiǎn)而言之,補(bǔ)救工作就是工作!這意味著需要分清工作的輕重緩急。如果存在需要為企業(yè)償還的技術(shù)債務(wù),或者比補(bǔ)救(風(fēng)險(xiǎn))任務(wù)更為重要的錯(cuò)誤(缺陷),那我們就不應(yīng)聲稱(chēng)風(fēng)險(xiǎn)是特殊的,而應(yīng)首先進(jìn)行此項(xiàng)工作。
傳統(tǒng)的項(xiàng)目管理
有些人可讀到這個(gè)可能想知道“傳統(tǒng)項(xiàng)目管理適用的地方是什么”。他們一直部分輕重緩急地管理著所有的項(xiàng)目”。項(xiàng)目經(jīng)理在這種新模型中發(fā)揮著更為重要的作用,這才是最妙的地方。
在這個(gè)模型中,工程師有權(quán)管理自己的工作。他們不需要項(xiàng)目經(jīng)理來(lái)詢(xún)問(wèn)狀態(tài)報(bào)告,也不需要將已完成的工作錄入為正式的清單,因?yàn)檫@都是系統(tǒng)的一部分。工程師可以輕松錄入。在這種新的工作方式中,項(xiàng)目經(jīng)理可以利用自己最擅長(zhǎng)的技能,這些技能通常是與人共事并跟蹤進(jìn)度,但他們可以使用這種工作方式來(lái)確保工作在系統(tǒng)中順利進(jìn)行。
在任何足夠大的系統(tǒng)中(足夠大而需要項(xiàng)目經(jīng)理),團(tuán)隊(duì)之間總是存在依賴(lài)關(guān)系。這是項(xiàng)目經(jīng)理可以派上用場(chǎng)的地方。他們不是管理一個(gè)或多個(gè)團(tuán)隊(duì)中的關(guān)系,而是管理各大團(tuán)隊(duì)之間的關(guān)系。
Dominica DeGrandis曾向我們的行業(yè)講授了時(shí)間盜賊的概念。那些通常看不見(jiàn)但是拖慢價(jià)值流速度的東西。未知的依賴(lài)性盜賊是一個(gè)不容小視的問(wèn)題。DeGrandis女士解釋說(shuō):“依賴(lài)性(無(wú)論是基于體系結(jié)構(gòu),專(zhuān)業(yè)知識(shí)還是活動(dòng)),增加了協(xié)調(diào)的必要性。”
這是我們的項(xiàng)目管理組織非常熟練的地方。他們是主要的協(xié)調(diào)者,他們可以揭示這些依賴(lài)關(guān)系并使團(tuán)隊(duì)、產(chǎn)品和組織通過(guò)價(jià)值流對(duì)快速的工作流程進(jìn)行優(yōu)化。
隨著敏捷和云的出現(xiàn),項(xiàng)目管理發(fā)生了很大變化。Kersten博士解釋說(shuō),擅長(zhǎng)實(shí)施軟件的公司將蓬勃發(fā)展,而那些苦苦掙扎的公司將瞠乎其后。人們只要觀察一下技術(shù)巨頭進(jìn)入新市場(chǎng)和推出新產(chǎn)品并取代已有參與者的這種能力就明白這一點(diǎn)。只要通過(guò)消除辛勞和消除流動(dòng)障礙來(lái)優(yōu)化價(jià)值流,我們就可以使公司在市場(chǎng)中以有力的地位參與競(jìng)爭(zhēng)并與客戶(hù)一道繼續(xù)蓬勃發(fā)展。