敏捷開發(fā)在支付寶團隊中的應(yīng)用
51CTO推薦專題:初探敏捷開發(fā)
支付寶的研發(fā)體系是從自身實際出發(fā)制定的,既要保障產(chǎn)品的高品質(zhì),又要保持對業(yè)務(wù)變化的快速響應(yīng),加上協(xié)調(diào)多個團隊高度并行開發(fā)的需要,整套研發(fā)體系是一個精心設(shè)計的嚴謹結(jié)構(gòu),也是比較重量型的。但還是可以從中找到敏捷開發(fā)方法中的一些重要元素。
首先談?wù)劽艚蓍_發(fā)中的迭代。支付寶技術(shù)架構(gòu)是采用與業(yè)務(wù)發(fā)展齊肩并進的策略,這個過程就像給F1比賽中的賽車換輪胎,所有架構(gòu)改進的實施必須安全快速,盡量不打斷正常的產(chǎn)品研發(fā)的節(jié)奏。因此,在確定技術(shù)架構(gòu)的基本發(fā)展方向或者基礎(chǔ)設(shè)施產(chǎn)品的藍圖之后,會將研發(fā)工作切分成很短的迭代,每一個迭代的目標明確,一般只解決少數(shù)幾個技術(shù)問題。以引入企業(yè)服務(wù)總線為例:
第一個迭代的任務(wù)是調(diào)研,目標是概念驗證與產(chǎn)品選型;
第二個迭代是試水,我們選擇了一個新的業(yè)務(wù)產(chǎn)品作為服務(wù)總線應(yīng)用的小白鼠,當時的目標是解決高可用部署模式問題以及集成邏輯的統(tǒng)一管理問題,架構(gòu)師進入到該項目中,通過服務(wù)總線提供該產(chǎn)品與其它系統(tǒng)的集成方案,這個迭代與新產(chǎn)品發(fā)布的同時完成;
以后的迭代是一系列推廣使用的迭代,幾次之后,完全替換了原來不夠靈活的商用JMS服務(wù)器集群,并且整個技術(shù)團隊可以不依賴架構(gòu)組使用服務(wù)總線了;
再以后的迭代是服務(wù)總線的自身的改進,如QoS的改進服務(wù)治理功能的增加等等。
采用這種敏捷開發(fā)的方式,每一次迭代都有實際可運行的產(chǎn)出,并且其結(jié)果可以作為選擇下一輪迭代目標的依據(jù)。以這種模式,架構(gòu)發(fā)展以一種穩(wěn)健的方式小步快跑著,但與有些敏捷方法學(xué)建議的固定迭代時長有些不同,當搭順風(fēng)車時,是宿主項目的規(guī)模決定迭代的時長。
對于長周期的項目或者需求難以在初期完全確定時,在一個項目內(nèi)部也設(shè)計一些迭代,開發(fā)人員增量地交付功能,測試并行進行功能驗證。
保證高效的溝通是另一個重要的問題,這通常是采用我們俗稱為閉關(guān)的形式來解決的。項目上到一定規(guī)模,就會包下一個會議室,項目經(jīng)理架構(gòu)系分開發(fā)測試等人員都會坐在一起,保持溝通的高效率,也減少不必要的干擾。暢通無阻的溝通以及項目經(jīng)理在場的協(xié)調(diào)管理是這種工作模式能夠順暢運轉(zhuǎn)的關(guān)鍵。
【編輯推薦】