當一個版本要結束的時候,PM總是要做最後的驗收,才能提交到客戶手上,但是這個時候往往會發生一些靈異現象,為什麼這麼說呢?因為在軟體開發業都會知道一種狀況,就是明明在測試環境驗證時,都沒問題,但是一旦佈署到正式環境時,各種BUG、頁面顯示不正常、操作不如預期,通通都會發生。這時候最常收到的回饋「可能是你的問題喔,我這邊都沒問題」,一次、兩次或許可以忍住,但是時間一久肯定會氣到不行。
這時候,身為一個專業的PM,我們該怎麼應對這種狀況?
以遊戲產業來說,遊戲運行的環境不外乎下列三種
1. Windows / MAC 的安裝版電腦應用程式:就是需要進行install 或 Setup的軟體
2. Windows / MAC 的網頁版本:就是透過瀏覽器(Chrome, FireFox, Edge…等)開啟的網頁
3. iOS / Android 的APP版本:裝在手機上面的應用程式
- Windows / MAC 的本機端應用程式
如果開發的軟體是安裝在電腦上的應用程式,這時候需要先確認自己的環境
- 作業系統的版本:以Windows為例,Windows的作業系統就分為Windows 98, 2000, me, XP, 7 ,8, 8.1, 10, 11…等,而且還會持續增加,開發這類型產品時,需要確認是否有支援「向下相容」。
- 硬體的限制:以開發遊戲為例,很多遊戲為了追求畫面的品質,在視覺呈現上需要較強的CPU或顯示卡的運算效能,硬體效能如果無法配合產品的需求,很容易會出現不可預期的結果。
- 版本更新:不管是遊戲或是一般的商用軟體,不可能永遠不更新,以往的單機版遊戲可能是不需要更新的,但是現在的市場,基本上每周更新已經是一個基本配置,那每次的更新其實都是一種風險,只要更新版本不完全,有檔案遺失或是資料損毀,遊戲無法正常運作,也是非常合理的一件事。版本更新的驗證機制、更新流程,就變得相當的重要。
- Web 網頁版本
網頁版的產品,顧名思義就是在「瀏覽器」上運行的網頁,那這類型的產品,要確認那些項目?
- 用的是哪個品牌的瀏覽器:市面上流通的瀏覽器非常的多,目前主流是Chrome, Firefox, 最近開始流行的Edge,和曾經是霸主的IE (Internet Explorer),在不同的瀏覽器顯示同一個網頁時,有可能會發生跑版,也就是畫面會產生偏移的狀況,可能某圖片在Chrome是正常的,但是在IE顯示就跑到別的地方去了。
- 瀏覽器的版本:網頁類型的產品,必須依附在「瀏覽器」上,以最讓工程師頭痛的「瀏覽器 IE (Internet Explorer)」為例,光是IE的版本就已經更新至11.0版本了,由於開發的時候無法預設用戶使用哪個版本,在開發初期的時候,就必須設定至少支援至哪個版本,也就是「向下相容」至哪個版本,如果要支援每種版本,那會是一個不太可行的決定。
- 在手機上的瀏覽器:現在手機也是一個可以看網頁的媒介,只是需要透過手機上的瀏覽器APP,那手機上的瀏覽器APP除了一樣要確認瀏覽器的APP和版本外,還需要多注意一個狀況「橫版與直版」,因為在手機上檢視網頁時,手機可以橫置或直式的方式開啟網頁,為了好的用戶體驗,多半會針對手機的網頁版本,去製作直版或橫版的顯示,因此在做直版或橫版的切換時,也需要注意會不會有跑版的狀況。
- 支援Web View的APP:還有一種很特殊的狀況,就是在LINE、Message或一些APP,可以在APP中透過Web View技術,直接顯示網頁,而不需要另外開啟瀏覽器的APP,這部分也是需要多加注意。
由於目前可以開啟網頁的媒介太多,因此近幾年有一個技術,叫RWD (響應式網頁設計)框架,RWD可以自動適當顯示於各種不同裝置,包含桌機、手機、平板…根據不一樣的螢幕大小比例,自動調整成相對應的顯示方式,因此在設計網頁時,就需要配合RWD的設計概念去規劃。
但是,以遊戲開發來說,通常都是透過遊戲開發工具,如Unity、Cocos系列進行開發,雖然沒有RWD框架可以使用,但是,觀念是可以通用的,開發遊戲時,在畫面的設計及介面的配置上,也是需要考量不同裝置的尺寸去設計。
- iOS / Android 的APP版本
這部分要先介紹一下 iOS / Android 的APP開發方式有哪些,如下:
- 原生APP (Native APP):利用原生APP開發語言進行開發,如Android的Eclipse、Android studio,iOS的Swift、Objective-C 和Xcode,原生APP的效能與執行體驗是最好的,但是在開發時就會是兩個完全不同的產品線,畢竟iOS和Android就是兩種完全不同的開發環境,基本上是無法整合及通用的,同一個產品需要兩倍的開發時程及驗證時間。
- 跨平台APP開發框架:透過可以跨iOS及Android的框架開發,如Flutter、React Native及Xamarin Form,這可以讓工程師維護一套程式碼即可,因此也越來越多的產品是透過這種跨平台的框架進行開發。
知道APP的開發方式後,就可以進一步的來了解,在手機上運行APP時,環境上可能有問題的狀況
- iOS / Android 手機:目前手機有兩大體系 iOS 及 Android,由於開發APP的方式如上面說的,可能是透過原生APP或跨平台框架開發,所以當你拿到產品時,在iOS或Android手機上的驗證就會大大不同,很有可能在Android是可以運行的,在iOS上就會失敗。
- 手機型號:目前市面上有太多種手機的規格,即便都是iOS,也會有iPhone6, 7, 8, 9, 10, 11…等,然後手機尺寸還會大小不一,甚至有無瀏海,這些都會影響到畫面的呈現,是否會有跑版的可能。
- 硬體效能:還有一個決定APP運作起來是否正常的關鍵,就是手機的記憶體,大部分APP開啟後會閃退的原因,不外乎APP的執行效能太差或是APP本身有問題,導致閃退,再來就是手機的記憶體的使用率已經高達95%以上,這樣隨便開都很有可能閃退,那手機資源被用到9X%,多半都是使用者安裝太多APP,沒有定期清理APP的暫存,甚至很多人的手機都沒在關機的,這樣也很容易造成閃退,還有一種狀況也會有影響,就是電池目前的狀態,電池本身也是一種會持續衰弱的部件,當電池已經處於不穩定的狀態時,也很有可能會造成閃退或是其他不可預期的狀況。
因此,身為一個PM,當你手上拿到新版本的APP時,如果發生閃退或是異常狀況時,請先確認手機的型號、作業系統的版本,還有手機的效能是否是處於隨時會跑不動的狀況。另外,建議在驗收這類產品時,手邊請務必有iOS和Android的低階及高階手機各一,如果還有錢的話,各大手機廠商的手機也至少準備一支,會比較保險,畢竟 hTC, Sony, 三星, 華為, 小米, Oppo…,誰知道用戶使用的手機是哪一種,但是又無法針對市面上的手機進行完整測試,這時候如果有盡量完整的手機品牌,可以盡可能的抓出BUG,避免客戶使用時,再換來一堆客訴。
以上是身為一個PM,在跟工程師反饋問題時,需要先做好的自我驗證。
另外就是,如果問題真的是產品本身的問題時,該怎麼應對?
- ErrorCode:在產品開發初期的時候,需要同步定義ErrorCode,方便在發生錯誤時,可以提供給工程師進行追查。
- 白畫面:如果開發的產品為網頁時,顯示為白畫面,很多時候都是前端跟後端取資料時,沒有取得成功,導致畫面顯示失敗。
- 善用F12:這邊指的是Chrome的F12,如下圖,大多數的網頁開發非常仰賴Chrome的F12的功能,這邊可以看到下載的內容、執行效能、錯誤資訊,如果開發時有好好的定義ErrorCode或是一些協助驗證的Log時,可以幫助工程師快速抓到問題發生的可能,當然也可以初步判斷是沒取得資料,或是發生什麼問題。
- API確認:API全名為 Application Programming Interface 的縮寫,中文為「應用程式介面」,不過就算說中文,非軟體開發人員應該還是不知道什麼是「API」,白話的概念,就是你今天跑去便利商店跟店員說,你要一包七星的香菸,店員跟你說一包100元,你給店員500元,店員找你400元,這樣的交互過程就是「API」在做的事情,扮演「溝通」的角色。因此,在軟體開發上,很多時候都是透過「API」在進行溝通及資料交換,當畫面沒有正確顯示的時候,就需要進一步確認「是前端沒有把資料送給後端」或「後端沒有把正確資料回傳給前端」。
- 清除緩存:有些時候因為開發時版本會陸續更新,瀏覽器會暫存一些資料,那這些資料如果沒有重新更新,那在重啟畫面時,也會發生很多靈異現象。所以常常會聽工程師說「你要去清cache和cookie啊」,這時候請多多善用「無痕」來進行網頁的驗證。
*如何清除緩存? 使用Chrome
- 在電腦上開啟Chrome。
- 按一下右上方的「更多」圖示 。
- 依序按一下[更多工具] [清除瀏覽資料]。
- 在畫面頂端選擇所需時間範圍。 如要刪除所有瀏覽資料,請選取[不限時間]。
- 勾選[Cookie 和其他網站資料] 與[快取圖片和檔案] 旁的方塊。
- 按一下[清除資料]。
希望透過這次的分享,可以稍稍減緩PM和工程師之間的戰爭。
大家好,我是廣三HeroMi,從事多年的遊戲及軟體專案開發,親身經歷大大小小專案開發的戰場,希望透過經驗分享,讓我們一起學習成長。
若你在PM這條路上感到迷茫,
或想更清楚了解自己的能力與定位,
歡迎試試這份《PM產品/專案雙軌分析報告》。
它不為了定義你,而是幫助你更看清自己。
歡迎關注:
官網:https://unityprosper.com/
部落格:https://hero-mi.com/
FB:https://www.facebook.com/DigiPRDCoachHeroMi
LINE OA:@hero-mi

《歡迎加我LINE,一起破局未來》
留言