摘要
在微處理器行業(yè)中,產(chǎn)品開發(fā)工程設(shè)計(jì)(PDE)團(tuán)隊(duì)提供相關(guān)測(cè)試來進(jìn)行經(jīng)濟(jì)實(shí)惠的設(shè)備檢驗(yàn)和分類。PDE 夾在實(shí)際設(shè)計(jì)團(tuán)隊(duì)和工廠制造團(tuán)隊(duì)之間,由于缺乏對(duì)于(團(tuán)隊(duì)級(jí)別的)期限、范圍、需求或可交付產(chǎn)品的控制,他們時(shí)常承受著巨大的壓力。
為了更好地協(xié)調(diào)PDE 內(nèi)各個(gè)子團(tuán)隊(duì)的工作,總數(shù)約50人的7個(gè)團(tuán)隊(duì)自主探索了一個(gè)協(xié)調(diào)度更好的方式來進(jìn)行產(chǎn)品開發(fā)。要實(shí)現(xiàn)這種協(xié)調(diào)和整合,筆者認(rèn)為Scrum 是可以采用的項(xiàng)目管理框架,同時(shí)還要結(jié)合敏捷工程設(shè)計(jì)的實(shí)踐。本文說明了該企業(yè)對(duì)于Scrum 的學(xué)習(xí)和探索,以及這項(xiàng)投資的結(jié)果。
介紹
在采用“敏捷”和Scrum 方式的軟件工程設(shè)計(jì)領(lǐng)域中,存在大量實(shí)踐。其中許多實(shí)踐針對(duì)利用小團(tuán)隊(duì)的中小型企業(yè),他們采用面向?qū)ο蟮恼Z言開發(fā)軟件。位于美國(guó)俄勒岡和太平洋地區(qū)(OAP)的PDE 團(tuán)隊(duì)是一個(gè)大型企業(yè),需要跨越多個(gè)團(tuán)隊(duì)和站點(diǎn)、跨越多種文化和環(huán)境來實(shí)施Scrum 和“敏捷”軟件開發(fā)。我們的工作產(chǎn)品是一款在自動(dòng)測(cè)試設(shè)備(ATE)上運(yùn)行的測(cè)試程序。ATE 擁有專屬的操作系統(tǒng)和接口語言,這有礙于我們使用行業(yè)標(biāo)準(zhǔn)和現(xiàn)有的軟件驗(yàn)證解決方案。事實(shí)上,我們正在一個(gè)使用專屬語言的環(huán)境中工作,而且既沒有現(xiàn)成的單元測(cè)試框架,也無法進(jìn)行離線測(cè)試。此外,長(zhǎng)期以來我們一直深受以下問題的困擾,包括需求探討、過度承諾、未趕上時(shí)間安排、日以繼夜的工作周、士氣低落和很高的職員流動(dòng)率。
長(zhǎng)久的構(gòu)建和制造歷史導(dǎo)致Intel 具有濃厚的瀑布式軟件開發(fā)的文化氛圍,而且他們普遍將瀑布式軟件開發(fā)視為通向成功的先進(jìn)途徑。團(tuán)隊(duì)通常以孤立的職能“豎井”(functional silo)形式進(jìn)行組建,遵照時(shí)間安排定期將可交付的產(chǎn)品移交給其他職能豎井團(tuán)隊(duì)。其結(jié)果就是:某些團(tuán)隊(duì)在產(chǎn)品生命周期的后階段承受著巨大的重負(fù),而且在項(xiàng)目末期存在著很高的職員流動(dòng)率。最終導(dǎo)致每個(gè)團(tuán)隊(duì)收納各種領(lǐng)域?qū)<?,他們所具有的技能很少與其他團(tuán)隊(duì)成員一致。因此一個(gè)團(tuán)隊(duì)中的各個(gè)成員很難成為搭檔共同負(fù)責(zé)一些任務(wù)。
盡管面臨那么多挑戰(zhàn),我們還是決定勇往直前,不過準(zhǔn)備采用不同的方式來管理項(xiàng)目,以便更好地團(tuán)結(jié)測(cè)試團(tuán)隊(duì),更順利地交付我們的工作產(chǎn)品。在項(xiàng)目的初始階段,我們選擇為企業(yè)引入Scrum,其中大部分工作為硅前(presilicon)基礎(chǔ)設(shè)施的開發(fā)和一些準(zhǔn)備工作。如果我們能夠在第一階段使Scrum有效地運(yùn)作,我們認(rèn)為在一個(gè)項(xiàng)目相對(duì)平穩(wěn)的階段中習(xí)得的實(shí)踐可以為我們指明方向,通往壓力更大的執(zhí)行階段——在此期間,日常工作量完全取決于實(shí)際硅片的健康狀況、不斷變化的外部商業(yè)景氣、以及客戶對(duì)于設(shè)計(jì)、生產(chǎn)和制造的要求。
第一階段:針對(duì)硅片的準(zhǔn)備工作
第一個(gè)要進(jìn)行轉(zhuǎn)變的小組包括六個(gè)團(tuán)隊(duì)和許多子團(tuán)隊(duì)。一開始我們聘請(qǐng)了CollabNet 提供Scrum 教學(xué)和培訓(xùn)。大約20個(gè)小組的負(fù)責(zé)人和技術(shù)負(fù)責(zé)人參加了為期兩天的ScrumMaster 認(rèn)證培訓(xùn),以便深入了解Scrum 的原理和實(shí)踐。遺憾的是,三名高級(jí)經(jīng)理錯(cuò)過了這次培訓(xùn),導(dǎo)致其后的轉(zhuǎn)變流程中出現(xiàn)了不少障礙。負(fù)責(zé)人的參與對(duì)我們的成功而言至關(guān)重要。由于我方三名職位主要負(fù)責(zé)人缺席了首次培訓(xùn),導(dǎo)致他們對(duì)于我們?cè)O(shè)法做出的改變?nèi)狈σ欢ㄕJ(rèn)知。
培訓(xùn)結(jié)束后,參與者們出席了一個(gè)回顧會(huì)議,在CollabNet 代表不在場(chǎng)的情況下討論了他們對(duì)于Scrum 項(xiàng)目管理方式的看法、保留意見和接受程度。團(tuán)隊(duì)負(fù)責(zé)人同意在質(zhì)疑新流程是否有效之前或按照Intel 需求對(duì)其進(jìn)行定制之前,先用三個(gè)月時(shí)間“按照規(guī)定”來實(shí)施Scrum 原理和習(xí)慣。我們組建了一個(gè)流程行動(dòng)團(tuán)隊(duì)(PAT)來監(jiān)控試點(diǎn)團(tuán)隊(duì)內(nèi)的Scrum 開發(fā),并為流程中遇到的問__________題提供技術(shù)支持。即使達(dá)成了上述協(xié)議,我已然能夠感覺到企業(yè)中支持Scrum 的人員分成了“豬”和“雞”兩派。
小組和團(tuán)隊(duì)負(fù)責(zé)人作為所有七個(gè)團(tuán)隊(duì)的“產(chǎn)品負(fù)責(zé)人”,而我作為ScrumMaster(Scrum 主管)。我強(qiáng)烈地意識(shí)到Scrum 是要在這些團(tuán)隊(duì)內(nèi)實(shí)施的重要框架,我愿意承擔(dān)風(fēng)險(xiǎn)來支持這種框架。雖然承擔(dān)這種風(fēng)險(xiǎn)的結(jié)果十分樂觀,但要管理七個(gè)團(tuán)隊(duì)來實(shí)施Scrum 長(zhǎng)達(dá)整整一個(gè)季度,這使我差點(diǎn)撐不下去!
我們與CollabNet 顧問Michael James 和Dan Rawsthorne 一起研究,認(rèn)為有一個(gè)自愿擔(dān)當(dāng)ScrumMaster 的人員對(duì)于各個(gè)團(tuán)隊(duì)的成功和穩(wěn)定至關(guān)重要。首先,我們和Intel 管理層協(xié)商,以便確保ScrumMaster 這個(gè)職位在績(jī)效評(píng)估體系中需要發(fā)揮的重要作用:是簡(jiǎn)化并促進(jìn)Scrum 流程而非注重于管理經(jīng)費(fèi)。然后,那些報(bào)名擔(dān)任ScrumMaster 職位的人員對(duì)于他們要負(fù)責(zé)的團(tuán)隊(duì)在技術(shù)方面不存在厲害關(guān)系。這有助于避免在他們的技術(shù)項(xiàng)目和促進(jìn)Scrum 流程的職責(zé)之間產(chǎn)生任何利益沖突。預(yù)算的存在不是讓ScrumMaster 為了促進(jìn)ScrumMaster 的工作而放棄其自身的工程設(shè)計(jì)工作。不過,可以向報(bào)名擔(dān)任ScrumMaster 的人員提供支持來適應(yīng)職責(zé)的變化。
三個(gè)月過后,又有三個(gè)額外的ScrumMaster 來管理七個(gè)團(tuán)隊(duì)。此外,第八個(gè)團(tuán)隊(duì)自愿開始使用Scrum。大約五個(gè)月過后,調(diào)整所有Scrum 團(tuán)隊(duì)中的工作量是我們面臨的最大挑戰(zhàn)之一。在增加后來逐漸組建而成的額外五個(gè)團(tuán)隊(duì)之前,企業(yè)必須了解有關(guān)如何管理多個(gè)團(tuán)隊(duì)間相互依賴的更多知識(shí),并實(shí)現(xiàn)團(tuán)隊(duì)間更好的交流。
我們?cè)俅纹刚?qǐng)了Danube 為原先上過ScrumMaster 認(rèn)證培訓(xùn)課程的員工和錯(cuò)過第一節(jié)課的高級(jí)經(jīng)理教授有關(guān)對(duì)于Scrum 的工作量調(diào)整進(jìn)行定制的課程。此次為期一天的培訓(xùn)不僅回顧了發(fā)布規(guī)劃和沖刺規(guī)劃的主要原理,還著重說明了如何跨多個(gè)團(tuán)隊(duì)調(diào)整工作量。我們?cè)俅尾捎昧恕皩W(xué)習(xí)、嘗試、檢驗(yàn)和適應(yīng)”的方式來調(diào)整工作量。
學(xué)完一些有關(guān)工作量調(diào)整的“先進(jìn)實(shí)踐”后,我們開始分析團(tuán)隊(duì)中的問題,并嘗試采用一種課堂上學(xué)會(huì)的調(diào)整模型,然后根據(jù)團(tuán)隊(duì)的實(shí)際環(huán)境對(duì)其進(jìn)行定制。增加一些新職位來處理技術(shù)性依賴問題,并管理逐漸產(chǎn)生的更多部門后,該小組在一年內(nèi)擴(kuò)展成12個(gè)Scrum 團(tuán)隊(duì),每個(gè)團(tuán)隊(duì)擁有5-9名開發(fā)人員。
我們與CollabNet 顧問討論后得出:促成企業(yè)成功轉(zhuǎn)變的兩大因素是自愿性和自組織。雖然我們要求被委任三個(gè)月內(nèi)“按規(guī)定”實(shí)施Scrum 的團(tuán)隊(duì)遵照關(guān)鍵原理和實(shí)踐,顯然適應(yīng)比遵循更加重要。管理層所表現(xiàn)出的“請(qǐng)先試一下”的這種態(tài)度促使團(tuán)隊(duì)能夠更好地接受。三個(gè)月試用期過后,這些團(tuán)隊(duì)被給予很大的自由,在每個(gè)沖刺中對(duì)自身進(jìn)行組織和管理,并檢驗(yàn)和適應(yīng)他們采用的方式。雖然這些團(tuán)隊(duì)必須在一起工作,他們擁有盡可能多的自由來決定有效的方式。每周在與所有產(chǎn)品負(fù)責(zé)人和ScrumMaster 舉行的PAT 會(huì)議中,我們討論了偏移問題,但沒有對(duì)其做出評(píng)判。我們?cè)谶@一階段的目標(biāo)是團(tuán)結(jié)和整合,而非達(dá)成一致。
可視性對(duì)于這個(gè)流程而言也是一個(gè)重要因素。內(nèi)部的“維基”(Wiki)允許團(tuán)隊(duì)編寫文檔,指明哪些方式和信息對(duì)其很有幫助,哪些不太奏效,并對(duì)實(shí)踐提出建議來更好地適應(yīng)Scrum。
“按規(guī)定”實(shí)施Scrum 是讓所有團(tuán)隊(duì)接受并采用Scrum 的一個(gè)必要環(huán)節(jié)。不過,就OAP 這種規(guī)模的企業(yè)而言,必須符合企業(yè)的某些組織結(jié)構(gòu)和特定需求。長(zhǎng)達(dá)三個(gè)月的試用期過后,我們對(duì)Scrum 方案做出了一些修改,使其能夠符合并適應(yīng)我們的文化和環(huán)境。首先,團(tuán)隊(duì)必須定義對(duì)其目標(biāo)有用的角色。我們定義了以下角色:
· 業(yè)務(wù)負(fù)責(zé)人:高級(jí)經(jīng)理或工程師負(fù)責(zé)人,主要職責(zé)是監(jiān)督多個(gè)團(tuán)隊(duì)或?yàn)樗袌F(tuán)隊(duì)協(xié)調(diào)技術(shù)問題。業(yè)務(wù)負(fù)責(zé)人設(shè)置“路線圖里程碑”(發(fā)布規(guī)劃)并定義每個(gè)里程碑的“所需”功能。Scrum 團(tuán)隊(duì)仍然可以根據(jù)他們的速度對(duì)承諾的任務(wù)量進(jìn)行調(diào)整,以便實(shí)現(xiàn)功能目標(biāo)。
· 產(chǎn)品負(fù)責(zé)人:通常就是小組管理員。
· 技術(shù)負(fù)責(zé)人:技術(shù)負(fù)責(zé)人來自各個(gè)職能團(tuán)隊(duì),他們可以共同處理整合、依從性和結(jié)構(gòu)問題,來確保團(tuán)隊(duì)間相互關(guān)聯(lián)的產(chǎn)量是一致的。技術(shù)負(fù)責(zé)人舉行特別會(huì)議來將“史詩”分解成可以在各沖刺階段中完成的“故
事”。
· ScrumMasters(Scrum 主管):跨團(tuán)隊(duì)工程師,對(duì)于他或她作為ScrumMaster 的項(xiàng)目團(tuán)隊(duì)沒有特定的利害關(guān)系。這有助于控制ScrumMaster 不合理的鞭策,使其在技術(shù)性解決方案中保持中立。
· 團(tuán)隊(duì):團(tuán)隊(duì)負(fù)責(zé)此測(cè)試包的特定產(chǎn)量,很少與跨職能團(tuán)隊(duì)成員共事。幾乎始終是一個(gè)孤立的職能豎井團(tuán)隊(duì)。
· 臨時(shí)工:具有專門技能的小組成員,多個(gè)團(tuán)隊(duì)每次僅在一兩個(gè)沖刺階段中需要這些技能。他們?cè)诟鳑_刺的交接時(shí)期加入或退出。
· 溝通人員(Conduit):這類團(tuán)隊(duì)成員既可以是承包總監(jiān)(contractorsupervisor)也可以是遠(yuǎn)程團(tuán)隊(duì)的本地成員。溝通人員可以比常規(guī)的團(tuán)隊(duì)成員簽署更多的故事點(diǎn)(story point)工作量。
· 故事負(fù)責(zé)人:了解如何完成一個(gè)“故事”的技術(shù)專家,他可以分配任務(wù),也能要求特定的團(tuán)隊(duì)成員參與進(jìn)來以便完成這些任務(wù)。他能準(zhǔn)確告訴您“故事”的狀態(tài)和進(jìn)展。
最后,在這一產(chǎn)品開發(fā)階段中,整個(gè)Scrum 團(tuán)隊(duì)小組從本質(zhì)上而言都是其自己的客戶。我們只是在構(gòu)建基礎(chǔ)設(shè)施以便支持硅片調(diào)試和制造。在項(xiàng)目的第一年里,基本不存在要求特定功能的外力。這使我們很難區(qū)分業(yè)務(wù)價(jià)值的優(yōu)先級(jí)。因此,產(chǎn)品負(fù)責(zé)人和業(yè)務(wù)負(fù)責(zé)人設(shè)法通過預(yù)估業(yè)務(wù)價(jià)值和整體優(yōu)先級(jí)來區(qū)分這些功能的優(yōu)先級(jí),大致上類似于依存性管理戰(zhàn)略。
到第一年末,Scrum 已在我們的企業(yè)內(nèi)扎根,成為我們工作規(guī)劃和需求管理的默認(rèn)框架。PAT 已獲得關(guān)于“定制的Scrum 方案”是否奏效的大量數(shù)據(jù)。馬上就要進(jìn)入硅片階段了。該流程能頂住實(shí)際的業(yè)務(wù)壓力嗎?還是在實(shí)踐中會(huì)趨于“舊”方式而將這個(gè)新流程“扔出窗外”?
第二階段:硅片階段的生存考驗(yàn)
對(duì)于產(chǎn)品開發(fā)工程師而言,處理第一塊硅片是十分艱巨的時(shí)刻。當(dāng)硅片出現(xiàn)時(shí),所有需求都不太明確,需要我們花費(fèi)數(shù)周時(shí)間來收集有關(guān)硅片設(shè)備的必要數(shù)據(jù),以便決定如何實(shí)行該項(xiàng)目。
根據(jù)在第一塊硅片上發(fā)生的情況,我決定重新“檢驗(yàn)并調(diào)整”我們公司所采用的Scrum 方式。我所看見的情況真的令我十分震驚。我有一個(gè)Scrum 團(tuán)隊(duì)已恢復(fù)他們的舊習(xí)慣。其他一些Scrum 團(tuán)隊(duì)決定對(duì)第一塊硅片采取Scrum 方式不過都陸續(xù)失敗了。其余那些堅(jiān)持使用Scrum 方式的團(tuán)隊(duì)就像試圖抓住救生圈的溺水者。
在這種環(huán)境下不可能繼續(xù)保持我們?yōu)槠趦芍艿臎_刺,大多數(shù)Scrum 團(tuán)隊(duì)轉(zhuǎn)而采用了為期一天的沖刺。他們每天用一小時(shí)時(shí)間來開會(huì),回顧和探討過去的情況并規(guī)劃接下來24小時(shí)要完成的任務(wù)。在處理第一塊硅片的重壓下,Scrum 的四個(gè)會(huì)議被濃縮成一個(gè)會(huì)議。不過,當(dāng)我出席這些會(huì)議時(shí),我發(fā)現(xiàn)Scrum 所主張的關(guān)鍵舉措都在有條不紊地進(jìn)行著,包括基于業(yè)務(wù)價(jià)值的優(yōu)先級(jí)區(qū)分、團(tuán)隊(duì)規(guī)模的調(diào)整、任務(wù)范圍不超過“產(chǎn)品訂單(backlog)”的內(nèi)容、改善流程并回顧工作成品等,只不過是隨著對(duì)于設(shè)備認(rèn)知的增長(zhǎng),以更小的規(guī)模和更快的速度進(jìn)行著這一切。
在企業(yè)的所有負(fù)責(zé)人和經(jīng)理都會(huì)出席的每日調(diào)試?yán)龝?huì)中,每次有任何專門的需求被提出時(shí),我就會(huì)聽到產(chǎn)品負(fù)責(zé)人詢問:“產(chǎn)品訂單中存在針對(duì)這個(gè)需求的故事嗎?”我還發(fā)現(xiàn)不少開發(fā)人員抓住項(xiàng)目執(zhí)行人或產(chǎn)品負(fù)責(zé)人并將他們拖拽到測(cè)試設(shè)備前,以便親眼證實(shí)添加到他們程序中的內(nèi)容是符合其驗(yàn)收標(biāo)準(zhǔn)的。
這一高強(qiáng)度的調(diào)試和開發(fā)階段持續(xù)了幾周。在該階段末期,存活下來的Scrum 團(tuán)隊(duì)看上去安然無恙,并將他們的沖刺周期像手風(fēng)琴一樣重新延長(zhǎng)至兩周。他們?cè)谥芪迮e行的調(diào)試會(huì)議上宣布了上述變更,并在下周正式實(shí)行,這種為期兩周的沖刺延續(xù)至今依然十分有效。
第三階段:為制造做準(zhǔn)備
隨著硅片的狀況日漸健康,我們開始為制造做準(zhǔn)備,我發(fā)現(xiàn)在硅片階段后期這種環(huán)境下,職能豎井Scrum 團(tuán)隊(duì)被任務(wù)移交(handoff)搞得疲憊不堪。每當(dāng)職責(zé)、知識(shí)、行動(dòng)和反饋相互分離時(shí),就會(huì)產(chǎn)生任務(wù)移交:
· 第一個(gè)人決定要做什么(職責(zé));
· 第二個(gè)人定義如何完成上述任務(wù)(知識(shí));
· 第三個(gè)人執(zhí)行任務(wù)(行動(dòng));
· 第四個(gè)人驗(yàn)證工作(反饋)。
此外,康威定律(Conway’s Law)指出:那些設(shè)計(jì)系統(tǒng)的企業(yè)受著產(chǎn)品設(shè)計(jì)的約束,而產(chǎn)品設(shè)計(jì)正是其企業(yè)通訊結(jié)構(gòu)的縮影。我知道跨職能團(tuán)隊(duì)是Scrum 方式所規(guī)定的一部分,我感覺他們能夠消除上述特定障礙,但是目前還未找到可行的解決方案,以便在企業(yè)內(nèi)形成這種有效的組織。這時(shí),我注意到團(tuán)隊(duì)成員組建了若干“特別行動(dòng)組”(Task Force)來處理硅片內(nèi)容問題。在Intel,“特別行動(dòng)組”是一個(gè)為了解決危機(jī)而形成的跨職能團(tuán)隊(duì)。如果派您加入“特別行動(dòng)組”,那是因?yàn)槟悄骋活I(lǐng)域的專家。您必須先放下手頭任務(wù),立即投身于這個(gè)小組并為了成功完成該小組特定的任務(wù)盡心盡力,而且您無權(quán)拒絕。如果不改變企業(yè)的組織結(jié)構(gòu),我不知道如何獲益于“特別行動(dòng)組”的跨職能特點(diǎn)。
于是,我和Mary 與Tom Poppendieck 為該團(tuán)隊(duì)安排了一些“精益產(chǎn)品開發(fā)培訓(xùn)” ,“精益”培訓(xùn)向我們透露了一個(gè)有關(guān)如何在這一階段有效使用Scrum 方式的重要線索:
· 保留職能團(tuán)隊(duì):這些是十分有用的企業(yè)組織結(jié)構(gòu),因?yàn)閳F(tuán)隊(duì)中既有知識(shí)理論專家又有技術(shù)專家。還為Scrum 團(tuán)隊(duì)成員在項(xiàng)目間提供了一個(gè)類似于“家”的場(chǎng)所。
· 創(chuàng)建跨職能的“功能”性Scrums 團(tuán)隊(duì):職能團(tuán)隊(duì)向跨職能的功能性Scrum 團(tuán)隊(duì)出借盡職盡責(zé)的專家??缏毮艿腟crum 團(tuán)隊(duì)成員在沖刺期間需要全部地投入工作,不受其職能團(tuán)隊(duì)經(jīng)理的制約。
當(dāng)我聽到這兩點(diǎn)時(shí),真有一種英雄所見略同的感覺??缏毮?/span>Scrum 團(tuán)隊(duì)就是不存在危機(jī)情況的“特別行動(dòng)組”!
我們快速對(duì)一種內(nèi)容類型進(jìn)行了試驗(yàn),結(jié)果團(tuán)隊(duì)成員都十分贊賞這種方式,它不但大幅度減少了任務(wù)移交,還促使團(tuán)隊(duì)成員一起處理問題。此外,知識(shí)的傳遞和交流也變得十分順暢。如果在一個(gè)沖刺中不需要一個(gè)特定團(tuán)隊(duì)成員的職能,他可以和另一個(gè)團(tuán)隊(duì)成員搭檔,通過相互培訓(xùn)來做一些力所能及的事情。
需要再次重申的是,時(shí)機(jī)就是一切。在我們年度現(xiàn)場(chǎng)會(huì)議中,非常及時(shí)地收集了有關(guān)跨職能團(tuán)隊(duì)試點(diǎn)的大量數(shù)據(jù)。
這是一個(gè)好機(jī)會(huì)來影響企業(yè)的領(lǐng)導(dǎo),而且可以適當(dāng)?shù)貙?duì)Scrum 方式做出調(diào)整和更正,使其能夠比從前更有效地運(yùn)作。我陳述了我的觀察和見解,并提交了單個(gè)跨職能團(tuán)隊(duì)試點(diǎn)的早期數(shù)據(jù),最終使企業(yè)領(lǐng)導(dǎo)批準(zhǔn)了這種組織結(jié)構(gòu)。事實(shí)上,所有反對(duì)者和企業(yè)內(nèi)未表決的那部分人都接受了跨職能的Scrum概念。這使我們的流程新增了5個(gè)Scrum 團(tuán)隊(duì),而且在兩年后擴(kuò)展到18個(gè)!
回顧:
我已使用了簡(jiǎn)單的(+)和(-)符號(hào)來明確說明哪些做法有效,哪些無效。
對(duì)于任務(wù)的完全定義(+)
由于我們沒有編程語言,我們沒有單元測(cè)試框架或離線回歸。在微處理器產(chǎn)品開發(fā)中,單元測(cè)試意味著測(cè)試硅片單元!這促使我們專注于編寫故事,當(dāng)然重要的任務(wù)是編寫良好的驗(yàn)收標(biāo)準(zhǔn)。驗(yàn)收標(biāo)準(zhǔn)(AC)通過詳細(xì)說明實(shí)現(xiàn)客戶滿意度的需求來完整定義任務(wù)。
我們還實(shí)行了一個(gè)輕量級(jí)的驗(yàn)證環(huán)節(jié),我們將其稱之為“成對(duì)評(píng)審(PairReview)”。要完成一個(gè)故事,開發(fā)人員和產(chǎn)品負(fù)責(zé)人或項(xiàng)目執(zhí)行人必須坐在一起探討并對(duì)要符合的驗(yàn)收標(biāo)準(zhǔn)達(dá)成一致協(xié)議。我們通過“添加項(xiàng)”、“挽救項(xiàng)”和“遺漏項(xiàng)”這種形式來收集有關(guān)這一活動(dòng)的簡(jiǎn)單衡量指標(biāo)。
添加項(xiàng)是指項(xiàng)目執(zhí)行人或產(chǎn)品負(fù)責(zé)人在“成對(duì)評(píng)審”過程中加入故事的額外驗(yàn)收標(biāo)準(zhǔn),被當(dāng)前沖刺周期內(nèi)的開發(fā)人員所接受,而且可以作為針對(duì)模糊的故事驗(yàn)收標(biāo)準(zhǔn)的一項(xiàng)指示。挽救項(xiàng)是指在這個(gè)沖刺中創(chuàng)建并在稍后捕獲的問題。遺漏項(xiàng)是指在上一個(gè)沖刺中創(chuàng)建并在當(dāng)前沖刺中找到的問題。挽救項(xiàng)說明驗(yàn)證過程是否在有效運(yùn)作,而遺漏項(xiàng)則表示該過程仍需改進(jìn)。
此外,我們必須定義的驗(yàn)證過程。該驗(yàn)證不能泛泛而談,因此每個(gè)Scrum 團(tuán)隊(duì)必須為驗(yàn)證規(guī)則建檔,尤其要定義需要驗(yàn)證哪些針對(duì)其工作產(chǎn)品的任務(wù)。驗(yàn)證必須確?!肮适隆痹谙嚓P(guān)工作產(chǎn)品中能夠有效地運(yùn)作,而且通常涉及的一項(xiàng)內(nèi)容是在測(cè)試環(huán)境中運(yùn)行這些設(shè)備。
只有完成了所有任務(wù)并通過了驗(yàn)證和檢驗(yàn)才算完成一個(gè)“故事”。
概不“賒欠”(+)
在為下一個(gè)沖刺確定速度時(shí),不會(huì)對(duì)基于上述定義未完成的故事網(wǎng)開一面。這似乎過于嚴(yán)厲,但是必須強(qiáng)制團(tuán)隊(duì)重視驗(yàn)證和檢驗(yàn)需求,并確保他們的預(yù)估中包括這些步驟。此外,還必須強(qiáng)制團(tuán)隊(duì)重視他們的承諾。如果您承諾會(huì)完成任務(wù),但是您只交付了90%的任務(wù),那就表示您失敗了。
為期9天的沖刺(+)
我們的沖刺周期為9天,并在每周五舉行評(píng)審、回顧和規(guī)劃會(huì)議。這能使團(tuán)隊(duì)在每周末脫離沖刺,有助于改善Scrum 團(tuán)隊(duì)的生活質(zhì)量,并提高他們的士氣。另一方面,每周末處于沖刺的中段,便于團(tuán)隊(duì)成員決定他們是否需要在周末工作以便達(dá)成其目標(biāo)。前半年極少發(fā)生這種情況,我們已實(shí)現(xiàn)了平穩(wěn)持續(xù)的步調(diào)和節(jié)奏。
步調(diào)(+)
為期9天的沖刺這種步調(diào)允許產(chǎn)品負(fù)責(zé)人、業(yè)務(wù)負(fù)責(zé)人和團(tuán)隊(duì)在必要時(shí)在頻繁的間歇里改變方向。該步調(diào)通常有助于減少我們?cè)谝郧绊?xiàng)目中所發(fā)現(xiàn)的需求量過重問題,而高級(jí)經(jīng)理也能在每周五逐漸了解團(tuán)隊(duì)能夠生產(chǎn)出的實(shí)際工作產(chǎn)品。我們收集的數(shù)據(jù)表明:當(dāng)沖刺被嚴(yán)重打斷時(shí),將丟失10%-20%的速率。我們將其稱之為“沖刺中斷稅”。如果沖刺在第一周被打斷,將丟失10%的速率,如果沖刺在第二周被打斷,將丟失20%的速率。必須讓經(jīng)理們注意到這份統(tǒng)計(jì),使他們避免破壞規(guī)劃周期的步調(diào)。我們還增加了一個(gè)規(guī)定:如果對(duì)當(dāng)前沖刺做出任何更改,都必須重新考慮和協(xié)商任務(wù)范圍。此外,在出現(xiàn)必要的打斷時(shí),管理層也要積極響應(yīng),他們通常一起探討并換出一些沖刺產(chǎn)品訂單中的項(xiàng)目。
團(tuán)隊(duì)中的產(chǎn)品負(fù)責(zé)人(─)
為了促進(jìn)產(chǎn)品負(fù)責(zé)人和團(tuán)隊(duì)間更好的交流,我們?cè)试S產(chǎn)品負(fù)責(zé)人作為各個(gè)團(tuán)隊(duì)的成員加入。在某些情況下,這十分有效,不過在另外一些情況下,產(chǎn)品負(fù)責(zé)人對(duì)團(tuán)隊(duì)進(jìn)行了微觀管理,他們指定日常任務(wù),阻礙了團(tuán)隊(duì)成員間真誠(chéng)的交流與溝通。這導(dǎo)致團(tuán)隊(duì)舉行秘密會(huì)議,在產(chǎn)品負(fù)責(zé)人/職能經(jīng)理的視線之外討論實(shí)際的組織結(jié)構(gòu)障礙。雖然這些問題會(huì)在日后解決,但它們嚴(yán)重削弱了團(tuán)隊(duì)的自組織能力。當(dāng)我們組建跨職能Scrum 團(tuán)隊(duì)時(shí),我們禁止了這種實(shí)踐。
集中式的Scrum 工具(+)
Scrum 要求通過簿記來生成有用的衡量標(biāo)準(zhǔn),例如每日的燃盡圖表。實(shí)踐表明的確如此,尤其是多個(gè)Scrum 團(tuán)隊(duì)在您企業(yè)內(nèi)同時(shí)運(yùn)作的時(shí)候。擁有一個(gè)開放訪問的集成式工具對(duì)于轉(zhuǎn)變的成功而言十分有益。在采用Scrum 方式的初始階段,我們找不到支持Scrum 的工具,因此我們創(chuàng)建了自己的工具。我們從XPlanner 著手,并利用Java 和SOAP 從各方面對(duì)其進(jìn)行了自定義,我們將最終成品稱為“XPlanner2”。根據(jù)這些學(xué)習(xí)所得,我們創(chuàng)建了一個(gè)定制的Windows 應(yīng)用程序。這款集中式工具一直作為一個(gè)鑰匙啟用器,用來管理多個(gè)團(tuán)隊(duì)。我認(rèn)為您必須擁有工具來實(shí)現(xiàn)并促進(jìn)大規(guī)模的Scrum 團(tuán)隊(duì),由于現(xiàn)在已提供多種現(xiàn)成且愈加完善的工具,我已不再采用自創(chuàng)的工具了。
在微處理器行業(yè)中,產(chǎn)品開發(fā)工程設(shè)計(jì)(PDE)團(tuán)隊(duì)提供相關(guān)測(cè)試來進(jìn)行經(jīng)濟(jì)實(shí)惠的設(shè)備檢驗(yàn)和分類。PDE 夾在實(shí)際設(shè)計(jì)團(tuán)隊(duì)和工廠制造團(tuán)隊(duì)之間,由于缺乏對(duì)于(團(tuán)隊(duì)級(jí)別的)期限、范圍、需求或可交付產(chǎn)品的控制,他們時(shí)常承受著巨大的壓力。
為了更好地協(xié)調(diào)PDE 內(nèi)各個(gè)子團(tuán)隊(duì)的工作,總數(shù)約50人的7個(gè)團(tuán)隊(duì)自主探索了一個(gè)協(xié)調(diào)度更好的方式來進(jìn)行產(chǎn)品開發(fā)。要實(shí)現(xiàn)這種協(xié)調(diào)和整合,筆者認(rèn)為Scrum 是可以采用的項(xiàng)目管理框架,同時(shí)還要結(jié)合敏捷工程設(shè)計(jì)的實(shí)踐。本文說明了該企業(yè)對(duì)于Scrum 的學(xué)習(xí)和探索,以及這項(xiàng)投資的結(jié)果。
介紹
在采用“敏捷”和Scrum 方式的軟件工程設(shè)計(jì)領(lǐng)域中,存在大量實(shí)踐。其中許多實(shí)踐針對(duì)利用小團(tuán)隊(duì)的中小型企業(yè),他們采用面向?qū)ο蟮恼Z言開發(fā)軟件。位于美國(guó)俄勒岡和太平洋地區(qū)(OAP)的PDE 團(tuán)隊(duì)是一個(gè)大型企業(yè),需要跨越多個(gè)團(tuán)隊(duì)和站點(diǎn)、跨越多種文化和環(huán)境來實(shí)施Scrum 和“敏捷”軟件開發(fā)。我們的工作產(chǎn)品是一款在自動(dòng)測(cè)試設(shè)備(ATE)上運(yùn)行的測(cè)試程序。ATE 擁有專屬的操作系統(tǒng)和接口語言,這有礙于我們使用行業(yè)標(biāo)準(zhǔn)和現(xiàn)有的軟件驗(yàn)證解決方案。事實(shí)上,我們正在一個(gè)使用專屬語言的環(huán)境中工作,而且既沒有現(xiàn)成的單元測(cè)試框架,也無法進(jìn)行離線測(cè)試。此外,長(zhǎng)期以來我們一直深受以下問題的困擾,包括需求探討、過度承諾、未趕上時(shí)間安排、日以繼夜的工作周、士氣低落和很高的職員流動(dòng)率。
長(zhǎng)久的構(gòu)建和制造歷史導(dǎo)致Intel 具有濃厚的瀑布式軟件開發(fā)的文化氛圍,而且他們普遍將瀑布式軟件開發(fā)視為通向成功的先進(jìn)途徑。團(tuán)隊(duì)通常以孤立的職能“豎井”(functional silo)形式進(jìn)行組建,遵照時(shí)間安排定期將可交付的產(chǎn)品移交給其他職能豎井團(tuán)隊(duì)。其結(jié)果就是:某些團(tuán)隊(duì)在產(chǎn)品生命周期的后階段承受著巨大的重負(fù),而且在項(xiàng)目末期存在著很高的職員流動(dòng)率。最終導(dǎo)致每個(gè)團(tuán)隊(duì)收納各種領(lǐng)域?qū)<?,他們所具有的技能很少與其他團(tuán)隊(duì)成員一致。因此一個(gè)團(tuán)隊(duì)中的各個(gè)成員很難成為搭檔共同負(fù)責(zé)一些任務(wù)。
盡管面臨那么多挑戰(zhàn),我們還是決定勇往直前,不過準(zhǔn)備采用不同的方式來管理項(xiàng)目,以便更好地團(tuán)結(jié)測(cè)試團(tuán)隊(duì),更順利地交付我們的工作產(chǎn)品。在項(xiàng)目的初始階段,我們選擇為企業(yè)引入Scrum,其中大部分工作為硅前(presilicon)基礎(chǔ)設(shè)施的開發(fā)和一些準(zhǔn)備工作。如果我們能夠在第一階段使Scrum有效地運(yùn)作,我們認(rèn)為在一個(gè)項(xiàng)目相對(duì)平穩(wěn)的階段中習(xí)得的實(shí)踐可以為我們指明方向,通往壓力更大的執(zhí)行階段——在此期間,日常工作量完全取決于實(shí)際硅片的健康狀況、不斷變化的外部商業(yè)景氣、以及客戶對(duì)于設(shè)計(jì)、生產(chǎn)和制造的要求。
第一階段:針對(duì)硅片的準(zhǔn)備工作
第一個(gè)要進(jìn)行轉(zhuǎn)變的小組包括六個(gè)團(tuán)隊(duì)和許多子團(tuán)隊(duì)。一開始我們聘請(qǐng)了CollabNet 提供Scrum 教學(xué)和培訓(xùn)。大約20個(gè)小組的負(fù)責(zé)人和技術(shù)負(fù)責(zé)人參加了為期兩天的ScrumMaster 認(rèn)證培訓(xùn),以便深入了解Scrum 的原理和實(shí)踐。遺憾的是,三名高級(jí)經(jīng)理錯(cuò)過了這次培訓(xùn),導(dǎo)致其后的轉(zhuǎn)變流程中出現(xiàn)了不少障礙。負(fù)責(zé)人的參與對(duì)我們的成功而言至關(guān)重要。由于我方三名職位主要負(fù)責(zé)人缺席了首次培訓(xùn),導(dǎo)致他們對(duì)于我們?cè)O(shè)法做出的改變?nèi)狈σ欢ㄕJ(rèn)知。
培訓(xùn)結(jié)束后,參與者們出席了一個(gè)回顧會(huì)議,在CollabNet 代表不在場(chǎng)的情況下討論了他們對(duì)于Scrum 項(xiàng)目管理方式的看法、保留意見和接受程度。團(tuán)隊(duì)負(fù)責(zé)人同意在質(zhì)疑新流程是否有效之前或按照Intel 需求對(duì)其進(jìn)行定制之前,先用三個(gè)月時(shí)間“按照規(guī)定”來實(shí)施Scrum 原理和習(xí)慣。我們組建了一個(gè)流程行動(dòng)團(tuán)隊(duì)(PAT)來監(jiān)控試點(diǎn)團(tuán)隊(duì)內(nèi)的Scrum 開發(fā),并為流程中遇到的問__________題提供技術(shù)支持。即使達(dá)成了上述協(xié)議,我已然能夠感覺到企業(yè)中支持Scrum 的人員分成了“豬”和“雞”兩派。
小組和團(tuán)隊(duì)負(fù)責(zé)人作為所有七個(gè)團(tuán)隊(duì)的“產(chǎn)品負(fù)責(zé)人”,而我作為ScrumMaster(Scrum 主管)。我強(qiáng)烈地意識(shí)到Scrum 是要在這些團(tuán)隊(duì)內(nèi)實(shí)施的重要框架,我愿意承擔(dān)風(fēng)險(xiǎn)來支持這種框架。雖然承擔(dān)這種風(fēng)險(xiǎn)的結(jié)果十分樂觀,但要管理七個(gè)團(tuán)隊(duì)來實(shí)施Scrum 長(zhǎng)達(dá)整整一個(gè)季度,這使我差點(diǎn)撐不下去!
我們與CollabNet 顧問Michael James 和Dan Rawsthorne 一起研究,認(rèn)為有一個(gè)自愿擔(dān)當(dāng)ScrumMaster 的人員對(duì)于各個(gè)團(tuán)隊(duì)的成功和穩(wěn)定至關(guān)重要。首先,我們和Intel 管理層協(xié)商,以便確保ScrumMaster 這個(gè)職位在績(jī)效評(píng)估體系中需要發(fā)揮的重要作用:是簡(jiǎn)化并促進(jìn)Scrum 流程而非注重于管理經(jīng)費(fèi)。然后,那些報(bào)名擔(dān)任ScrumMaster 職位的人員對(duì)于他們要負(fù)責(zé)的團(tuán)隊(duì)在技術(shù)方面不存在厲害關(guān)系。這有助于避免在他們的技術(shù)項(xiàng)目和促進(jìn)Scrum 流程的職責(zé)之間產(chǎn)生任何利益沖突。預(yù)算的存在不是讓ScrumMaster 為了促進(jìn)ScrumMaster 的工作而放棄其自身的工程設(shè)計(jì)工作。不過,可以向報(bào)名擔(dān)任ScrumMaster 的人員提供支持來適應(yīng)職責(zé)的變化。
三個(gè)月過后,又有三個(gè)額外的ScrumMaster 來管理七個(gè)團(tuán)隊(duì)。此外,第八個(gè)團(tuán)隊(duì)自愿開始使用Scrum。大約五個(gè)月過后,調(diào)整所有Scrum 團(tuán)隊(duì)中的工作量是我們面臨的最大挑戰(zhàn)之一。在增加后來逐漸組建而成的額外五個(gè)團(tuán)隊(duì)之前,企業(yè)必須了解有關(guān)如何管理多個(gè)團(tuán)隊(duì)間相互依賴的更多知識(shí),并實(shí)現(xiàn)團(tuán)隊(duì)間更好的交流。
我們?cè)俅纹刚?qǐng)了Danube 為原先上過ScrumMaster 認(rèn)證培訓(xùn)課程的員工和錯(cuò)過第一節(jié)課的高級(jí)經(jīng)理教授有關(guān)對(duì)于Scrum 的工作量調(diào)整進(jìn)行定制的課程。此次為期一天的培訓(xùn)不僅回顧了發(fā)布規(guī)劃和沖刺規(guī)劃的主要原理,還著重說明了如何跨多個(gè)團(tuán)隊(duì)調(diào)整工作量。我們?cè)俅尾捎昧恕皩W(xué)習(xí)、嘗試、檢驗(yàn)和適應(yīng)”的方式來調(diào)整工作量。
學(xué)完一些有關(guān)工作量調(diào)整的“先進(jìn)實(shí)踐”后,我們開始分析團(tuán)隊(duì)中的問題,并嘗試采用一種課堂上學(xué)會(huì)的調(diào)整模型,然后根據(jù)團(tuán)隊(duì)的實(shí)際環(huán)境對(duì)其進(jìn)行定制。增加一些新職位來處理技術(shù)性依賴問題,并管理逐漸產(chǎn)生的更多部門后,該小組在一年內(nèi)擴(kuò)展成12個(gè)Scrum 團(tuán)隊(duì),每個(gè)團(tuán)隊(duì)擁有5-9名開發(fā)人員。
我們與CollabNet 顧問討論后得出:促成企業(yè)成功轉(zhuǎn)變的兩大因素是自愿性和自組織。雖然我們要求被委任三個(gè)月內(nèi)“按規(guī)定”實(shí)施Scrum 的團(tuán)隊(duì)遵照關(guān)鍵原理和實(shí)踐,顯然適應(yīng)比遵循更加重要。管理層所表現(xiàn)出的“請(qǐng)先試一下”的這種態(tài)度促使團(tuán)隊(duì)能夠更好地接受。三個(gè)月試用期過后,這些團(tuán)隊(duì)被給予很大的自由,在每個(gè)沖刺中對(duì)自身進(jìn)行組織和管理,并檢驗(yàn)和適應(yīng)他們采用的方式。雖然這些團(tuán)隊(duì)必須在一起工作,他們擁有盡可能多的自由來決定有效的方式。每周在與所有產(chǎn)品負(fù)責(zé)人和ScrumMaster 舉行的PAT 會(huì)議中,我們討論了偏移問題,但沒有對(duì)其做出評(píng)判。我們?cè)谶@一階段的目標(biāo)是團(tuán)結(jié)和整合,而非達(dá)成一致。
可視性對(duì)于這個(gè)流程而言也是一個(gè)重要因素。內(nèi)部的“維基”(Wiki)允許團(tuán)隊(duì)編寫文檔,指明哪些方式和信息對(duì)其很有幫助,哪些不太奏效,并對(duì)實(shí)踐提出建議來更好地適應(yīng)Scrum。
“按規(guī)定”實(shí)施Scrum 是讓所有團(tuán)隊(duì)接受并采用Scrum 的一個(gè)必要環(huán)節(jié)。不過,就OAP 這種規(guī)模的企業(yè)而言,必須符合企業(yè)的某些組織結(jié)構(gòu)和特定需求。長(zhǎng)達(dá)三個(gè)月的試用期過后,我們對(duì)Scrum 方案做出了一些修改,使其能夠符合并適應(yīng)我們的文化和環(huán)境。首先,團(tuán)隊(duì)必須定義對(duì)其目標(biāo)有用的角色。我們定義了以下角色:
· 業(yè)務(wù)負(fù)責(zé)人:高級(jí)經(jīng)理或工程師負(fù)責(zé)人,主要職責(zé)是監(jiān)督多個(gè)團(tuán)隊(duì)或?yàn)樗袌F(tuán)隊(duì)協(xié)調(diào)技術(shù)問題。業(yè)務(wù)負(fù)責(zé)人設(shè)置“路線圖里程碑”(發(fā)布規(guī)劃)并定義每個(gè)里程碑的“所需”功能。Scrum 團(tuán)隊(duì)仍然可以根據(jù)他們的速度對(duì)承諾的任務(wù)量進(jìn)行調(diào)整,以便實(shí)現(xiàn)功能目標(biāo)。
· 產(chǎn)品負(fù)責(zé)人:通常就是小組管理員。
· 技術(shù)負(fù)責(zé)人:技術(shù)負(fù)責(zé)人來自各個(gè)職能團(tuán)隊(duì),他們可以共同處理整合、依從性和結(jié)構(gòu)問題,來確保團(tuán)隊(duì)間相互關(guān)聯(lián)的產(chǎn)量是一致的。技術(shù)負(fù)責(zé)人舉行特別會(huì)議來將“史詩”分解成可以在各沖刺階段中完成的“故
事”。
· ScrumMasters(Scrum 主管):跨團(tuán)隊(duì)工程師,對(duì)于他或她作為ScrumMaster 的項(xiàng)目團(tuán)隊(duì)沒有特定的利害關(guān)系。這有助于控制ScrumMaster 不合理的鞭策,使其在技術(shù)性解決方案中保持中立。
· 團(tuán)隊(duì):團(tuán)隊(duì)負(fù)責(zé)此測(cè)試包的特定產(chǎn)量,很少與跨職能團(tuán)隊(duì)成員共事。幾乎始終是一個(gè)孤立的職能豎井團(tuán)隊(duì)。
· 臨時(shí)工:具有專門技能的小組成員,多個(gè)團(tuán)隊(duì)每次僅在一兩個(gè)沖刺階段中需要這些技能。他們?cè)诟鳑_刺的交接時(shí)期加入或退出。
· 溝通人員(Conduit):這類團(tuán)隊(duì)成員既可以是承包總監(jiān)(contractorsupervisor)也可以是遠(yuǎn)程團(tuán)隊(duì)的本地成員。溝通人員可以比常規(guī)的團(tuán)隊(duì)成員簽署更多的故事點(diǎn)(story point)工作量。
· 故事負(fù)責(zé)人:了解如何完成一個(gè)“故事”的技術(shù)專家,他可以分配任務(wù),也能要求特定的團(tuán)隊(duì)成員參與進(jìn)來以便完成這些任務(wù)。他能準(zhǔn)確告訴您“故事”的狀態(tài)和進(jìn)展。
最后,在這一產(chǎn)品開發(fā)階段中,整個(gè)Scrum 團(tuán)隊(duì)小組從本質(zhì)上而言都是其自己的客戶。我們只是在構(gòu)建基礎(chǔ)設(shè)施以便支持硅片調(diào)試和制造。在項(xiàng)目的第一年里,基本不存在要求特定功能的外力。這使我們很難區(qū)分業(yè)務(wù)價(jià)值的優(yōu)先級(jí)。因此,產(chǎn)品負(fù)責(zé)人和業(yè)務(wù)負(fù)責(zé)人設(shè)法通過預(yù)估業(yè)務(wù)價(jià)值和整體優(yōu)先級(jí)來區(qū)分這些功能的優(yōu)先級(jí),大致上類似于依存性管理戰(zhàn)略。
到第一年末,Scrum 已在我們的企業(yè)內(nèi)扎根,成為我們工作規(guī)劃和需求管理的默認(rèn)框架。PAT 已獲得關(guān)于“定制的Scrum 方案”是否奏效的大量數(shù)據(jù)。馬上就要進(jìn)入硅片階段了。該流程能頂住實(shí)際的業(yè)務(wù)壓力嗎?還是在實(shí)踐中會(huì)趨于“舊”方式而將這個(gè)新流程“扔出窗外”?
第二階段:硅片階段的生存考驗(yàn)
對(duì)于產(chǎn)品開發(fā)工程師而言,處理第一塊硅片是十分艱巨的時(shí)刻。當(dāng)硅片出現(xiàn)時(shí),所有需求都不太明確,需要我們花費(fèi)數(shù)周時(shí)間來收集有關(guān)硅片設(shè)備的必要數(shù)據(jù),以便決定如何實(shí)行該項(xiàng)目。
根據(jù)在第一塊硅片上發(fā)生的情況,我決定重新“檢驗(yàn)并調(diào)整”我們公司所采用的Scrum 方式。我所看見的情況真的令我十分震驚。我有一個(gè)Scrum 團(tuán)隊(duì)已恢復(fù)他們的舊習(xí)慣。其他一些Scrum 團(tuán)隊(duì)決定對(duì)第一塊硅片采取Scrum 方式不過都陸續(xù)失敗了。其余那些堅(jiān)持使用Scrum 方式的團(tuán)隊(duì)就像試圖抓住救生圈的溺水者。
在這種環(huán)境下不可能繼續(xù)保持我們?yōu)槠趦芍艿臎_刺,大多數(shù)Scrum 團(tuán)隊(duì)轉(zhuǎn)而采用了為期一天的沖刺。他們每天用一小時(shí)時(shí)間來開會(huì),回顧和探討過去的情況并規(guī)劃接下來24小時(shí)要完成的任務(wù)。在處理第一塊硅片的重壓下,Scrum 的四個(gè)會(huì)議被濃縮成一個(gè)會(huì)議。不過,當(dāng)我出席這些會(huì)議時(shí),我發(fā)現(xiàn)Scrum 所主張的關(guān)鍵舉措都在有條不紊地進(jìn)行著,包括基于業(yè)務(wù)價(jià)值的優(yōu)先級(jí)區(qū)分、團(tuán)隊(duì)規(guī)模的調(diào)整、任務(wù)范圍不超過“產(chǎn)品訂單(backlog)”的內(nèi)容、改善流程并回顧工作成品等,只不過是隨著對(duì)于設(shè)備認(rèn)知的增長(zhǎng),以更小的規(guī)模和更快的速度進(jìn)行著這一切。
在企業(yè)的所有負(fù)責(zé)人和經(jīng)理都會(huì)出席的每日調(diào)試?yán)龝?huì)中,每次有任何專門的需求被提出時(shí),我就會(huì)聽到產(chǎn)品負(fù)責(zé)人詢問:“產(chǎn)品訂單中存在針對(duì)這個(gè)需求的故事嗎?”我還發(fā)現(xiàn)不少開發(fā)人員抓住項(xiàng)目執(zhí)行人或產(chǎn)品負(fù)責(zé)人并將他們拖拽到測(cè)試設(shè)備前,以便親眼證實(shí)添加到他們程序中的內(nèi)容是符合其驗(yàn)收標(biāo)準(zhǔn)的。
這一高強(qiáng)度的調(diào)試和開發(fā)階段持續(xù)了幾周。在該階段末期,存活下來的Scrum 團(tuán)隊(duì)看上去安然無恙,并將他們的沖刺周期像手風(fēng)琴一樣重新延長(zhǎng)至兩周。他們?cè)谥芪迮e行的調(diào)試會(huì)議上宣布了上述變更,并在下周正式實(shí)行,這種為期兩周的沖刺延續(xù)至今依然十分有效。
第三階段:為制造做準(zhǔn)備
隨著硅片的狀況日漸健康,我們開始為制造做準(zhǔn)備,我發(fā)現(xiàn)在硅片階段后期這種環(huán)境下,職能豎井Scrum 團(tuán)隊(duì)被任務(wù)移交(handoff)搞得疲憊不堪。每當(dāng)職責(zé)、知識(shí)、行動(dòng)和反饋相互分離時(shí),就會(huì)產(chǎn)生任務(wù)移交:
· 第一個(gè)人決定要做什么(職責(zé));
· 第二個(gè)人定義如何完成上述任務(wù)(知識(shí));
· 第三個(gè)人執(zhí)行任務(wù)(行動(dòng));
· 第四個(gè)人驗(yàn)證工作(反饋)。
此外,康威定律(Conway’s Law)指出:那些設(shè)計(jì)系統(tǒng)的企業(yè)受著產(chǎn)品設(shè)計(jì)的約束,而產(chǎn)品設(shè)計(jì)正是其企業(yè)通訊結(jié)構(gòu)的縮影。我知道跨職能團(tuán)隊(duì)是Scrum 方式所規(guī)定的一部分,我感覺他們能夠消除上述特定障礙,但是目前還未找到可行的解決方案,以便在企業(yè)內(nèi)形成這種有效的組織。這時(shí),我注意到團(tuán)隊(duì)成員組建了若干“特別行動(dòng)組”(Task Force)來處理硅片內(nèi)容問題。在Intel,“特別行動(dòng)組”是一個(gè)為了解決危機(jī)而形成的跨職能團(tuán)隊(duì)。如果派您加入“特別行動(dòng)組”,那是因?yàn)槟悄骋活I(lǐng)域的專家。您必須先放下手頭任務(wù),立即投身于這個(gè)小組并為了成功完成該小組特定的任務(wù)盡心盡力,而且您無權(quán)拒絕。如果不改變企業(yè)的組織結(jié)構(gòu),我不知道如何獲益于“特別行動(dòng)組”的跨職能特點(diǎn)。
于是,我和Mary 與Tom Poppendieck 為該團(tuán)隊(duì)安排了一些“精益產(chǎn)品開發(fā)培訓(xùn)” ,“精益”培訓(xùn)向我們透露了一個(gè)有關(guān)如何在這一階段有效使用Scrum 方式的重要線索:
· 保留職能團(tuán)隊(duì):這些是十分有用的企業(yè)組織結(jié)構(gòu),因?yàn)閳F(tuán)隊(duì)中既有知識(shí)理論專家又有技術(shù)專家。還為Scrum 團(tuán)隊(duì)成員在項(xiàng)目間提供了一個(gè)類似于“家”的場(chǎng)所。
· 創(chuàng)建跨職能的“功能”性Scrums 團(tuán)隊(duì):職能團(tuán)隊(duì)向跨職能的功能性Scrum 團(tuán)隊(duì)出借盡職盡責(zé)的專家??缏毮艿腟crum 團(tuán)隊(duì)成員在沖刺期間需要全部地投入工作,不受其職能團(tuán)隊(duì)經(jīng)理的制約。
當(dāng)我聽到這兩點(diǎn)時(shí),真有一種英雄所見略同的感覺??缏毮?/span>Scrum 團(tuán)隊(duì)就是不存在危機(jī)情況的“特別行動(dòng)組”!
我們快速對(duì)一種內(nèi)容類型進(jìn)行了試驗(yàn),結(jié)果團(tuán)隊(duì)成員都十分贊賞這種方式,它不但大幅度減少了任務(wù)移交,還促使團(tuán)隊(duì)成員一起處理問題。此外,知識(shí)的傳遞和交流也變得十分順暢。如果在一個(gè)沖刺中不需要一個(gè)特定團(tuán)隊(duì)成員的職能,他可以和另一個(gè)團(tuán)隊(duì)成員搭檔,通過相互培訓(xùn)來做一些力所能及的事情。
需要再次重申的是,時(shí)機(jī)就是一切。在我們年度現(xiàn)場(chǎng)會(huì)議中,非常及時(shí)地收集了有關(guān)跨職能團(tuán)隊(duì)試點(diǎn)的大量數(shù)據(jù)。
這是一個(gè)好機(jī)會(huì)來影響企業(yè)的領(lǐng)導(dǎo),而且可以適當(dāng)?shù)貙?duì)Scrum 方式做出調(diào)整和更正,使其能夠比從前更有效地運(yùn)作。我陳述了我的觀察和見解,并提交了單個(gè)跨職能團(tuán)隊(duì)試點(diǎn)的早期數(shù)據(jù),最終使企業(yè)領(lǐng)導(dǎo)批準(zhǔn)了這種組織結(jié)構(gòu)。事實(shí)上,所有反對(duì)者和企業(yè)內(nèi)未表決的那部分人都接受了跨職能的Scrum概念。這使我們的流程新增了5個(gè)Scrum 團(tuán)隊(duì),而且在兩年后擴(kuò)展到18個(gè)!
回顧:
我已使用了簡(jiǎn)單的(+)和(-)符號(hào)來明確說明哪些做法有效,哪些無效。
對(duì)于任務(wù)的完全定義(+)
由于我們沒有編程語言,我們沒有單元測(cè)試框架或離線回歸。在微處理器產(chǎn)品開發(fā)中,單元測(cè)試意味著測(cè)試硅片單元!這促使我們專注于編寫故事,當(dāng)然重要的任務(wù)是編寫良好的驗(yàn)收標(biāo)準(zhǔn)。驗(yàn)收標(biāo)準(zhǔn)(AC)通過詳細(xì)說明實(shí)現(xiàn)客戶滿意度的需求來完整定義任務(wù)。
我們還實(shí)行了一個(gè)輕量級(jí)的驗(yàn)證環(huán)節(jié),我們將其稱之為“成對(duì)評(píng)審(PairReview)”。要完成一個(gè)故事,開發(fā)人員和產(chǎn)品負(fù)責(zé)人或項(xiàng)目執(zhí)行人必須坐在一起探討并對(duì)要符合的驗(yàn)收標(biāo)準(zhǔn)達(dá)成一致協(xié)議。我們通過“添加項(xiàng)”、“挽救項(xiàng)”和“遺漏項(xiàng)”這種形式來收集有關(guān)這一活動(dòng)的簡(jiǎn)單衡量指標(biāo)。
添加項(xiàng)是指項(xiàng)目執(zhí)行人或產(chǎn)品負(fù)責(zé)人在“成對(duì)評(píng)審”過程中加入故事的額外驗(yàn)收標(biāo)準(zhǔn),被當(dāng)前沖刺周期內(nèi)的開發(fā)人員所接受,而且可以作為針對(duì)模糊的故事驗(yàn)收標(biāo)準(zhǔn)的一項(xiàng)指示。挽救項(xiàng)是指在這個(gè)沖刺中創(chuàng)建并在稍后捕獲的問題。遺漏項(xiàng)是指在上一個(gè)沖刺中創(chuàng)建并在當(dāng)前沖刺中找到的問題。挽救項(xiàng)說明驗(yàn)證過程是否在有效運(yùn)作,而遺漏項(xiàng)則表示該過程仍需改進(jìn)。
此外,我們必須定義的驗(yàn)證過程。該驗(yàn)證不能泛泛而談,因此每個(gè)Scrum 團(tuán)隊(duì)必須為驗(yàn)證規(guī)則建檔,尤其要定義需要驗(yàn)證哪些針對(duì)其工作產(chǎn)品的任務(wù)。驗(yàn)證必須確?!肮适隆痹谙嚓P(guān)工作產(chǎn)品中能夠有效地運(yùn)作,而且通常涉及的一項(xiàng)內(nèi)容是在測(cè)試環(huán)境中運(yùn)行這些設(shè)備。
只有完成了所有任務(wù)并通過了驗(yàn)證和檢驗(yàn)才算完成一個(gè)“故事”。
概不“賒欠”(+)
在為下一個(gè)沖刺確定速度時(shí),不會(huì)對(duì)基于上述定義未完成的故事網(wǎng)開一面。這似乎過于嚴(yán)厲,但是必須強(qiáng)制團(tuán)隊(duì)重視驗(yàn)證和檢驗(yàn)需求,并確保他們的預(yù)估中包括這些步驟。此外,還必須強(qiáng)制團(tuán)隊(duì)重視他們的承諾。如果您承諾會(huì)完成任務(wù),但是您只交付了90%的任務(wù),那就表示您失敗了。
為期9天的沖刺(+)
我們的沖刺周期為9天,并在每周五舉行評(píng)審、回顧和規(guī)劃會(huì)議。這能使團(tuán)隊(duì)在每周末脫離沖刺,有助于改善Scrum 團(tuán)隊(duì)的生活質(zhì)量,并提高他們的士氣。另一方面,每周末處于沖刺的中段,便于團(tuán)隊(duì)成員決定他們是否需要在周末工作以便達(dá)成其目標(biāo)。前半年極少發(fā)生這種情況,我們已實(shí)現(xiàn)了平穩(wěn)持續(xù)的步調(diào)和節(jié)奏。
步調(diào)(+)
為期9天的沖刺這種步調(diào)允許產(chǎn)品負(fù)責(zé)人、業(yè)務(wù)負(fù)責(zé)人和團(tuán)隊(duì)在必要時(shí)在頻繁的間歇里改變方向。該步調(diào)通常有助于減少我們?cè)谝郧绊?xiàng)目中所發(fā)現(xiàn)的需求量過重問題,而高級(jí)經(jīng)理也能在每周五逐漸了解團(tuán)隊(duì)能夠生產(chǎn)出的實(shí)際工作產(chǎn)品。我們收集的數(shù)據(jù)表明:當(dāng)沖刺被嚴(yán)重打斷時(shí),將丟失10%-20%的速率。我們將其稱之為“沖刺中斷稅”。如果沖刺在第一周被打斷,將丟失10%的速率,如果沖刺在第二周被打斷,將丟失20%的速率。必須讓經(jīng)理們注意到這份統(tǒng)計(jì),使他們避免破壞規(guī)劃周期的步調(diào)。我們還增加了一個(gè)規(guī)定:如果對(duì)當(dāng)前沖刺做出任何更改,都必須重新考慮和協(xié)商任務(wù)范圍。此外,在出現(xiàn)必要的打斷時(shí),管理層也要積極響應(yīng),他們通常一起探討并換出一些沖刺產(chǎn)品訂單中的項(xiàng)目。
團(tuán)隊(duì)中的產(chǎn)品負(fù)責(zé)人(─)
為了促進(jìn)產(chǎn)品負(fù)責(zé)人和團(tuán)隊(duì)間更好的交流,我們?cè)试S產(chǎn)品負(fù)責(zé)人作為各個(gè)團(tuán)隊(duì)的成員加入。在某些情況下,這十分有效,不過在另外一些情況下,產(chǎn)品負(fù)責(zé)人對(duì)團(tuán)隊(duì)進(jìn)行了微觀管理,他們指定日常任務(wù),阻礙了團(tuán)隊(duì)成員間真誠(chéng)的交流與溝通。這導(dǎo)致團(tuán)隊(duì)舉行秘密會(huì)議,在產(chǎn)品負(fù)責(zé)人/職能經(jīng)理的視線之外討論實(shí)際的組織結(jié)構(gòu)障礙。雖然這些問題會(huì)在日后解決,但它們嚴(yán)重削弱了團(tuán)隊(duì)的自組織能力。當(dāng)我們組建跨職能Scrum 團(tuán)隊(duì)時(shí),我們禁止了這種實(shí)踐。
集中式的Scrum 工具(+)
Scrum 要求通過簿記來生成有用的衡量標(biāo)準(zhǔn),例如每日的燃盡圖表。實(shí)踐表明的確如此,尤其是多個(gè)Scrum 團(tuán)隊(duì)在您企業(yè)內(nèi)同時(shí)運(yùn)作的時(shí)候。擁有一個(gè)開放訪問的集成式工具對(duì)于轉(zhuǎn)變的成功而言十分有益。在采用Scrum 方式的初始階段,我們找不到支持Scrum 的工具,因此我們創(chuàng)建了自己的工具。我們從XPlanner 著手,并利用Java 和SOAP 從各方面對(duì)其進(jìn)行了自定義,我們將最終成品稱為“XPlanner2”。根據(jù)這些學(xué)習(xí)所得,我們創(chuàng)建了一個(gè)定制的Windows 應(yīng)用程序。這款集中式工具一直作為一個(gè)鑰匙啟用器,用來管理多個(gè)團(tuán)隊(duì)。我認(rèn)為您必須擁有工具來實(shí)現(xiàn)并促進(jìn)大規(guī)模的Scrum 團(tuán)隊(duì),由于現(xiàn)在已提供多種現(xiàn)成且愈加完善的工具,我已不再采用自創(chuàng)的工具了。
服務(wù)熱線:021-62650520
深圳 0755-23706296
北京 010-82359258
上海 021-62650520
總機(jī) 021-52653259

掃一掃關(guān)注公眾號(hào)
Copyright ? 2025 All Rights Reserved.億道電子技術(shù)有限公司 版權(quán)所有 滬ICP備2023018709號(hào)-1
滬公網(wǎng)安備
44030602004326號(hào)

