騰訊TAPD合作微信:研發(fā)的蛻變
(1)客戶介紹
每月一個迭代,每迭代一次發(fā)布,穩(wěn)定的開發(fā)節(jié)奏是靈活創(chuàng)新的微信團隊現(xiàn)在的研發(fā)狀態(tài)。沒有延期,沒有爭搶資源,團隊充分溝通,這在一個100多人的大團隊中實屬不易。
然而在半年以前,微信的版本發(fā)布節(jié)奏并非如此。
(2)項目背景
第一階段:初創(chuàng)期,2010年到2012年初
這是微信的初創(chuàng)階段,當(dāng)時iOS和Android團隊的開發(fā)人員分別只有10人左右,主要通過Excel和郵件往來跟進版本需求。每個版本發(fā)布的時間極不穩(wěn)定,有時2周,有時一個月,有時兩個月,發(fā)布時間隨著開發(fā)進度不斷延期,常常出現(xiàn)為了等某個功能,讓其他所有準(zhǔn)備好的功能等待1-2周才發(fā)布的情況。由于團隊規(guī)模少,不存在跨團隊合作,團隊溝通也進行地有條不紊,先后發(fā)布了語音通話、查看附近的人、搖一搖、漂流瓶等核心功能,依靠快速創(chuàng)新迅速占領(lǐng)了市場。
第二階段:磨合期,2012年初到2014年
2012年3月,微信用戶突破1億大關(guān),微信團隊也日益壯大,和外團隊或外部門合作日益增多。簡單地依靠Excel和郵件管理已經(jīng)不能滿足研發(fā)需求。微信開始使用TAPD平臺。最早使用TAPD的是測試團隊,他們使用TAPD的“缺陷”模塊來管理測試中的問題。缺陷管理幫助測試人員和開發(fā)人員建立了很好的關(guān)聯(lián),流程靈活,定制化強,開發(fā)同學(xué)再也不會遺漏一個bug了。慢慢的,項目經(jīng)理也將TAPD中的迭代、需求等模塊用起來,但只為記錄,簡單使用。迭代的周期慢慢隨著產(chǎn)品的穩(wěn)定而穩(wěn)定,到2014年底,基本穩(wěn)定在1個半月一個迭代版本。
第三階段:穩(wěn)定期 2015年至今
隨著團隊人員的增加以及跨部門合作的增多,對TAPD的依賴逐步加強。微信團隊各角色共同融入TAPD中來,團隊合作實現(xiàn)可視化。迭代周期穩(wěn)定在一個月。固定節(jié)奏讓團隊目標(biāo)更明確,凝聚力更強。
(3)解決方案
節(jié)奏是一個團隊研發(fā)的心跳。當(dāng)團隊從10人擴大到50人時,團隊會面臨需求管理混亂、變更頻繁、交付延期等各種問題。 微信團隊最終選擇了一個月作為穩(wěn)定的迭代周期。這是一個TimeBox,團隊稱之為“搭車制”。 每個迭代提前確定迭代的目標(biāo),到期交付,延期的需求將不會等待不予發(fā)布,統(tǒng)一延后到下個迭代進行發(fā)布。
有的穩(wěn)定的節(jié)奏,有每個迭代的共同目標(biāo),團隊所有角色成員都會為了這一目標(biāo)而奮斗,不會在長期的開發(fā)中迷茫,不會在延期中迷失,團隊更高效,產(chǎn)品反應(yīng)更迅速。
需求統(tǒng)一管理,進展可追溯
微信的需求來源很多,除了本身APP的需求,還有各合作部門(如微信支付、開放平臺、游戲等)的集成需求;有老板需求,也有用戶反饋需求。面對需求來源復(fù)雜,變化頻繁的特點,Excel和郵件的管理方式已經(jīng)不能滿足團隊透明進展、追根溯源的要求。于是團隊在TAPD上建立了需求池(Backlog),統(tǒng)一記錄和跟蹤需求(User Story)。
有了需求池,該做什么,什么時候做,是由團隊共同決定。
在每個迭代的最后一周,項目經(jīng)理召集產(chǎn)品經(jīng)理、開發(fā)人員、測試人員,共同決定下個迭代的需求范圍(IPM會議),他們根據(jù)需求的用戶價值分析需求,進行評估。 這樣做的好處是,團隊的所有角色能夠充分了解迭代的目標(biāo),了解用戶價值,同時規(guī)避風(fēng)險。測試人員可以更早地開始進行測試場景設(shè)置與測試用例準(zhǔn)備。
Feature Team并行開發(fā)
微信Android的開發(fā)團隊目前有30+人,開發(fā)團隊拆分成三個Feature Team:基礎(chǔ)開發(fā)組、業(yè)務(wù)開發(fā)組、基礎(chǔ)優(yōu)化組(創(chuàng)新小組)。在確定大迭代范圍后,每個小組分別規(guī)劃各自的迭代(時間小于1個月),到了迭代最后一周再合入聯(lián)調(diào)。 Feature Team并行開發(fā),既保證了大的迭代目標(biāo)和節(jié)奏,也保證了個小組運作的獨立靈活創(chuàng)新,資源分配與迭代跟進更加便利。
擁抱變化,高效溝通
這個世界上,唯一不變的就是變化。由于內(nèi)外環(huán)境的因素,一個迭代的范圍可能會面臨多次調(diào)整,老板臨時加入一個高優(yōu)先級需求,必須加入迭代;一個需求開發(fā)延期了,趕不上迭代deadline,不能參加合入等,諸如此類。
微信團隊保證每周兩次的溝通,用來了解迭代進度、調(diào)整迭代范圍,并及早透明風(fēng)險。 溝通會的參與人是項目經(jīng)理、產(chǎn)品人員、開發(fā)leader、測試人員。
雖然有溝通,但迭代也不能隨時變更,特別是在迭代的后期。為了保證測試發(fā)布質(zhì)量,微信團隊規(guī)定,從迭代的第三周開始,不允許再進行迭代內(nèi)需求范圍的變更。
擁抱變化是研發(fā)團隊在互聯(lián)網(wǎng)時代必須具備的能力。
灰度發(fā)布,用戶參與
灰度發(fā)布是快速驗證版本的最好方式,在每個迭代的最后一周,微信為會小部分用戶開放α版本進行灰度驗證。灰度階段用戶的crash信息會同步為TAPD的缺陷(使用TAPD的接口實現(xiàn)),便于開發(fā)測試跟進。產(chǎn)品經(jīng)理也會在灰度期間充分收集用戶的反饋,追求極致體驗。
(4)價值體現(xiàn)
在一個版本結(jié)束后,團隊成員會統(tǒng)計分析各類數(shù)據(jù),幫助團隊了解版本質(zhì)量,回顧迭代中的問題,以便在新迭代中進行改進。再出發(fā)時,團隊會越來越自適應(yīng),越來越敏捷。