B端產品面試技巧:業務調度設計的邏輯測驗及分析
編輯導讀:為了提高我們的思維能力,需要有意識地觀察生活,并做一些產品思考。本文作者將以一道產品的筆試題為例,談談業務調度設計的邏輯測驗及分析,希望對你有幫助。
個人一直覺得產品面試是一件非常有挑戰的事情,今天選擇從一個角度分享B端產品的面試技巧。
這是一道筆試的面試題,這道源自于老狗某日在等電梯時的突發奇想。
一棟樓內有N部互相關聯的電梯,當任一樓層內的用戶,按下呼叫鍵(上/下)后,系統對接載乘客需求的響應邏輯該如何設計,目標是讓電梯實現高效且合乎我們日常使用體驗。
這個問題,通常情況下,請作為筆試題,并給候選人至少30分鐘以上思考時間。
老狗當初冒出這個想法的時候,自己考自己,花了幾天時間才把邏輯給抽象出來,從我實際面試經驗來看,如果這個問題在當面溝通時拋給候選人的話,實時能夠描繪出邏輯的人,基本為零。
但這絕對是一個值得去琢磨的問題,對于提升自己的邏輯性有非常大的幫助。
這個問題的本質是什么?
這個問題本質上,我把它定義為“業務調度設計能力”。
在B端產品經理的專業能力樹中,業務調度的邏輯抽象能力,我認為是極其重要的一項基本能力,帶大家一起分析下這個問題。
最熟悉的場景,卻不曾思考過的復雜邏輯。
問題中,包含了非常多的變量:
- 樓層數是變量;
- 電梯數是變量;
- 呼叫電梯的人,所處的樓層是變量;
- 呼叫電梯的人,往上/往下的需求是變量;
- 呼叫電梯的人,與電梯轎箱的相對位置是變量;
- 呼叫電梯的人,往上/往下的需求,與電梯運行的相對方向,也是變量;
目標是高效的接載邏輯,高效背后代表了以下訴求:
- 較低的使用能耗;
- 運行過程中盡可能多的進行接載送達;
- 滿足整體的快速接載及送達;
在邏輯高效的基礎上,確保邏輯架構的合理,便于擴展其他分支邏輯,比如:
- 考慮轎箱內乘客的體驗,當前樓層距離呼叫樓層過近時,不能瞬間??浚枰懦?;
- 某一轎箱故障/檢修時,需要排除;
- 某一轎箱滿載時,需要排除;
- 某一轎箱長時間停滯時(被人卡門),是否要排除候選;
- 更多;
所以,如果你是電梯軟件系統的產品經理,你認為接載的業務調度邏輯該如何設計呢?
一、如何設計?
業務調度的邏輯思考:
依據效率優先原則,優先考慮優先條件全部滿足的場景。其背后的邏輯,與我們趕火車時的邏輯非常類似:當我們要從杭州去上海的時候,假設每趟火車的時長都一致的情況下,我們應該如何選擇火車?
趕火車時的常理思維:
- 選擇當前所有已發列車中,最快到達杭州站的火車且往上海去的,然后順路上車是最快的。
- 相對我而言,雖然發車但反向開走的火車,我都會排除掉。
- 如果沒有向杭州來且往上海去的運行中的火車,則我會考慮未發車的火車。
電梯場景下的業務調度設計:
電梯按下呼叫按鈕瞬間,我們需要選出一個目標電梯來接載。在觸發按鈕的狀態下,電梯可以分成“運行狀態”,和“靜止狀態”兩個分類:
- 為了節能,我們優先考慮運行中的電梯;
- 為了考慮具備接載的可能,選擇距離最近,且順向的電梯即為目標,若逆向直接納入排除列表,再選擇下一個距離最近的繼續判斷是否順向……
- 若運行中的電梯,沒有找到順向者,則考慮靜止狀態的電梯;
- 為了節能,優先考慮距離最近的電梯且未被排除的電梯,即為目標;
- 若都沒有合適的電梯,則系統等待當前電梯任務結束后,再重新判斷;
核心解決思路:抽象出最關鍵的調度核心邏輯,同時考慮邏輯擴展的可能性。
二、供參考的個人答案
- 選出當前距離任務樓層最近,且,未被排除的電梯(被排除的可以狀態很多:如滿載超重、故障代碼、人為卡門超時、維修暫停、節能暫停等……),判斷是否有可選電梯;
- 若有電梯,則判斷該電梯是否正在執行運輸任務;
- 若是(執行中),則判斷是否執行順向任務;
- 若是(順向),則將任務插入該電梯運行隊列,實現接載(此處可以有擴展邏輯,如順向,但距離過近則排除等);
- 若否(反向),則列為“排除電梯”,并重新執行邏輯1;
- 若否(未執行),則將任務插入該電梯運行隊列,實現接載;
- 若無電梯,則等待空余電梯通知,通知發生時,清空排除電梯清單,重新執行邏輯
*所謂“順向”的判斷邏輯:呼叫指令的發起樓層,位于電梯當前樓層至行駛方向終點間的樓層間隔內(即避免方向相同,但“已過站”的問題)。
三、延展思考
業務調度設計過程中,高效判斷邏輯,嚴謹的閉環設計是核心重點。
其實除了電梯,還有其他很有意思的調度設計思考題。比如火車的車票,應該如何進行售賣及控制(多個站點??浚辔恢?,需求只占中間的某一程),系統應該如何設計調度規則,才能實現合理的需求與供給匹配?
當然這個題太復雜,根本不適合做面試題,但是建議B端的產品,可以在各種碎片時間進行一些調度邏輯的設計,練練腦。:)
本文由 @十六年產品老狗 原創發布于人人都是產品經理,未經作者許可,禁止轉載。
題圖來自Unsplash,基于CC0協議。
很不錯的業務邏輯設計分享,從實際業務出發,首先考慮主流程的閉環,再執行的過程中,分析各種特定規則的兼容。
遇到業務邏輯設計,先梳理業務實體屬性關系;如:電梯分:A位置、B運行電梯、C靜止電梯;B運行電梯分:順向、逆向、滿載、未滿載、卡門;C靜止電梯分:非故障、故障;按照業務要求:效率、節能,組建業務執行優先級;如:A-B(順向)-B(未滿載);A-C靜止電梯(非故障)等序列邏輯。個人是這樣一個思維。
這種東西拿出來面試的話。無節操,不了解業務,讓現場的人怎么去分析。
電梯你每天都在用,題是死的,人的思維是活的,分享這個文章,主要是希望給一些啟發和思考,這個價值更大。當然你說的沒錯,直接問的話,不合適,至少給個30分鐘筆試,能拿出分析思路就不錯了。