一個有趣的產品經理面試邏輯題:app的文件下載功能

46 評論 20063 瀏覽 124 收藏 11 分鐘

你可以不懂產品,但你不能不懂邏輯,看起來一個簡單的文件下載,才發現原來也并沒有那么簡單。

大家都知道產品經理面試是需要考邏輯題的,這可以快速看出一個人的思維能力和邏輯能力。前段時間看到一個有趣的產品面試題,都是開放類型,沒有標準答案,這里想分享給大家探討下。

一、背景

現在很多APP都有下載功能,尤其是視頻類app,經常會需要將視頻緩存到本地,這就需要用到下載功能。但一般大家不會一個文件一個文件下載,而是經常批量下載一堆文件,這就需要考慮到各個文件之間的優先級及狀態變化。

二、假設

  • 現在有ABCD四個文件需要下載;
  • 不考慮異常情況及下載完成,正常情況下這四個文件的狀態有三種:下載中、等待中、已暫停;
  • 受到系統限制,只能有一個文件處于“下載中”的狀態,其余文件需要處于“等待中”或“已暫停”;
  • 假設此時A處于“已暫?!保珺處于“下載中”,C&D處于“等待中”,如下圖:

三、 題目

1. 如果此時用戶點擊了B,四個文件的狀態如何變化?(簡單級)

  • 理論上來說,用戶此時點擊B的動機應該是想讓它暫停,所以B的狀態應該變成“已暫?!?;
  • 而A是已暫停狀態,用戶無操作的時候,狀態不會改變,所以A依然是“已暫?!?;
  • 那么這里的重點在于C、D,這兩個文件都是等待中,這個時候該先下載誰呢?這里的優先級應該按照用戶添加下載的時間來定義,如果C比D早加入下載隊列,那么這個時候應該先下載C,也就是C變成“下載中”,D依然是“等待中”;

2. 在原假設的基礎上,若用戶點擊的是C,四個文件狀態如何變化?(中等級)

(1)據說是80%人的思路

  • 用戶此時點擊C的目的應該是想先下載C,所以C的狀態應該變為“下載中”;
  • 相應地,因為只能有一個文件處于“下載中”,B的下載進程被打斷,B就被動變成了“已暫停”;
  • A和D狀態不變;

這個邏輯其實也非常有道理,非常正確,目前這一步來看沒有什么問題,但是下一步如果用戶進一步有操作,就會發現這個邏輯有個陷阱,這個會在第三個問題中詳細展開;

(2)其實邏輯更細致的思路:將每一步用戶的操作都拆解開來

  • 用戶對C執行了點擊操作,但是C的狀態是不是一定要發生改變?即“等待中”的文件被點擊后是否有點擊事件?
  • 如果點擊C之后有點擊事件,那個這個狀態有兩種可能:“下載中”或“已暫停”,這個時候哪一種更貼近用戶的想法?
  • B的進程被打斷,那B的狀態同樣有兩種可能:“等待中”或“已暫?!保囊环N更貼近用戶呢?

如果你經常使用百度網盤下載文件,你會發現當用戶點擊C時,百度網盤采用的是如下邏輯:

對照上面的三個步驟分別為:

  • “等待中”的文件C后面確實有點擊事件;
  • 百度網盤認為用戶點擊C之后,已暫停更貼近用戶的想法;
  • B的進程未被打斷;

百度網盤將用戶的點擊理解為要暫停這個文件,雖然說這確實是一個用戶場景,但是這個場景目前我遇到的還比較少;

我經常遇到的是:想優先下載某一個文件,然而這個文件添加到下載列表的時間較晚,百度網盤按照時間順序的優先級要等很久才會下載到它,于是我把前面的文件一一暫停,才終于輪到這個文件開始下載了。

百度網盤這里的下載邏輯背后的原因我們不去深究,但至少這給我提供了一種與大部分人認知不太相符的解決邏輯;

相信如果在面試的時候,能夠做到與大部分人的出發點不一致,或者能講出屬于自己的邏輯并能夠有合理原因證明,那就是一個好的回答,也是一場好的面試。

3. 在上題中80%人的思路下,當C下載完成時,下一步該下誰?(困難級)

此時四個文件的狀態如下:

按照正常的產品邏輯:下載中>等待中>已暫停,而此時只有一個文件D處于等待中,因此現在會開始下載D;但是這里會涉及到一個問題:

  • 用戶原來的優先級中,是最想先下載B的,其次是C、D,也就是原定優先級:B>C>D;
  • 中途用戶改變了想法想先下載C,也就是此時C變為最高優先級,但是我們并不能判斷C和D在用戶心理的優先級有改變,從尊重用戶的角度來說,應該保持原優先級,即現在的優先級應該為C>B>D;
  • 那么當C下載完成時,此時B應該是最高優先級,應該優先下載B;那顯然此時產品邏輯上開始下載D是不符合用戶需求的,用戶這個時候需要下載的是B;
  • 但B現在是已暫停狀態,從產品邏輯上來說:下載中>等待中>已暫停,這個優先級也不能被打亂;

好像陷入了一個兩兩矛盾的狀態,怎么辦?

所以這一問才是全題的關鍵所在,這個邏輯被質疑和挑戰的時候,往往才能看出產品經理的判斷力和決策力;

這里提供以下幾個備選方案:

  1. AB實驗:看下哪個方案更受用戶的喜歡,對數據有正向幫助;
  2. 向上匯報,讓領導決策:遇到自己無法決策的問題,可以把問題升級到更有經驗的領導那里,讓領導決策;

四、相對最優的答案

1. 如果此時用戶點擊了B,四個文件的狀態如何變化?(簡單級)

此問答案同上,B變為“已暫停”,開始下載C,D仍為“等待中”;

2. 在原假設的基礎上,若用戶點擊的是C,四個文件狀態如何變化?(中等級)

從這一問開始,和上文有不同的解決方案:用戶點擊C之后,C的狀態改變為“下載中”,但是B的狀態不是變為“已暫?!?,而是變為“等待中”,如下圖:

3. 當C下載完成時,下一步該下誰?(困難級)

此時,B和D的狀態都是“等待中”,按照上面說過的邏輯,這個時候按照原定優先級C>B>D,開始下載B,上面提到的矛盾就迎刃而解了,如下圖:

五、總結

一位有多年面試經驗的產品大佬說,面試中的這類邏輯題往往沒有標準答案,主要是想考察產品求職者的邏輯能力,以及面對挑戰的心理素質;

所以大家即便是遇到從來沒有想過或者見過的產品場景被轉化成面試題來拷問自己,也不用太慌,可以用你的邏輯征服面試官!

實在不行,就堅定自己的立場吧,畢竟相信自己的判斷力也是很大的加分項~

(這篇文章其實有點繞,因為這個邏輯用文字表達實在有點繞,大家湊合看~感謝感謝)

#相關閱讀#

《電商已經一片混戰,阿里京東等巨頭們正在努力“自救”?》

《拼多多金豬儲蓄罐的細節和數字,遠比你想象中嚴謹》

 

作者:一律先生, 一個有夢想的產品汪!

本文由 @一律先生 原創發布于人人都是產品經理,未經許可,禁止轉載。

題圖來自Unsplash, 基于CC0協議。

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 請問一下,按照您文章的邏輯,我想在B下載完成后,D的優先級要比C高,怎么搞?

    來自北京 回復
  2. 很有意思,也很有藝術,一個簡單的案例分析邏輯清晰,解說得干脆易懂,很喜歡你的這篇文章?。?/p>

    來自重慶 回復
    1. 謝謝謝謝,過獎啦~記得訂閱哦hhh ??

      來自上海 回復
  3. 好頂贊!

    來自四川 回復
    1. 謝謝謝謝,那記得訂閱哦~hhh ??

      來自上海 回復
  4. 學到了,大佬很有意思的的邏輯思維,也看了所有評論,我認為在不同的下載場景中,優先級確實有所不同,所以沒有所謂的最優解,產品邏輯的核心依然是滿足大多數使用用戶習慣…

    來自湖南 回復
    1. 目前看到的最客觀的一條評論哈哈哈 ??

      來自上海 回復
  5. 大家可以多去體驗下各大app的下載功能哦,百度云的做法文章中有提到,愛奇藝的做法和最優解一致~ ??

    來自上海 回復
  6. 如果我想先下載c只需點擊b暫停即可,根本不會去點c,因為此時c處于等待第一優先級,如果我去點那只能是想要取消下載或置于最末優先級下載。

    來自上海 回復
    1. 如果按照文章中,在你明顯已知優先級的情況下,你的說法成立;但放在現實場景中,很難成立;
      若作為一個普通用戶,此時有兩個文件在“等待中”,而且實際場景中文件名并不是按照C、D這種明顯有順序的方式命名的,且很可能等待中的文件有n個,甚至可能很多用戶連“優先級”這個詞都沒有聽過,請問用戶如何是怎么知道這些等待中文件之間的優先級的?你確定用戶還能記住n個文件中哪個被他先添加進下載隊列的?

      來自上海 回復
    2. 用戶不需要知道優先級這個詞也一樣可以知道下一個下載的是哪個文件,在我作為用戶使用下載功能的時候,我可以很清楚的知道下載列表是按照我的添加順序排列,那么在我不做干擾的情況下,不管文件如何命名都一定是默認按照列表順序下載的,不會存在分不清哪個是先添加哪個是后添加的問題。

      來自上海 回復
    3. 我理解在你的原假設下,認為點擊C是變為“已暫?!备N近此時用戶的想法,就是用戶不需要再下載這個文件了,那這個時候用戶是不是可以直接刪除這個下載任務,而不是讓它變為已暫停?
      用戶的場景有千千萬萬,需要產品經理做一定取舍,沒有任何一個產品可以滿足所有場景,只能盡可能滿足最高頻的用戶場景,而且你個人的行為習慣并不能代表用戶群體的行為習慣,你可以在身邊做下用戶調研,看看和你習慣一致的人有多少;補充一句:最優解的做法是愛奇藝、騰訊視頻的做法

      來自上海 回復
    4. 既然不能滿足所有場景,就不該單獨拿視頻類app的下載為基準,如果是工作需要而下載文件,必然存在有優先需要的情況,所以暫停并不是不要下載了而是我暫時不需要可以等其他的下載結束后再進行下載。

      來自上海 回復
    5. 這個我同意,我覺得要是第二個在下載時我點了第三個先下載,我可能第二個就不需要再被下載了,我要下載的是第三個及以后的內容,可以等后續全部下載完再來下第二個,我覺得這個比較符合用戶的使用習慣吧。
      具體場景比較下電視劇,我不下載第二集而去點第三集的目的大多是我第二集看完了,這時候如果你第三集下完返回把我第二集下了,我會覺得好奇怪??,個人想法,僅供參考

      來自上海 回復
    6. 你們倆邏輯并不一致呀,你如果想下載第三個及之后的文件,這個時候對你來說最優操作不是點擊C,而是點擊此時唯一一個正在下載的B,讓B暫停掉,自然就開始下載第三個及之后的文件了,你只需要這一步操作

      來自上海 回復
    7. 哦哦~我的習慣可能是直接點C??讓他去下載

      來自上海 回復
    8. 是的,我也會直接點C,因為有時候我會根據文件的大小優先下載小的??,想讓哪個下就點哪個,而不是點另一個來觸發這個;作者說的意思只是另一種思路和解決方式

      來自廣東 回復
  7. 如:A暫停B下載中C等待中D等待中,用戶現在不想下載C和D,只想把B下載完成,是不是我要點兩次C和D才能暫停,同時B的下載還會被中斷

    來自重慶 回復
    1. 確實有這種場景,而且這個用戶場景在2.(2)中討論過:如果點擊C之后有點擊事件,那個這個狀態有兩種可能:“下載中”或“已暫停”,這個時候哪一種更貼近用戶的想法?我理解在你的假設下,認為變為“已暫?!备N近此時用戶的想法,就是用戶不需要再下載這個文件了,那這個時候用戶是不是可以直接刪除這個下載任務,而不是讓它變為已暫停?
      用戶的場景有千千萬萬,需要產品經理做一定取舍,沒有任何一個產品可以滿足所有場景,只能盡可能滿足最高頻的用戶場景 ??

      來自上海 回復
    2. 貌似有一個是全部暫停,然后再點B就好了,之前用過百度網盤這樣做過??

      來自廣東 回復
  8. 1.按照你第二個問題的邏輯,我們來考慮一下題目,A是怎么變回已暫停的,如果是和第一個問題一樣,用戶點擊的是A,A變成已暫停,沒有問題;但是用戶點擊B,按照你的邏輯,A應該是等待中,而不是題目中的已暫停,所以就會和原系統的機制產生矛盾。
    2.從你回答第三個問題的分析,按照你的邏輯,A也處于剛開始下載后切換為已暫停的,那為什么不是優先級應該為C>A>B>D,之后應該先下載A而不是B,而且從日常的我的使用心理來說,當一個下載任務被我變為已暫停之后,他在我的心理優先級是沒有等待中來的高的,也就是我已經確認暫停一個任務,我更期待的是后面等待中的任務。
    還有就是,本題目中A與B只有一個,但是如果實際中,有A1-An,B1-Bn呢,按照你的邏輯,等Cx下載完成之后,又轉回Ax,從這樣的使用場景來說,這么多的下載任務,用戶有時候都記不過來是哪個了,更摸不著頭腦了,會產生混亂。
    所以綜上我的12分析,我還是認為百度網盤的下載邏輯是最貼切用戶使用習慣的,邏輯簡單清晰,開發也接受,

    來自廣西 回復
    1. 1. 最優解中第一問就給出了答案:當文件處于“下載中”時被用戶主動點擊后,文件狀態才會變更為“已暫?!保?br /> 2. 用戶主動點擊了A,用戶主動進行的暫停操作,相當于默認將A的優先級變為最后了,C>A>B>D這個邏輯從哪推出來的??
      3. 無論A1-An有多少個,B1-Bn有多少個,產品的優先級順序不會變,A系列文件處于已暫停狀態,當用戶不主動去改變此文件的已暫停狀態,文件不會進入下載等待隊列;若用戶點擊了已暫停,此時應該先變為下載等待隊列,而不是直接開始下載;

      來自上海 回復
    2. 我知道你寫一篇文章,會花一些時間,會沉浸在自己的思維里,你先好好看我說的,我就是按照你的邏輯去推導的,是會有邏輯混亂。

      來自廣西 回復
    3. 非常認可你的質疑點,但確實沒有看懂你的邏輯,你再仔細看看文章的推導過程,實在不行要不加個微信討論下 :mrgreen:

      來自上海 回復
  9. 我的答案和百度網盤一樣,點擊C把狀態由 等待中變為已暫停。A的下載優先級更高,不能被打擾。
    點擊的邏輯是在“開始下載”“暫停下載”狀態之間切換(如有其它文件在下載,則“開始下載”變為“等待下載”),這樣邏輯簡單清晰,對于用戶學習成本更低。

    來自浙江 回復
    1. 這個用戶場景在2.(2)中討論過:如果點擊C之后有點擊事件,那個這個狀態有兩種可能:“下載中”或“已暫?!?,這個時候哪一種更貼近用戶的想法?你認為是變為“已暫停”更貼近用戶的想法,就是用戶不需要再下載這個文件了,那這個時候用戶是不是可以直接刪除這個下載任務,而不是讓它變為已暫停?
      綜合判斷,其實用戶操作等待中任務的場景大部分都是想優先下載此文件,尤其在下載電視劇等有先后順序的文件場景中更為顯著,這是用戶干預下載順序最快的路徑

      來自上海 回復
    2. 【你認為是變為“已暫停”更貼近用戶的想法,就是用戶不需要再下載這個文件了,那這個時候用戶是不是可以直接刪除這個下載任務,而不是讓它變為已暫停?】為什么你覺得“已暫?!钡奈募褪怯脩舨恍枰傧螺d這個文件了,不再下載就可以直接刪除這個任務???難道不可以是 沒想好是否下載,先暫停等會再看是否要下載?
      【綜合判斷,其實用戶操作等待中任務的場景大部分都是想優先下載此文件】,這個結論是如何判斷出來的呢?是做過大量用戶調研得出的嗎?如果是這樣,也只能是基于你們的目標用戶群體得出的調研結論。
      另外,想問下,按照相對最優答案中的邏輯:如果用戶要暫停D,等會再決定是否下載,就要點2下次,如果有更多類似的E、G,就需要點擊更多次,這個操作是不是有點讓用戶抓狂?
      我覺得你不說哪個方案是最優解,只說基于什么樣的考慮,作出什么樣的邏輯處理,大家會更容易接受。

      來自上海 回復
  10. 全中

    來自湖北 回復
    1. 棒棒,給你加雞腿 ??

      來自上海 回復
  11. 從技術角度講的話,不考慮技術干預,誰先下載是由線程的前后順序決定的……

    來自上海 回復
    1. 技術大佬說的在理,這里只討論了產品邏輯,具體技術實現得再和研發爸爸們對下 ??

      來自上海 回復
  12. 個人認為從下載C開始那一步,B就要變更成等待中…從定義這三個狀態的文案來看,等待中這個狀態一定是等待開始,而不是等待暫停!人腦獲取靜態信息的途徑是圖片>文案,文案的轉化是和語文有關的。??

    回復
    1. 文中難道不是這個邏輯嗎……沒太懂您要表達的點 ??

      來自上海 回復
    2. 他想表達的意思跟我一樣,我覺得大部分人(80%)應該會判斷從下載C開始那一步,B就要變更成等待中,而不是已暫停。這樣就沒有下文了。哈哈。

      來自浙江 回復
  13. 我覺得有點想多了,因為之前的狀態只有 下載中和未開始兩個按鈕,程序只需要寫一個點擊判斷就OK,現在按您的最優解法,明顯要復雜很多,不適用于后期維護。

    來自浙江 回復
    1. 之前也是三個狀態呀:等待中、下載中、已暫停;按照最優解也沒有增加點擊事件的個數,只是變更了點擊事件的內容~ ??

      來自上海 回復
    2. 我是說按鈕狀態

      來自浙江 回復
  14. 我有個小小的疑問,如果下載中點擊后的狀態是到等待中,那已暫停的狀態是如何出現的呢 ?

    來自湖南 回復
    1. 沒有下載中的狀態被點擊后變成已暫停呀?是不是看錯啦,是點擊了等待中的文件,導致下載通道被占用,原下載中文件變為“等待中”

      來自上海 回復
    2. 其實我沒太理解的是已暫停的狀態是怎么出現的,按照作者在第四.3中的的邏輯,在點擊后的狀態變化如下:
      下載中->等待中
      等待中->下載中

      那在初始狀態中的已暫停是在什么場景下通過什么操作出現的?

      來自湖南 回復
    3. 你在仔細看下文章第四.1:用戶點擊“下載中”的文件后,該文件就會變為“已暫?!?;

      來自上海 回復
    4. 同樣的疑問,如果點擊后,文件變為“等待中”,那么什么操作可以出現“暫?!睜顟B?
      其實我覺得這個只是操作習慣,比如,雙擊是“等待中”,那么右擊等操作肯定會出現“暫停”操作。
      相反也是一樣的道理。

      最后,鄙人認為:只是看用戶在實際場景中更多的是“暫?!?,還是“優先下載”。
      1、如果“暫?!庇玫亩啵p擊暫停。
      2、如果“優先下載”用的多,可以雙擊變為“等待中”。
      2.2、或者等待中的文件拖動到第一位后,自動變為“下載”狀態,而剛剛第一位的下載文件,自動變為第二位,狀態自動轉換為“等待中”。
      (未考慮技術實現問題)

      來自河北 回復
    5. 你再仔細看下文章第四.1:用戶點擊“下載中”的文件后,該文件就會變為“已暫停”;
      另外雙擊這個交互也確實是一種比較新穎的解決方案,但是在其他大型app都沒有在移動端采用這個交互的時候,冒然使用有一定風險,用戶短期內很難養成習慣,不過也不失為一種創新

      來自上海 回復
  15. 最后答案和我想的一樣

    來自福建 回復
    1. 那很厲害哦哈哈哈 ??

      來自上海 回復
  16. 大家可以關注同名微信號:一律先生

    來自上海 回復