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