多團(tuán)隊(duì)同時(shí)開(kāi)發(fā)同一項(xiàng)目之分支管理經(jīng)驗(yàn)淺談

????先來(lái)一波場(chǎng)景:團(tuán)隊(duì)A忙忙碌碌終于把這個(gè)sprint的story做完了(我們玩的是敏捷開(kāi)發(fā)),給po(產(chǎn)品負(fù)責(zé)人,接下來(lái)篇幅會(huì)以po來(lái)表示)演示完了,po給客戶演示也ok了。po發(fā)來(lái)好消息,跟我們說(shuō)可以上生產(chǎn)了。團(tuán)隊(duì)B還在為處于sprint的周期中,苦苦掙扎。我們內(nèi)心也是滿懷喜悅,心想:“你看那群人還在苦苦掙扎”。終于到了下班時(shí)間了,團(tuán)隊(duì)A對(duì)這次上線已經(jīng)萬(wàn)事俱備了。就差東風(fēng)了。團(tuán)隊(duì)A的leader對(duì)A隊(duì)員說(shuō),麻煩deploy一下服務(wù)A;服務(wù)A部署完畢,沒(méi)有任何問(wèn)題。啪啦啪啦,服務(wù)A、B、C、D都部署好了。到最后發(fā)現(xiàn),天啊,服務(wù)E涵蓋了團(tuán)隊(duì)B的不完整的功能(團(tuán)隊(duì)B的功能還沒(méi)做完,也沒(méi)有測(cè)試過(guò))。好了,此時(shí)的你,我相信你會(huì)“吐血”,吐完血還是乖乖把服務(wù)A、B、C、D回滾回來(lái)。然后打電話跟po說(shuō),上線失敗了。

? ? 我相信在多團(tuán)隊(duì)協(xié)作的時(shí)候,總是會(huì)遇到上線不同步,代碼被覆蓋,功能不見(jiàn)了,等等這些讓痛心疾首的情況。那么該如何避免上述的情況呢?我們來(lái)一層一層拋開(kāi)問(wèn)題的本質(zhì)。問(wèn)題:為什么團(tuán)隊(duì)A上線,需要等待團(tuán)隊(duì)B?因?yàn)榇蠹业膕print的周期不一致,ok,這個(gè)我們沒(méi)辦法避免,因?yàn)槊總€(gè)團(tuán)隊(duì)負(fù)責(zé)的功能大小不一致,po也不一樣,所以在時(shí)間上無(wú)法同步。那么我們只需要做到團(tuán)隊(duì)A上線不需要等待團(tuán)隊(duì)B就好了。那么會(huì)有人問(wèn),如何做到不等待?團(tuán)隊(duì)A做完功能需要合并到develop環(huán)境(集成測(cè)試環(huán)境,接下來(lái)篇幅會(huì)以develop環(huán)境來(lái)表示),然后合并到uat環(huán)境(預(yù)發(fā)布環(huán)境,接下來(lái)篇幅會(huì)以u(píng)at環(huán)境來(lái)表示)給用戶演示。團(tuán)隊(duì)B也一樣,也需要做同樣的動(dòng)作。那又會(huì)有人提出建議,團(tuán)隊(duì)A把功能上到uat環(huán)境,然后給客戶演示,客戶ok了,團(tuán)隊(duì)A就把功能上線,接下來(lái)就輪到團(tuán)隊(duì)B,上到uat環(huán)境給客戶演示團(tuán)隊(duì)負(fù)責(zé)的功能,ok了,然后上線,這樣就不會(huì)沖突了。這個(gè)也算是一種方案。但是這個(gè)方案需要天時(shí)地利人和齊聚才能得以實(shí)現(xiàn),因?yàn)樵诂F(xiàn)實(shí)情況下,給po演示完,po給客戶演示這往往需要等待一段漫長(zhǎng)的過(guò)程,甚至給客戶演示完,客戶也會(huì)得到“啟發(fā)”,給你來(lái)個(gè)“我需要根據(jù)手機(jī)殼的顏色改變屏幕的顏色”的需求。這個(gè)時(shí)候,你可能還需要幾天時(shí)間去修改功能。整個(gè)過(guò)程下來(lái)可能需要一個(gè)星期。也就是說(shuō)團(tuán)隊(duì)B需要等待團(tuán)隊(duì)A用完這個(gè)坑才能用,效率極低。

? ? 上面講到一種方案,我想大家不會(huì)采用。那是否還有更好的方案嗎?當(dāng)然有,不然我早死了?!鞍l(fā)布火車(chē)”,什么是發(fā)布火車(chē)呢?從字面上來(lái)理解,就是像火車(chē)一樣,定時(shí)就會(huì)載貨走,不會(huì)等任何人。說(shuō)好的定時(shí),那什么為開(kāi)始時(shí)刻呢?在你的代碼推向develop環(huán)境那一刻開(kāi)始,“火車(chē)”就開(kāi)始啟動(dòng)了,也就是只要你的代碼部署到develop環(huán)境,就說(shuō)明你的功能是完整的、可用的、是可以上線的。這樣約束會(huì)有什么好處呢?限制其他團(tuán)隊(duì)把不完整或者殘缺的功能推向develop,影響可以上線的功能。也就是說(shuō)團(tuán)隊(duì)A開(kāi)發(fā)好功能了,團(tuán)隊(duì)向po演示完,po接收,我們把功能部署到uat環(huán)境,po向客戶演示完,決定可以上線,是不會(huì)攜帶不完整或者殘缺的功能的。但是也有可能會(huì)攜帶其他團(tuán)隊(duì)的功能,但是攜帶的功能起碼是完整的,可用的。這樣也不至于影響到團(tuán)隊(duì)A的上線了。這個(gè)約束可以解決上述案例中的一個(gè)痛點(diǎn):團(tuán)隊(duì)A上線時(shí)發(fā)現(xiàn)有團(tuán)隊(duì)B不完整的功能。

? ? 肯定有人問(wèn),那測(cè)試人員在哪里測(cè)試?如何保證部署到develop環(huán)境的功能是完整的?團(tuán)隊(duì)向po演示是用什么環(huán)境演示?同時(shí)也會(huì)出現(xiàn)團(tuán)隊(duì)A攜帶了團(tuán)隊(duì)B的完整功能,但是團(tuán)隊(duì)B的功能客戶那邊還沒(méi)確認(rèn)可以上線,就把團(tuán)隊(duì)B的功能帶上生產(chǎn)了,等等問(wèn)題。我來(lái)一個(gè)一個(gè)解釋我們是如何做的。

? ??

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 專業(yè)考題類型管理運(yùn)行工作負(fù)責(zé)人一般作業(yè)考題內(nèi)容選項(xiàng)A選項(xiàng)B選項(xiàng)C選項(xiàng)D選項(xiàng)E選項(xiàng)F正確答案 變電單選GYSZ本規(guī)程...
    小白兔去釣魚(yú)閱讀 10,586評(píng)論 0 13
  • 1、在第五次sprint審查期間,團(tuán)隊(duì)獲得產(chǎn)品負(fù)責(zé)人對(duì)所有功能的簽署同意。但是,產(chǎn)品負(fù)責(zé)人注意到在第二次sprin...
    隔壁老李頭閱讀 7,611評(píng)論 0 16
  • 1、在項(xiàng)目的Sprint回顧會(huì)后,團(tuán)隊(duì)成員指出那是抱怨會(huì),不是非常有效。Scrum主管應(yīng)該怎么做?A 建議團(tuán)隊(duì)尊重...
    隔壁老李頭閱讀 12,465評(píng)論 1 16
  • 1、一名經(jīng)驗(yàn)豐富的團(tuán)隊(duì)成員沒(méi)有參與每日站會(huì),導(dǎo)致他們落后于審查活動(dòng)。敏捷管理專業(yè)人士應(yīng)該怎么做A 要求管理層解決B...
    隔壁老李頭閱讀 6,955評(píng)論 0 13
  • 敏捷和小瀑布的相愛(ài)相殺 原創(chuàng):陳輝敏捷視界9月5日 敏捷和小瀑布的相愛(ài)相殺 光環(huán)學(xué)友會(huì) ? 敏捷實(shí)戰(zhàn)分享 本文作者...
    面朝大海ZLL閱讀 1,011評(píng)論 0 0

友情鏈接更多精彩內(nèi)容