《僵尸榨汁機(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)題:
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!
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)品中使用敏捷方法