
項(xiàng)目上線有一段時(shí)間了,上線后大家忙著改bug,忙著匯報(bào),忙著二期的規(guī)劃,一直沒(méi)有坐下來(lái)一起聊聊。
上周,我還是決定花費(fèi)大家半天的時(shí)間,組織開了迭代回顧會(huì)。
迭代回顧會(huì)對(duì)于敏捷來(lái)講,是一個(gè)很重要的實(shí)踐,但其實(shí)不提敏捷的時(shí)候,我們也在做,只是有個(gè)更普通的名字,叫項(xiàng)目總結(jié)會(huì)。(迭代回顧會(huì)的實(shí)踐方法見(jiàn)文章最后)
會(huì)上,當(dāng)我們回顧了項(xiàng)目過(guò)程時(shí),發(fā)現(xiàn)一個(gè)重要問(wèn)題,這個(gè)問(wèn)題就是:經(jīng)常性的,我們忽略了或忘了目標(biāo),這里的目標(biāo)應(yīng)該有但不限于以下內(nèi)容。
一、 業(yè)務(wù)目標(biāo)
說(shuō)出來(lái),大家可能都覺(jué)得不可思議,沒(méi)有目標(biāo),那項(xiàng)目組最終要交付什么樣的系統(tǒng)?項(xiàng)目組又在為了什么而忙?
可事實(shí)就是如此,很多時(shí)候,我們盲目的就開始了一個(gè)項(xiàng)目,然后盲目的就做出一堆功能。
真實(shí)情況是這樣的,我們的研發(fā)團(tuán)隊(duì)不是一個(gè)真正的互聯(lián)網(wǎng)產(chǎn)品團(tuán)隊(duì),雖然有產(chǎn)品經(jīng)理的角色,也基本是技術(shù)主管或經(jīng)理?yè)?dān)當(dāng)?shù)?,結(jié)果就是我們更關(guān)注的是要做哪些功能。
例如,我們規(guī)劃要做一個(gè)公有云系統(tǒng),產(chǎn)品經(jīng)理就會(huì)看世面上的公有云產(chǎn)品:華為云,阿里云,亞馬遜等,然后去參考他們的界面,去試用他們的功能,恨不得copy一個(gè)類似的產(chǎn)品出來(lái)。
實(shí)際上,我們并沒(méi)有想清楚,華為云,阿里云已經(jīng)做起來(lái)了,我們?yōu)槭裁催€要做這個(gè)系統(tǒng)?我們是比他們有更強(qiáng)大的技術(shù)能力,能快速的仿造出一個(gè)公有云系統(tǒng),跟他們抗衡或分一杯羹?還是我們的資源比人家便宜?還是我們的安全性或服務(wù)可以做的比他們好,讓客戶覺(jué)得更有保障?
可是,至少?gòu)哪壳翱?,我們的技術(shù)實(shí)力并不比人家強(qiáng);據(jù)我了解,亞馬遜本來(lái)就是因?yàn)槟切┵Y源閑著也是閑著,才做了個(gè)公有云來(lái)處理閑置的資源,其他的市面上單獨(dú)賣I層資源的,都是在做賠本生意;還有,公司內(nèi)部的環(huán)境還存在各種單點(diǎn),無(wú)容災(zāi)系統(tǒng)等問(wèn)題;
那我們?yōu)槭裁匆鲞@個(gè)系統(tǒng)?我們的客戶是誰(shuí)?客戶的使用場(chǎng)景是什么?我們能為他們解決什么問(wèn)題?這點(diǎn)就決定了我們的業(yè)務(wù)目標(biāo)是什么、產(chǎn)品和服務(wù)是如何定義的,也決定了我們的產(chǎn)品跟其他的競(jìng)爭(zhēng)對(duì)手的差異性。
所以,做一個(gè)產(chǎn)品,我們核心要明確業(yè)務(wù)目標(biāo),確定目標(biāo)用戶、梳理業(yè)務(wù)場(chǎng)景并進(jìn)行產(chǎn)品定義。
開發(fā)都啟動(dòng)了,才有人點(diǎn)撥我們,我們差不多花了整整一個(gè)月才從想到想明白,造成了部分返工。
二、進(jìn)度目標(biāo)
需求清楚了后,技術(shù)負(fù)責(zé)人將需求轉(zhuǎn)化成開發(fā)計(jì)劃,接下來(lái)就可以開發(fā)了。
開發(fā)計(jì)劃的坑同樣很多,完全依賴于技術(shù)負(fù)責(zé)人對(duì)需求的理解,以及將需求轉(zhuǎn)化為開發(fā)的設(shè)計(jì)能力。對(duì)需求的不理解或理解偏差,以及較差的設(shè)計(jì)能力導(dǎo)致系統(tǒng)擴(kuò)展能力不足,都會(huì)導(dǎo)致不必要的返工,并且可能會(huì)低估工作難度,導(dǎo)致計(jì)劃評(píng)估不準(zhǔn)。
于是,在開發(fā)階段,又有一個(gè)很容易迷失的目標(biāo):進(jìn)度目標(biāo)。因?yàn)橐陨现饕?,就算?jì)劃做的再詳盡,人員再穩(wěn)定,計(jì)劃和實(shí)際執(zhí)行也是很難一致。
加上公司內(nèi)部的系統(tǒng),沒(méi)有客戶抽著鞭子催你,項(xiàng)目經(jīng)理也很容易做著做著被現(xiàn)實(shí)屈服,做到哪,算到哪,不停的變更發(fā)布計(jì)劃。
首先,要解決的是需求到設(shè)計(jì)的轉(zhuǎn)化,形成雙向評(píng)審機(jī)制。產(chǎn)品經(jīng)理除了輸出業(yè)務(wù)流程和原型外,還要輸出需求文檔,并且需求文檔要能細(xì)化到功能點(diǎn),包括界面的字段說(shuō)明,長(zhǎng)度等,技術(shù)負(fù)責(zé)人評(píng)審確認(rèn);而當(dāng)技術(shù)負(fù)責(zé)人完成設(shè)計(jì)后,產(chǎn)品經(jīng)理要反向的參與進(jìn)來(lái)評(píng)審。
然后,要嚴(yán)肅計(jì)劃,計(jì)劃是每個(gè)人的承諾,不是完全不可變,但是一旦定下來(lái),大家就要嚴(yán)格執(zhí)行,無(wú)法完成的就自己想辦法,要不加班,要不優(yōu)化提高個(gè)人生產(chǎn)率。
三 、測(cè)試目標(biāo)
很多系統(tǒng)測(cè)試,最注重的還是功能測(cè)試,而且偏向于功能點(diǎn)的測(cè)試,忽略了貫穿測(cè)試。
所以,一開始就要確認(rèn)測(cè)試的目標(biāo),要包括功能測(cè)試,安全測(cè)試,靜態(tài)代碼掃描等,還要有兼容性測(cè)試,一開始在ue開始做靜態(tài)頁(yè)面的時(shí)候就要明確好要支持的瀏覽器版本,省的理解不同,還要做改造才能向下兼容。
性能測(cè)試指標(biāo)也要一開始就跟測(cè)試人員確定好,多少用戶量,滿足多少tps,響應(yīng)時(shí)間最長(zhǎng)多少等必須明確。
四、 個(gè)人目標(biāo)
做每個(gè)項(xiàng)目,除了達(dá)成項(xiàng)目的目標(biāo)外,我們也要給自己設(shè)定一個(gè)目標(biāo)。比如,我想通過(guò)這個(gè)項(xiàng)目讓老板對(duì)我刮目相看,想在公司中揚(yáng)名立業(yè),讓大家都知道,這么牛的系統(tǒng)是我?guī)ш?duì)開發(fā)的。
或者我想通過(guò)這個(gè)項(xiàng)目達(dá)到堅(jiān)持每日過(guò)進(jìn)度,有效管理項(xiàng)目計(jì)劃的目的。
或者,我想通過(guò)這個(gè)項(xiàng)目實(shí)踐我剛剛學(xué)習(xí)到的溝通技巧,在面對(duì)沖突時(shí),或關(guān)鍵對(duì)話時(shí)。
或者,我想按照敏捷的方法試一下項(xiàng)目管理過(guò)程,更或者特別微小的,就是想試試敏捷的生產(chǎn)率評(píng)估或持續(xù)集成。
作為開發(fā)人員,你可以定的目標(biāo)是了解整個(gè)項(xiàng)目的業(yè)務(wù),而不是只關(guān)心自己開發(fā)的那部分功能,或者是要學(xué)會(huì)使用一種前臺(tái)框架,或者熟悉redis,或者學(xué)會(huì)部署監(jiān)控系統(tǒng),日志系統(tǒng)。
附: 迭代回顧
每個(gè)迭代完成后,項(xiàng)目經(jīng)理要組織產(chǎn)品經(jīng)理以及技術(shù)經(jīng)理在內(nèi)的項(xiàng)目團(tuán)隊(duì)一起進(jìn)行迭代回顧。
項(xiàng)目經(jīng)理可以回顧下整個(gè)迭代過(guò)程,大家輪流發(fā)言,每個(gè)人都回顧一下他認(rèn)為哪些是做的好的,哪些可以做的更好, 哪些需要在下個(gè)迭代中改變,具體有什么建議。
要注意的是,通過(guò)回顧,你會(huì)發(fā)現(xiàn)需要改進(jìn)的點(diǎn)很多,都改過(guò)來(lái)變得很困難,所以,結(jié)束前,還是要跟大家一起商量出下個(gè)迭代優(yōu)先要解決的TOP5。
迭代回顧特別重要,否則,你就會(huì)發(fā)現(xiàn)在下一個(gè)迭代中,團(tuán)隊(duì)還是在不斷重犯同樣的錯(cuò)誤。尤其提醒的是,氛圍也很重要,不要把迭代回顧變成批斗大會(huì),因?yàn)槲覀兊哪繕?biāo)是為了在下一個(gè)迭代能夠做的更好,而不是讓大家自我否定,退縮,失望。