14.8討論
?。?)每次里程碑結(jié)束后,我們給客戶匯報(bào)的的時(shí)候,客戶總是會(huì)驚訝地說(shuō),某某功能不是我們當(dāng)初商量的那樣啊,而PM卻也同樣一臉詫異地說(shuō),不對(duì)啊,當(dāng)時(shí)咱們就是這么說(shuō)好的啊,有文檔為證??蛻舨桓闪?,威脅不加/不改xx功能就如何如何,這時(shí)PM該怎么辦?
大牛:我們?cè)诤贤镆獙?xiě)明到底我們要交付的是什么,這就要看PM的分析和說(shuō)明能力了。有時(shí)要對(duì)客戶說(shuō)“不”。同時(shí),我們?cè)谛枨笳f(shuō)明中也要從用戶的角度去描述問(wèn)題和解決方案,這樣用戶才能了解他們最終會(huì)得到什么。
(2)項(xiàng)目開(kāi)發(fā)中后期,Dev lead用工具一統(tǒng)計(jì),乖乖,足足xx萬(wàn)行代碼,xx千個(gè)存儲(chǔ)過(guò)程,可是每到給客戶演示時(shí),卻不時(shí)出現(xiàn)程序的各個(gè)功能相互不配合,不能自圓其說(shuō)的尷尬場(chǎng)景,Dev lead很郁悶,想想自己可是沒(méi)少加班啊,代碼量也有,可是問(wèn)題究竟出在什么方面呢?
阿超:一個(gè)原因是每個(gè)人都沉浸在“我要寫(xiě)出最強(qiáng)大的某某類或某某模塊”,不停地優(yōu)化一些沒(méi)有人用的功能,但是真正能夠?yàn)槠渌K使用的功能卻未能實(shí)現(xiàn)。他們忘了他們寫(xiě)的代碼是給別人用的,而且是為了解決用戶的問(wèn)題。所以這個(gè)時(shí)候我們要想想“用場(chǎng)景驅(qū)動(dòng)”的方法,保證典型的用戶場(chǎng)景能夠?qū)崿F(xiàn)。如果從“場(chǎng)景”出發(fā),各個(gè)模塊的互相集成就能得到充分的測(cè)試,按照?qǐng)鼍把菔酒饋?lái)就更有保障了。
(3)在項(xiàng)目開(kāi)始之前, 有很多隊(duì)員還沒(méi)有接觸過(guò)編程語(yǔ)言(例如C#),導(dǎo)致PM在分配任務(wù)時(shí)很難用時(shí)間來(lái)衡量,就拿寫(xiě)一個(gè)Web Service這一模塊來(lái)說(shuō),一個(gè)熟練的程序員可能只需要兩個(gè)小時(shí),而對(duì)于C#的初學(xué)者來(lái)說(shuō),就得先花兩天來(lái)理解Web Service的實(shí)
現(xiàn)機(jī)制和原理。在有限時(shí)間的催促下,導(dǎo)致一些緊急的任務(wù)不斷向高手集中,而初學(xué)者的任務(wù)越來(lái)越少。這時(shí)應(yīng)該怎么辦?
阿超:對(duì)于這些隊(duì)員,可以考慮在他們自己的任務(wù)估計(jì)值之上再乘以4。另外,如果你是寫(xiě)一個(gè)商業(yè)項(xiàng)目,請(qǐng)不要讓連開(kāi)發(fā)語(yǔ)言都沒(méi)有接觸過(guò)的隊(duì)員進(jìn)行開(kāi)發(fā)工作。并不是非得“寫(xiě)”程序才是對(duì)項(xiàng)目有貢獻(xiàn),有時(shí)不寫(xiě)也是好的貢獻(xiàn)。如果他們有熱情,就從測(cè)試開(kāi)始學(xué)習(xí)吧。
?。?)每次里程碑結(jié)束后,我們給客戶匯報(bào)的的時(shí)候,客戶總是會(huì)驚訝地說(shuō),某某功能不是我們當(dāng)初商量的那樣啊,而PM卻也同樣一臉詫異地說(shuō),不對(duì)啊,當(dāng)時(shí)咱們就是這么說(shuō)好的啊,有文檔為證??蛻舨桓闪?,威脅不加/不改xx功能就如何如何,這時(shí)PM該怎么辦?
大牛:我們?cè)诤贤镆獙?xiě)明到底我們要交付的是什么,這就要看PM的分析和說(shuō)明能力了。有時(shí)要對(duì)客戶說(shuō)“不”。同時(shí),我們?cè)谛枨笳f(shuō)明中也要從用戶的角度去描述問(wèn)題和解決方案,這樣用戶才能了解他們最終會(huì)得到什么。
(2)項(xiàng)目開(kāi)發(fā)中后期,Dev lead用工具一統(tǒng)計(jì),乖乖,足足xx萬(wàn)行代碼,xx千個(gè)存儲(chǔ)過(guò)程,可是每到給客戶演示時(shí),卻不時(shí)出現(xiàn)程序的各個(gè)功能相互不配合,不能自圓其說(shuō)的尷尬場(chǎng)景,Dev lead很郁悶,想想自己可是沒(méi)少加班啊,代碼量也有,可是問(wèn)題究竟出在什么方面呢?
阿超:一個(gè)原因是每個(gè)人都沉浸在“我要寫(xiě)出最強(qiáng)大的某某類或某某模塊”,不停地優(yōu)化一些沒(méi)有人用的功能,但是真正能夠?yàn)槠渌K使用的功能卻未能實(shí)現(xiàn)。他們忘了他們寫(xiě)的代碼是給別人用的,而且是為了解決用戶的問(wèn)題。所以這個(gè)時(shí)候我們要想想“用場(chǎng)景驅(qū)動(dòng)”的方法,保證典型的用戶場(chǎng)景能夠?qū)崿F(xiàn)。如果從“場(chǎng)景”出發(fā),各個(gè)模塊的互相集成就能得到充分的測(cè)試,按照?qǐng)鼍把菔酒饋?lái)就更有保障了。
(3)在項(xiàng)目開(kāi)始之前, 有很多隊(duì)員還沒(méi)有接觸過(guò)編程語(yǔ)言(例如C#),導(dǎo)致PM在分配任務(wù)時(shí)很難用時(shí)間來(lái)衡量,就拿寫(xiě)一個(gè)Web Service這一模塊來(lái)說(shuō),一個(gè)熟練的程序員可能只需要兩個(gè)小時(shí),而對(duì)于C#的初學(xué)者來(lái)說(shuō),就得先花兩天來(lái)理解Web Service的實(shí)
現(xiàn)機(jī)制和原理。在有限時(shí)間的催促下,導(dǎo)致一些緊急的任務(wù)不斷向高手集中,而初學(xué)者的任務(wù)越來(lái)越少。這時(shí)應(yīng)該怎么辦?
阿超:對(duì)于這些隊(duì)員,可以考慮在他們自己的任務(wù)估計(jì)值之上再乘以4。另外,如果你是寫(xiě)一個(gè)商業(yè)項(xiàng)目,請(qǐng)不要讓連開(kāi)發(fā)語(yǔ)言都沒(méi)有接觸過(guò)的隊(duì)員進(jìn)行開(kāi)發(fā)工作。并不是非得“寫(xiě)”程序才是對(duì)項(xiàng)目有貢獻(xiàn),有時(shí)不寫(xiě)也是好的貢獻(xiàn)。如果他們有熱情,就從測(cè)試開(kāi)始學(xué)習(xí)吧。