想要快速的持續(xù)交付 何以如此困難?
原創(chuàng)【51CTO專稿】互聯(lián)網(wǎng)時(shí)代的應(yīng)用開(kāi)發(fā)講究快速迭代,就算沒(méi)有一天發(fā)布個(gè)三版,怎么說(shuō)也得兩天發(fā)一版才好意思出門跟人打招呼。而移動(dòng)應(yīng)用發(fā)布的周期,一般也在一個(gè)月以內(nèi)。
在開(kāi)源領(lǐng)域,現(xiàn)在Chrome、Firefox等項(xiàng)目基本都保持六周一個(gè)新版本,管他功能實(shí)現(xiàn)完了沒(méi),先上了再說(shuō)。幾個(gè)著名的Linux發(fā)行版本,則保持六個(gè)月一版的發(fā)布周期,但是測(cè)試版的周期也都維持在一個(gè)月的長(zhǎng)度。另外,大部分成熟的開(kāi)源項(xiàng)目都有Nightly Build,即一天一個(gè)新版本。
這里面的區(qū)別當(dāng)然也很容易看出來(lái),互聯(lián)網(wǎng)應(yīng)用不用下載,用戶上去就能用,改動(dòng)越頻繁、每次的改動(dòng)越小,則越容易收集反饋,對(duì)產(chǎn)品更有利;而像是操作系統(tǒng)這種大塊頭,下載一個(gè)鏡像就要幾個(gè)小時(shí),安裝升級(jí)再幾個(gè)小時(shí),肯定不能讓用戶頻繁的折騰。
不過(guò)無(wú)論是哪種產(chǎn)品,業(yè)內(nèi)當(dāng)前對(duì)“應(yīng)用交付”這方面已經(jīng)有了統(tǒng)一的觀點(diǎn),那就是無(wú)論你什么時(shí)候去看產(chǎn)品開(kāi)發(fā)的***進(jìn)展,它都應(yīng)該是可用的,***能處在一個(gè)可隨時(shí)上線的狀態(tài)。
筆者上個(gè)月在百度開(kāi)發(fā)者大會(huì)上遇到了百度高級(jí)架構(gòu)師路寧(@路寧同學(xué)),跟其他幾位開(kāi)發(fā)者一起聊了一些敏捷開(kāi)發(fā)和持續(xù)交付方面的話題。感覺(jué)在互聯(lián)網(wǎng)行業(yè),敏捷開(kāi)發(fā)理念的進(jìn)展、持續(xù)交付的狀態(tài)的確比兩年前的企業(yè)級(jí)開(kāi)發(fā)領(lǐng)域要好很多了,但也有很多不盡如人意的無(wú)奈。
“一開(kāi)始接觸敏捷開(kāi)發(fā)的開(kāi)發(fā)者,都很不習(xí)慣那種每天工作透明化的狀態(tài),壓力很大。”
“我的團(tuán)隊(duì)都是些新手,只有一年經(jīng)驗(yàn)的或者完全就是畢業(yè)生的,上來(lái)讓他們做預(yù)估,基本都是不準(zhǔn)。一個(gè)功能預(yù)估做兩天,結(jié)果做了一周,經(jīng)常都是這樣。”
“好不容易這個(gè)人成長(zhǎng)起來(lái)了吧,別的企業(yè)待遇稍微好點(diǎn)就把人挖走了。而領(lǐng)導(dǎo)也不會(huì)太多考慮你的難處,只想用廉價(jià)勞動(dòng)力,就再招新人進(jìn)來(lái),如此反復(fù)……”
這些無(wú)奈的聲音來(lái)自一位從業(yè)六年的開(kāi)發(fā)者。王先生現(xiàn)在在一家電子政務(wù)方面的企業(yè)做產(chǎn)品研發(fā)經(jīng)理,負(fù)責(zé)整個(gè)研發(fā)團(tuán)隊(duì)的工作與培養(yǎng)。
“有些小孩進(jìn)來(lái)吧,你也不能說(shuō)他不努力,但總感覺(jué)心不甘情不愿的。”王先生講到自己的工作時(shí),說(shuō)到自己曾經(jīng)有段時(shí)間每天工作18個(gè)小時(shí),吃飯什么的全拋掉,只有2、3個(gè)小時(shí)用來(lái)睡覺(jué)。當(dāng)然,他也表示不打算再這樣拼命了。“我們給畢業(yè)生的待遇也不算高,而敏捷開(kāi)發(fā)的那種透明,雖然能夠讓他們快速成長(zhǎng),但確實(shí)造成很大的壓力。”
敏捷開(kāi)發(fā)的理想狀態(tài),是一個(gè)團(tuán)隊(duì)在項(xiàng)目進(jìn)行過(guò)程中能夠不斷成長(zhǎng),對(duì)項(xiàng)目越來(lái)越熟練;每次項(xiàng)目都是一次練兵,而團(tuán)隊(duì)的整體能力則會(huì)越來(lái)越強(qiáng),在敏捷開(kāi)發(fā)的流程當(dāng)中也會(huì)帶來(lái)越來(lái)越高的生產(chǎn)效率。然而,理想是豐滿的,現(xiàn)實(shí)是骨干的。對(duì)于國(guó)內(nèi)的大多數(shù)技術(shù)團(tuán)隊(duì)而言,不穩(wěn)定可以說(shuō)是一種常態(tài)。老板希望找廉價(jià)的工作力,還要進(jìn)來(lái)就能用,進(jìn)來(lái)的新人無(wú)論在能力還是忠誠(chéng)度方面都不能盡如人意,在這種環(huán)境下想要做到準(zhǔn)確的預(yù)估工時(shí),想要讓他們堅(jiān)持透明化的運(yùn)作,是非常困難的事情。
最終,還是團(tuán)隊(duì)的人員質(zhì)量決定了持續(xù)交付的效率和質(zhì)量。
一方面是團(tuán)隊(duì)的參與者。“現(xiàn)在我招聘的時(shí)候,都會(huì)非??粗羞@個(gè)程序員的心態(tài)是否開(kāi)放。他如果是那種特別以自我為中心的,聽(tīng)不進(jìn)別人的意見(jiàn),也不愿意溝通的,這種我就會(huì)比較擔(dān)心一些。”路寧介紹說(shuō)他自己帶過(guò)一些團(tuán)隊(duì),有的人就很不愿意做Pair Swapping,因?yàn)椴辉敢庾寗e人看到自己的工作進(jìn)度,這樣的話就比較難展開(kāi)。所以,開(kāi)放的心態(tài)是非常重要的。
另一方面,團(tuán)隊(duì)的管理者也很重要。路寧表示有的管理者會(huì)濫用敏捷開(kāi)發(fā)流程當(dāng)中的透明性,反而對(duì)團(tuán)隊(duì)的發(fā)展不利。“比如,透明化之前的工作可能有張有弛的,這對(duì)于開(kāi)發(fā)者來(lái)說(shuō)是一種常態(tài);但透明之后管理者可能看到,你原來(lái)這么快就把這個(gè)功能做完了,那我要給你加量,反而使得開(kāi)發(fā)者無(wú)法得到充分的喘息。”
對(duì)于敏捷開(kāi)發(fā)團(tuán)隊(duì)的規(guī)模,路寧也提供了一些建議。一般敏捷團(tuán)隊(duì)從6、7、8、9個(gè)人到20個(gè)人都是可以的,不過(guò)也有的團(tuán)隊(duì)到10個(gè)人之后就搞不到一起去了。一般來(lái)說(shuō),6~12個(gè)人的團(tuán)隊(duì)來(lái)完成持續(xù)交付會(huì)比較理想。





























