【連載3】對(duì)產(chǎn)品開(kāi)發(fā)和測(cè)試的思考

< 上一篇 | 連載目錄 | 下一篇 >
我和《僵尸榨汁機(jī)》的故事贷屎,系列連載(3)

《僵尸榨汁機(jī)》產(chǎn)品是基于 Zombie Catchers上的二次開(kāi)發(fā),整個(gè)項(xiàng)目開(kāi)發(fā)周期在4個(gè)月左右,從2015年10月到2016年1月荞怒,團(tuán)隊(duì)成員7人轴或。

對(duì)于一款休閑游戲的修改尝哆,這個(gè)人員配置和周期應(yīng)該是不差了匈庭,但是整個(gè)開(kāi)發(fā)過(guò)程是困難重重摸吠。首先公司當(dāng)時(shí)的業(yè)務(wù)重心不在這個(gè)項(xiàng)目上,各方面資源投入有限嚎花;其次主程因?yàn)閭€(gè)人原因,在項(xiàng)目剛開(kāi)始開(kāi)發(fā)階段就離開(kāi)了公司呀洲,新來(lái)的小朋友完全不在狀態(tài)紊选;另外之前完成的一個(gè)項(xiàng)目順風(fēng)順?biāo)詡€(gè)人對(duì)于這個(gè)項(xiàng)目有些輕敵道逗。

因此項(xiàng)目開(kāi)始階段兵罢,開(kāi)發(fā)進(jìn)度非常緩慢,讓人一籌莫展滓窍,每天都感到很焦慮卖词。后來(lái)在10月中的時(shí)候陵霉,進(jìn)行了一次項(xiàng)目團(tuán)隊(duì)重組,補(bǔ)充了精干人力磷籍,總算有了明顯的起色袄秩。但是為了補(bǔ)上之前拉下的進(jìn)度,每天都加班裆赵,有很長(zhǎng)一段時(shí)間都是工作到11點(diǎn)12點(diǎn)东囚,甚至更晚。

從這個(gè)項(xiàng)目上得到的血和淚的教訓(xùn)战授,不得不讓我去好好整理思路页藻,重新思考產(chǎn)品開(kāi)發(fā)過(guò)程中的關(guān)鍵因素。很多問(wèn)題可能會(huì)具有普遍性植兰,事后諸葛亮般的提了很多應(yīng)對(duì)措施和建議份帐,希望以后能夠少趟一些這樣的坑。


產(chǎn)品主要里程碑和修改內(nèi)容

時(shí)間點(diǎn) 主要里程碑
2015年8月 合同簽署楣导,收到代碼交付
2015年10月 人員變化废境,團(tuán)隊(duì)重組
2015年11月 調(diào)整項(xiàng)目計(jì)劃,重新確定上線(xiàn)日期
2016年1月12日 iOS上線(xiàn)
2016年1月15日 獲得App Store首頁(yè)推薦

修改內(nèi)容:

游戲原先的核心玩法爷辙、美術(shù)彬坏、音樂(lè)音效已經(jīng)非常不錯(cuò),所以修改內(nèi)容集中在提高留存膝晾、增加付費(fèi)栓始、本地化這3塊。

對(duì)于僵尸戰(zhàn)斗:增加沼澤地圖BOSS和BOSS飛碟血当,目的是增加游戲的玩法幻赚,避免玩法過(guò)于單一,給玩家?guī)?lái)疲勞感臊旭,提高留存落恼;增加了HP,調(diào)整僵尸攻擊力离熏,調(diào)整了道具和服裝效果佳谦,從而給付費(fèi)增加了空間。這塊修改從玩家反饋來(lái)看滋戳,是非常成功的钻蔑。

為了增加長(zhǎng)線(xiàn)留存,增加了僵尸養(yǎng)成系統(tǒng)奸鸯、僵尸工廠系統(tǒng)咪笑,玩家可以養(yǎng)成自己的僵尸,升級(jí)發(fā)展僵尸工廠娄涩;對(duì)應(yīng)的增加了召喚僵尸功能窗怒,作為一個(gè)大的付費(fèi)點(diǎn)。但是從實(shí)際效果來(lái)看,這塊并不成功扬虚,后續(xù)的連載中會(huì)進(jìn)行針對(duì)性分析努隙。

本地化,主要是語(yǔ)言和各類(lèi)SDK的替換孔轴,比如廣告SDK剃法,微信代替Facebook等。(版號(hào)規(guī)定之后路鹰,所有圖片字都需要替換贷洲,這個(gè)簡(jiǎn)直沒(méi)法活了……)

項(xiàng)目開(kāi)發(fā),總計(jì)代碼近5萬(wàn)行晋柱;開(kāi)發(fā)人均生產(chǎn)效率為200行/日优构;發(fā)現(xiàn)有效bug總計(jì)392個(gè);每千行代碼發(fā)現(xiàn)bug數(shù)為8個(gè)雁竞。開(kāi)發(fā)效率還不錯(cuò)钦椭,但是bug偏多,這和團(tuán)隊(duì)重組后碑诉,沒(méi)有太多時(shí)間研讀代碼有直接關(guān)系彪腔。


項(xiàng)目過(guò)程中主要問(wèn)題和風(fēng)險(xiǎn)

01 項(xiàng)目初期預(yù)估

遇到問(wèn)題:

  • 項(xiàng)目初期,由于沒(méi)有專(zhuān)職的人全心全意在項(xiàng)目上进栽,對(duì)項(xiàng)目難度和工作量德挣,缺乏有效的評(píng)估,導(dǎo)致整個(gè)項(xiàng)目初始計(jì)劃的過(guò)于樂(lè)觀快毛;
  • 結(jié)果在后續(xù)項(xiàng)目實(shí)施中格嗅,進(jìn)度嚴(yán)重落后于計(jì)劃,非常被動(dòng)唠帝,不得不簡(jiǎn)化和刪減了很多內(nèi)容屯掖;
  • 實(shí)現(xiàn)新功能的技術(shù)方案,拖到項(xiàng)目上線(xiàn)前期襟衰,發(fā)現(xiàn)并不可行贴铜,只能匆忙調(diào)整技術(shù)方案,并延期上線(xiàn)瀑晒。

應(yīng)對(duì)措施:

  • 項(xiàng)目立項(xiàng)前或者實(shí)際執(zhí)行前阀湿,應(yīng)該有技術(shù)專(zhuān)家,對(duì)于項(xiàng)目難度和工作量做出合理估計(jì)瑰妄;
  • 對(duì)于難度較高的功能,盡早進(jìn)行方案的試驗(yàn)映砖,驗(yàn)證方案是否可行间坐;
  • 把大功能拆成低耦合的小功能點(diǎn),降低實(shí)現(xiàn)上的風(fēng)險(xiǎn);
  • 對(duì)于需要的資源竹宋,要竭力去爭(zhēng)取劳澄。

02 外包質(zhì)量監(jiān)控

遇到問(wèn)題:

  • 原主程離職后兼職做外包,導(dǎo)致交付的質(zhì)量和時(shí)間點(diǎn)都難以控制蜈七。

應(yīng)對(duì)措施:

  • 盡量使用全職員工秒拔,外包需要定期檢查交付物和質(zhì)量;
  • 一旦發(fā)生問(wèn)題飒硅,需要提前考慮備份方案砂缩;
  • 人員穩(wěn)定對(duì)于小項(xiàng)目至關(guān)重要。

03 產(chǎn)品缺乏試商用

遇到問(wèn)題:

  • 為了趕蘋(píng)果推薦位三娩,內(nèi)部測(cè)試后就直接上線(xiàn)庵芭,導(dǎo)致大量使用問(wèn)題。

應(yīng)對(duì)措施:

  • 加強(qiáng)內(nèi)部測(cè)試人力和周期雀监,盡量動(dòng)員所有公司員工進(jìn)行測(cè)試双吆;
  • 選擇一個(gè)小的區(qū)域,如港澳臺(tái)地區(qū)会前,進(jìn)行試商用(Soft Launch)好乐;
  • 也可以使用邀請(qǐng)碼方式或者TestFlight方式進(jìn)行封閉測(cè)試;
  • 確保在正式上線(xiàn)前瓦宜,有足夠的用戶(hù)進(jìn)行了較長(zhǎng)時(shí)間的使用蔚万,數(shù)據(jù)都已調(diào)優(yōu)。

04 第三方SDK更新

遇到問(wèn)題:

  • 友商廣告SDK更新后歉提,莫名出現(xiàn)無(wú)廣告卡死笛坦、廣告無(wú)法關(guān)閉的問(wèn)題,導(dǎo)致用戶(hù)的很多差評(píng)苔巨。

應(yīng)對(duì)措施:

  • 不要急著更新第三方的SDK版扩,需要對(duì)方有成功案例侄泽,并穩(wěn)定運(yùn)行一個(gè)月以上再進(jìn)行更新礁芦;
  • 國(guó)內(nèi)SDK質(zhì)量參差不齊,盡量選擇大廠或者海外廠商的SDK悼尾。

05 單機(jī)版的破解

遇到問(wèn)題:

  • 上線(xiàn)初期版本是單機(jī)版柿扣,破解和修改時(shí)間的問(wèn)題在iOS也較多,遠(yuǎn)遠(yuǎn)超過(guò)我們的想象闺魏;
  • 存檔沒(méi)有聯(lián)網(wǎng)保存未状,可能引起玩家存檔丟失,從而導(dǎo)致不少差評(píng)析桥。

應(yīng)對(duì)措施:

  • 弱聯(lián)網(wǎng)功能是單機(jī)游戲的必須要求司草,不管iOS還是安卓艰垂。本地加密,長(zhǎng)期來(lái)看埋虹,還是有被破解的風(fēng)險(xiǎn)猜憎;
  • 弱聯(lián)網(wǎng)功能應(yīng)當(dāng)盡早實(shí)現(xiàn),避免在產(chǎn)品運(yùn)營(yíng)中進(jìn)行聯(lián)網(wǎng)改造搔课。因?yàn)榫W(wǎng)絡(luò)胰柑、手機(jī)、操作系統(tǒng)各方面原因爬泥,非常容易出問(wèn)題柬讨;
  • 需要開(kāi)發(fā)一個(gè)相對(duì)通用的后臺(tái),甚至自己的SDK急灭,為后續(xù)游戲做好準(zhǔn)備姐浮。(功能需求不高的話(huà),可以考慮BaaS平臺(tái))

如何提高測(cè)試的質(zhì)量葬馋?

01 墨菲定律

  • 任何事都沒(méi)有表面看起來(lái)那么簡(jiǎn)單卖鲤;
  • 所有的事都會(huì)比你預(yù)計(jì)的時(shí)間長(zhǎng);
  • 會(huì)出錯(cuò)的事總會(huì)出錯(cuò)畴嘶;
  • 如果你擔(dān)心某種情況發(fā)生蛋逾,那么它就更有可能發(fā)生。

那么對(duì)于一個(gè)軟件:任何可能出bug的地方都會(huì)出bug窗悯!
這不是在開(kāi)玩笑区匣,以我十多年軟件行業(yè)的經(jīng)驗(yàn),這絕對(duì)是一個(gè)真理蒋院。
我們來(lái)看一下《僵尸榨汁機(jī)》初期的一些問(wèn)題:

僵尸項(xiàng)目初期的問(wèn)題

02 測(cè)試質(zhì)量的提高

質(zhì)量意識(shí):

  • 質(zhì)量是所有人的責(zé)任亏钩,不只是測(cè)試或者開(kāi)發(fā)的責(zé)任,要加強(qiáng)對(duì)工作完成(Definition of Done)的共同理解欺旧;
  • 任何代碼修改姑丑,哪怕是修改已有bug,哪怕只改了1行代碼辞友,都可能引起新bug栅哀;
  • 任何交付前,都必須經(jīng)過(guò)完整測(cè)試称龙,哪怕時(shí)間再緊留拾;

測(cè)試執(zhí)行:

  • 測(cè)試工作需要盡早開(kāi)始準(zhǔn)備,甚至可以和開(kāi)發(fā)并行鲫尊;
  • 考慮不同的條件組合痴柔,盡量提高測(cè)試覆蓋度;
  • 重要的測(cè)試用例疫向,可以進(jìn)行多次測(cè)試竞帽,便于發(fā)現(xiàn)偶發(fā)性問(wèn)題扛施;
  • 有效利用網(wǎng)上的工具,提高測(cè)試覆蓋度屹篓,增強(qiáng)軟件兼容性,例如:云測(cè)Testin匙奴,騰訊WeTest等堆巧;
  • 定義好回歸測(cè)試(Regression Test),及早發(fā)現(xiàn)重大問(wèn)題泼菌;
  • 開(kāi)發(fā)有助于進(jìn)行測(cè)試的功能或者小工具谍肤,提高測(cè)試效率。

測(cè)試管理:

  • 將測(cè)試工作分為不同級(jí)別哗伯,例如單元測(cè)試荒揣、集成測(cè)試等,合理分配好測(cè)試工作焊刹;
  • 使用工具進(jìn)行bug跟蹤和管理系任,責(zé)任明確到人,任何修改都必須進(jìn)入系統(tǒng)進(jìn)行跟蹤虐块,例如:禪道俩滥,JIRA等;
  • 聯(lián)合開(kāi)發(fā)對(duì)于測(cè)試中的重大問(wèn)題進(jìn)行分析贺奠,使用“5 Why” 方法霜旧,尋找根本原因,幫助提高開(kāi)發(fā)的質(zhì)量儡率;
  • 對(duì)于上線(xiàn)后的重大問(wèn)題進(jìn)行分析挂据,使用“5 Why” 方法,尋找根本原因儿普,提高測(cè)試質(zhì)量崎逃,持續(xù)改進(jìn)。

人員配置:

  • 很多中小團(tuán)隊(duì)箕肃,都會(huì)忽視對(duì)測(cè)試人員的配置婚脱,覺(jué)得隨便找人玩一玩就可以了,結(jié)果導(dǎo)致很多問(wèn)題都無(wú)法有效測(cè)試到勺像;
  • 測(cè)試人員必須專(zhuān)職障贸,足夠耐心和細(xì)致,非常熟悉游戲的各個(gè)細(xì)節(jié)吟宦;
  • 自動(dòng)化測(cè)試環(huán)境目前比較缺乏篮洁,如果需要實(shí)現(xiàn)敏捷開(kāi)發(fā),提高交付效率殃姓,增加測(cè)試人員勢(shì)在必行袁波;
  • 看一下《夢(mèng)幻西游手游》團(tuán)隊(duì)構(gòu)成瓦阐,23%的人是QA!
夢(mèng)幻西游團(tuán)隊(duì)構(gòu)成

03 測(cè)試驅(qū)動(dòng)(Test Driven)

  • 盡早得到市場(chǎng)和玩家的反饋篷牌,從而指導(dǎo)游戲的設(shè)計(jì)和開(kāi)發(fā)睡蟋;
  • 持續(xù)跟蹤游戲數(shù)據(jù)指標(biāo),結(jié)合版本內(nèi)容進(jìn)行數(shù)據(jù)分析枷颊,總結(jié)規(guī)律戳杀;
  • 運(yùn)用A/B測(cè)試和灰度發(fā)布,進(jìn)行小規(guī)模的用戶(hù)測(cè)試和對(duì)比夭苗;
  • 策劃和設(shè)計(jì)信卡,要考慮功能是否好實(shí)現(xiàn)、是否好測(cè)試题造,好的質(zhì)量是設(shè)計(jì)出來(lái)的傍菇;
  • 建立持續(xù)集成和自動(dòng)化測(cè)試環(huán)境,進(jìn)行每日構(gòu)建(Daily build)界赔。

寫(xiě)在最后

質(zhì)量是產(chǎn)品的生命丢习,需要通過(guò)開(kāi)發(fā)和測(cè)試來(lái)保證。產(chǎn)品的質(zhì)量是用戶(hù)體驗(yàn)的必備要求仔蝌,試問(wèn)經(jīng)常莫名閃退的游戲泛领,你還會(huì)玩嗎?

另外一點(diǎn)敛惊,工作中最重要的是考慮如何提高效率渊鞋,而不是一味提高勞動(dòng)強(qiáng)度(加班)。在工作過(guò)程中瞧挤,要不斷去學(xué)習(xí)和總結(jié)锡宋,提高自身的能力,并且掌握合理的方法特恬,才能事半功倍执俩,做出更高質(zhì)量的產(chǎn)品!


參考資料

[1] 這樣的工作流程讓網(wǎng)易在14個(gè)月修復(fù)2000個(gè)bug
[2] 在游戲產(chǎn)品中使用敏捷方法

2015年底的一張照片癌刽,每天都是這么過(guò)來(lái)的...
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末役首,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子显拜,更是在濱河造成了極大的恐慌衡奥,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,366評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件远荠,死亡現(xiàn)場(chǎng)離奇詭異矮固,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)譬淳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)档址,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)盹兢,“玉大人,你說(shuō)我怎么就攤上這事守伸∫锩耄” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,689評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵尼摹,是天一觀的道長(zhǎng)替裆。 經(jīng)常有香客問(wèn)我,道長(zhǎng)窘问,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,925評(píng)論 1 295
  • 正文 為了忘掉前任宜咒,我火速辦了婚禮惠赫,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘故黑。我一直安慰自己儿咱,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,942評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布场晶。 她就那樣靜靜地躺著混埠,像睡著了一般。 火紅的嫁衣襯著肌膚如雪诗轻。 梳的紋絲不亂的頭發(fā)上钳宪,一...
    開(kāi)封第一講書(shū)人閱讀 51,727評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音扳炬,去河邊找鬼吏颖。 笑死,一個(gè)胖子當(dāng)著我的面吹牛恨樟,可吹牛的內(nèi)容都是我干的半醉。 我是一名探鬼主播,決...
    沈念sama閱讀 40,447評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼劝术,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼缩多!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起养晋,我...
    開(kāi)封第一講書(shū)人閱讀 39,349評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤衬吆,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后匙握,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體咆槽,經(jīng)...
    沈念sama閱讀 45,820評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,990評(píng)論 3 337
  • 正文 我和宋清朗相戀三年圈纺,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了秦忿。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片麦射。...
    茶點(diǎn)故事閱讀 40,127評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖灯谣,靈堂內(nèi)的尸體忽然破棺而出潜秋,到底是詐尸還是另有隱情,我是刑警寧澤胎许,帶...
    沈念sama閱讀 35,812評(píng)論 5 346
  • 正文 年R本政府宣布峻呛,位于F島的核電站,受9級(jí)特大地震影響辜窑,放射性物質(zhì)發(fā)生泄漏钩述。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,471評(píng)論 3 331
  • 文/蒙蒙 一穆碎、第九天 我趴在偏房一處隱蔽的房頂上張望牙勘。 院中可真熱鬧,春花似錦所禀、人聲如沸方面。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,017評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)恭金。三九已至,卻和暖如春褂策,著一層夾襖步出監(jiān)牢的瞬間横腿,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,142評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工辙培, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蔑水,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,388評(píng)論 3 373
  • 正文 我出身青樓扬蕊,卻偏偏與公主長(zhǎng)得像搀别,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子尾抑,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,066評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,182評(píng)論 25 707
  • 文章來(lái)自:http://blog.csdn.net/mj813/article/details/52451355 ...
    好大一只鵬閱讀 9,193評(píng)論 2 126
  • 先說(shuō)項(xiàng)目開(kāi)發(fā)過(guò)程中團(tuán)隊(duì)人員的分工協(xié)作歇父。 一 人員安排 畢業(yè)至今的大部分項(xiàng)目都是獨(dú)立完成,雖然也有和其他同事協(xié)作的時(shí)...
    SnowflakeCloud閱讀 10,770評(píng)論 3 59
  • 今天我在網(wǎng)易公開(kāi)課上聽(tīng)了一本書(shū)再愈,是吳曉波老師寫(xiě)的《騰訊傳》榜苫。這本書(shū)主要講了騰訊是如何扛過(guò)一次次沖擊,發(fā)展到如今這個(gè)...
    終身學(xué)習(xí)的老道閱讀 361評(píng)論 0 1
  • 兩岸青山夾江過(guò)翎冲, 一枝柳笛滿(mǎn)江春垂睬, 柳笛一聲漫天春。 晨,天空上滿(mǎn)是鉛青色的云驹饺,間或鑲嵌著白色钳枕,金色,緋紅的帶子赏壹,...
    三河散人閱讀 253評(píng)論 0 1