【附自動(dòng)化產(chǎn)品方法論】足球戰(zhàn)報(bào)自動(dòng)化復(fù)盤(pán)

1 評(píng)論 3412 瀏覽 11 收藏 14 分鐘

編輯導(dǎo)語(yǔ):產(chǎn)品自動(dòng)化在一定程度上可以降低人力與時(shí)間成本,不過(guò),產(chǎn)品自動(dòng)化的實(shí)現(xiàn)并非可以無(wú)條件實(shí)現(xiàn),產(chǎn)品自動(dòng)化的最終目的仍舊是為了更好地服務(wù)用戶(hù)。如何實(shí)現(xiàn)有效的產(chǎn)品自動(dòng)化?本文作者復(fù)盤(pán)了足球戰(zhàn)報(bào)自動(dòng)化的案例,總結(jié)了一套自動(dòng)化產(chǎn)品方法論,一起來(lái)看一下。

寫(xiě)在前頭:今年Q1 耗時(shí)一個(gè)多月把足球戰(zhàn)報(bào)自動(dòng)化做出來(lái)并上線(xiàn),現(xiàn)在回過(guò)頭看看這段坎坷的項(xiàng)目,發(fā)現(xiàn)也收獲了不少東西,借此機(jī)會(huì)寫(xiě)篇自動(dòng)化產(chǎn)品的文章與大家一起交流,也希望能給即將要接觸的同學(xué)帶來(lái)更多的啟發(fā)與思考。

一、需求背景

不知道大家清不清楚很多的新聞是由兼職或者是專(zhuān)門(mén)的編輯撰寫(xiě)的,每場(chǎng)重要的比賽結(jié)束后都會(huì)發(fā)出一片篇對(duì)應(yīng)的比賽戰(zhàn)報(bào),如果你是球迷的話(huà),你一定看過(guò)這種類(lèi)型的新聞。

別看這一篇戰(zhàn)報(bào)本身報(bào)價(jià)不高,但是每天那么多場(chǎng)比賽加起來(lái)之后也是一比不小的開(kāi)銷(xiāo),再加上戰(zhàn)報(bào)對(duì)“快”和“準(zhǔn)”的要求,人工撰寫(xiě)難免需要時(shí)間和精力還有可能各種出錯(cuò),自動(dòng)化戰(zhàn)報(bào)需求就應(yīng)運(yùn)而生了。

二、需求前提

把一篇新聞做成自動(dòng)化生產(chǎn)發(fā)布可不是無(wú)條件的,它也需要一些前提,例如新聞結(jié)構(gòu)是相對(duì)統(tǒng)一的、內(nèi)容是相對(duì)固定的,描述對(duì)象是窮盡的,這樣才可以抽離出這種類(lèi)型的共性,當(dāng)觸發(fā)對(duì)應(yīng)條件的時(shí)候服務(wù)端填充數(shù)據(jù)并發(fā)布出去。

三、自動(dòng)化前提

這個(gè)部分主要是自己做自動(dòng)化產(chǎn)品所總結(jié)方法論的闡述,如果需要結(jié)合具體的案例可以往下翻翻足球自動(dòng)化戰(zhàn)報(bào)是如何具體執(zhí)行的。

一個(gè)非自動(dòng)化的產(chǎn)品要做成自動(dòng)化是需要經(jīng)歷不少質(zhì)疑(思考)的。

首當(dāng)其沖要考慮的問(wèn)題是:這個(gè)產(chǎn)品是否有自動(dòng)化的價(jià)值?

例如說(shuō)一個(gè)只針對(duì)于奧運(yùn)會(huì)的H5活動(dòng)或發(fā)布很頻繁但是數(shù)據(jù)不好的GIF類(lèi)型新聞,對(duì)我來(lái)說(shuō)它們都沒(méi)有自動(dòng)化的價(jià)值,“頻率高”且“數(shù)據(jù)好”這是值得做自動(dòng)化至少要同時(shí)具備的兩個(gè)條件。在滿(mǎn)足這兩個(gè)前提條件之后,還需要去追求是否能帶來(lái)更多的賦能,例如時(shí)效性、準(zhǔn)確性,ROI越高才能向上拿到更多的開(kāi)發(fā)資源。

第二個(gè)問(wèn)題是這個(gè)產(chǎn)品是否能被做成組件化?

就以前文為例,在新聞這個(gè)類(lèi)型中花邊娛樂(lè)新聞的各項(xiàng)數(shù)據(jù)都很好,發(fā)布頻率也高,用戶(hù)也喜歡看,但是它就沒(méi)有被做成組件化的條件,因?yàn)樗鄻恿耍黧w與其行為是無(wú)法被窮盡的(至少在目前是這樣的),產(chǎn)品能做的也只能是在花邊新聞的生成效率、分發(fā)效率、閱讀體驗(yàn)上去做提升。

當(dāng)問(wèn)題一和問(wèn)題二的回答都為“是”的話(huà),我們才正式進(jìn)入了產(chǎn)品自動(dòng)化的流程。

四、自動(dòng)化核心流程

1. 自動(dòng)化產(chǎn)品生產(chǎn)環(huán)節(jié)

我把「實(shí)現(xiàn)產(chǎn)品自動(dòng)化」比喻為一家車(chē)間老板用「流水線(xiàn)的方式進(jìn)行生產(chǎn)」代替「一個(gè)人從頭到尾生產(chǎn)」,因?yàn)槲业淖詣?dòng)化步驟是把一個(gè)大的產(chǎn)品拆分若干部分,針對(duì)每個(gè)單獨(dú)的部分去做自動(dòng)化,最后再進(jìn)行拼裝。

1)功能拆解

在我們著手自動(dòng)化的時(shí)候,要做的第一件事情就是把一個(gè)完整的產(chǎn)品拆分成相對(duì)獨(dú)立的部分,拆分的標(biāo)準(zhǔn)可以是:提供服務(wù)的維度、技術(shù)實(shí)現(xiàn)的維度、大眾認(rèn)知的維度等。

在這里維度不重要,只需拆解出來(lái)的部分是相對(duì)獨(dú)立的即可,這里也要用到的是共性的抽離。

2)定義理想態(tài)

定義理想態(tài)這個(gè)概念是出自策略產(chǎn)品,但同樣也是自動(dòng)化中不可或缺的重要步驟。簡(jiǎn)單來(lái)說(shuō)是我們要去描繪拆分好的部分它們各自的最優(yōu)形態(tài)是如何,這個(gè)階段對(duì)理想態(tài)的描繪是不需要拘泥于自動(dòng)化的實(shí)現(xiàn)問(wèn)題。

3)驗(yàn)證理想態(tài)

在定義了理想態(tài)后,我們要做的是結(jié)合現(xiàn)實(shí)的開(kāi)發(fā)情況,來(lái)驗(yàn)證這個(gè)理想態(tài)是否可以做成自動(dòng)化,如果可以的話(huà),那么就達(dá)到了最佳狀態(tài),排期并進(jìn)入開(kāi)發(fā);如果驗(yàn)證為不可被自動(dòng)化,則需要回到「定義理想態(tài)」這一步重新不斷驗(yàn)證,直到確定一個(gè)可以被開(kāi)發(fā)的方案。

4)功能組合

各個(gè)部分的自動(dòng)化進(jìn)入開(kāi)發(fā)后,需要做的就是把其“組裝”起來(lái),合并為一個(gè)整體的自動(dòng)化產(chǎn)品,同時(shí)確定好自動(dòng)化產(chǎn)品的觸發(fā)策略,整個(gè)的生產(chǎn)階段就到此結(jié)束了。

2. 自動(dòng)化產(chǎn)品分發(fā)管理環(huán)節(jié)

自動(dòng)化產(chǎn)品可以被生產(chǎn)出來(lái)只完成了整個(gè)環(huán)節(jié)的一半,自動(dòng)化產(chǎn)品如何被用戶(hù)消費(fèi)到,這個(gè)過(guò)程也是不可小覷的重要環(huán)節(jié)。

1)先發(fā)后審

「先發(fā)后審」很簡(jiǎn)單從字面上理解就是自動(dòng)化產(chǎn)品生成后直接發(fā)布,運(yùn)營(yíng)再進(jìn)行審核。

從形式上看,只有做到先發(fā)后審才能算得上是真正自動(dòng)化。這一般用于自動(dòng)化產(chǎn)品應(yīng)用成熟階段,整個(gè)產(chǎn)品的穩(wěn)定性有很大的保證,不再需要人工介入來(lái)添加一道保障;另外是在一定的錯(cuò)誤率以?xún)?nèi),產(chǎn)品“時(shí)效性”要求要高于“準(zhǔn)確性”時(shí)會(huì)用到,例如一些比賽中關(guān)鍵事件新聞。

2)先審后發(fā)

「先審后發(fā)」即自動(dòng)化產(chǎn)品已經(jīng)生產(chǎn)后,還需要經(jīng)過(guò)一道人工審核,符合要求的直接發(fā)布,不符合要求的人工進(jìn)行干預(yù)編輯再發(fā)布。

雖然這種形式?jīng)]有做到完全的自動(dòng)化,但卻適用絕大多數(shù)的自動(dòng)化產(chǎn)品。要時(shí)刻記住的是:做自動(dòng)化產(chǎn)品千萬(wàn)不要為了做到極致的自動(dòng)化而“走火入魔”,因?yàn)槲覀?strong>做的一切最終都指向用戶(hù)。

3. 自動(dòng)化產(chǎn)品流程圖

以上的兩個(gè)部分整合起來(lái)就是整個(gè)自動(dòng)化產(chǎn)品的方法論,下文會(huì)結(jié)合足球戰(zhàn)報(bào)自動(dòng)化展示一下應(yīng)用到實(shí)際例子中會(huì)如何處理。

五、足球戰(zhàn)報(bào)自動(dòng)化實(shí)操

足球戰(zhàn)報(bào)主要包括戰(zhàn)報(bào)封面、戰(zhàn)報(bào)標(biāo)題、戰(zhàn)報(bào)正文、GIF圖、球隊(duì)數(shù)據(jù)、球員數(shù)據(jù)、球隊(duì)陣容這七個(gè)板塊,下文會(huì)挑典型的戰(zhàn)報(bào)封面、戰(zhàn)報(bào)標(biāo)題和正文的自動(dòng)化舉例如何來(lái)實(shí)現(xiàn)。

1. 戰(zhàn)報(bào)封面自動(dòng)化

在很快地確認(rèn)完自動(dòng)化價(jià)值和理想態(tài)后,進(jìn)度卡在了驗(yàn)證理想態(tài)的階段。

我們花費(fèi)了不少的時(shí)間去研究如何自動(dòng)渲染出下圖的最佳效果。最后是選擇了aliyun的對(duì)象存儲(chǔ)oss,因?yàn)樽屑?xì)拆分這張封面,它可以由三個(gè)圖層疊加而成,先是根據(jù)每個(gè)球隊(duì)id給到映射色值的純底色圖片,第二個(gè)圖層是取game_id對(duì)應(yīng)兩只球隊(duì)的隊(duì)徽,第三個(gè)圖層是VS字樣和game_id大比分?jǐn)?shù)據(jù)。純色圖片當(dāng)作底圖,隊(duì)徽作為水印打上去,合成一張圖,再在這張圖的基礎(chǔ)上打上比分的水印,最后生成封面圖。

  • 將主圖example.jpg縮略為寬高n:resize,w_n,h_n
  • 將主圖圖片質(zhì)量設(shè)為n%:quality,q_n
  • 添加水印圖片teambadge.png:watermark,image_cGFuZGEucG5n(cGFuZGEucG5n是teambadge.png進(jìn)行Base64編碼后的值)
  • 字符串轉(zhuǎn)譯base64工具:https://simplycalc.com/base64url-encode.php?spm=a2c4g.11186623.2.18.59c767307kofBl
  • 具體操作方法見(jiàn):https://help.aliyun.com/document_detail/44957.html

2. 足球戰(zhàn)報(bào)標(biāo)題、段首自動(dòng)化

戰(zhàn)報(bào)標(biāo)題和段首的自動(dòng)化無(wú)非是需要窮盡各種比賽類(lèi)型并提供對(duì)應(yīng)的“模板”,在某個(gè)時(shí)間節(jié)點(diǎn),例如中場(chǎng)休息或比賽結(jié)束的時(shí)候選取符合條件的“模板”生成。

1)戰(zhàn)報(bào)標(biāo)題

  • 若比賽正常決出勝負(fù),比賽標(biāo)題格式為:(主隊(duì))比分 – 比分(客隊(duì)),球員A、球員B進(jìn)球。
  • 若比賽最終通過(guò)加時(shí)賽決出勝負(fù),比賽標(biāo)題格式為:(主隊(duì))比分 – 比分加時(shí)戰(zhàn)勝/不敵(客隊(duì)),XXX(加時(shí)賽破門(mén)球員)建功。
  • 若比賽最終通過(guò)點(diǎn)球大戰(zhàn)決出勝負(fù),比賽標(biāo)題格式為:(主隊(duì))比分 – 比分(客隊(duì)),點(diǎn)球大戰(zhàn)(主隊(duì))(點(diǎn)球大戰(zhàn)比分)戰(zhàn)勝/不敵(客隊(duì))。

2)戰(zhàn)報(bào)段首

當(dāng)比賽90分鐘有勝負(fù)時(shí):北京時(shí)間{比賽時(shí)間},{賽事名稱(chēng)}在{比賽地點(diǎn)}打響,憑借(獲勝方進(jìn)球者1)(進(jìn)球者2)(…)的進(jìn)球,{獲勝方A隊(duì)}戰(zhàn)勝了{(lán)B隊(duì)}(列出獲勝方最多三名進(jìn)球球員,不包含點(diǎn)球大戰(zhàn)的進(jìn)球)。

當(dāng)比賽平局時(shí):北京時(shí)間{比賽時(shí)間},{賽事名稱(chēng)}在{比賽地點(diǎn)}打響,經(jīng)過(guò)激烈的角逐,兩隊(duì)未能分出勝負(fù),最終{A隊(duì)}與{B隊(duì)}握手言和。

當(dāng)比賽加時(shí)有勝負(fù)是:北京時(shí)間{比賽時(shí)間},{賽事名稱(chēng)}在{比賽地點(diǎn)}打響,雙方最終進(jìn)入加時(shí)決戰(zhàn),憑借(獲勝方在加時(shí)賽進(jìn)球者1)(進(jìn)球者2)(…)在加時(shí)賽的關(guān)鍵進(jìn)球,{獲勝方A隊(duì)}加時(shí)戰(zhàn)勝了{(lán)B隊(duì)}(列出獲勝方最多三名進(jìn)球球員,不包含點(diǎn)球大戰(zhàn)的進(jìn)球)。

當(dāng)比賽通過(guò)點(diǎn)球大戰(zhàn)分勝負(fù):北京時(shí)間{比賽時(shí)間},{賽事名稱(chēng)}在{比賽地點(diǎn)}打響,經(jīng)過(guò)120分激戰(zhàn)雙方不分勝負(fù),最終,{獲勝方A隊(duì)}通過(guò)點(diǎn)球大戰(zhàn){點(diǎn)球大戰(zhàn)比分,勝者在前}戰(zhàn)勝{B隊(duì)}。

3. 足球戰(zhàn)報(bào)分發(fā)與管理

在管理上因?yàn)閼?zhàn)報(bào)上線(xiàn)時(shí)間不久會(huì)擔(dān)心其不穩(wěn)定性,所以我們選擇了半自動(dòng)化的「先審后發(fā)」模式:運(yùn)營(yíng)需要在比賽管理后臺(tái)中找到對(duì)應(yīng)的比賽,點(diǎn)擊「半場(chǎng)戰(zhàn)報(bào)」或「全場(chǎng)戰(zhàn)報(bào)」彈出彈窗,確認(rèn)戰(zhàn)報(bào)的是否正確無(wú)誤地生成了,確認(rèn)完畢后選擇發(fā)布頻道和發(fā)布專(zhuān)區(qū)即可分發(fā)出去。

在分發(fā)上我們主要有四個(gè)分發(fā)渠道,第一個(gè)是在發(fā)布時(shí)運(yùn)營(yíng)可以選擇發(fā)布到哪個(gè)頻道的新聞列表中,例如國(guó)際足球、英超、西甲等;第二個(gè)是可以發(fā)布到指定專(zhuān)區(qū),例如國(guó)際足球?qū)^(qū)、足球話(huà)題區(qū)等;第三個(gè)是會(huì)通過(guò)game_id自動(dòng)關(guān)聯(lián)至賽后直播間;最后管理后臺(tái)中也提供了push的分發(fā)功能。

足球自動(dòng)化戰(zhàn)報(bào)全量上線(xiàn)后,能力已經(jīng)可以覆蓋所有大小型的賽事,同時(shí)也新增了半場(chǎng)戰(zhàn)報(bào)的類(lèi)型,數(shù)據(jù)也是杠杠的。雖然在使用的過(guò)程還時(shí)不時(shí)會(huì)有一些小bug,但整個(gè)流程已經(jīng)跑通。

至此整個(gè)自動(dòng)化戰(zhàn)報(bào)的需求就告一段落了,等后續(xù)自己對(duì)自動(dòng)化產(chǎn)品有新的理解再來(lái)和大家一起交流吧~

 

本文由 @OTTIS 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。

題圖來(lái)自Unsplash,基于 CC0 協(xié)議

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 這個(gè)APP現(xiàn)在有了嗎?

    回復(fù)