九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Scrum實踐總結(jié)終結(jié)篇

難得的機會

本文主要涵蓋的內(nèi)容如下:

  • 敏捷Scrum模式概貌

  • Scrum Team的組成與角色分工

  • 團隊的日?;顒?/p>

敏捷Scrum模式概貌

開發(fā)管理的痛點

  • 開發(fā)過程的各個環(huán)節(jié)的明確邊際,造成信息傳遞鏈條過長,溝通成本以及問題反饋效率低?,F(xiàn)行的多數(shù)團隊,其溝通方式多數(shù)是鏈?zhǔn)絺鬟f的,從產(chǎn)品->架構(gòu)->開發(fā)->測試這樣一個過程。然后就是每個人都希望做完自己規(guī)定的職責(zé)后可以當(dāng)甩手掌柜,最后結(jié)果是下游環(huán)節(jié)在出現(xiàn)問題的時候把責(zé)任習(xí)慣性推給上游環(huán)節(jié)。測試不管大局,拼命找開發(fā)的所謂的“漏洞”,而開發(fā)則去說架構(gòu)沒有設(shè)計好,架構(gòu)則找產(chǎn)品茬說產(chǎn)品啥YY需求。這樣最明顯的特征就是測試似乎績效很好,但是產(chǎn)品質(zhì)量依然一塌糊涂。這里引出一個公司管理的一個很現(xiàn)實的問題,在小團隊規(guī)模開發(fā)模式下,以個人還是以團隊的方式考核KPI和事?

  • 新技術(shù)的引入(微服務(wù)、容器化),不再適應(yīng)大軍團作戰(zhàn),而是需要匹配的靈活的端到端團隊。在一個分層比較多的組織里面,最難做到的是管理水平化,往往在團隊外增加“保姆式”的組織或監(jiān)控流程。這樣團隊除了日常的工作,還要疲于應(yīng)付那些水平管理所帶來的溝通、會議等。這樣整個團隊都在疲于加班,但是事情依然無法按時完成。

  • 客戶的需求變化已經(jīng)不再局限于整體產(chǎn)品購買,而是傾向于業(yè)務(wù)快速迭代,大軍團作戰(zhàn)已經(jīng)難以快速交付、快速變更。如何配合客戶的業(yè)務(wù)變更成為傳統(tǒng)大型產(chǎn)品銷售型企業(yè)最大的挑戰(zhàn)。因為一個客戶的產(chǎn)品已經(jīng)難以復(fù)制性再交付給下一個客戶了。在這樣的市場條件下,如何將系統(tǒng)更大程度的拆解與靈活組裝考驗架構(gòu)設(shè)計能力,也同樣考驗開發(fā)組織形式的變更能力。

敏捷開發(fā)不是個新鮮事物,但是隨著微服務(wù)、容器化等新技術(shù)理念的推出,敏捷開發(fā)找到了更合適的切合點而已。

什么是Scrum敏捷開發(fā)


幾個值得思考的問題:

  • 團隊對于需求范圍是否有自主性?

  • 開發(fā)范圍是否是根據(jù)時間倒排?

  • 是流程管控開發(fā)人員,還是人主導(dǎo)流程?

在有市場交付壓力的團隊中,最容易遇到的問題就是倒排時間。因為交付內(nèi)容與交付日期已經(jīng)先確定了,然后當(dāng)遇到開發(fā)瓶頸的時候,第一個想到的就是給團隊增加人手。但是別忘了一個經(jīng)典的說法,一個女人生一個孩子需要9個月,那么9個女人是否可以一個就生出一個孩子呢?答案是顯而易見的。另外一個說法就是,如果所有的需求都是高優(yōu)先級的,那么所有的需求都是低優(yōu)先級的。

具體什么是Scrum敏捷開發(fā),大家可以參考一下這本書:<<Successding with Agile Software Development with Scrum>>

不過還是跟大家強調(diào)一點,流程是死的,人是活動,需要根據(jù)團隊情況進行變通。

區(qū)別


現(xiàn)在已經(jīng)不流行敏捷開發(fā),而是流程DevOps了。其實可以這樣說,不以敏捷開發(fā)為基礎(chǔ)的DevOps都是耍流氓。

Scrum不是等同DevOps,也不等同與現(xiàn)在更流行的SRE的概念。(具體SRE是什么,大家可以搜索一下)。DevOps和SRE將運維管理引入到開發(fā)團隊中,將運維情況與開發(fā)形成一個閉環(huán),是開發(fā)更能有效的考慮實際使用情況。個人理解,其三者的關(guān)系如下圖:

'scrum vs devops vs sre'

困境


雖然很多時候,大家都覺得敏捷開發(fā), DevOps等理念都很好,但是就是很難去實行,最大的借口就是原來需要做的事情太多。但是這個時候,無論是團隊還是管理者,需要停下腳步,做下思考,因為你遇到的情況很可能與下面這個圖類似(來自互聯(lián)網(wǎng)):

'hard work'

公司形態(tài)與Scrum模式


不同的公司業(yè)務(wù)形態(tài)是否Scrum的方式都一樣呢?我的理解是核心是相通的,方式是靈活適配的。主要分為兩種主要形態(tài):

  • 自運營或服務(wù)形式提供

  • B2B模式的產(chǎn)品開發(fā)

自運營/服務(wù)模式Scrum流程概貌


參考下圖:

'operation mode'

在自運營的場景下,市場人員和產(chǎn)品的策略管理者(SPM)來探討大的產(chǎn)品方向,然后業(yè)務(wù)分析師(BSA)做相應(yīng)的規(guī)劃,然后各個子產(chǎn)品Owner,俗稱Product Owner(PO)根據(jù)這些輸入制定各自產(chǎn)品的Backlog,然后規(guī)劃各自產(chǎn)品的迭代。這里引出一個問題,怎么將抽象的需求或者業(yè)務(wù)需求拆解到各個子產(chǎn)品中呢?一般的做法是頂層有對應(yīng)的架構(gòu)師(俗稱首席架構(gòu)師),他來規(guī)劃產(chǎn)品的邊界,與大的需求的拆分。但是這樣的人比較難找,因為他既要懂得業(yè)務(wù),還要設(shè)計整體體系的架構(gòu),還要能分解需求邊界等等。如果你遇到這樣的人,千萬不錯過。

在自運營或者以服務(wù)的形式向客戶提供支持的場景下,每個子產(chǎn)品的PO自行規(guī)劃迭代范圍,自行規(guī)劃上線時間。不是所有的特性都要完成才能上線。對于跑的快的團隊,其實可以將某個需要別的子產(chǎn)品配合的特性的提前上線的,盡管這個特性還沒有真正能使用。對于產(chǎn)品關(guān)聯(lián)依賴的特性,則可以通過PO間的Scrum2Scrum協(xié)調(diào)解決。(后面講)

B2B的Scrum流程概貌


參考下圖:

'b2b mode'

在B2B的產(chǎn)品銷售模式下,很難做到各自獨立的子產(chǎn)品對客戶發(fā)布,因為客戶需要的是一個Turn Key的交鑰匙模式。在這種模式下是否就不可以做到敏捷開發(fā)呢?其實也不然。

和前面的自運營模式不同的是,各個子產(chǎn)品不會發(fā)布到生產(chǎn)環(huán)境中,但是各個子產(chǎn)品依然可以根據(jù)自己的節(jié)奏做發(fā)布。只是需要在特定的時間,將各個子產(chǎn)品的組合起來做一次基線測試和聯(lián)調(diào),出一個整個產(chǎn)品的基線版本就好。這里需要主要的是,不用拉齊各個產(chǎn)品的版本節(jié)奏,而是根據(jù)時間點對不同的子產(chǎn)品做版本選擇就好。另外集成測試團隊只是在需要的時候臨時組建,而不是固定的團隊。切記,平時這些集成測試的人員應(yīng)該在各個子產(chǎn)品的團隊中。各個子產(chǎn)品間的集成測試應(yīng)該在功能特性完成時就獨立去做了。這個基線測試更像是集成的回歸測試。

Scrum 2 Scrum


對于產(chǎn)品比較龐大的系統(tǒng)而言,一個業(yè)務(wù)流程很可能涉及多個子產(chǎn)品,這樣就需要不同的團隊的PO/SA一起做協(xié)調(diào)與溝通了。

'scrum 2 scrum'

通常是Chieft SA召集(平臺類產(chǎn)品)或者Businss System Analyst(業(yè)務(wù)類分析師)召集。Strategy Product Manager和Release Project Manager也會參與進來。這個需要注意的是,要避免團隊與團隊間的人員交叉協(xié)調(diào)與溝通,因為這樣會導(dǎo)致團隊效率極其低下。團隊間的溝通最好由PO/SA統(tǒng)一在這個會議上協(xié)調(diào)。

另外就是,對于阻礙別的團隊進展的需求,應(yīng)該優(yōu)先解決(不一定是完成整個特性,如提供對應(yīng)的接口也是一種形式),避免團隊間等待的情況發(fā)生。

這個會議更多的是對于需求范圍的確定,以及團隊間的協(xié)調(diào),不討論具體的方案細節(jié)。原理上不同的團隊都是接口間的依賴,方案可以由各自團隊的SA負(fù)責(zé)。

對于是否需要對每個團隊的方案進行評審和把控,取決與團隊情況。因為比較難有幾個都對整體系統(tǒng)的每個模塊的方案細節(jié)都清楚的。當(dāng)然如果有,則可以成立Change Control Board(CCB)來做專門的架構(gòu)評審。

Scrum Team的組成與角色分工


對于Scrum團隊的組成,一直沒有一個很好的定義,人數(shù)的多少總是爭議的焦點。另外就是當(dāng)遇到變化的時候,到底是給團隊增加人手還是有別的好的方式呢?從實踐看,對于一個團隊的事情變化,負(fù)荷變重后,最好的方式重新成立一個Scrum團隊接管新的任務(wù)遠遠比給團隊增加人手的方式容易的多。畢竟新人的加入在一段時間并不能給團隊產(chǎn)生正向的價值,因為需要溝通融合。保持Scrum團隊的穩(wěn)定性是首要原則。那么什么樣的規(guī)模的團隊比較合適呢?或許和7這個數(shù)字比較有緣吧(我家的車牌就有777 -:)),團隊的規(guī)模在7個人左右的規(guī)模比較容易操作,一來溝通的成本比較低,二來無需安排特定的人員做管理類的工作。這樣整個團隊都會聚焦在具體的事情上。

團隊的組成方式:1-1-3-2,如下圖:

'scrum team'

這里需要注意的是,在這樣的規(guī)模團隊溝通不再是鏈?zhǔn)降臏贤ǚ绞?,而是有PO和整個團隊傳遞需求,SA和整個團隊傳遞技術(shù)。這里沒有真正意義的管理者,團隊是自管理,高度自治。

PO的職責(zé)
  • 根據(jù)MRD(平臺類產(chǎn)品可選)來分析和定義PRD并設(shè)計解決方案

  • 競品分析、外部數(shù)據(jù)收集,自我提出制定產(chǎn)品提升需求

  • 并規(guī)劃產(chǎn)品的Roadmap,制定版本計劃

  • 選定每個迭代的Scope,對團隊內(nèi)澄清需求

  • 組織planning game, 組織產(chǎn)品開發(fā)中特性的Demo,組織驗收每個版本的交付。組織回顧會議,總結(jié)和提升團隊能力。

  • (平臺類)收集業(yè)務(wù)產(chǎn)品反饋,推動業(yè)務(wù)對于新特新的使用

  • (平臺類)運營產(chǎn)品,收集產(chǎn)品運行數(shù)據(jù),支撐業(yè)務(wù)日常使用的方案支持等

  • 與架構(gòu)師配合,規(guī)劃產(chǎn)品的技術(shù)改進

這里需要再此強調(diào)的是,PO需要能夠控制團隊的開發(fā)節(jié)奏,屏蔽外界對于團隊的干擾,同時還要展現(xiàn)團隊的核心價值。千萬不要做成傳聲筒的角色。

SA的職責(zé)
  • 產(chǎn)品的技術(shù)實現(xiàn)架構(gòu)的設(shè)計

  • 指導(dǎo)開發(fā)成員的開發(fā)

  • 指導(dǎo)測試成員的測試設(shè)計

  • 驅(qū)動測試自動化

  • 組織Design Review、Code Review、Test Design Review等

  • 與PO配合,規(guī)劃產(chǎn)品的技術(shù)改進

  • (平臺類)指導(dǎo)業(yè)務(wù)團隊架構(gòu)師對于產(chǎn)品使用的技術(shù)支持

SA是這個團隊的技術(shù)的代表,需要能代表團隊對外做技術(shù)的PK的功底。所以和PO的配合很重要,一個代表需求放,一個代表實現(xiàn)方。沒有哪方比哪方重要,關(guān)鍵是如何用技術(shù)的方式體現(xiàn)業(yè)務(wù)的更高價值。SA對于開發(fā)的技術(shù)能力的提升富有不可代替的責(zé)任。

Develper的職責(zé)
  • 產(chǎn)品的技術(shù)實現(xiàn)

  • 負(fù)責(zé)子模塊的詳細設(shè)計

  • 負(fù)責(zé)自動化單元測試以及集成測試的開發(fā)

  • 對產(chǎn)品的技術(shù)持續(xù)提升提供建議

  • 對測試澄清技術(shù)細節(jié)、協(xié)助測試完善測試設(shè)計

  • 確保代碼即時“可見”:Portal展示/Test Case Pass

最為開發(fā),除了完成開發(fā)任務(wù)外,還需要對于業(yè)界的技術(shù)特別是開源的技術(shù)的敏感度。加入某些開源的項目,提供一些自己的代碼將是十分有意義的。如果能有自己的想法,自己創(chuàng)建出自己的開源例子那更加完美。不過國內(nèi)的開源情況,開源還是背靠公司表容易推進。

Tester的職責(zé)
  • 產(chǎn)品的測試設(shè)計

  • 完善測試自動化工具與流程

  • 驅(qū)動開發(fā)的完善與補充開發(fā)思考上遺漏

  • 負(fù)責(zé)端到端的系統(tǒng)級測試、性能測試、穩(wěn)定性測試

  • 為開發(fā)定位問題提供便利

  • 產(chǎn)品的發(fā)布執(zhí)行

對于測試,這里需要多說一些。因為有些互聯(lián)網(wǎng)公司開始推行無測試的團隊。其實并不代表測試已經(jīng)不重要了,而是互聯(lián)網(wǎng)的快速變化使得對于測試人員的要求與開發(fā)一樣高了,而且團隊的運作已經(jīng)沒有辦法再預(yù)留出測試的空檔期了。不過這個還是要看團隊的情況,如果測試能夠從每個迭代就能開始做測試設(shè)計,那么測試獨立性還是有必要性的。如果團隊總是以開發(fā)主導(dǎo),變化總是比較隨意(或者叫無法拒絕變化),或許還是開發(fā)自己測試比較合適。

另外就是測試最重要的職責(zé)是測試設(shè)計,而不是開發(fā)的幫手,更不是給開發(fā)打雜。測試最重要的價值體現(xiàn)是找到架構(gòu)、開發(fā)上的思維漏洞而不是bug的數(shù)量。如果還是用KPI的方式考核測試對于開發(fā)的bug的數(shù)量,除了助長開發(fā)與測試的矛盾,別無益處。

開發(fā)與測試的磨合
  • 溝通、溝通還是溝通。

  • 開發(fā)和測試的信息來源將都來自于產(chǎn)品需求,而不是開發(fā)是測試的上游

  • 測試的定位的轉(zhuǎn)化。

  • 在Scrum模式下,開發(fā)與測試的工作邊界將更加模糊。

  • 測試有個最主要的功能是測試點的設(shè)計而不是通過復(fù)雜的重復(fù)性工作來體現(xiàn)測試的價值。

  • 測試應(yīng)該更好的思考如何提供便利的工具。讓定位問題和更加方便

  • 開發(fā)則應(yīng)該配合測試一起詳細review測試點的設(shè)計,并從而思考開發(fā)中潛在的問題。

Planning Game


Planning Game的目的是向團隊傳遞這個迭代的范圍,確保團隊每個人都有一致的目標(biāo)。在一個或者兩個迭代后要以發(fā)布一個版本為結(jié)果。那么每個版本都可以用一句話的方式總結(jié)出來。如果每個迭代沒有一個核心的思想,則迭代范圍將比較混亂,團隊的工作也容易無序。定出來的范圍,需要預(yù)先拆解成每個任務(wù)項,并且把任務(wù)放到gitlab issue中管理,讓每次代碼提交都能關(guān)聯(lián)起來,便于后續(xù)的代碼的審核。同時將任務(wù)寫到字條上貼在自己團隊的看板中??窗瀣F(xiàn)在有很多電子版的管理工具,但是不用糾結(jié)這個,其實一個真實的看板更管用。(后面會講我們和電子類的看板的不同)

'planning game'

Planning Game的經(jīng)驗:

  • 不要一次性選擇多個大的feature在一個版本中

  • 選擇一些小功能或改進性功能作為風(fēng)險控制的緩沖

  • 預(yù)留技術(shù)改進的工作項

  • 以版本維度作為計劃

  • 一個版本中以2個開發(fā)迭代(4周)為好

  • 需要做發(fā)布到生產(chǎn)的,預(yù)留一周做發(fā)布緩存

看板與站會


目前已經(jīng)有不少電子類的工具提供看板的功能,但是實踐中,使用一個真實的看板反而比較容易操作??窗咫m然并不復(fù)雜,但是也有相應(yīng)的書,可以參考<<Kanban in Action >>,如下圖:

'kanban'

和電子類的看板的區(qū)別主要在于:

  • 聚焦事與人,而非進度。一般的看板總是將不同的task按照進度進行粘貼,處理人寫在字條上。這樣容易讓人忽略誰正在處理的事情,容易忽略誰的情況是最后交付的風(fēng)險

  • 將事情歸類整理,如某個特性相關(guān)的事情都粘貼在一起,這樣日常容易掌控某個特性是否能夠端到端的完成,而不至于同時并行過多的特性開發(fā),導(dǎo)致最后無法端到端完成。這樣也容易處理在迭代末尾需要砍任務(wù)的時候比較容易

有了看板,那么日常的站會進行將比較容易,不過有些注意點如下:

  • 盡可能簡短(15min內(nèi)),每個人只講完成情況和遇到的問題,不具體討論方案

  • 需要特意申明需要配合的內(nèi)容

  • 額外增加的內(nèi)容,需要立即貼出來并由PO判斷是否需要做

  • 自主領(lǐng)取新的內(nèi)容,如果有工作依賴或難度的內(nèi)容,需要TL協(xié)調(diào)

  • 風(fēng)險需要立即提出

  • 盡可能做完一個任務(wù)在領(lǐng)下一個任務(wù)

  • 如果發(fā)現(xiàn)任務(wù)時間過長,需要做分析和拆解

  • 如果覺得任務(wù)有難度,開發(fā)應(yīng)該提出要求SA給出設(shè)計

Review Meeting


在團隊的日?;顒又校懈黝惖腞eview Meeting,主要目的是團隊內(nèi)信息的有效傳遞以及貢獻團隊的智慧。具體操作經(jīng)驗如下:

  • 由各個主題的Owner自主組織,包括:Design Review, Code Review, Test Design Review, Retrospect Review

  • 對于比較大或比較復(fù)雜的設(shè)計可以分階段Review: 1/3->1/2->final

  • Review一定要有最后的完整輸出

  • 時間長度一定要控制,1個小時為宜,時間過長應(yīng)該分多次

End to End Demo


團隊PO的要確保對于迭代中交付物的驗收,最好的方式就是組織端到端的功能特性的Demo。培養(yǎng)團隊有意識的在每次提交代碼的時候,都能快速將結(jié)果展示出來。

Demo會的一些經(jīng)驗:

  • 目前團隊對于輸出的理解是否一致,是否滿足PO的想法

  • 不要局限在一定完整測試完,只要能端到端跑完場景即可

  • 不要局限一定在版本交付前,而是每個feature為維度,時間可長可短,越早越好

  • 不要局限一定要有界面,跑測試代碼也是一種Demo

  • 不是去挑刺,也不是去測試

同時Demo會也可以邀請一些關(guān)鍵任務(wù)參與,如市場人員,樹立大家對于產(chǎn)品的信息,以及傳達團隊對于產(chǎn)品更深刻的理解。

DoD Meeting


DoD: Definition of one。DoD會議主要目的是團隊對于一個迭代的輸出的總結(jié)。團隊這個時候可以找個輕松的環(huán)境如咖啡廳進行。

'dod'

DoD的一些經(jīng)驗:
- 以迭代為維度作為DoD
- 版本中的第一個迭代的DoD要為下一個迭代做好風(fēng)險控制,及時調(diào)整版本范圍
- 不要只關(guān)注代碼是否已經(jīng)完成,要同時關(guān)注自動化程度、代碼質(zhì)量程度(Jenkins狀態(tài), Sonar狀態(tài)),文檔情況(Doc, Wiki),測試結(jié)果,是否已經(jīng)CodeReview,是否已經(jīng)做了代碼清理工作(如掃描ToDo)等

Retrospect Meeting


回歸會主要團隊的自我反省以及自我提供,主要是提供機會給團隊成員思考有哪些地方做的好的,哪些需要提高的,哪些地方有遺漏等。

'retrospect'

Retrospect meeting的經(jīng)驗:

  • 需要先回顧上一次回顧會的執(zhí)行情況

  • 每項內(nèi)容每個成員各寫3個認(rèn)為是重點的內(nèi)容,寫在便利貼上

  • 不是批斗會也不是拍馬屁會

  • 需要總結(jié)后制定Action Plan

  • 盡可能把氛圍調(diào)整在一個輕松的環(huán)境如咖啡屋

  • 頻率可以是兩個版本一次(8-10周)

總結(jié)

'summary'

人是活的,流程是死的;沒有明文禁止的,都是應(yīng)該可以改變的

大家不要過于拘束學(xué)術(shù)上的定義,而是真實根據(jù)自己團隊的情況進行調(diào)整,適應(yīng)以及高效就是好的流程。也不是說Scrum一定能保證高效,也不是說沒有Scrum就不高效,一切取決于人。就像有些大的互聯(lián)網(wǎng)公司的核心平臺團隊,每個人的能力和自主性都很強,沒有比散養(yǎng)更好的管理方式了。

另外,如果管理者愿意看到團隊的自治與效率提升,則切實應(yīng)該考慮如何更好的去信任團隊,去輔助團隊自治,而不是在去做“保姆式”管理。


本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
敏捷開發(fā)過程控制程序
Scrum敏捷開發(fā)
IBM大型項目中的敏捷項目管理實踐
Scrum實踐指南:一個可運行的 Scrum是怎樣的
【敏捷5.4】敏捷計劃與適應(yīng)
CODING 敏捷實戰(zhàn)系列課第二講:Scrum 敏捷項目管理核心要素之 3355
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服