產品經理應該這樣提需求之“狀態機”

6 評論 24054 瀏覽 138 收藏 5 分鐘

在程序猿眼里,產品經理就是需求生成器,各種各樣的點子都會從產品經理強大的腦洞中生成。這些點子最終會變成需求,交付給程序猿實現。然而產品狗和程序猿畢竟是兩個物種,如何讓程序猿能完全同步產品經理的腦洞,這的確是個技術活。但是產品經理如果能了解程序猿的思維方式,想必可以再一定程度上彌補「種族差異」帶來的交流困難!今天,咱們就用「狀態機」來開個篇,說說按照程序猿的思維方式是怎么理解和管理狀態的。

「狀態機」是什么

一般說來,狀態機是用來描述一個事物多個狀態之間相互切換關系的數學模型,可以用圖表或者圖形來描述一個狀態機。

1

用圖表描述狀態機

2

用圖形描述狀態機

很明顯,使用「有向圖」描述的狀態機更直觀,更能讓人理解。

「狀態機」中的要素

  1. 現態:狀態機描述事物當前所處的狀態
  2. 次態:現態達到一定條件,并觸發相應動作后能夠達到的狀態
  3. 條件:執行動作的前提
  4. 動作:當條件滿足后,觸發狀態機狀態改變

當「現態」滿足指定「條件」,并觸發相應「動作」后,會進入一個指定的「次態」。狀態改變后,「次態」就會變成新的「現態」。

舉個栗子

叨逼叨說了這么多概念性的東西,可能大家已經成功被我帶到坑里了。不要緊,咱們馬上來個具體的例子,看看「狀態機」到底如何使用。

以打電話的過程舉例,整個過程中可能存在以下幾個狀態:「待機」、「振鈴」、「通話」、「停機提示」等幾個狀態,如果我們要用自然語言描述這些狀態的轉換關系,可能需要費一些口舌,但是如果用下面的「狀態機」來描述,是不是就一目了然了?

3

產品經理如何利用狀態機

經過上面對「狀態機」的介紹,可以發現「狀態機」相對自然語言來說,對描述一些多狀態切換的場景有很大的優勢。它不僅可以簡潔清晰的描述出一些復雜狀態間的轉換條件,而且也很難產生歧義。如果新需求的交互涉及到多種狀態的切換,又擔心程序猿在實現時會遺漏一些關鍵路徑,不妨試試「狀態機」的圖形化描述方式,說不定有奇效哦。

最后,再提供大家一個「狀態機」的例子做參考,這個例子的名字叫「一個程序猿的日常」。

4

本文所說的「狀態機」都是指「有限狀態機」(FSM)。另外還有一種進階版的「層次狀態機」。如果有興趣的話可以自行搜索。

#專欄作家#

給產品經理講技術,微信公眾號(pm_teacher),人人都是產品經理專欄作家。資深程序猿,專注客戶端開發若干年,對前端、后臺技術略懂,熱衷于對新的科技領域的探索。

本文原創發布于人人都是產品經理,未經許可,不得轉載。

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 這幾張狀態圖中,狀態和動作都沒有完全分清。

    來自廣東 回復
  2. 圖形化比純文字更直觀清晰

    回復
  3. 看懂了看懂了,一種思維方法,用用試試吧

    回復
    1. 能解釋下嗎?沒看懂……

      來自廣東 回復
  4. 沒看懂

    回復
  5. 每篇文章都看

    來自上海 回復