<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          軟件高效交付10大策略解讀——小批量持續(xù)流動(dòng)

          共 2323字,需瀏覽 5分鐘

           ·

          2022-05-09 20:00

          軟件交付過程是指在編程序改代碼之后的一系列活動(dòng),如提交、集成、構(gòu)建、部署、測(cè)試等,直到將軟件發(fā)布給用戶使用。
          我們大致梳理了軟件開發(fā) “從古至今”的思潮、運(yùn)動(dòng)、方法、實(shí)踐,從軟件工程到 DevOps,再到研發(fā)效能,它們之間有演進(jìn)、有糾偏、有補(bǔ)充,也有大量的交疊。做這樣的梳理,是為了能夠融會(huì)貫通,以便綜合運(yùn)用。本系列文章就來(lái)看看對(duì)它們做到融會(huì)貫通以后,提煉出來(lái)的軟件高效交付的10大策略。

          本文先來(lái)解讀其中的第一個(gè)策略:小批量持續(xù)流動(dòng)
          軟件交付過程要追求快,從改一行代碼到把它發(fā)布上線,都要盡量快。因?yàn)閺拇_定需求到設(shè)計(jì)開發(fā)再到發(fā)布上線的整個(gè)流程,就是要盡量快。那么如何做到呢?一個(gè)重要的策略就是不要等待,小批量持續(xù)流動(dòng)。

          大批量帶來(lái)的等待問題
          觀察瀑布模式中的等待:由于大批需求被一起規(guī)劃設(shè)計(jì),所以盡管每個(gè)需求可能只需要不多的設(shè)計(jì)時(shí)間,但是需要等待所有的需求都被設(shè)計(jì)好后才能開始實(shí)現(xiàn)。大批需求帶來(lái)很大的開發(fā)工作量,在實(shí)現(xiàn)某一個(gè)具體小功能時(shí),可能只需要不多的時(shí)間,但需要等待所有的功能都實(shí)現(xiàn)后,才能進(jìn)行集成。大量的軟件改動(dòng)帶來(lái)繁重的集成工作,如果到項(xiàng)目后期才集成和測(cè)試,那么就要等問題一個(gè)個(gè)冒出來(lái)并被解決掉,說不定還需要多輪測(cè)試。總之,對(duì)于軟件的一點(diǎn)改動(dòng),花在它本身的功能設(shè)計(jì)、代碼實(shí)現(xiàn)、質(zhì)量保證上的時(shí)間可能并不多,但是由于總是需要湊齊足夠的需求才能往下推進(jìn)流程,所以等待的時(shí)間就會(huì)很漫長(zhǎng)。最后的效果就是從確定需求到發(fā)布上線的整個(gè)流程,很慢。具體到《軟件交付通識(shí)》這本書關(guān)注的軟件交付過程,也是很慢的。
          當(dāng)總是需要湊齊需求時(shí),還會(huì)帶來(lái)一些連鎖反應(yīng),讓流程變得更慢。其中最明顯的問題是,修復(fù)一個(gè)Bug所花費(fèi)的時(shí)間變長(zhǎng)了。比如你改了幾行代碼,當(dāng)時(shí)就得到了反饋,提示寫得有問題,那么你自然就只需要在那幾行代碼中排查。那幾行代碼又是剛寫的,記憶還新鮮,很快就能找出原因并改正。但是,如果過了很久才得到反饋,那么你就不知道問題是具體哪個(gè)地方的改動(dòng)引起的,從而導(dǎo)致排查困難。而且那段程序的結(jié)構(gòu)和邏輯,你可能也記不清了,又要重新熟悉,重新進(jìn)入狀態(tài)。

          短周期、小顆粒度、減少半成品才是王道
          這么看來(lái),等待真不是一件好事兒,要盡量避免。如何避免呢?別湊一大批!也就是說,要在各個(gè)方面追求小批量:小批量的設(shè)計(jì)功能、交代開發(fā)任務(wù),小批量的集成,小批量的測(cè)試,小批量的發(fā)布。這樣就有可能讓整個(gè)流程持續(xù)地流動(dòng)起來(lái),而不是走走停停。
          瀑布模式顯然違背了這一策略,導(dǎo)致了漫長(zhǎng)的交付周期。而如果將四周甚至兩周作為一個(gè)迭代周期的話,相比之下就好得多。然而這并不是終點(diǎn),它可以更好:一方面,迭代可以一直延伸到上線,而不是止步于內(nèi)部演示版本,上線才是真正的Done;另一方面,一次迭代包含了多個(gè)需求,它們之間還是會(huì)相互等待、相互影響的。所以,更理想的情況是每個(gè)需求都可以在精益看板墻上不受干擾自主地往前走:開發(fā)、測(cè)試直到發(fā)布。也就是說,想改就改、想測(cè)就測(cè)、想發(fā)就發(fā)。
          這里需求的顆粒度也有講究,不要太大。所以在精益需求分析與管理實(shí)踐中,要做需求拆分:將大需求拆分成小需求,可以分別獨(dú)立開發(fā)和發(fā)布上線。這也符合小批量的原則。
          在精益方法中還提到了控制在制品數(shù)量,因?yàn)樵谥破窋?shù)量大意味著排隊(duì)等待時(shí)間長(zhǎng),也意味著一個(gè)人可能要并行處理多件事情,需要頻繁切換。控制在制品數(shù)量,也符合持續(xù)流動(dòng)這個(gè)原則。

          小批量持續(xù)流動(dòng)的交付過程
          以上是從敏捷和精益的視角來(lái)看小批量持續(xù)流動(dòng)這個(gè)策略的。下面我們來(lái)看看持續(xù)集成、持續(xù)交付是如何踐行小批量持續(xù)流動(dòng)這個(gè)策略的。
          持續(xù)集成意味著代碼改動(dòng)要及早和經(jīng)常提交與合并,這樣有利于減少合并沖突和錯(cuò)誤,并且在彼此工作有依賴時(shí),能及時(shí)獲取到別人的改動(dòng),及早開工。
          持續(xù)集成還意味著及早和經(jīng)常構(gòu)建與測(cè)試。一旦收到提交的代碼,就自動(dòng)進(jìn)行構(gòu)建、靜態(tài)代碼分析、單元測(cè)試等工作,以便盡早發(fā)現(xiàn)問題,而不是非要湊齊再開始。顯然,這也符合小批量持續(xù)流動(dòng)的原則。
          持續(xù)交付更進(jìn)一步,把及早和經(jīng)常做的事情擴(kuò)展到了部署到測(cè)試環(huán)境并測(cè)試,甚至擴(kuò)展到了及早和經(jīng)常發(fā)布上線。
          可見,敏捷、精益、持續(xù)集成、持續(xù)交付,它們都反映了這個(gè)重要的策略:小批量持續(xù)流動(dòng)。
          以上講的是大的方面。根據(jù)小批量持續(xù)流動(dòng)這個(gè)原則,在集成發(fā)布階段還有不少細(xì)節(jié)值得注意。比如發(fā)布窗口應(yīng)當(dāng)盡量去掉,做到無(wú)須等待、隨時(shí)發(fā)布。

          推薦閱讀
          董越老師的新書《軟件交付通識(shí)》從頭到尾梳理了軟件交付過程(也就是從改了一行代碼到它發(fā)布上線的過程),分門別類地講解了流程各個(gè)階段的各個(gè)要點(diǎn),以及流程中各個(gè)活動(dòng)的各個(gè)要點(diǎn)。軟件高效交付的10個(gè)策略更是這本書中的核心觀點(diǎn)和內(nèi)容,如果你想快速通讀所有10個(gè)策略,請(qǐng)關(guān)注這本不容錯(cuò)過的好書。

          作者簡(jiǎn)介:
          董越,DevOps 資深專家,阿里巴巴集團(tuán)前研發(fā)效能事業(yè)部架構(gòu)、高級(jí)產(chǎn)品專家等職,從事 Aone&云效 DevOps 產(chǎn)品設(shè)計(jì)、阿里云專有云集成與交付解決方案設(shè)計(jì)等工作。在加入阿里之前,他還曾就職于西門子、摩托羅拉、雅虎、索尼、去哪兒網(wǎng)等大型企業(yè),一直從事軟件配置管理、軟件集成與交付、DevOps 相關(guān)的工作。當(dāng)前主要從事企業(yè)級(jí)DevOps體系建設(shè)與咨詢工作,幫助眾多企業(yè)提升軟件研發(fā)交付效能。已服務(wù)過的客戶有華為、工商銀行、交通銀行、招商銀行、中信銀行、中國(guó)移動(dòng)、中國(guó)聯(lián)通、中國(guó)電信、華泰證券、泰康人壽等。

          ?

          如果喜歡本文
          歡迎?在看留言分享至朋友圈?三連

          ?熱文推薦??





          ▼點(diǎn)擊閱讀原文,了解本書詳情~

          瀏覽 21
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  九九九黄片 | 大香蕉99在线视频 | 乱伦视频综合网 | 欲色网站| 免费啪啪网站。 |